#141414
June 12, 2026
openai.com
A reading of the visual language at https://openai.com. Every token, every rule, every component — captured from the live site.
About
Logo
Colour
2 neutrals · 2 total
Neutrals
#8E8EA0#000000Full palette
#8E8EA0#000000WCAG 100% · 0 passing pairs · 0 failing. Full breakdown in §11.
Typography
2 families · 3 sizes · 2 weights
Specimen
Scale
| Step | Size | Sample |
|---|---|---|
t00 |
24px |
Quick brown fox jumps over t |
t01 |
16px |
Quick brown fox jumps over t |
t02 |
13.3333px |
Quick brown fox jumps over t |
Spacing
Base 8px · 2 steps captured
Rhythm
8px
32px
Shape
1 radii · 0 elevation tiers
Border radii
5px
Iconography
unknown · 1 captured
iconMotion
Feel: mixed · 0 durations · 0 easings
Components
unknown · 0 component patterns captured
Mocks
Built from these tokens
Radius, primary, surface, text — all sampled from the live site.
Read more →Voice
neutral · — · —
Accessibility
0 passing · 0 failing
No failing contrast pairs detected.
Tokens
Drop-in code for the most common stacks. All values from the live extraction.
:root {
--color-primary: #0066cc;
--font-display: "Arial";
--space-base: 4px;
--radius-md: 5px;
}
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: { brand: '#0066cc' },
fontFamily: { display: ['Arial', 'serif'] },
spacing: { base: '4px' },
borderRadius: { md: '5px' },
},
},
};
Run npx designlang pack openai.com for the full bundle (DTCG, shadcn, Figma vars, motion, anatomy, Storybook).
Usage
-
Lead with the primary.
It belongs on calls-to-action and one accent moment per screen. Not on body copy.
-
Two type families, three weights.
Display for headlines, body for paragraphs. Resist a third unless there is a real reason.
-
Snap to the spacing scale.
Padding, margin, and gap should land on the values in §05. One-off pixels accumulate into noise.
-
Treat accessibility as a hard constraint.
When a colour pair fails WCAG, fix the colour — not the contrast check.