Skip to content
Aihio v2.3.0
Search
GitHub
Search Describe what you are building, or name a component, intent, or token. Components and patterns are ranked the way the MCP server's find tool ranks them for an agent.

Foundations · 74 semantic tokens

Token reference

Primitive scales give values, semantic tokens give them a purpose, and components read only the purpose: --aihio-color-surface-bg, --aihio-spacing-stack-md, never a position on a scale. Every name is --aihio-<group>-<name>, and everything below is generated from tokens/semantic.json.

color

Themed colours, named for what they colour. Each has a light and a dark value.

30 tokens
Swatch CSS variable Source Description
--aihio-color-border-subtle light: --aihio-color-zinc-200 · dark: --aihio-color-zinc-850 Default border color for surfaces and outlines.
--aihio-color-control-highlight-bg light: --aihio-color-zinc-100 · dark: --aihio-color-zinc-900 Hover and pressed highlight background for neutral controls.
--aihio-color-control-highlight-fg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-50 Foreground on hover and pressed highlight backgrounds.
--aihio-color-destructive-bg light: --aihio-color-red-600 · dark: --aihio-color-red-600 Destructive emphasis background and error color.
--aihio-color-destructive-fg light: --aihio-color-zinc-0 · dark: --aihio-color-zinc-0 Foreground on destructive emphasis backgrounds.
--aihio-color-destructive-text light: --aihio-color-red-600 · dark: --aihio-color-red-400 Destructive text and iconography drawn directly on page or surface backgrounds, where the emphasis background is not used.
--aihio-color-field-border light: --aihio-color-zinc-500 · dark: --aihio-color-zinc-550 Default border color for editable form fields.
--aihio-color-focus-ring light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-300 Focus indication ring for keyboard interactions.
--aihio-color-muted-bg light: --aihio-color-zinc-50 · dark: --aihio-color-zinc-950 Muted fill for grouped controls and subdued surfaces.
--aihio-color-muted-fg light: --aihio-color-zinc-550 · dark: --aihio-color-zinc-450 Supporting foreground on muted fills.
--aihio-color-overlay-bg light: --aihio-color-zinc-0 · dark: --aihio-color-zinc-900 Surface background for transient overlays such as dropdowns.
--aihio-color-overlay-fg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-50 Foreground on transient overlays.
--aihio-color-overlay-highlight-bg light: --aihio-color-zinc-100 · dark: --aihio-color-zinc-800 The highlighted item inside an overlay: the active combobox option or a hovered dropdown item. It has to differ from overlay-bg, which control-highlight-bg does not in the dark theme.
--aihio-color-overlay-scrim oklch(0 0 0 / 0.8) Modal backdrop scrim behind blocking overlays.
--aihio-color-page-bg light: --aihio-color-zinc-0 · dark: --aihio-color-zinc-1000 Default page canvas and neutral active backgrounds.
--aihio-color-page-fg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-50 Primary foreground on the page canvas.
--aihio-color-placeholder-bg light: --aihio-color-zinc-200 · dark: --aihio-color-zinc-800 Fill for something that stands in for missing content, such as an avatar's initials. One step off both the page and a surface, where muted-bg matches the surface and disappears into a card.
--aihio-color-placeholder-fg light: --aihio-color-zinc-700 · dark: --aihio-color-zinc-300 Text on the placeholder fill.
--aihio-color-primary-action-bg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-50 Default filled action background.
--aihio-color-primary-action-fg light: --aihio-color-zinc-0 · dark: --aihio-color-zinc-1000 Foreground on default filled actions.
--aihio-color-secondary-action-bg light: --aihio-color-zinc-100 · dark: --aihio-color-zinc-900 Lower-emphasis filled action background.
--aihio-color-secondary-action-fg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-50 Foreground on lower-emphasis filled actions.
--aihio-color-success-bg light: --aihio-color-green-600 · dark: --aihio-color-green-600 Emphasis background for confirmed and healthy states.
--aihio-color-success-fg light: --aihio-color-zinc-0 · dark: --aihio-color-zinc-0 Foreground on success emphasis backgrounds.
--aihio-color-success-text light: --aihio-color-green-600 · dark: --aihio-color-green-400 Success text and iconography drawn directly on page or surface backgrounds.
--aihio-color-surface-bg light: --aihio-color-zinc-50 · dark: --aihio-color-zinc-950 Raised surface background for cards, alerts, and dialog panels.
--aihio-color-surface-fg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-50 Primary foreground on raised surfaces.
--aihio-color-warning-bg light: --aihio-color-amber-400 · dark: --aihio-color-amber-400 Emphasis background for states that need attention but are not failures.
--aihio-color-warning-fg light: --aihio-color-zinc-900 · dark: --aihio-color-zinc-1000 Foreground on warning emphasis backgrounds. Dark, because an accessible amber fill is light in both themes.
--aihio-color-warning-text light: --aihio-color-amber-700 · dark: --aihio-color-amber-400 Warning text and iconography drawn directly on page or surface backgrounds.

spacing

