David T Phung
The system underneath the prototypes

The X design language, exact.

Every prototype on this site is built from one component language: the real x.com lights-out system, measured and reproduced to the pixel. This page is the reference. The tokens, the type scale, the timeline anatomy with an inspect mode, every card type rendered live, and the rules that make something feel like X instead of a copy of X.

Measured from x.com lights-out · powers the prototype, search, and tune

Tokens · color

Twelve colors, one accent

Lights-out is not a dark theme, it is pure black with one blue. Everything else is a gray with a job. The discipline is what makes the accent colors (like, repost, error) land as loudly as they do.

Tokens · type

One family, six sizes, four weights

Chirp everywhere, falling back through the system stack. Hierarchy comes from weight, not color or size inflation: body and metadata are both 15px, the name is simply bolder than the handle. Counts always use tabular numerals so nothing shifts when they tick.

23px / 800
page title
Design is the product
20px / 800
module header, composer
What's happening
17px / 700
primary buttons
Post
15px / 700 + 400
post body, names, handles
Benji Taylor @benjitaylor · 20h we will keep making it feel more like X
13px / 400
counts, trend meta
1.8K reposts · 45K views · Trending in Technology
11px / 700
badges, tiny labels
LIVE · PROMOTED · EXACT MATCH

Tokens · metrics

The numbers that matter

MetricValueWhere
Columns275 / 600 / 350nav rail, timeline, right rail, centered at 1265px
Post padding12px 16pxevery timeline cell
Avatar40px post · 48px profile hover · 32px compactalways a perfect circle, radius 9999
Avatar to body gap12pxthe post grid
Body type15px / 20pxpost text, names, handles
Action icons18.75px glyph in a 34.75px hover circlereply, repost, like, views, bookmark, share
Card radius16pxmedia, quote, link, chart cards, rail modules
Pill radius9999pxbuttons, chips, avatars, tab underline
Divider1px #2f3336the only border weight on the page
Tab underline56 x 4px, radius 9999, X blueFor you / Following
Count formatting982 · 1.8K · 45K · 2.4Mone decimal under 10K, none above, tabular
Timestamps41s · 12m · 7h · Jun 21relative under 24h, then month day

The timeline · exact and annotated

Anatomy of the For You column

The 600px column, rebuilt to the measurement: sticky blurred header, 53px tabs with the 4px blue underline, the composer, and the post cell. Toggle Inspect to overlay the real numbers. The action row is fully live: hover it for the exact per-action colors, click the heart and the bookmark.

Off. The timeline reads exactly like x.com.

Home

D
What's happening?

The cards · every type, live

The complete card set

Every content container X ships in the timeline and the right rail, each rendered from the same tokens with its spec underneath. This is the component inventory the prototypes draw from.

The rules

What makes it feel like X

Pure black, one accent

Lights-out means #000, not near-black. Blue is the only decorative color; everything else is a gray doing a job, so like-pink and repost-green read as events.

Weight beats size

Name and handle are the same 15px; the name is just 700. Hierarchy through weight keeps density without noise.

One divider, everywhere

Exactly one border treatment: 1px #2f3336. No shadows in the timeline, no second border weight, ever.

16 and 9999, nothing else

Two radii: 16px for content containers, full-round for anything a finger taps. A third radius is how clones give themselves away.

Color answers touch

Actions are gray until touched, then answer in their own color: reply blue, repost green, like pink, each with its 10% tint circle.

Numbers never jitter

Tabular numerals on every count, so a like tick moves a heart, not a layout. Formatting is 1.8K and 2.4M, one decimal only under 10K.

Chrome recedes, content owns color

The UI is monochrome so avatars, media, and charts carry all the saturation. That is why the feed feels alive while the frame feels calm.

Blur marks what floats

Anything sticky (the header, the tabs) sits on rgba(0,0,0,0.85) with a 12px backdrop blur. Depth through blur, never through shadow.