Skip to main content Skip to docs navigation

Button Solid

Interactive elements that trigger actions, submit forms, or navigate users to different pages when clicked or tapped.

This documentation is a work in progress and may contain incomplete or outdated information. If you have any feedback or suggestions, please open an issue on GitHub.

Tokens

Standardized design system values that define consistent visual properties across button components. These tokens ensure visual coherence while enabling flexible theme customization and brand adaptation.

Theming Tokens

Design tokens organized by category with color-coded labels indicating their scope and impact level. Each token includes detailed specifications with values, usage guidelines, and customization options.

Legend:
  • Granular tokens that affect only this component.
  • Granular tokens that affect other components.
  • Semantic tokens that affect the whole application.
  • Base tokens that affect the whole application.

Color

Color tokens are listed for the default context variant only. Other context variants follow the same token pattern with variant-specific color values.

context:
default
Component TokenBase Token
color.button.default.fg-idle {color.context.default.fg-idle}
color.button.default.bg-idle {color.context.default.bg-idle}
color.button.default.border-idle {color.context.default.border-main}
color.button.default.fg-hover {color.context.default.fg-hover}
color.button.default.bg-hover {color.context.default.bg-hover}
color.button.default.border-hover {color.context.default.border-main}
color.button.default.fg-press {color.context.default.fg-press}
color.button.default.bg-press {color.context.default.bg-press}
color.button.default.border-press {color.context.default.fg-idle}
color.button.default.fg-disabled {color.context.default.fg-disabled}
color.button.default.bg-disabled {color.context.default.bg-disabled}
color.button.default.border-disabled {color.context.default.transparent-color}

Typography

Component TokenBase Token
font.button.large {font.text.large.strong}
font.button.medium {font.text.medium.strong}
font.button.small {font.text.small.strong}

Sizing

Component TokenBase Token
size.button.medium-main {size.unit.40}
size.button.medium-icon {size.unit.24}
size.button.medium-caret {size.unit.20}
size.button.large-main {size.unit.48}
size.button.large-icon {size.unit.28}
size.button.large-caret {size.unit.24}
size.button.small-main {size.unit.32}
size.button.small-icon {size.unit.20}
size.button.small-caret {size.unit.16}

Spacing

Component TokenBase Token
space.button.medium-padding-y {space.unit.8}
space.button.medium-padding-x {space.unit.12}
space.button.medium-gap {space.unit.8}
space.button.medium-nudge {space.unit.4}
space.button.large-padding-y {space.unit.10}
space.button.large-padding-x {space.unit.16}
space.button.large-gap {space.unit.12}
space.button.large-nudge {space.unit.4}
space.button.small-padding-y {space.unit.6}
space.button.small-padding-x {space.unit.8}
space.button.small-gap {space.unit.4}
space.button.small-nudge {space.unit.4}

Border Width

Component TokenBase Token
borderWidth.button.main {borderWidth.context.medium}

Border Radius

Component TokenBase Token
borderRadius.button.medium {borderRadius.context.medium}
borderRadius.button.large {borderRadius.context.medium}
borderRadius.button.small {borderRadius.context.medium}

Opacity

Component TokenToken Value
opacity.level.solid 1
opacity.context.fg-slight 0.25

Asset

Component TokenToken Value
icon.button.caret <svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='currentcolor' class='icon-chevron-down-solid' viewBox='0 0 24 24'><path d='M11.1016 17.8984L3.60156 10.3984C3.09375 9.92969 3.09375 9.10938 3.60156 8.64062C4.07031 8.13281 4.89062 8.13281 5.35938 8.64062L12 15.2422L18.6016 8.64062C19.0703 8.13281 19.8906 8.13281 20.3594 8.64062C20.8672 9.10938 20.8672 9.92969 20.3594 10.3984L12.8594 17.8984C12.3906 18.4062 11.5703 18.4062 11.1016 17.8984Z'/></svg>