getdesign.mdgetdesign/ibm
IBM
Carbon Design System aesthetic — white canvas with single IBM Blue accent, rectangular zero-radius components, IBM Plex Sans at light weight, and flat background-layered depth.
install
npx designkit-cli add getdesign/ibmTypography
Every text element the kit ships — headings through code
Headings
The quick brown fox
Section heading
Subsection heading
Minor heading
Overline heading
Body text
Lead paragraph.Body text sits at the backbone of any interface — if it reads well, everything else has a chance. If it doesn't, nothing else matters.
Standard paragraph at the body size. Type hierarchies work best when the jump from body to subheading is clear but not disruptive — around 1.25-1.5× works across most contexts. Inline elements like a link, inline code, emphasis, strong, and highlighted text should all feel native to the kit.
Small / caption text — used for metadata, timestamps, descriptions under labels. Usually 14px or slightly smaller.
Lists
Unordered
- Token-driven styling
- Agent-readable format
- Composable kits
- Colors
- Typography
- Component stylings
- Portable between projects
Ordered
- Describe the kit in prose
- Extract colors and typography
- Apply to a sample UI
- Iterate on token values
Blockquote
“Good design is as little design as possible. Less, but better — because it concentrates on the essential aspects, and the products are not burdened with non-essentials.”
Code
// install a kit
$ npx designkit-cli add airbnb
// apply it to your project
import { applyKit } from "@designkit/theme"
applyKit("airbnb")Rule
Buttons
Primary, secondary, outline, ghost — every state the kit ships
Default
Sizes
With icon
Form fields
Every input control the kit ships — text, select, checkboxes, radios, switches, file
Text inputs
Textarea
Select
Checkboxes
Radio group
Toggle switch
File input
Feedback
Alerts, badges, progress, tooltips, avatars — the signal surface of every UI
Alerts
Scheduled maintenance
We'll be rolling out a new version on Friday at 22:00 UTC. Expect a short read-only window.
Kit published
Your DESIGN.md is live. Anyone can now install it with `npx designkit-cli add you/my-kit`.
Deprecated API
You're calling /v1/kits which will be removed in 30 days. Migrate to /v2/kits.
Build failed
Two component tokens reference an undefined color. Run `designkit lint` to see them.
Badges & tags
Avatars
Jeremy Dupont
Author
Progress
Spinner
Tooltip (static)
Keyboard shortcut
Press ⌘ K to open the command palette, or Esc to dismiss.
Data display
Table, definition list, empty state — how the kit shows structured data
Table
| Kit | Author | Installs | Updated | Status |
|---|---|---|---|---|
| airbnb | getdesign | 12.4K | 2d ago | Active |
| claude | getdesign | 8.1K | 5d ago | Active |
| stripe | getdesign | 7.9K | 1w ago | Active |
| linear.app | getdesign | 6.2K | 2w ago | Beta |
| heritage | dk | 2.1K | 1mo ago | Draft |
Definition list
- Name
- Airbnb
- Author
- getdesign · Claude
- Format
- DESIGN.md (Google Stitch spec)
- Primary font
- Nunito (substitute for Airbnb Cereal VF)
- Installs
- 12,408
- License
- MIT
Empty state
No kits yet
You haven't published any kits on this account. Drop a DESIGN.md in a public repo to get started.
Breadcrumbs
Tabs
Sign in
Centered auth card — the most scrutinised surface in any app
Welcome back
Sign in with your work email to continue.
New here? Create an account
Dashboard KPIs
Four-card stat row — the staple of every internal dashboard
Overview
Performance for the last 30 days
Active users
12,408
+4.2% vs last period
MRR
$28.9K
+12.1% vs last period
Churn
1.8%
-0.3% vs last period
NPS
72
+5 vs last period
Chat thread
Agent + user turn-based chat — bubbles, avatar, timestamp
Design Agent
online · responds in seconds
Hero
Landing-page headline + subtitle + primary CTA
Designed for humans. Built for agents.
Ship a brand-aligned product in hours. Coding agents write UI that matches your design system — no brief, no handoff.
Pricing
Three-tier comparison grid with a highlighted middle tier
Simple pricing
Pay for what you use. Change plans any time.
Hobby
- 1 project
- Community support
- Public kits only
Pro
Popular- Unlimited projects
- Private kits
- Priority support
- AI kit generator
Team
- Everything in Pro
- Shared workspace
- SSO + audit logs
- Dedicated support
source
---
name: IBM
description:
Carbon Design System aesthetic — white canvas with single IBM Blue accent,
rectangular zero-radius components, IBM Plex Sans at light weight, and flat
background-layered depth.
originalFonts:
primary: "IBM Plex Sans"
mono: "IBM Plex Mono"
fallbacks:
- "Helvetica Neue"
- "Arial"
- "sans-serif"
colors:
blue-60: "#0f62fe"
blue-70: "#0043ce"
blue-80: "#002d9c"
blue-10: "#edf5ff"
white: "#ffffff"
gray-100: "#161616"
gray-90: "#262626"
gray-80: "#393939"
gray-70: "#525252"
gray-60: "#6f6f6f"
gray-50: "#8d8d8d"
gray-30: "#c6c6c6"
gray-20: "#e0e0e0"
gray-10: "#f4f4f4"
gray-10-hover: "#e8e8e8"
red-60: "#da1e28"
green-50: "#24a148"
yellow-30: "#f1c21b"
background: "#ffffff"
surface: "#f4f4f4"
ink: "#161616"
ink-muted: "#525252"
accent: "#0f62fe"
accent-alt: "#0043ce"
border: "#c6c6c6"
link: "#0f62fe"
typography:
h1:
family: "IBM Plex Sans"
size: "3.75rem"
weight: 300
lineHeight: 1.17
h2:
family: "IBM Plex Sans"
size: "3rem"
weight: 300
lineHeight: 1.17
h3:
family: "IBM Plex Sans"
size: "2.625rem"
weight: 300
lineHeight: 1.19
h4:
family: "IBM Plex Sans"
size: "2rem"
weight: 400
lineHeight: 1.25
body:
family: "IBM Plex Sans"
size: "1rem"
weight: 400
lineHeight: 1.5
caption:
family: "IBM Plex Sans"
size: "0.875rem"
weight: 400
lineHeight: 1.29
letterSpacing: "0.16px"
code:
family: "IBM Plex Mono"
size: "0.875rem"
lineHeight: 1.43
letterSpacing: "0.16px"
spacing:
xs: "4px"
sm: "8px"
md: "16px"
lg: "32px"
xl: "48px"
rounded:
sm: "0px"
md: "0px"
lg: "0px"
xl: "24px"
shadows:
sm: "none"
md: "0 2px 6px rgba(0,0,0,0.3)"
components:
button-primary:
background: "{colors.blue-60}"
color: "#ffffff"
border: "1px solid transparent"
radius: "0px"
padding: "14px 63px 14px 15px"
button-secondary:
background: "{colors.gray-80}"
color: "#ffffff"
border: "none"
radius: "0px"
padding: "14px 63px 14px 15px"
card:
background: "{colors.gray-10}"
border: "none"
radius: "0px"
padding: "16px"
input:
background: "{colors.gray-10}"
color: "{colors.gray-100}"
border: "0 0 2px 0 solid transparent"
radius: "0px"
padding: "0px 16px"
---
<!-- source: VoltAgent/awesome-design-md @ 80bbbc2 (MIT) — see ATTRIBUTION.md -->
# Design System Inspiration of IBM
## 1. Visual Theme & Atmosphere
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
## 2. Color Palette & Roles
### Primary
- **IBM Blue 60** (`#0f62fe`): The singular interactive color. Primary buttons,
links, focus states, active indicators. This is the only chromatic hue in the
core UI palette.
- **White** (`#ffffff`): Page background, card surfaces, button text on blue,
`--cds-background`.
- **Gray 100** (`#161616`): Primary text, headings, dark surface backgrounds,
nav bar, footer. `--cds-text-primary`.
### Neutral Scale (Gray Family)
- **Gray 100** (`#161616`): Primary text, headings, dark UI chrome, footer
background.
- **Gray 90** (`#262626`): Secondary dark surfaces, hover states on dark
backgrounds.
- **Gray 80** (`#393939`): Tertiary dark, active states.
- **Gray 70** (`#525252`): Secondary text, helper text, descriptions.
`--cds-text-secondary`.
- **Gray 60** (`#6f6f6f`): Placeholder text, disabled text.
- **Gray 50** (`#8d8d8d`): Disabled icons, muted labels.
- **Gray 30** (`#c6c6c6`): Borders, divider lines, input bottom-borders.
`--cds-border-subtle`.
- **Gray 20** (`#e0e0e0`): Subtle borders, card outlines.
- **Gray 10** (`#f4f4f4`): Secondary surface background, card fills, alternating
rows. `--cds-layer-01`.
- **Gray 10 Hover** (`#e8e8e8`): Hover state for Gray 10 surfaces.
### Interactive
- **Blue 60** (`#0f62fe`): Primary interactive — buttons, links, focus.
`--cds-link-primary`, `--cds-button-primary`.
- **Blue 70** (`#0043ce`): Link hover state. `--cds-link-primary-hover`.
- **Blue 80** (`#002d9c`): Active/pressed state for blue elements.
- **Blue 10** (`#edf5ff`): Blue tint surface, selected row background.
- **Focus Blue** (`#0f62fe`): `--cds-focus` — 2px inset border on focused
elements.
- **Focus Inset** (`#ffffff`): `--cds-focus-inset` — white inner ring for focus
on dark backgrounds.
### Support & Status
- **Red 60** (`#da1e28`): Error, danger. `--cds-support-error`.
- **Green 50** (`#24a148`): Success. `--cds-support-success`.
- **Yellow 30** (`#f1c21b`): Warning. `--cds-support-warning`.
- **Blue 60** (`#0f62fe`): Informational. `--cds-support-info`.
### Dark Theme (Gray 100 Theme)
- **Background**: Gray 100 (`#161616`). `--cds-background`.
- **Layer 01**: Gray 90 (`#262626`). Card and container surfaces.
- **Layer 02**: Gray 80 (`#393939`). Elevated surfaces.
- **Text Primary**: Gray 10 (`#f4f4f4`). `--cds-text-primary`.
- **Text Secondary**: Gray 30 (`#c6c6c6`). `--cds-text-secondary`.
- **Border Subtle**: Gray 80 (`#393939`). `--cds-border-subtle`.
- **Interactive**: Blue 40 (`#78a9ff`). Links and interactive elements shift
lighter for contrast.
## 3. Typography Rules
### Font Family
- **Primary**: `IBM Plex Sans`, with fallbacks:
`Helvetica Neue, Arial, sans-serif`
- **Monospace**: `IBM Plex Mono`, with fallbacks: `Menlo, Courier, monospace`
- **Serif** (limited use): `IBM Plex Serif`, for editorial/expressive contexts
- **Icon Font**: `ibm_icons` — proprietary icon glyphs at 20px
### Hierarchy
| 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 |
### Principles
- **Light weight at display sizes**: Carbon's expressive type set uses weight
300 (Light) at 42px+. This creates a distinctive tension — the content speaks
with corporate authority while the letterforms whisper with typographic
lightness.
- **Micro-tracking at small sizes**: 0.16px letter-spacing at 14px and 0.32px at
12px. These seemingly negligible values are Carbon's secret weapon for
readability at compact sizes — they open up the tight IBM Plex letterforms
just enough.
- **Three functional weights**: 300 (display/expressive), 400 (body/reading),
600 (emphasis/UI labels). Weight 700 is intentionally absent from the
production type scale.
- **Productive vs. Expressive**: Productive sets use tighter line-heights (1.29)
for dense UI. Expressive sets breathe more (1.40-1.50) for marketing and
editorial content.
## 4. Component Stylings
### Buttons
**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)
### Cards & Containers
- Background: `#ffffff` on white theme, `#f4f4f4` (Gray 10) for elevated cards
- Border: none (flat design — no border or shadow on most cards)
- Border-radius: 0px (matching the rectangular button aesthetic)
- Hover: background shifts to `#e8e8e8` (Gray 10 Hover) for clickable cards
- Content padding: 16px
- Separation: background-color layering (white → gray 10 → white) rather than
shadows
### Inputs & Forms
- Background: `#f4f4f4` (Gray 10) — `--cds-field`
- Text: `#161616` (Gray 100)
- Padding: 0px 16px (horizontal only)
- Height: 40px (default), 48px (large)
- Border: none on sides/top — `2px solid transparent` bottom
- Bottom-border active: `2px solid #161616` (Gray 100)
- Focus: `2px solid #0f62fe` (Blue 60) bottom-border — `--cds-focus`
- Error: `2px solid #da1e28` (Red 60) bottom-border
- Label: 12px IBM Plex Sans, 0.32px letter-spacing, Gray 70
- Helper text: 12px, Gray 60
- Placeholder: Gray 60 (`#6f6f6f`)
- Border-radius: 0px (top) — inputs are sharp-cornered
### Navigation
- Background: `#161616` (Gray 100) — full-width dark masthead
- Height: 48px
- Logo: IBM 8-bar logo, white on dark, left-aligned
- Links: 14px IBM Plex Sans, weight 400, `#c6c6c6` (Gray 30) default
- Link hover: `#ffffff` text
- Active link: `#ffffff` with bottom-border indicator
- Platform switcher: left-aligned horizontal tabs
- Search: icon-triggered slide-out search field
- Mobile: hamburger with left-sliding panel
### Links
- Default: `#0f62fe` (Blue 60) with no underline
- Hover: `#0043ce` (Blue 70) with underline
- Visited: remains Blue 60 (no visited state change)
- Inline links: underlined by default in body copy
### Distinctive Components
**Content 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
## 5. Layout Principles
### Spacing System
- Base unit: 8px (Carbon 2x grid)
- Component spacing scale: 2px, 4px, 8px, 12px, 16px, 24px, 32px, 40px, 48px
- Layout spacing scale: 16px, 24px, 32px, 48px, 64px, 80px, 96px, 160px
- Mini unit: 8px (smallest usable spacing)
- Padding within components: typically 16px
- Gap between cards/tiles: 1px (hairline) or 16px (standard)
### Grid & Container
- 16-column grid (Carbon's 2x grid system)
- Max content width: 1584px (max breakpoint)
- Column gutters: 32px (16px on mobile)
- Margin: 16px (mobile), 32px (tablet+)
- Content typically spans 8-12 columns for readable line lengths
- Full-bleed sections alternate with contained content
### Whitespace Philosophy
- **Functional density**: Carbon favors productive density over expansive
whitespace. Sections are tightly packed compared to consumer design systems —
this reflects IBM's enterprise DNA.
- **Background-color zoning**: Instead of massive padding between sections, IBM
uses alternating background colors (white → gray 10 → white) to create visual
separation with minimal vertical space.
- **Consistent 48px rhythm**: Major section transitions use 48px vertical
spacing. Hero sections may use 80px–96px.
### Border Radius Scale
- **0px**: Primary buttons, inputs, tiles, cards — the dominant treatment.
Carbon is fundamentally rectangular.
- **2px**: Occasionally on small interactive elements (tags)
- **24px**: Tags/labels (pill shape — the sole rounded exception)
- **50%**: Avatar circles, icon containers
## 6. Depth & Elevation
| 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.
## 7. Do's and Don'ts
### Do
- Use IBM Plex Sans at weight 300 for display sizes (42px+) — the lightness is
intentional
- Apply 0.16px letter-spacing on 14px body text and 0.32px on 12px captions
- Use 0px border-radius on buttons, inputs, cards, and tiles — rectangles are
the system
- Reference `--cds-*` token names when implementing (e.g.,
`--cds-button-primary`, `--cds-text-primary`)
- Use background-color layering (white → gray 10 → gray 20) for depth instead of
shadows
- Use bottom-border (not box) for input field indicators
- Maintain the 48px default button height and asymmetric padding for icon
accommodation
- Apply Blue 60 (`#0f62fe`) as the sole accent — one blue to rule them all
### Don't
- Don't round button corners — 0px radius is the Carbon identity
- Don't use shadows on cards or tiles — flatness is the point
- Don't introduce additional accent colors — IBM's system is monochromatic +
blue
- Don't use weight 700 (Bold) — the scale stops at 600 (Semibold)
- Don't add letter-spacing to display-size text — tracking is only for 14px and
below
- Don't box inputs with full borders — Carbon inputs use bottom-border only
- Don't use gradient backgrounds — IBM's surfaces are flat, solid colors
- Don't deviate from the 8px spacing grid — every value should be divisible by 8
(with 2px and 4px for micro-adjustments)
## 8. Responsive Behavior
### Breakpoints
| 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 |
### Touch Targets
- Button height: 48px default, minimum 40px (compact)
- Navigation links: 48px row height for touch
- Input height: 40px default, 48px large
- Icon buttons: 48px square touch target
- Mobile menu items: full-width 48px rows
### Collapsing Strategy
- Hero: 60px display → 42px → 32px heading as viewport narrows
- Navigation: full horizontal masthead → hamburger with slide-out panel
- Grid: 4-column → 2-column → single column
- Tiles/cards: horizontal grid → vertical stack
- Images: maintain aspect ratio, max-width 100%
- Footer: multi-column link groups → stacked single column
- Section padding: 48px → 32px → 16px
### Image Behavior
- Responsive images with `max-width: 100%`
- Product illustrations scale proportionally
- Hero images may shift from side-by-side to stacked below
- Data visualizations maintain aspect ratio with horizontal scroll on mobile
## 9. Agent Prompt Guide
### Quick Color Reference
- Primary CTA: IBM Blue 60 (`#0f62fe`)
- Background: White (`#ffffff`)
- Heading text: Gray 100 (`#161616`)
- Body text: Gray 100 (`#161616`)
- Secondary text: Gray 70 (`#525252`)
- Surface/Card: Gray 10 (`#f4f4f4`)
- Border: Gray 30 (`#c6c6c6`)
- Link: Blue 60 (`#0f62fe`)
- Link hover: Blue 70 (`#0043ce`)
- Focus ring: Blue 60 (`#0f62fe`)
- Error: Red 60 (`#da1e28`)
- Success: Green 50 (`#24a148`)
### Example Component Prompts
- "Create a hero section on white background. Headline at 60px IBM Plex Sans
weight 300, line-height 1.17, color #161616. Subtitle at 16px weight 400,
line-height 1.50, color #525252, max-width 640px. Blue CTA button (#0f62fe
background, #ffffff text, 0px border-radius, 48px height, 14px 63px 14px 15px
padding)."
- "Design a card tile: #f4f4f4 background, 0px border-radius, 16px padding.
Title at 20px IBM Plex Sans weight 600, line-height 1.40, color #161616. Body
at 14px weight 400, letter-spacing 0.16px, line-height 1.29, color #525252.
Hover: background shifts to #e8e8e8."
- "Build a form field: #f4f4f4 background, 0px border-radius, 40px height, 16px
horizontal padding. Label above at 12px weight 400, letter-spacing 0.32px,
color #525252. Bottom-border: 2px solid transparent default, 2px solid #0f62fe
on focus. Placeholder: #6f6f6f."
- "Create a dark navigation bar: #161616 background, 48px height. IBM logo white
left-aligned. Links at 14px IBM Plex Sans weight 400, color #c6c6c6. Hover:
#ffffff text. Active: #ffffff with 2px bottom border."
- "Build a tag component: Blue 10 (#edf5ff) background, Blue 60 (#0f62fe) text,
4px 8px padding, 24px border-radius, 12px IBM Plex Sans weight 400."
### Iteration Guide
1. Always use 0px border-radius on buttons, inputs, and cards — this is
non-negotiable in Carbon
2. Letter-spacing only at small sizes: 0.16px at 14px, 0.32px at 12px — never on
display text
3. Three weights: 300 (display), 400 (body), 600 (emphasis) — no bold
4. Blue 60 is the only accent color — do not introduce secondary accent hues
5. Depth comes from background-color layering (white → #f4f4f4 → #e0e0e0), not
shadows
6. Inputs have bottom-border only, never fully boxed
7. Use `--cds-` prefix for token naming to stay Carbon-compatible
8. 48px is the universal interactive element height