OpenAI
A stark, maximally minimal canvas anchored in true white (#FFFFFF) and near-black (#212121), with a single emerald-green accent (#10A37F) that appears only on the ChatGPT brand mark and key CTAs. The system is almost aggressively undecorated — no gradients, no photography, no illustrative elements beyond the logo — trusting negative space and precise type to carry all weight. Söhne (Klim Type) sets the display hierarchy at tight tracking and high contrast weights, while body text uses system-ui for crisp screen rendering. The restraint communicates confidence: OpenAI's visual language says it doesn't need to try.
Color Tokens
version: alpha name: OpenAI description: "A stark, maximally minimal canvas anchored in true white (#FFFFFF) and near-black (#212121), with a single emerald-green accent (#10A37F) that appears only on the ChatGPT brand mark and key CTAs. The system is almost aggressively undecorated — no gradients, no photography, no illustrative elements beyond the logo — trusting negative space and precise type to carry all weight. Söhne (Klim Type) sets the display hierarchy at tight tracking and high contrast weights, while body text uses system-ui for crisp screen rendering. The restraint communicates confidence: OpenAI's visual language says it doesn't need to try."
colors: primary: "#10A37F" on-primary: "#ffffff" primary-hover: "#0E9270" ink: "#212121" ink-muted: "#6E6E80" canvas: "#FFFFFF" surface-1: "#F7F7F8" surface-2: "#ECECF1" border: "#E5E5E5" canvas-dark: "#212121" surface-dark-1: "#2A2A2A" surface-dark-2: "#343541" ink-dark: "#ECECF1" ink-muted-dark: "#8E8EA0"
typography: display: fontFamily: "Söhne, ui-sans-serif, system-ui, sans-serif" fontSize: 56px fontWeight: 600 lineHeight: 1.07 letterSpacing: -0.025em body: fontFamily: "Söhne, ui-sans-serif, system-ui, sans-serif" fontSize: 16px fontWeight: 400 lineHeight: 1.625 letterSpacing: 0
spacing: base: 8px scale: [4, 8, 12, 16, 24, 32, 48, 64, 96, 128]
radius: sm: 4px md: 8px lg: 16px pill: 9999px
shadows: card: "0 0 0 1px rgba(0,0,0,0.08)" elevated: "0 4px 12px rgba(0,0,0,0.1)"
motion: duration-fast: 100ms duration-base: 200ms easing: cubic-bezier(0.4, 0, 0.2, 1)
1. Visual Theme & Atmosphere
OpenAI's interface is a study in confident minimalism. The homepage is nearly all white with large, tightly tracked type — Söhne at scale — and one purposeful green. ChatGPT's product surface extends this into dark mode: a warm near-black (#343541) with white text bubbles and green avatars. There's no illustrative language, no stock photography, no decorative gradients. The brand bets everything on typography, whitespace, and product quality to speak for itself.
2. Color System
Binary palette with a single chromatic escape valve:
- Canvas: Pure #FFFFFF / dark #212121 — no warm or cool tint
- Green accent: #10A37F — used exclusively for the GPT logo, CTAs, and streaming indicators
- Ink: #212121 (light) / #ECECF1 (dark) — high contrast text
- Muted: #6E6E80 — captions, secondary labels, timestamps
- Surfaces: #F7F7F8 (sidebars) / #343541 (dark chat messages) — barely perceptible differentiation
- Border: #E5E5E5 — ultra-light dividers
3. Typography
Söhne by Klim Type Foundry is the backbone — a geometric grotesque derived from Futura but warmer and more humanistic. Used at 600 weight for headlines, 400 for body, with very tight tracking at large sizes (-0.025em). The choice reads as considered and premium without being showy. Monospace code uses native system fonts.
4. Components & Patterns
- Chat bubbles: User messages in light gray (#F7F7F8) or dark surface; assistant responses on white/dark canvas with no bubble — just text
- Sidebar: Collapsible conversation history, thin 1px right border, icon + label navigation items
- Buttons: Green primary (ChatGPT), black primary (API/enterprise), ghost secondary
- Model picker: Subtle dropdown in nav, monochrome icons
- Code blocks: Dark surface even in light mode, copy button top-right
5. Spacing & Layout
Chat layout: 260px sidebar, flex content area, message width capped at ~720px centered. Marketing pages use wide containers (1280px max) with 50% of the viewport left empty on hero sections. The space is intentional and communicative.
6. Motion & Interaction
Streaming text is the signature motion — character-by-character rendering that feels alive. UI chrome is static. Hover states are minimal color shifts. Sidebar expand/collapse is smooth but unshowy at 200ms ease.