presentations.ai — design system

Live components for building HTML prototypes. View source to copy any snippet. Tokens come from pai.tailwind.js; component classes from pai.css. The exhaustive reference is the sticker sheet.

New — the atlas system landed here

pai.css is now the atlas stylesheet: 337 component classes and 226 tokens, up from 133 and 124. Everything that already existed renders exactly as before — all 103 protos were screenshotted before and after and diffed, and the ones that survive are pinned in the compatibility layer at the foot of pai.css.

New work should say class="pai pai-next" on <body>. A few atlas rules size icons by context, and they sit behind that class so they cannot reach work built before the migration. template.html already has it.

Scales — new, the old system published none of these

Spacing, radius, icon size, elevation and layer. One scale for padding, margin and gap; several rungs are deliberately absent, and reaching for the neighbour is the point of having a scale.

Spacing — --space-*, and the stock Tailwind step where the system publishes nothing
3xs2
2xs4
xs8
sm12
md16
lg20
xl24
2xl32
3xl40
4xl48
5xl64
6xl80
Radius — --rounded-*. Our corners are sharper than most product UI, and the scale stops at 2xl on purpose
sm · 2
base · 4
md · 6
lg · 8
xl · 12
2xl · 16
full
Icon size — --icon-*. Size an icon, never inherit it
xs · 12 sm · 16 md · 20
Elevation — --elevation-01…04. How far off the page a surface sits, not a border
01 · resting
02 · raised
03 · floating
04 · overlay

Buttons

Danger
Gradient and brand fills
Sizes (large · medium · small) + icon-only + disabled

Badges (plan chips)

PRO GOLD BASE FREE NEW

Inputs

Checkbox · Radio · Toggle

Tooltip

Plain tooltip bubble HeadingTooltip with a header and a longer descriptive body.

Typography

Heading 3xl
Heading 2xl
Heading xl
Heading base
Body lg — regular
Body base — medium
Body base — regular
Body sm — secondary
Overline small

Elevation

01
02
button
03
04
new-04

new-04 is Figma effect style 471:2410, used by the newer dashboard modals. Reach for it where a modal needs to sit clearly above a scrim.

Chips

Removable

The base face is white with a soft ring. Tone recolours the label and ring only; selected takes the stroke from the label colour, and neutral adds a whisper of tint to stay legible.

Tabs

One bar slides between tabs rather than each tab toggling its own border. On a tracked strip it drops 1px so the underline and the hairline read as a single line. Each label reserves its medium-weight width, so neighbours do not shift when the selection moves.

List item

With a subtitle the row top-aligns, so the leading slot sits against the title line rather than the centre of the title and subtitle together.

Dropdown

The menu surface, its four placements, headings, search, items and dividers are ported. Split triggers, the cascade stagger and expandable rows are behaviour-heavy and stay in the app.

Brand

Lightness steps evened out in OKLCH, so the ramp reads as even progress rather than bunching in the middle. app-600 is the load-bearing step: it is text-brand and bg-brand.

Neutral

The product greyscale, and the most-reached-for ramp after brand. Not Tailwind's gray: the app aliases gray to Tailwind's neutral, then overrides most steps with these.

Semantic

The four ramps the state tokens are built from. Every danger token is a red step, warning is amber, info is blue, and success maps to green. Green is the one that was re-derived: each step's perceived lightness is pinned to the red/blue/purple mean so it stops reading fluorescent. It is aliased success-*, the same ramp under a second name.

Green — success
Red — danger
Amber — warning (this is Tailwind's yellow, not its amber)
Blue — info

Supporting

No semantic role attached. Available if a proto needs a hue beyond brand and the state colours, but nothing in the product currently leans on them.

Orange
Indigo
Violet
Purple

Near-white surfaces

Two steps between bg-primary and bg-tertiary. Shown on a grey field because the difference is invisible against white, which is rather the point of them.

primary #FFFFFF
subtle #FCFCFC
muted #F9F9F9
secondary #FAFAFA
tertiary #F5F5F5

State tokens

Reach for these before any raw ramp step above.

Background
Text
Border

Accents and primitives

Plan and file-type accents
Share channels
Shadow and alpha primitives (every elevation composes from these)

Gradients

Utility classes on a dark surface

text-text-inverted-primary

text-inverted-secondary