Button
Variants, grouped usage, states, and token-driven rendering.
Open Button Playground • Open Button in Figma
Variants
Grouped Actions (Button Group Wrapper)
Use ButtonGroup to keep related actions visually and semantically grouped.
<div
class="button-group"
role="group"
aria-label="Travel dates"
data-orientation="horizontal"
data-attached="false"
data-justify="start"
>
<button class="button outline" type="button">Day 1</button>
<button class="button outline" type="button">Day 2</button>
<button class="button outline" type="button">Day 3</button>
</div>
orientation:"horizontal"(default) or"vertical"attached:false(default) removes shared borders/gaps whentruejustify:"start"(default) or"stretch"
Usage
<button class="button" type="button">Solid</button>
<button class="button outline" type="button">Outline</button>
<button class="button ghost" type="button">Ghost</button>
<button class="button" type="button" disabled>Disabled</button>
{% import "macros/ui.njk" as ui %}
{{ ui.button("Solid") }}
{{ ui.button("Outline", "outline") }}
{{ ui.button("Ghost", "ghost") }}
{{ ui.button("Disabled", "", true) }}
import { Button } from "ui-foundations/react/button";
<Button>Solid</Button>
<Button variant="outline">Outline</Button>
<Button variant="ghost">Ghost</Button>
<Button startIcon="search">Search</Button>
<Button disabled>Disabled</Button>
Used tokens
| Token |
|---|
--button-border-color-disabled |
--button-border-radius |
--button-container-background-disabled |
--button-ghost-border-color-active |
--button-ghost-border-color-default |
--button-ghost-border-color-focus |
--button-ghost-border-color-hover |
--button-ghost-border-size |
--button-ghost-container-background-default |
--button-ghost-container-background-focus |
--button-ghost-text-color-active |
--button-ghost-text-color-default |
--button-group-border-radius |
--button-group-gap |
--button-height-min |
--button-outline-border-color-active |
--button-outline-border-color-default |
--button-outline-border-color-focus |
--button-outline-border-color-hover |
--button-outline-border-size |
--button-outline-container-background-default |
--button-outline-container-background-focus |
--button-outline-text-color-active |
--button-outline-text-color-default |
--button-overlay-active |
--button-overlay-hover |
--button-padding-block |
--button-padding-inline |
--button-solid-border-color-active |
--button-solid-border-color-default |
--button-solid-border-color-focus |
--button-solid-border-color-hover |
--button-solid-border-size |
--button-solid-container-background-default |
--button-solid-container-background-focus |
--button-solid-text-color-active |
--button-solid-text-color-default |
--button-solid-text-color-hover |
--button-text-color-disabled |
--size-spacing-100 |