Skip to main content
Context GrammarDesign for context-aware AI

Design system catalogue

Components

The kit's components in their real states, and how each one answers a press, a hover or a focus.

Actions

01

Button

Not pressed yet

Default

Hover

Focus

Active

Disabled

Loading

Trigger
Press
Duration
--dur-instant 100ms
Easing
--ease-out cubic-bezier(0.16, 1, 0.3, 1)
Reduced motion
The press still registers; the scale changes instantly instead of easing.

A press answers at once by settling slightly smaller — felt more than watched. Arrows nudge forward on hover. A disabled button does neither.

02

Search button

Default

Hover

Focus

Active

Disabled

Kbd

⌘K

A quiet button that ends with the shortcut it answers to. It presses like Button; the shortcut chip is the Kbd component.

03

Chip and choice chips

Chip · Default

Chip · Hover

Chip · Focus

Chip · Active

Chip · Disabled

Chip · Selected

ChoiceChips

ChoiceChips · Disabled

Trigger
Press
Duration
--dur-instant 100ms
Easing
--ease-out cubic-bezier(0.16, 1, 0.3, 1)
Reduced motion
The press registers instantly; the scale and colour change without easing.

The one rounded element: a candidate someone can pick. Choosing turns it spark-tinted; a disabled chip stays still.

04

Segmented control

Trigger
Select
Duration
--dur-base 240ms
Easing
--ease-in-out cubic-bezier(0.65, 0, 0.35, 1)
Reduced motion
The background lands on the chosen option at once.

The background slides to the option you choose instead of cutting to it, so you see where you were and where you went.

06

Card

Hover me

The border darkens and four registration marks appear. Nothing lifts.

Open

Tab into me

The border darkens and four registration marks appear. Nothing lifts.

Open

Forced hover

The border darkens and four registration marks appear. Nothing lifts.

Open
Trigger
Hover
Duration
--dur-quick 160ms
Reduced motion
The border and the marks change at once.

No lift and no shadow. The border darkens and four registration marks appear at the corners.

Forms

07

Text field

Field · Default

Email
Only used for the newsletter.

TextField · Error

Email
Add a domain, like name@example.com.

TextField · Disabled

TextField caret

›
Trigger
Focus
Reduced motion
The border colour changes at once.

A square input with a spark border and ring on focus. A hint says what it takes; an error says what to do, in words as well as the red border.

08

Textarea and select

Textarea

Select

▾

Multi-line text takes the body face because it holds prose. The select is the browser’s own, restyled, so it keeps native keyboard and touch behaviour.

09

Toggle

Toggle

Default

Hover

Focus

Active

Disabled

Trigger
Toggle
Duration
--dur-base 240ms
Easing
--spring cubic-bezier(0.34, 1.56, 0.64, 1)
Reduced motion
The knob jumps to its place without springing.

A square switch. The knob crosses on the spring curve — the one place in the system that overshoots — while the track follows in a straight line.

10

Checkbox and radio

Checkbox

Radio

Square one-pixel boxes. A spark check or a filled square marks the choice, and the label is part of the target.

Feedback

12

Toast

Saved
Your draft is saved. This is a demo, so nothing was sent.

A short notice that floats over the page, so it is the one surface allowed a shadow; cards have none. The design system page animates it in and out; the component itself is still.

13

Empty state

◆
Nothing yet
Start by adding one.

A dashed frame, a hatched slot and one next step. It says what is missing and offers the way to fill it.

14

Tooltip

A short label

A quiet label that rises above its trigger on hover. It is hover-only, so keep anything a keyboard or touch user needs out of it.

15

Dialog

An overlay with a centred panel. Open it here to see it above this page; it closes from the backdrop, the × or the footer button.

Content

17

Text block

Body copy is for reading at length.

A lede opens a section and reads a step larger.

A quote carries what a person said.

Three emphases of running text: body, lede and quote. The quote takes the voice face and a spark rule.

18

Eyebrow and rail number

Section label

01·Rail

The small labels that start a section: an eyebrow names it, and a rail number places it in the sequence.

19

Skeleton

A shimmering line standing in for text on its way. It only hints at the shape and carries no meaning of its own, so it is hidden from assistive technology.

Data

20

Data table

KeyValue
a1
b2

Hairline rows, a label header and numbers aligned right, so they can be compared down the column.

21

Stat and metric

42
Stat
A short note
Metric
9.1
What the number means.

A stat is one proof number beside a spark rule; a metric is the same idea in a bordered tile with a caption.

22

Figure slot

Figure

A hatched 16:9 placeholder for a figure that has not arrived. The caption says what belongs there.