Gaps and padding, named for the rhythm they set rather than a step on the scale.

13 tokens
CSS variable Source Description
--aihio-spacing-cluster-gap-tight --aihio-spacing-1 Tight spacing inside grouped interactive controls and menu chrome.
--aihio-spacing-control-gap --aihio-spacing-2 Default inline gap between icons, labels, and grouped actions.
--aihio-spacing-field-padding-block --aihio-spacing-2 Block padding for default form fields.
--aihio-spacing-field-padding-block-lg --aihio-spacing-2-5 Block padding for spacious form fields.
--aihio-spacing-field-padding-block-sm --aihio-spacing-1 Block padding for compact form fields.
--aihio-spacing-field-padding-inline --aihio-spacing-3 Inline padding for default form fields.
--aihio-spacing-field-padding-inline-lg --aihio-spacing-4 Inline padding for spacious form fields.
--aihio-spacing-field-padding-inline-sm --aihio-spacing-2 Inline padding for compact form fields.
--aihio-spacing-form-field-gap --aihio-spacing-3 Recommended gap between labels, help text, and form controls.
--aihio-spacing-stack-lg --aihio-spacing-6 Large separation for footer action areas and major section breaks.
--aihio-spacing-stack-md --aihio-spacing-4 Standard section spacing within surfaced components.
--aihio-spacing-stack-sm --aihio-spacing-3 Short vertical separation between related blocks such as alert content and panels.
--aihio-spacing-stack-tight --aihio-spacing-1-5 Compact vertical rhythm for headings with short supporting copy.

radius

Corner rounding for surfaces and controls.

4 tokens
CSS variable Source Description
--aihio-radius-interactive --aihio-radius-md Default corner radius for buttons, inputs, toggles, and menus.
--aihio-radius-interactive-compact --aihio-radius-sm Tighter radius for dense interactive children such as tabs and menu items.
--aihio-radius-pill --aihio-radius-full Fully rounded presentation for badges, avatars, and pill-shaped affordances.
--aihio-radius-surface --aihio-radius-lg Corner radius for cards, alerts, and other framed surfaces.

font-family

Typefaces for interface text and fixed-width data.

2 tokens
CSS variable Source Description
--aihio-font-family-body --aihio-font-family-sans Interface and body typeface for every component and page surface.
--aihio-font-family-code --aihio-font-family-mono Typeface for code samples, markup, token names, and other fixed-width data.

font-size

Text sizes for body copy, controls, and surface titles.

8 tokens
CSS variable Source Description
--aihio-font-size-badge --aihio-font-size-xs Dense label size for badges and tiny metadata chips.
--aihio-font-size-body --aihio-font-size-base Default document body text size.
--aihio-font-size-body-sm --aihio-font-size-sm Supporting text size for descriptions and secondary copy.
--aihio-font-size-control --aihio-font-size-sm Default text size for controls.
--aihio-font-size-control-lg --aihio-font-size-base Larger text size for prominent controls.
--aihio-font-size-control-sm --aihio-font-size-xs Compact text size for small controls.
--aihio-font-size-heading --aihio-font-size-xl Large surface title size. Sized to lead a card, not to headline a page — a title much larger than this stops reading as part of the surface it sits on.
--aihio-font-size-heading-sm --aihio-font-size-lg Compact surface title size for dialogs and smaller panels.

font-weight

Weights for body text, controls, and headings.

4 tokens
CSS variable Source Description
--aihio-font-weight-badge --aihio-font-weight-semibold Dense emphasis weight for badges.
--aihio-font-weight-body --aihio-font-weight-normal Default document body weight.
--aihio-font-weight-control --aihio-font-weight-medium Emphasized but compact weight for controls and inline titles.
--aihio-font-weight-heading --aihio-font-weight-semibold Strong surface-heading weight.

letter-spacing

Optical tracking, tightening as type grows.

4 tokens
CSS variable Source Description
--aihio-letter-spacing-body --aihio-letter-spacing-normal Default body and control tracking. Slightly negative, because the system stack sets a touch wide at UI sizes.
--aihio-letter-spacing-display --aihio-letter-spacing-tighter Tracking for large display type, where glyph gaps open up as size grows.
--aihio-letter-spacing-heading --aihio-letter-spacing-tight Tracking for surface titles and section headings.
--aihio-letter-spacing-label --aihio-letter-spacing-wide Positive tracking for the one place it earns its keep: small capitalised labels.

line-height

Line heights for readable copy and compact labels.

2 tokens
CSS variable Source Description
--aihio-line-height-body --aihio-line-height-normal Default readable line height for body and field text.
--aihio-line-height-compact --aihio-line-height-none Tight line height for headings, labels, and short control text.

shadow

Elevation for surfaces and overlays.

3 tokens
CSS variable Source Description
--aihio-shadow-modal --aihio-shadow-lg Deeper elevation for blocking modal dialogs.
--aihio-shadow-overlay --aihio-shadow-md Elevation for popovers and transient overlays.
--aihio-shadow-surface --aihio-shadow-sm Subtle elevation for surfaced content.

