
IBM's website is the digital embodiment of enterprise authority built on the Carbon Design System — a design language so methodically structured it reads like an engineering specification rendered as a webpage. The page operates on a stark duality: a bright white (#ffffff) canvas with near-black (#161616) text, punctuated by a single, unwavering accent — IBM Blue 60 (#0f62fe). This isn't playful tech-startup minimalism; it's corporate precision distilled into pixels. Every element exists within Carbon's rigid 2x grid, every color maps to a semantic token, every spacing value snaps to the 8px base unit.
The IBM Plex type family is the system's backbone. IBM Plex Sans at light weight (300) for display headlines creates an unexpectedly airy, almost delicate quality at large sizes — a deliberate counterpoint to IBM's corporate gravity. At body sizes, regular weight (400) with 0.16px letter-spacing on 14px captions introduces the meticulous micro-tracking that makes Carbon text feel engineered rather than designed. IBM Plex Mono serves code, data, and technical labels, completing the family trinity alongside the rarely-surfaced IBM Plex Serif.
What defines IBM's visual identity beyond monochrome-plus-blue is the reliance on Carbon's component token system. Every interactive state maps to a CSS custom property prefixed with --cds- (Carbon Design System). Buttons don't have hardcoded colors; they reference --cds-button-primary, --cds-button-primary-hover, --cds-button-primary-active. This tokenized architecture means the entire visual layer is a thin skin over a deeply systematic foundation — the design equivalent of a well-typed API.
Key Characteristics:
#0f62fe) — every interactive element, every CTA, every link--cds-*) driving all semantic colors, enabling theme-switching at the variable level#f4f4f4 Gray 10 surface — depth through background-color layering, not shadows#0f62fe): The singular interactive color. Primary buttons, links, focus states, active indicators. This is the only chromatic hue in the core UI palette.#ffffff): Page background, card surfaces, button text on blue, --cds-background.#161616): Primary text, headings, dark surface backgrounds, nav bar, footer. --cds-text-primary.#161616): Primary text, headings, dark UI chrome, footer background.#262626): Secondary dark surfaces, hover states on dark backgrounds.#393939): Tertiary dark, active states.#525252): Secondary text, helper text, descriptions. --cds-text-secondary.#6f6f6f): Placeholder text, disabled text.#8d8d8d): Disabled icons, muted labels.#c6c6c6): Borders, divider lines, input bottom-borders. --cds-border-subtle.#e0e0e0): Subtle borders, card outlines.#f4f4f4): Secondary surface background, card fills, alternating rows. --cds-layer-01.#e8e8e8): Hover state for Gray 10 surfaces.#0f62fe): Primary interactive — buttons, links, focus. --cds-link-primary, --cds-button-primary.#0043ce): Link hover state. --cds-link-primary-hover.#002d9c): Active/pressed state for blue elements.#edf5ff): Blue tint surface, selected row background.#0f62fe): --cds-focus — 2px inset border on focused elements.#ffffff): --cds-focus-inset — white inner ring for focus on dark backgrounds.#da1e28): Error, danger. --cds-support-error.#24a148): Success. --cds-support-success.#f1c21b): Warning. --cds-support-warning.#0f62fe): Informational. --cds-support-info.#161616). --cds-background.#262626). Card and container surfaces.#393939). Elevated surfaces.#f4f4f4). --cds-text-primary.#c6c6c6). --cds-text-secondary.#393939). --cds-border-subtle.#78a9ff). Links and interactive elements shift lighter for contrast.IBM Plex Sans, with fallbacks: Helvetica Neue, Arial, sans-serifIBM Plex Mono, with fallbacks: Menlo, Courier, monospaceIBM Plex Serif, for editorial/expressive contextsibm_icons — proprietary icon glyphs at 20px| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display 01 | IBM Plex Sans | 60px (3.75rem) | 300 (Light) | 1.17 (70px) | 0 | Maximum impact, light weight for elegance |
| Display 02 | IBM Plex Sans | 48px (3.00rem) | 300 (Light) | 1.17 (56px) | 0 | Secondary hero, responsive fallback |
| Heading 01 | IBM Plex Sans | 42px (2.63rem) | 300 (Light) | 1.19 (50px) | 0 | Expressive heading |
| Heading 02 | IBM Plex Sans | 32px (2.00rem) | 400 (Regular) | 1.25 (40px) | 0 | Section headings |
| Heading 03 | IBM Plex Sans | 24px (1.50rem) | 400 (Regular) | 1.33 (32px) | 0 | Sub-section titles |
| Heading 04 | IBM Plex Sans | 20px (1.25rem) | 600 (Semibold) | 1.40 (28px) | 0 | Card titles, feature headers |
| Heading 05 | IBM Plex Sans | 20px (1.25rem) | 400 (Regular) | 1.40 (28px) | 0 | Lighter card headings |
| Body Long 01 | IBM Plex Sans | 16px (1.00rem) | 400 (Regular) | 1.50 (24px) | 0 | Standard reading text |
| Body Long 02 | IBM Plex Sans | 16px (1.00rem) | 600 (Semibold) | 1.50 (24px) | 0 | Emphasized body, labels |
| Body Short 01 | IBM Plex Sans | 14px (0.88rem) | 400 (Regular) | 1.29 (18px) | 0.16px | Compact body, captions |
| Body Short 02 | IBM Plex Sans | 14px (0.88rem) | 600 (Semibold) | 1.29 (18px) | 0.16px | Bold captions, nav items |
| Caption 01 | IBM Plex Sans | 12px (0.75rem) | 400 (Regular) | 1.33 (16px) | 0.32px | Metadata, timestamps |
| Code 01 | IBM Plex Mono | 14px (0.88rem) | 400 (Regular) | 1.43 (20px) | 0.16px | Inline code, terminal |
| Code 02 | IBM Plex Mono | 16px (1.00rem) | 400 (Regular) | 1.50 (24px) | 0 | Code blocks |
| Mono Display | IBM Plex Mono | 42px (2.63rem) | 400 (Regular) | 1.19 (50px) | 0 | Hero mono decorative |
Primary Button (Blue)
#0f62fe (Blue 60) → --cds-button-primary#ffffff (White)#0353e9 (Blue 60 Hover) → --cds-button-primary-hover#002d9c (Blue 80) → --cds-button-primary-active2px solid #0f62fe inset + 1px solid #ffffff innerSecondary Button (Gray)
#393939 (Gray 80)#ffffff#4c4c4c (Gray 70)#6f6f6f (Gray 60)Tertiary Button (Ghost Blue)
#0f62fe (Blue 60)#0f62fe#0353e9 text + Blue 10 background tintGhost Button
#0f62fe (Blue 60)#e8e8e8 background tintDanger Button
#da1e28 (Red 60)#ffffff#b81921 (Red 70)#ffffff on white theme, #f4f4f4 (Gray 10) for elevated cards#e8e8e8 (Gray 10 Hover) for clickable cards#f4f4f4 (Gray 10) — --cds-field#161616 (Gray 100)2px solid transparent bottom2px solid #161616 (Gray 100)2px solid #0f62fe (Blue 60) bottom-border — --cds-focus2px solid #da1e28 (Red 60) bottom-border#6f6f6f)#161616 (Gray 100) — full-width dark masthead#c6c6c6 (Gray 30) default#ffffff text#ffffff with bottom-border indicator#0f62fe (Blue 60) with no underline#0043ce (Blue 70) with underlineContent Block (Hero/Feature)
Tile (Clickable Card)
#f4f4f4 or #ffffffTag / Label
Notification Banner
| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow, #ffffff background | Default page surface |
| Layer 01 | No shadow, #f4f4f4 background | Cards, tiles, alternating sections |
| Layer 02 | No shadow, #e0e0e0 background | Elevated panels within Layer 01 |
| Raised | 0 2px 6px rgba(0,0,0,0.3) | Dropdowns, tooltips, overflow menus |
| Overlay | 0 2px 6px rgba(0,0,0,0.3) + dark scrim | Modal dialogs, side panels |
| Focus | 2px solid #0f62fe inset + 1px solid #ffffff | Keyboard focus ring |
| Bottom-border | 2px solid #161616 on bottom edge | Active input, active tab indicator |
Shadow Philosophy: Carbon is deliberately shadow-averse. IBM achieves depth primarily through background-color layering — stacking surfaces of progressively darker grays rather than adding box-shadows. This creates a flat, print-inspired aesthetic where hierarchy is communicated through color value, not simulated light. Shadows are reserved exclusively for floating elements (dropdowns, tooltips, modals) where the element genuinely overlaps content. This restraint gives the rare shadow meaningful impact — when something floats in Carbon, it matters.
--cds-* token names when implementing (e.g., --cds-button-primary, --cds-text-primary)#0f62fe) as the sole accent — one blue to rule them all| Name | Width | Key Changes |
|---|---|---|
| Small (sm) | 320px | Single column, hamburger nav, 16px margins |
| Medium (md) | 672px | 2-column grids begin, expanded content |
| Large (lg) | 1056px | Full navigation visible, 3-4 column grids |
| X-Large (xlg) | 1312px | Maximum content density, wide layouts |
| Max | 1584px | Maximum content width, centered with margins |
max-width: 100%#0f62fe)#ffffff)#161616)#161616)#525252)#f4f4f4)#c6c6c6)#0f62fe)#0043ce)#0f62fe)#da1e28)#24a148)--cds- prefix for token naming to stay Carbon-compatibleIBM's website is the digital embodiment of enterprise authority built on the Carbon Design System — a design language so methodically structured it reads like an engineering specification rendered as a webpage. The page operates on a stark duality: a bright white (`#ffffff`) canvas with near-black (`#161616`) text, punctuated by a single, unwavering accent —
Top 19 hex values found in §2 of DESIGN.md, ranked by usage frequency.
A wider example card showing how content sits inside the radius and shadow combination defined by this brand. Card radius is capped at 16px even on pill systems (LINE/Wise/Spotify) so large surfaces stay readable.
Shadow recipes parsed from §6 of DESIGN.md, or default 5-tier scale if none found.