Playground
Every component with its variants, sizes, colors, and states side by side. 64 components.
AlertDialog
Confirmation flow for destructive actions with focus trapping and explicit cancel/action controls.
AspectRatio
Fixed-ratio media containers.
| Variant | 16/9 | 4/3 | 1/1 |
|---|---|---|---|
| ratio | ![]() | ![]() | ![]() |
| Variant | small | medium | large |
|---|---|---|---|
| image | |||
| fallback | SM | SM | SM |
| square | |||
| accent fallback | SM | SM | SM |
AvatarGroup
variant × size, images and fallbacks.
| Variant | small | medium | large |
|---|---|---|---|
| overlap | |||
| square | |||
| spacing |
| Variant | small | medium | large | x-large |
|---|---|---|---|---|
| solid | Badge | Badge | Badge | Badge |
| soft | Badge | Badge | Badge | Badge |
| surface | Badge | Badge | Badge | Badge |
| outline | Badge | Badge | Badge | Badge |
| ghost | Badge | Badge | Badge | Badge |
BlockQuote
variant × size.
| Variant | small | medium | large |
|---|---|---|---|
| default | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. |
| soft | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. |
| outline | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. |
| accent | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. | Predictable APIs keep teams on a design system. |
Breadcrumb
Hierarchical trail showing where the current page sits.
| Variant | small | medium | large | x-large | with icon | disabled |
|---|---|---|---|---|---|---|
| solid | ||||||
| soft | ||||||
| outline | ||||||
| ghost |
| Variant | small | medium | large |
|---|---|---|---|
| default | Keep callout copy short and actionable. | Keep callout copy short and actionable. | Keep callout copy short and actionable. |
| soft | Keep callout copy short and actionable. | Keep callout copy short and actionable. | Keep callout copy short and actionable. |
| outline | Keep callout copy short and actionable. | Keep callout copy short and actionable. | Keep callout copy short and actionable. |
| Variant | small | medium | large |
|---|---|---|---|
| default | Release statusDocs refresh in progress. | Release statusDocs refresh in progress. | Release statusDocs refresh in progress. |
| outline | Release statusDocs refresh in progress. | Release statusDocs refresh in progress. | Release statusDocs refresh in progress. |
| soft | Release statusDocs refresh in progress. | Release statusDocs refresh in progress. | Release statusDocs refresh in progress. |
| Variant | enabled | disabled |
|---|---|---|
| unchecked | ||
| checked | ||
| indeterminate |
CheckboxCards
Card-sized multi-select options with a title and supporting description.
CheckboxGroup
Related checkboxes that share one controlled value array.
| Variant | small | medium | large | x-large |
|---|---|---|---|---|
| default | npm run build | npm run build | npm run build | npm run build |
| outline | npm run build | npm run build | npm run build | npm run build |
Collapsible
A single trigger that shows and hides one region of content.
ContextMenu
Right-click menu anchored to the pointer position.
Disclosure
Stacked show/hide items for FAQ-style content.
DropdownMenu
Button-triggered menu with separators and nested submenus.
Keep the baseline copy calm, then use emphasis only where the reader actually needs direction.
| h1 | The quick brown fox |
|---|---|
| h2 | The quick brown fox |
| h3 | The quick brown fox |
| h4 | The quick brown fox |
| h5 | The quick brown fox |
| h6 | The quick brown fox |
| Variant | small | medium | large | x-large |
|---|---|---|---|---|
| keys | ⌘K | ⌘K | ⌘K | ⌘K |
| Variant | small | medium | large | x-large |
|---|---|---|---|---|
| standalone | Documentation | Documentation | Documentation | Documentation |
| inline | Read the docs. | Read the docs. | Read the docs. | Read the docs. |
LiveRegion
Announces dynamic status updates to assistive technology.
NavigationMenu
Site navigation with dropdown panels, Escape and outside-click dismissal.
NumberField
Numeric input with increment and decrement controls and clamped bounds.
| 0% | |
|---|---|
| 25% | |
| 50% | |
| 75% | |
| 100% |
And the time's come to realize there will be Promises I can't Keep
| Variant | enabled | disabled |
|---|---|---|
| unchecked | ||
| checked |
RadioCards
Card-sized single-select options for plans and presets.
RadioGroup
Roving-focus radio set with arrow-key navigation.
ScrollArea
Custom scrollbars for both axes while keeping native scrolling.
| placeholder | |
|---|---|
| with value | |
| disabled |
| horizontal | Above Below |
|---|---|
| vertical | DocsPlaygroundColors |
| single | |
|---|---|
| range | |
| disabled |
| Variant | small | medium | large |
|---|---|---|---|
| spinner |
The important part is not that the playground exists, but that it remains accurate as the component APIs evolve.
| Variant | enabled | disabled |
|---|---|---|
| off | ||
| on |
| Component | Status | Coverage |
|---|---|---|
| Accordion | Ready | Docs + playground |
| Tooltip | Ready | Docs + playground |
| Link | Docs missing | Playground only |
The tabs API separates list, trigger, and content so you can keep structure explicit and styling flexible.
Each part stays composable, which makes it easier to control layout, slot in custom content, and adapt the pattern to different page structures.
This is the right fit when users need to compare related sections without losing their place in the current view.
| p | Start with readable defaults, then layer visual treatment on top. |
|---|---|
| span | Start with readable defaults, then layer visual treatment on top. |
| div | Start with readable defaults, then layer visual treatment on top. |
| label |
| Variant | small | medium | large |
|---|---|---|---|
| default | |||
| soft | |||
| outline | |||
| ghost | |||
| disabled |
| default | |
|---|---|
| start slot | |
| with value | |
| disabled |
| Variant | icon + label | icon only | disabled |
|---|---|---|---|
| off | |||
| on |
ToggleGroup
selection type × enabled/disabled.
| Variant | enabled | disabled |
|---|---|---|
| multiple | ||
| single |
VisuallyHidden
Hide text visually while keeping it available to screen readers.
Icon-only controls can still expose a complete label to assistive technology.
