Button
Live preview and documentation for the Button component.
Preview
componentPreview.loading
About
The design system's standard button, used throughout the app. Supports a label, icon, loading state, and several visual variants.
variant:primary(default),secondary,tertiary,destructive,destructiveSoft,inverse,link,soft,neutral,outline,ghostsize:small,medium(default),large— adjusts height/padding, text stays 16 across all sizesKasyButton.iconOnly(...): a circular icon-only buttonicon+iconAlignment:leading,trailing, ortop(icon stacked above the label)isLoading+loadingBehavior:inline(keeps the shape, swaps content for a spinner) orshrinkToCircle(shrinks into a circle while loading)expand: fills the available width;width: fixed widthpressEffect:depth(scales down, default on native),fill(hover-like fill, default on web), orbothbackgroundColor,foregroundColor,borderColor,outlineWidth,borderRadius,backgroundGradient,fontWeight: override the variant's tokens for custom caseshapticFeedbackEnabled: toggles light haptic feedback on press
Default corners: KasyRadius.xl (24), or a full circle for icon-only buttons.
Last updated on 08/23/2026

