Variable
buttonVariantsConst
buttonVariants: (
props?: ConfigVariants<{ variant: { default: string; outline: string; secondary: string; ghost: string; destructive: string; link: string; }; size: { default: string; xs: string; sm: string; lg: string; icon: string; "icon-xs": string; "icon-sm": string; "icon-lg": string; }; }> & ClassProp,
) => string = ...
Type Declaration
- (
props?: ConfigVariants<{ variant: { default: string; outline: string; secondary: string; ghost: string; destructive: string; link: string; }; size: { default: string; xs: string; sm: string; lg: string; icon: string; "icon-xs": string; "icon-sm": string; "icon-lg": string; }; }> & ClassProp,
): string Parameters
Optionalprops: ConfigVariants<{ variant: { default: string; outline: string; secondary: string; ghost: string; destructive: string; link: string; }; size: { default: string; xs: string; sm: string; lg: string; icon: string; "icon-xs": string; "icon-sm": string; "icon-lg": string; }; }> & ClassProp
Returns string
Class-name generator for the
Buttonprimitive.Built with
class-variance-authorityso each combination ofvariantandsizeproduces a fully-typed Tailwind class string. Exported so callers (e.g.<Link asChild>wrappers, custom triggers) can reuse the exact same styling without re-declaring it.Variants:
default— solid filled button, primary brand coloroutline— bordered, transparent backgroundsecondary— softer secondary backgroundghost— no background until hover/focusdestructive— red-tinted, reserved for irreversible actionslink— renders as a plain text linkSizes:
xs/sm/default/lg— content-bearing sizes (icon or label)icon/icon-xs/icon-sm/icon-lg— square icon-only buttons