45 Components

UI Primitives

A library of frontend components for them, and every number is illustrative unless a section says otherwise.

01Actions

06

Button

Six variants from default to link at four heights, each with a square size for a lone glyph, and padding that tightens on the side an icon sits.

Tooltip Icon Button

A button that is only a glyph, and the tooltip that names it — required, so a row of unnamed buttons cannot happen by forgetting.

Slider

A value or a range on a track that carries its own name and reading, with a handle that comes forward on hover and a fill that eases to a click or a key but follows a drag exactly.

Switch

A setting that takes effect at once, filled in the live accent while on, with the track and thumb both reading Base UI's checked state.

Toggle

A button that stays pressed, ghost or outlined at the kit's heights, answering to aria-pressed.

Toggle Group

Toggles on the toolbar's pill that the arrows walk, holding one value or several.

02Overlay

10

Dialog

A glass panel over a dimmed page for the decisions that should stop everything else, centred in a viewport that scrolls when the panel is tall.

Menu

Rows, groups and submenus on one popup surface, with the checkbox and radio rows holding their own state.

Popover

A glass panel of free content — a short form, a note — hanging off whatever opened it, titled for screen readers and capped to the room left on screen.

Select

One value picked from a list and held on the trigger: the input's field over the menu's popup and rows, opening with the chosen row level with the value.

Alert Dialog

The dialog's panel for a choice that must be made: no close button and no dismissing by clicking away, only the answers it offers.

Context Menu

The menu's popup, rows and submenus, opened at the pointer by a right-click or a long press.

Drawer

A glass sheet that slides in from any edge and swipes back out, its side read from the direction it dismisses in.

Preview Card

The popover's glass panel shown on hovering a link, to say where it goes before it is followed.

Toast

Notices that stack in a corner and fan out on hover, swipe away, and can be pinned to the control that caused them.

Tooltip

A short name in ink for a control that only shows a glyph, with its shortcut beside it and an optional arrow.

03Navigation

06

Tabs

A pill of tabs over the panel they switch, laid out by whatever holds them rather than by the root.

Toolbar

A row of controls the keyboard treats as one stop: Tab reaches it, the arrows walk it, Tab again leaves.

Accordion

Questions that open in place under a rule each, the panel easing to its measured height and the chevron turning with it.

Collapsible

One panel that opens and closes under the control that owns it, easing to its measured height.

Menubar

A row of menus on the toolbar's pill, where the arrows move between them once one is open.

Navigation Menu

Site links on a pill whose panels open in one glass popup that resizes and slides between them.

04Input

12

Input

A text field at the button's four heights, filled or outlined, that a Field labels, describes and marks invalid without being told.

Textarea

The input's surface on a field that grows with what is typed, between a floor and a ceiling — the composer, a note, feedback.

Autocomplete

A text field that suggests as you type and lets you keep what you typed, on the input's surface over the menu's rows.

Checkbox

A choice that waits for a Save, filled in ink when on and drawing a dash when only some of what it stands for is chosen.

Checkbox Group

Checkboxes that share one array of values, with a parent box that checks them all and shows a dash when some are on.

Combobox

A value picked by typing to filter a list, one or many, with chosen values held as chips in the field.

Field

A label, a control, a description and the errors that replace it, wired together so each names and describes the others.

Fieldset

Related fields under one legend, disabled together when the set is.

Form

A form that hands errors from the server back to the fields they belong to and moves focus to the first one.

Number Field

A number with steppers either side, at the input's heights, whose label can be dragged to scrub the value.

OTP Field

A one-time code in a row of single-character slots that moves along as you type and fills from a paste.

Radio Group

One choice from a few that are all worth reading, filled in ink with a dot for the one chosen.

05Display

06

Badge

A status, a count or a version in the kit's colour roles, at the Kbd's height so the two line up in a row of meta.

Avatar

A picture of someone at the button's heights, with initials standing in until it loads or when it can't.

Meter

A reading inside a known range, like storage or quota, with its label and value on one line over the track.

Progress

How far a task has got, with its label and value over the track, turning to the live accent when done and pulsing when it can't say.

Scroll Area

A scroller whose thin bars appear while it is hovered or moving, with an optional fade on the edges there is more past.

Separator

A 1px rule that turns with its orientation and is announced as a separator.

06Icons

04

Code Icons

The language and file marks — JS, TS, TSX, CSS, Python, Go, Rust, Bash, JSON, Markdown, SVG, ICO, gitignore, env and PDF — each drawn in its own colours and sized by the class on it.

Google Icons

The Google product marks — Search, Gmail, Drive, Docs, Sheets, Slides and Calendar — each drawn in its own colours and sized by the class on it.

Model Icons

The model marks — Claude, OpenAI, Gemini, Grok, DeepSeek, Mistral and v0 — each drawn in its own colours and sized by the class on it.

Color Icons

The color-space marks — hex, RGB, HSL, OKLCH, OKLab, CMYK, P3, a swatch and Tailwind — each drawn in its own colours and sized by the class on it.

07Colors

01

Surfaces

The surfaces, tints and motion the kit is drawn with, as class strings a component merges into its own rather than utilities it can't adjust.