components/
Components
Around fifty components, all plain Go functions returning h.Node. Every one of them is on this page, interactive, in whichever theme you have on.
Forms
Input
input.goTextarea
textarea.goCheckbox
checkbox.goRadio Group
radio-group.goDefault
With Default Selected
Disabled
Invalid
Switch
switch.goSelect
select.goBasic
With Default Value
With Groups
Small Size
With Disabled Items
Disabled
Align End
Native Select
native-select.goDefault
Small
With OptGroup
Disabled
Invalid
Combobox
combobox.goBasic
With Default Value
With Clear Button
With Groups
With Disabled Items
Disabled
Slider
slider.goDefault
Custom Range (0-200, step 10)
Empty (0%)
Full (100%)
Disabled
Input Group
input-group.goWith Icon (inline-start)
With Icon (inline-end)
With Text Prefix
With Text Suffix
Both Sides
With Button
With Button (icon-xs)
With Textarea
Disabled
Invalid
Calendar
calendar.goDefault
With Selected Date
With Form Name
With Min/Max Constraints
Date Picker
date-picker.goBasic
With Selected Date
With Form Name
With Min/Max
With Label
Date + Time
Time Picker
time-picker.go24-Hour (Default)
24-Hour with Value
12-Hour (AM/PM)
12-Hour with Value
With Form Name
With Label
With Seconds (24h)
With Seconds (12h)
Label
label.goField
field.goVertical (Default)
Your full name as it appears on documents.
With Error
Horizontal with Switch
Horizontal with Checkbox + Content
You agree to our Terms of Service and Privacy Policy.
Disabled
FieldSet & FieldGroup
field.goFieldSeparator
field.goor
FieldLegend Variants
field.goLegend (Default)
Label Variant
Overlays
Dialog
dialog.goDrawer
drawer.goDirections
With Form
No Close Button
Popover
popover.goDefault (bottom center)
Top
Left
Right
Align End
With Form Content
Tooltip
tooltip.goSides
With Icon Button
Variants
Dropdown Menu
menu.goBasic
With Checkbox Items
With Radio Items
With Submenu
With Disabled & Groups
Align End
Context Menu
menu.goCommand
command.goInline command palette and dialog variant (Cmd+K / Ctrl+K).
Press ⌘K to open the command palette.
Carousel
carousel.goDefault (Horizontal)
With Dots
With Counter
Vertical
With Cards
Multiple Items (3 per view)
Feedback
Alert
alert.goDefault
Destructive
With Icon
Destructive with Icon
With Action
Toast
toast.goTypes
With Title
Persistent
Loading
Progress
progress.goDefault
With Label & Value
Empty (0%)
Complete (100%)
Partial
Indeterminate
Indeterminate (bare)
Loader
loader.goSkeleton
skeleton.goDefault
Circle
Card Placeholder
Charts
chart.goContent
Typography
typography.goH1
Taxing Laughter: The Joke Tax Chronicles
H2
The People of the Kingdom
H3
The Joke Tax
H4
People stopped telling jokes
Paragraph
The king, seeing how much happier his subjects were, realized the error of his ways and repealed the joke tax.
Blockquote
"After all," he said, "everyone enjoys a good joke, so it's only fair that they should pay for the privilege."
Table
| King's Treasury | People's happiness |
|---|---|
| Empty | Overflowing |
| Modest | Satisfied |
| Full | Ecstatic |
List
- 1st level of puns: 5 gold coins
- 2nd level of jokes: 10 gold coins
- 3rd level of one-liners : 20 gold coins
Inline Code
@radix-ui/react-alert-dialog
Lead
A modal dialog that interrupts the user with important content and expects a response.
Large
Small
Email addressMuted
Enter your email address.
Badge
badge.goAvatar
avatar.goSizes
With Fallback
With Badge
Group
Group (Small)
Group (Large)
Icon
icon.goAny Phosphor name, lit by the page's one light source
The whole set, and why closed glyphs are lit while arrows stay flat, is on the Design page.
Kbd
kbd.goSingle Keys
Key Combinations (KbdGroup)
Inside Tooltip
Empty
empty.goChrome
Dark Mode
dark-mode.goThe toggle is in the bar at the top of this page -- flip it and watch every card here follow, with no second stylesheet and no per-component dark variant.
Why nothing flashes on reload
The choice is written to localStorage and re-applied by the inline script in base.go before first paint, so the page never renders in the wrong theme first.
One instance per page
The control keys off id="dark-toggle", so a page renders exactly one -- which is why this card describes it instead of showing a second copy.
Sound Settings
sound-settings.goControls the audio cues every component plays. Stored per browser and honoured by the shared audio utility.
Page Shell
base.goBase is the whole document: head, both bundles, the icon gradient, the skip link, and the footer. Every full page render goes through it; a fragment render never does.
What it inlines rather than fetches
base.csstokens and resets, inline in <head> so the first paint has thembase.jstheme pre-paint, the sound palette, _uiOnInit -- inline, nonce-carryingIconDefs()the one gradient every lit icon reaches for, once per document