CEDUIX UI · 96 tokens

Every Token. One Page.

LLM-optimal component framework. This page IS the reference — scan with CeduixCanvas.scan() to verify any element.

Explore LLM Tests
Layout

Stack · Cluster · Grid · Sidebar · Cover · Center

ui="stack md"
Stack item 1
Stack item 2
Stack item 3
ui="cluster md"
Cluster Items Wrap Naturally
ui="grid md"
Auto-fit cell
Min 16rem
Responsive
ui="sidebar lg"

Main content

Sidebar is auto-width. Main fills remaining space.

Gap modifiers: sm · md · lg · xl · tight · loose · pad · between · end
between pushes apart
Surfaces

Card · Panel · Sheet · Overlay · Glass

card

Default surface

card elevated

Shadow depth

card raised

High shadow

card accent

Gold border + glow

card muted

Subtle bg

card ghost

Transparent

card outline

Border only

card glass

Frosted blur

panel

Larger padding, XL radius. For major content areas.

Typography

All text tokens — Inter only

ui="heading xl"

Heading XL

ui="heading lg"

Heading LG

ui="heading"

Heading Default

ui="heading sm"

Heading SM

subheading

Subheading — secondary title weight

eyebrow
Eyebrow label
body

Body text — default reading weight. 0.9rem, 1.7 line-height, 300 weight.

caption
Caption — small annotation text
code (inline + block)

Inline code token and block:

const el = document.querySelector('[ui~="card"]');
Interactive

Button · Input · Alert · Stat · Metric

Buttons

:disabled state

Input + CSS-only validation

Must be valid email

Alerts

Info — default informational.
Success — completed.
Warning — needs attention.
Danger — critical error.

Stat vs Metric

stat — display numbers
$142K
Revenue MTD
metric — sensor/data values
21.4 °C
Indoor temp (tabular-nums)
Platform Native

Dialog · Tabs · Accordion · Switch · Progress · Skeleton · Popover

Dialog (native <dialog>)

Confirm action

Native <dialog> with @starting-style entry and ::backdrop blur.

Tabs (CSS-only via radio + :has)

Overview — first tab, selected by default.

Details — switch without JavaScript.

Settings — pure CSS via :has() selector.

Accordion (native <details>)

What is CEDUIX?

96-token LLM-optimal UI framework. One CSS file, zero dependencies.

How does it work?

One ui attribute, max 4 tokens. LLMs generate correct UI first-pass.

Dark mode?

Built-in via color-scheme: light dark + light-dark().

Switch

Progress

Skeleton (loading placeholder)

Popover (native [popover])

Popover

Native [popover] with @starting-style entry. No JS toggle.

Data

Table · Avatar · Breadcrumb · Scroll

Table (sortable, num/addr tokens, group rows)

Name Protocol Value Min Max Address
Zone 1 — Ground Floor
GT1 Supply BACnet 21.4 18.2 23.1 1:3:AI:2
GT2 Return BACnet 19.8 17.5 21.0 1:3:AI:3
Zone 2 — Office Wing
SV1 Valve Modbus 72 % 0 % 100 % 2:1:HR:40
GT3 Offline Offline 2:1:AI:5

Avatar

S
CD
LG
XL

Breadcrumb

Scroll container

Item 1

Item 2

Item 3

Item 4

Item 5

Item 6

Item 7

Item 8

Motion

Animate · Reveal · Stagger · Clamp

reveal (up)

Slides up

from-left

From left

from-right

From right

fade

Opacity only

Auto-stagger

1
2
3
4
5
6

Clamp (progressive disclosure)

This text is long and clamped to 2 lines. Overflow hidden with ellipsis. Resize to see it change.

Prose

Markdown rendering

How CEDUIX Works

One ui attribute, 96 tokens, max 4 per element.

<div ui="card elevated">
  <h3 ui="heading sm">Title</h3>
</div>
Any LLM generates correct UI from just the vocabulary list.
  • Zero dependencies — one CSS file
  • OKLCH color system with color-mix()
  • Inter only — one font, zero mismatches
Utilities

Truncate · Grow · Shrink-0 · Dim · Faint

truncate

This text overflows and gets an ellipsis at the boundary.

grow + shrink-0
Fixed
Grows
Fixed
dim (0.6) · faint (0.35)
LLM Verification

Canvas Test Suite

Run in F12 console or via evaluate_script to verify every token.

// Scan → spatial manifest (all elements with zones)
CeduixCanvas.scan()

// YAML manifest for LLM context injection
CeduixCanvas.manifest()

// Visual overlay toggle
CeduixCanvas.toggle()

// Verify all fonts are Inter
document.querySelectorAll('[ui]').forEach(el => {
  const f = getComputedStyle(el).fontFamily;
  if (!f.includes('Inter')) console.warn(el, f);
});

// Verify :disabled styling
const btn = document.querySelector('button[disabled]');
console.log('disabled opacity:', getComputedStyle(btn).opacity);

// Verify scan count
console.log(CeduixCanvas.scan().length + ' elements');

// Full automated verify
CeduixCanvas.verify()
CEDUIX v1.3 · 96 tokens · Inter only · MIT