- Library
- Foundations
- Typography
Typography
IBM Plex Sans for interface text, IBM Plex Mono for code and token names. Eight sizes on a 1.2 ratio from a 14 px base. If a design needs a step that is not here, propose a token instead of picking a value by eye.
Updated Oct 16, 2026
Type scale
font.size 8 tokens Each step at its size, with the line height and tracking it pairs with.
Review the token change
Review the token change
Review the token change
Review the token change
Every token change ships as a reviewed pull request.
Every token change ships as a reviewed pull request.
Every token change ships as a reviewed pull request.
Every token change ships as a reviewed pull request.
- Rare display moments. 42px Unused
- Empty states, onboarding. 35px Unused
- Page titles. 29px
1 component
Components
- Section headings. 24px Unused
- Card and dialog titles. 20px
4 components
Components
- Reading body, lead text. 17px
8 components
Components
- UI text, labels, table cells. 14px
29 components
Components
- Accordion
- Alert
- Avatar
- Breadcrumb
- Button
- Card
- Checkbox
- CheckboxGroup
- Combobox
- Dialog
- Drawer
- EmptyState
- Field
- Form
- Input
- Menu
- NumberField
- Pagination
- Popover
- Progress
- RadioGroup
- Select
- SidebarNav
- Slider
- Switch
- Table
- Tabs
- Textarea
- Toast
Base styles
Read by
base.css, the global stylesheet apps import once with@bridge-ds/react/styles.css. - Captions, badges, table meta. 12px
Weights
font.weight 4 tokens Approve and merge
Approve and merge
Approve and merge
Approve and merge
- Body text. 400
- Labels and buttons. 500
20 components
- Titles. 600
- Only for numbers that must win a glance. 700 Unused
Line heights
font.line-height 5 tokens Semantic tokens give each color a job and point to a different primitive in each theme, so one change repaints every screen.
Semantic tokens give each color a job and point to a different primitive in each theme, so one change repaints every screen.
Semantic tokens give each color a job and point to a different primitive in each theme, so one change repaints every screen.
Semantic tokens give each color a job and point to a different primitive in each theme, so one change repaints every screen.
- Icons and single glyphs, never text that wraps. 1
3 components
Components
- Headings from 24 px up. 1.2
5 components
Components
- Captions and card titles. 1.35
17 components
- Body text and UI text that wraps. 1.5
- Long reading, like changelogs and guidance. 1.65 Unused
Tracking
font.tracking 5 tokens Tighter as type gets bigger, slightly open at caption size. Values are in em, so they scale with the text.
- -0.025 Unused
- -0.015
1 component
Components
- -0.01
4 components
Components
- 0 Unused
- 0.01
16 components
Families
font.family 5 tokens
Brands pick their faces through the font roles font.family.sans and font.family.mono. Both brands ship IBM Plex,
self-hosted with @bridge-ds/tokens/fonts.css; without it, products fall back to the platform font.
Ship the system, not the slides
color.bg.default 0O Il1
- "IBM Plex Sans Variable", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif font family plex-sans
34 components
Components
- Accordion
- Alert
- Avatar
- Badge
- Breadcrumb
- Button
- Card
- Checkbox
- CheckboxGroup
- Combobox
- Dialog
- Divider
- Drawer
- EmptyState
- Field
- Form
- Input
- Kbd
- Menu
- NumberField
- Pagination
- Popover
- Progress
- RadioGroup
- Select
- SidebarNav
- Slider
- Switch
- Table
- Tabs
- Tag
- Textarea
- Toast
- Tooltip
Base styles
Read by
base.css, the global stylesheet apps import once with@bridge-ds/react/styles.css. - "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace font family plex-mono
- Self-hosted via @fontsource-variable/ibm-plex-sans (import @bridge-ds/tokens/fonts.css). "IBM Plex Sans Variable", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif
34 components
Components
- Accordion
- Alert
- Avatar
- Badge
- Breadcrumb
- Button
- Card
- Checkbox
- CheckboxGroup
- Combobox
- Dialog
- Divider
- Drawer
- EmptyState
- Field
- Form
- Input
- Kbd
- Menu
- NumberField
- Pagination
- Popover
- Progress
- RadioGroup
- Select
- SidebarNav
- Slider
- Switch
- Table
- Tabs
- Tag
- Textarea
- Toast
- Tooltip
Base styles
Read by
base.css, the global stylesheet apps import once with@bridge-ds/react/styles.css. - Self-hosted via @fontsource/ibm-plex-mono. "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace
- system-ui, -apple-system, "Segoe UI", Roboto, sans-serif Unused