Hermes Agent — Implementation Notes
The original site uses proprietary fonts. For self-contained HTML output, use these CDN substitutes: - Primary:
IBM Plex Sans| Mono:IBM Plex Mono- Font stack (CSS):font-family: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;- Mono stack (CSS):font-family: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;html <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@300;400;500;600;700&display=swap" rel="stylesheet">Usewrite_fileto create HTML, serve viagenerative-widgetsskill (cloudflared tunnel). Verify visual accuracy withbrowser_visionafter generating.
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:
- IBM Plex Sans at weight 300 (Light) for display — corporate gravitas through typographic restraint
- IBM Plex Mono for code and technical content with consistent 0.16px letter-spacing at small sizes
- Single accent color: IBM Blue 60 (#0f62fe) — every interactive element, every CTA, every link
- Carbon token system (--cds-*) driving all semantic colors, enabling theme-switching at the variable level
- 8px spacing grid with strict adherence — no arbitrary values, everything aligns
- Flat, borderless cards on #f4f4f4 Gray 10 surface — depth through background-color layering, not shadows
- Bottom-border inputs (not boxed) — the signature Carbon form pattern
- 0px border-radius on primary buttons — unapologetically rectangular, no softening
#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)
- Background: #0f62fe (Blue 60) → --cds-button-primary
- Text: #ffffff (White)
- Padding: 14px 63px 14px 15px (asymmetric — room for trailing icon)
- Border: 1px solid transparent
- Border-radius: 0px (sharp rectangle — the Carbon signature)
- Height: 48px (default), 40px (compact), 64px (expressive)
- Hover: #0353e9 (Blue 60 Hover) → --cds-button-primary-hover
- Active: #002d9c (Blue 80) → --cds-button-primary-active
- Focus: 2px solid #0f62fe inset + 1px solid #ffffff inner
Secondary Button (Gray)
- Background: #393939 (Gray 80)
- Text: #ffffff
- Hover: #4c4c4c (Gray 70)
- Active: #6f6f6f (Gray 60)
- Same padding/radius as primary
Tertiary Button (Ghost Blue)
- Background: transparent
- Text: #0f62fe (Blue 60)
- Border: 1px solid #0f62fe
- Hover: #0353e9 text + Blue 10 background tint
- Border-radius: 0px
Ghost Button
- Background: transparent
- Text: #0f62fe (Blue 60)
- Padding: 14px 16px
- Border: none
- Hover: #e8e8e8 background tint
Danger Button
- Background: #da1e28 (Red 60)
- Text: #ffffff
- Hover: #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) - Full-width alternating white/gray-10 background bands - Headline left-aligned with 60px or 48px display type - CTA as blue primary button with arrow icon - Image/illustration right-aligned or below on mobile
Tile (Clickable Card)
- Background: #f4f4f4 or #ffffff
- Full-width bottom-border or background-shift hover
- Arrow icon bottom-right on hover
- No shadow — flatness is the identity
Tag / Label - Background: contextual color at 10% opacity (e.g., Blue 10, Red 10) - Text: corresponding 60-grade color - Padding: 4px 8px - Border-radius: 24px (pill — exception to the 0px rule) - Font: 12px weight 400
Notification Banner - Full-width bar, typically Blue 60 or Gray 100 background - White text, 14px - Close/dismiss icon right-aligned
| 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-compatible