AI
xAI
“xAI Light”
pill-radius-dominantdual-typeface-hierarchymonospace-code-accentedhigh-contrast-near-black-on-whiteterminal-dark-panel-contrast
xAI's design system is a high-contrast, developer-forward light theme built on a near-black (#0a0a0a) and white (#ffffff) core. The layout uses generous whitespace with a centered hero and pill-shaped CTAs. Two custom typefaces — universalSansDisplay for large headings and universalSans for body/UI — are paired with GeistMono for code and terminal content. The dark terminal panel (code editor mockup) creates a dramatic visual contrast against the white page. CSS custom properties follow a semantic naming system (--primary, --accent, --background, --card) mapped to a named color scale (jet, charcoal, umbra, fog, dove, ivory, etc.).
10Colors
8Type styles
14Spacing
6Radii
Colors
Brand
Whiteprimary
Page background, input background, ring offsetSurface
Ivorybackground
Card surface backgroundUmbrabackground
Dark terminal/code panel background, hero dark sectionSunset Orangebackground
Accent highlights, 'New' badge border, CTA accentTerminal Redbackground
Terminal traffic light — close buttonText
Jet Blacktext
Primary button fill, heading text, nav text, body foregroundFogtext
Secondary text, muted nav labels, subheadingsWarm Sandtext
Muted body text in dark sections, secondary text on dark backgroundsInk Darktext
Code block text, syntax highlighting baseBorder
Doveborder
Borders, dividers, button outlines, input bordersTypography
Extra-large display headings
The quick brown fox jumps
universalSansDisplay72px · 400 · 72px · -1.8px
Hero headline — primary page title
The quick brown fox jumps
universalSansDisplay60px · 500 · 60px · -1.5px
Body copy, nav items, general UI text
The quick brown fox jumps
universalSans16px · 400 · 24px
Button labels, tags, UI controls
The quick brown fox jumps
universalSans14px · 500 · 20px
Small labels, captions, secondary UI
The quick brown fox jumps
universalSans13px · 400 · 21.125px
Code blocks, terminal output, inline code
The quick brown fox jumps
GeistMono13px · 400 · 24px
Small code annotations, line numbers
The quick brown fox jumps
GeistMono12px · 400 · 19.5px
Micro code labels, terminal status text
The quick brown fox jumps
GeistMono11px · 400 · 17.875px · -0.11px
Spacing & Shape
Spacing
space-1
2px
space-2
4px
space-3
6px
space-4
8px
space-5
12px
space-6
14px
space-7
16px
space-8
18px
space-9
20px
space-10
24px
space-11
32px
space-12
40px
space-13
48px
space-14
96px
Border Radius
pill9999px
card12px
medium16px
small8px
base6px
micro3px
---
version: alpha
name: "xAI Light"
description: "Primary visual anchor uses #ffffff with page background, input background, ring offset. Typography baseline relies on universalSansDisplay for hero headline — primary page title."
colors:
white: "#ffffff"
ivory: "#f9f8f6"
sunset-orange: "#ff6308"
terminal-red: "#ff5f57"
umbra: "#1f2228"
fog: "#7d8187"
ink-dark: "#24292e"
jet-black: "#0a0a0a"
warm-sand: "#d7d1c9"
dove: "#d5d9e2"
typography:
display-hero:
fontFamily: "universalSansDisplay"
fontSize: "60px"
fontWeight: "500"
lineHeight: "60px"
letterSpacing: "-1.5px"
display-large:
fontFamily: "universalSansDisplay"
fontSize: "72px"
fontWeight: "400"
lineHeight: "72px"
letterSpacing: "-1.8px"
body-default:
fontFamily: "universalSans"
fontSize: "16px"
fontWeight: "400"
lineHeight: "24px"
ui-medium:
fontFamily: "universalSans"
fontSize: "14px"
fontWeight: "500"
lineHeight: "20px"
ui-small:
fontFamily: "universalSans"
fontSize: "13px"
fontWeight: "400"
lineHeight: "21.125px"
code-default:
fontFamily: "GeistMono"
fontSize: "13px"
fontWeight: "400"
lineHeight: "24px"
code-small:
fontFamily: "GeistMono"
fontSize: "12px"
fontWeight: "400"
lineHeight: "19.5px"
code-micro:
fontFamily: "GeistMono"
fontSize: "11px"
fontWeight: "400"
lineHeight: "17.875px"
letterSpacing: "-0.11px"
rounded:
pill: "9999px"
card: "12px"
medium: "16px"
small: "8px"
base: "6px"
micro: "3px"
spacing:
space-1: "2px"
space-2: "4px"
space-3: "6px"
space-4: "8px"
space-5: "12px"
space-6: "14px"
space-7: "16px"
space-8: "18px"
space-9: "20px"
space-10: "24px"
space-11: "32px"
space-12: "40px"
space-13: "48px"
space-14: "96px"
---
## Overview
Primary visual anchor uses #ffffff with page background, input background, ring offset. Typography baseline relies on universalSansDisplay for hero headline — primary page title.
This system uses a 4px base grid with scale values 2, 4, 6, 8, 12, 14, 16, 18, 20, 24, 32, 40, 48, 96.
**Signature traits:**
- Core token rhythm: Token evidence indicates consistent color, spacing, and radius rhythm across visible UI.
## Colors
The palette uses 10 validated color tokens across 1 theme profile. Semantic roles stay attached to observed usage so generation agents can choose accents without inventing new color meaning.
**Semantic naming:**
- **action-text** maps to `jet-black`: Role "text" is grounded by usage context "Primary button fill, heading text, nav text, body foreground".
- **surface-primary** maps to `white`: Role "primary" is grounded by usage context "Page background, input background, ring offset".
- **surface-background** maps to `ivory`: Role "background" is grounded by usage context "Card surface background".
- **action-border** maps to `dove`: Role "border" is grounded by usage context "Borders, dividers, button outlines, input borders".
### Primary Brand
- **White** (#ffffff): Page background, input background, ring offset. Role: primary. {authored: rgb(255, 255, 255), space: rgb, alpha: 0.043}
### Text Scale
- **Fog** (#7d8187): Secondary text, muted nav labels, subheadings. Role: text. {authored: rgb(125, 129, 135), space: rgb}
- **Ink Dark** (#24292e): Code block text, syntax highlighting base. Role: text. {authored: rgb(36, 41, 46), space: rgb}
- **Jet Black** (#0a0a0a): Primary button fill, heading text, nav text, body foreground. Role: text. {authored: rgb(10, 10, 10), space: rgb, alpha: 0.06}
- **Warm Sand** (#d7d1c9): Muted body text in dark sections, secondary text on dark backgrounds. Role: text. {authored: rgb(215, 209, 201), space: rgb}
### Interactive
- **Dove** (#d5d9e2): Borders, dividers, button outlines, input borders. Role: border. {authored: rgb(213, 217, 226), space: rgb, alpha: 0.2}
### Surface & Shadows
- **Ivory** (#f9f8f6): Card surface background. Role: background. {authored: rgb(249, 248, 246), space: rgb}
- **Sunset Orange** (#ff6308): Accent highlights, 'New' badge border, CTA accent. Role: background. {authored: rgb(255, 99, 8), space: rgb}
- **Terminal Red** (#ff5f57): Terminal traffic light — close button. Role: background. {authored: rgb(255, 95, 87), space: rgb}
- **Umbra** (#1f2228): Dark terminal/code panel background, hero dark section. Role: background. {authored: rgb(31, 34, 40), space: rgb}
## Typography
Typography uses universalSansDisplay, universalSans, GeistMono across extracted hierarchy roles. Keep hierarchy mapped to these token rows before adding decorative type styles.
Mixes universalSansDisplay and universalSans and GeistMono for visual contrast. Weight range spans medium, regular. Sizes range from 11px to 72px.
### Type Scale Evidence
| Role | Font | Size | Weight | Line Height | Letter Spacing | Stack / Features | Notes |
|------|------|------|--------|-------------|----------------|------------------|-------|
| Hero headline — primary page title | universalSansDisplay | 60px | 500 | 60px | -1.5px | universalSansDisplay, universalSansDisplay Fallback | Extracted token |
| Extra-large display headings | universalSansDisplay | 72px | 400 | 72px | -1.8px | universalSansDisplay, universalSansDisplay Fallback | Extracted token |
| Body copy, nav items, general UI text | universalSans | 16px | 400 | 24px | normal | universalSans, universalSans Fallback | Extracted token |
| Button labels, tags, UI controls | universalSans | 14px | 500 | 20px | normal | universalSans, universalSans Fallback | Extracted token |
| Small labels, captions, secondary UI | universalSans | 13px | 400 | 21.125px | normal | universalSans, universalSans Fallback | Extracted token |
| Code blocks, terminal output, inline code | GeistMono | 13px | 400 | 24px | normal | GeistMono, ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace | Extracted token |
| Small code annotations, line numbers | GeistMono | 12px | 400 | 19.5px | normal | GeistMono, ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace | Extracted token |
| Micro code labels, terminal status text | GeistMono | 11px | 400 | 17.875px | -0.11px | GeistMono, ui-monospace, SFMono-Regular, Roboto Mono, Menlo, Monaco, Liberation Mono, DejaVu Sans Mono, Courier New, monospace | Extracted token |
## Layout
Responsive system uses 4 breakpoint tier(s): mobile, tablet, desktop, wide.
### Responsive Strategy
- **mobile (360-600px)**: Constrain layout for small viewports and prioritize vertical stacking.
- **tablet (>= 640px)**: Increase spacing and column structure for medium-width viewports.
- **desktop (>= 1024px)**: Expand layout density and horizontal composition for wide viewports.
- **wide (>= 1536px)**: Stretch composition with generous gutters and wider layout spans.
### Spacing System
| Token | Value | Px | Notes |
|------|-------|----|-------|
| space-1 | 2px | 2 | Extracted spacing token |
| space-2 | 4px | 4 | Extracted spacing token |
| space-3 | 6px | 6 | Extracted spacing token |
| space-4 | 8px | 8 | Extracted spacing token |
| space-5 | 12px | 12 | Extracted spacing token |
| space-6 | 14px | 14 | Extracted spacing token |
| space-7 | 16px | 16 | Extracted spacing token |
| space-8 | 18px | 18 | Extracted spacing token |
| space-9 | 20px | 20 | Extracted spacing token |
| space-10 | 24px | 24 | Extracted spacing token |
| space-11 | 32px | 32 | Extracted spacing token |
| space-12 | 40px | 40 | Extracted spacing token |
| space-13 | 48px | 48 | Extracted spacing token |
| space-14 | 96px | 96 | Extracted spacing token |
## Elevation & Depth
Keep depth flat unless validated shadow or interaction evidence appears in the extraction payload. Do not invent shadows beyond this evidence boundary.
### Shadow Evidence
| Shadow Token | Layers | Details |
|--------------|--------|---------|
| n/a | 0 | No validated shadow payload |
### Interaction Signals
| Theme | Signal | Evidence |
|-------|--------|----------|
| Light | backdrop-filter | blur(12px) ; blur(0.5px) ; blur(1px) |
| Light | outline-style | solid |
| Light | outline-color | rgb(10, 10, 10) ; rgb(215, 209, 201) ; rgb(36, 41, 46) |
| Light | outline-width | 3px ; 2px |
| Light | outline-offset | 0px ; 2px |
| Light | transform | matrix(1, 0, 0, 1, -1216, 0) ; matrix(1, 0, 0, 1, 0, -1) ; matrix(1, 0, 0, 1, -1200, 0) |
## Shapes
Shape language maps directly to rounded tokens. Keep component corners consistent with the role mapping below before introducing bespoke geometry.
### Radius Roles
| Token | Value | Px | Role Mapping |
|------|-------|----|--------------|
| micro | 3px | 3 | Subtle corner |
| base | 6px | 6 | Subtle corner |
| small | 8px | 8 | Control corner |
| card | 12px | 12 | Control corner |
| medium | 16px | 16 | Card corner |
| pill | 9999px | 9999 | Large surface corner |
### Geometry Evidence
| Radius Token | Shape | Units |
|--------------|-------|-------|
| pill | 9999px | px |
| card | 12px | px |
| medium | 16px | px |
| small | 8px | px |
| base | 6px | px |
| micro | 3px | px |
## Components
(none detected)
## Do's and Don'ts
Guardrails protect Core token rhythm without adding unsupported visual claims.
| Do | Don't |
|----|---------|
| Do maintain consistent spacing using the base grid | Don't make unsupported claims about absent visual features |
| Do maintain WCAG AA contrast ratios (4.5:1 for normal text) | Don't mix rounded and sharp corners in the same view |
| Do use the primary color only for the single most important action per screen | |
| Do verify evidence before writing new design-system guidance | |
## Responsive Evidence
### Breakpoints
| Name | Width | Key Changes |
|------|-------|-------------|
| Mobile | <= 600px | (max-width: 600px) |
| Mobile | >= 360px | (min-width: 360px) |
| Mobile | >= 640px | (min-width: 640px) |
| Tablet | >= 768px | (min-width: 768px) |
| Desktop | >= 1024px | (min-width: 1024px) |
| Desktop | >= 1280px | (min-width: 1280px) |
| Desktop | >= 1536px | (min-width: 1536px) |
| Desktop | >= 2000px | (min-width: 2000px) |
| Breakpoint 9 | Unknown | (forced-colors: active) |
## Agent Prompt Guide
### Example Component Prompts
- Create button component using validated primary color role and spacing tokens.
- Create card component with mapped radius role and evidence-backed elevation.
- Create form input component using inferred typography hierarchy and border roles.
### Iteration Guide
1. Start with extracted palette and typography roles only.
2. Map spacing and radius directly from token tables before visual polish.
3. Apply component patterns one section at a time and compare against source intent.
4. Keep elevation claims tied to explicit evidence in output.
5. Iterate with smallest diffs and re-check section hierarchy after each change.