Components
Buttons
Three variants (primary, secondary, ghost) × three sizes × all interactive states.
All token bindings live in brand/tokens/output/web/color-semantic.css.
The CSS classes live in showcase/styles/components.css.
Variants
<button class="btn btn--primary">Primary</button> <button class="btn btn--secondary">Secondary</button> <button class="btn btn--ghost">Ghost</button>
Sizes
<button class="btn btn--primary btn--sm">Small</button> <button class="btn btn--primary">Medium (default)</button> <button class="btn btn--primary btn--lg">Large</button>
Disabled states
Use the native disabled attribute or aria-disabled="true"
(plus pointer-events: none) for non-button elements.
With icons
<!-- Icon left of label --> <button class="btn btn--primary"> <svg ...></svg> Continue </button> <!-- Icon-only: use btn--icon-md and aria-label --> <button class="btn btn--ghost btn--icon-md" aria-label="Settings"> <svg ...></svg> </button>
Token reference
Token Role
--btn-primary-bg Primary background --btn-primary-bg-hover Primary hover --btn-primary-text Primary label --btn-secondary-bg Secondary background --btn-secondary-border Secondary border --btn-secondary-text Secondary label --btn-ghost-text Ghost label --btn-ghost-border Ghost border