duration

Motion timing for feedback and overlay entrance. Collapsed to 1ms under reduced motion, except the spinner.

4 tokens
CSS variable Source Description
--aihio-duration-feedback --aihio-duration-normal Default control feedback transition duration.
--aihio-duration-feedback-fast --aihio-duration-fast Fast hover and menu-item feedback transitions.
--aihio-duration-overlay --aihio-duration-slow Entrance timing for larger blocking overlays.
--aihio-duration-spinner --aihio-duration-spin One full rotation of an indeterminate busy indicator.

Component tokens

Sizes specific to one component, from tokens/component.json.

28 tokens
CSS variableValue
--aihio-button-height-sm2.25rem
--aihio-button-height-md2.5rem
--aihio-button-height-lg2.75rem
--aihio-button-height-icon2.5rem
--aihio-button-padding-x-sm0.75rem
--aihio-button-padding-x-md1rem
--aihio-button-padding-x-lg2rem
--aihio-button-padding-x-icon0
--aihio-button-font-size-sm0.875rem
--aihio-button-font-size-md0.875rem
--aihio-button-font-size-lg1rem
--aihio-input-height-sm2.25rem
--aihio-input-height-md2.5rem
--aihio-input-height-lg2.75rem
--aihio-badge-padding-x0.625rem
--aihio-badge-padding-y0.125rem
--aihio-badge-font-size0.75rem
--aihio-avatar-size-sm2rem
--aihio-avatar-size-md2.5rem
--aihio-avatar-size-lg3rem
--aihio-card-padding1.5rem
--aihio-dialog-width32rem
--aihio-dialog-padding1.5rem
--aihio-data-grid-heightmin(32rem, 75dvh)
--aihio-table-cell-padding-y-default0.75rem
--aihio-table-cell-padding-y-compact0.375rem
--aihio-table-cell-padding-x0.75rem
--aihio-table-max-heightmin(32rem, 75dvh)

Primitives

The raw scales the semantic tokens resolve to, from tokens/base.json. Components never read them directly.

spacing

CSS variableValue
--aihio-spacing-00
--aihio-spacing-0-50.125rem
--aihio-spacing-10.25rem
--aihio-spacing-1-50.375rem
--aihio-spacing-20.5rem
--aihio-spacing-2-50.625rem
--aihio-spacing-30.75rem
--aihio-spacing-3-50.875rem
--aihio-spacing-41rem
--aihio-spacing-51.25rem
--aihio-spacing-61.5rem
--aihio-spacing-82rem
--aihio-spacing-102.5rem
--aihio-spacing-123rem
--aihio-spacing-164rem
--aihio-spacing-205rem
--aihio-spacing-246rem

radius

CSS variableValue
--aihio-radius-base0.5rem
--aihio-radius-none0
--aihio-radius-smcalc(0.5rem - 4px)
--aihio-radius-mdcalc(0.5rem - 2px)
--aihio-radius-lg0.5rem
--aihio-radius-xlcalc(0.5rem + 4px)
--aihio-radius-2xlcalc(0.5rem + 8px)
--aihio-radius-full9999px

font-family

CSS variableValue
--aihio-font-family-sans-apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Inter", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"
--aihio-font-family-monoui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace

font-size

CSS variableValue
--aihio-font-size-xs0.75rem
--aihio-font-size-sm0.875rem
--aihio-font-size-base1rem
--aihio-font-size-lg1.125rem
--aihio-font-size-xl1.25rem
--aihio-font-size-2xl1.5rem
--aihio-font-size-3xl1.875rem
--aihio-font-size-4xl2.25rem

font-weight

CSS variableValue
--aihio-font-weight-normal400
--aihio-font-weight-medium500
--aihio-font-weight-semibold600
--aihio-font-weight-bold700

letter-spacing

CSS variableValue
--aihio-letter-spacing-tighter-0.025em
--aihio-letter-spacing-tight-0.018em
--aihio-letter-spacing-normal-0.011em
--aihio-letter-spacing-wide0.02em

line-height

CSS variableValue
--aihio-line-height-none1
--aihio-line-height-tight1.25
--aihio-line-height-snug1.375
--aihio-line-height-normal1.5
--aihio-line-height-relaxed1.625

shadow

CSS variableValue
--aihio-shadow-sm0 1px 2px 0 oklch(0 0 0 / 0.05)
--aihio-shadow-md0 8px 24px -6px oklch(0 0 0 / 0.12), 0 2px 6px -2px oklch(0 0 0 / 0.08)
--aihio-shadow-lg0 24px 64px -12px oklch(0 0 0 / 0.22), 0 6px 16px -6px oklch(0 0 0 / 0.12)

duration

CSS variableValue
--aihio-duration-fast100ms
--aihio-duration-normal150ms
--aihio-duration-slow200ms
--aihio-duration-spin700ms

The colour ramps are on Color.

Generated artifact

The same reference ships inside the package, as markdown and as JSON with resolved values for both themes, so agents read it without scraping this site.

semantic-tokens.md tokens.json