Core components
The instrument's controls. They import Foundations tokens. They do not invent hex, space, or easing. Canvas, Rail, and Panel — the composing patterns — come next.
Each page is a short Ether spec, a live demo, do/don't, motion, and accessibility notes. Demos are runnable. They are not screenshots.
Actions
One filled action
Primary ink-on-signal. Press scale 0.97.
LinkInline navigation
fg-signal, underline, never icon-only.
DropdownContextual menu
Not Select. Click open. Esc closes.
IconTabler outline 24
Reserved set. currentColor. Not a control.
Input
Visible label
Error + icon + describedby. Type stays 16.
Text areaRows 3
Resize block-end. Same field states.
SelectNative when few
Placeholder is an empty option, not the label.
CheckboxNative 20 in 44
Mixed via aria-checked. Fieldset groups.
RadioAlways a group
Never a single radio. Arrows + space.
SwitchImmediate
On = signal fill. Not for exclusive or multi.
CalendarEther Range
Locale first weekday. Time does not reverse in RTL.
Feedback
In-page status
Muted fill, reserved icon. Dismiss, never timeout.
ToastElevation 4
6s, max 3, pause on hover. Critical persists.
TooltipThe extra
400ms open. Never the label.
LoadingAfter 300ms
Spinner when layout is unknown.
ProgressDeterminate first
Indeterminate is a pulse, not a fake percent.
SkeletonKnown layout
Match size and radius. Compose, don't clone the page.
ModalBlocking dialog
Focus trap. One primary in the footer.
Structure
One job revealed
Chevron 90°. Grid rows 0fr to 1fr.
TabsOne selected
Underline in a panel. Pill on canvas. Not page nav.
Breadcrumbsnav + ol
Current is text. Collapse the middle.
PaginationNamed pages
Page 4, of 12. Compact is prev/next + status.
CardVisual treatment
Not a Panel. Tappable via the title link.
CarouselInsight strip
Snap, peek 24px. No autoplay.
AvatarPeople and orgs
Image, initials, icon. Groups overlap 8px.
BadgeMuted pill
Counts 9 / 99 / 99+. Never New!!
ImageSized always
Cover thumbs. Fallback inset + icon.
ListNative ul/ol/dl
space-2 gap. Item slot.
DividerHairline
hr or vertical. Decorative is aria-hidden.