
Figure
General-purpose humanoid robots for work and the home
The style
A quiet, cinematic product language. Full-bleed, mostly monochrome photography does the talking; type is small, light and set in capitals, with a wide technical display face for headlines and a neutral grotesk for reading. Actions are slim pills in near-black, outlined white over imagery, or a single soft periwinkle.
Colours
- Brand#8579f2
- Buttons#0f0f0f
- Background#fefdfb
- Text#0c0c0c
Click a colour to copy it.
Fonts
Space Grotesk
For headings
Inter
For everything else
Free fonts that look like Figure’s own, so you can use them anywhere.
Buttons
46–48px pills with 14px labels: #0C0C0C with white text, a 1px white outline over imagery, or #797AF2 with a near-black label.
Use this style in your project
Pick the way that suits you. The first one needs no design or coding knowledge.
With an AI tool
Your AI tool builds the page for you, in Figure’s style.
2. Open it in
For developers
Ready-made CSS variables, a Tailwind theme and design tokens, with light and dark modes.
See the codeMake it your own
Change the colours, fonts and shapes, and see the result straight away before you use it.
CustomiseFiles
The code, ready to copy
Every file says where the style came from.
tokens.css — Colours, fonts and sizes as CSS variables, with light and dark modes.
/* Machine Hush — design tokens generated by Markdown */
/* Derived from an analysis of figure.ai; how different from the source: a little different (30/100). */
/* Inspired by, not a copy of, the source. Adapt before commercial use; no logos, imagery, copy or proprietary fonts are included. */
:root {
color-scheme: light;
--color-background: #fefdfb;
--color-surface: #f6f6ef;
--color-surface-muted: #f2f1ef;
--color-text: #0c0c0c;
--color-text-muted: #686867;
--color-border: #dcdbda;
--color-primary: #0f0f0f;
--color-on-primary: #ffffff;
--color-brand: #8579f2;
--color-on-brand: #0c0c0c;
--color-accent: #4c9e76;
--color-success: #2f7e54;
--color-warning: #9c691c;
--color-danger: #a3443e;
--font-display: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
--text-display: 3.25rem;
--text-display-line-height: 1.1;
--text-display-weight: 400;
--text-display-tracking: -0.009em;
--text-h1: 2.5625rem;
--text-h1-line-height: 1.13;
--text-h1-weight: 400;
--text-h1-tracking: -0.007em;
--text-h2: 2.0625rem;
--text-h2-line-height: 1.16;
--text-h2-weight: 400;
--text-h2-tracking: -0.005em;
--text-h3: 1.625rem;
--text-h3-line-height: 1.22;
--text-h3-weight: 400;
--text-h3-tracking: -0.003em;
--text-lead: 1.25rem;
--text-lead-line-height: 1.5;
--text-lead-weight: 400;
--text-lead-tracking: -0.005em;
--text-body: 1rem;
--text-body-line-height: 1.6;
--text-body-weight: 400;
--text-body-tracking: 0em;
--text-small: 0.8125rem;
--text-small-line-height: 1.5;
--text-small-weight: 400;
--text-small-tracking: 0.005em;
--text-caption: 0.6875rem;
--text-caption-line-height: 1.4;
--text-caption-weight: 400;
--text-caption-tracking: 0.01em;
--text-label: 0.8125rem;
--text-label-line-height: 1.3;
--text-label-weight: 600;
--text-label-tracking: 0.08em;
--text-code: 0.875rem;
--text-code-line-height: 1.55;
--text-code-weight: 400;
--text-code-tracking: 0em;
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 32px;
--space-6: 40px;
--space-7: 64px;
--space-8: 80px;
--space-9: 120px;
--space-10: 160px;
--radius-none: 0px;
--radius-sm: 5px;
--radius-md: 10px;
--radius-lg: 15px;
--radius-xl: 25px;
--radius-full: 9999px;
--border-width: 1px;
--shadow-sm: none;
--shadow-md: none;
--shadow-lg: none;
--duration-fast: 190ms;
--duration-base: 320ms;
--duration-slow: 550ms;
--ease-standard: ease-in-out;
--ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
--ease-exit: cubic-bezier(0.7, 0, 0.84, 0);
--container: 1200px;
--gutter: 24px;
--button-radius: 9999px;
--button-padding: 14px 32px;
--input-radius: 10px;
--input-height: 48px;
--card-radius: 12px;
--card-padding: 24px;
--badge-radius: 9999px;
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
color-scheme: dark;
--color-background: #161410;
--color-surface: #22201c;
--color-surface-muted: #272521;
--color-text: #f0eeea;
--color-text-muted: #9d9b97;
--color-border: #42403c;
--color-primary: #9e9e9e;
--color-on-primary: #141210;
--color-brand: #8579f2;
--color-on-brand: #141210;
--color-accent: #6eb995;
--color-success: #72ca9b;
--color-warning: #e0a752;
--color-danger: #cd7f7a;
}
}
[data-theme="dark"] {
color-scheme: dark;
--color-background: #161410;
--color-surface: #22201c;
--color-surface-muted: #272521;
--color-text: #f0eeea;
--color-text-muted: #9d9b97;
--color-border: #42403c;
--color-primary: #9e9e9e;
--color-on-primary: #141210;
--color-brand: #8579f2;
--color-on-brand: #141210;
--color-accent: #6eb995;
--color-success: #72ca9b;
--color-warning: #e0a752;
--color-danger: #cd7f7a;
}
@media (prefers-reduced-motion: reduce) {
:root { --duration-fast: 0ms; --duration-base: 0ms; --duration-slow: 0ms; }
}
See every detail
Buttons
Inputs
Badges
Project
Quarterly field notes
A card groups one idea: a title, one line of support and a clear next step.
Weekly digest is ready
Three new comments and one approval.
npm i @brandless/ui01
Colour
Semantic roles for light mode. Contrast is checked against WCAG AA as you edit.
Background
Surface
Surface muted
- AA 19.2:1
Text
- AA 5.5:1
Text muted
Border
- AA 18.9:1
Primary
- AA 19.2:1
On primary
Brand
- AA 5.6:1
On brand
- AA 3.2:1
Accent
- AA 4.9:1
Success
- AA 4.6:1
Warning
- AA 6.0:1
Danger
02
Typography
Base 16px on a 1.268 modular scale. Only open-licence fonts are recommended.
display
Space Grotesk
body
Inter
mono
JetBrains Mono
display · 52px / 1.1 · 400 · -0.009em
The quiet grammar of form
h1 · 41px / 1.13 · 400 · -0.007em
The quiet grammar of form
h2 · 33px / 1.16 · 400 · -0.005em
The quiet grammar of form
h3 · 26px / 1.22 · 400 · -0.003em
The quiet grammar of form
lead · 20px / 1.5 · 400 · -0.005em
Readable text sets the pace of an interface.
body · 16px / 1.6 · 400 · 0em
Readable text sets the pace of an interface.
small · 13px / 1.5 · 400 · 0.005em
Readable text sets the pace of an interface.
caption · 11px / 1.4 · 400 · 0.01em
Readable text sets the pace of an interface.
label · 13px / 1.3 · 600 · 0.08em
Readable text sets the pace of an interface.
code · 14px / 1.55 · 400 · 0em
const tokens = await load();
03
Spacing
A 8px base unit. Use the scale for padding, gaps and section rhythm.
- 4px
- 8px
- 12px
- 16px
- 32px
- 40px
- 64px
- 80px
- 120px
- 160px
04
Shape & surface
Flat, paper-like planes separated by fine rules instead of elevation.
Radii
none
0px
sm
5px
md
10px
lg
15px
xl
25px
full
pill
Shadows & borders
none
none
none
Borders: 1px hairline · Surfaces: paper
06
Layout
1200px container · 12 columns · 24px gutters
Patterns
- Wide single-column hero with generous vertical rhythm between sections.
- Twelve-column grid; content blocks usually span 4, 6 or 8 columns.
- Contained sections with consistent side gutters.
- Reading text limited to roughly 65–72 characters per line.
Responsive principles
- Below md, grids collapse to a single column and side gutters drop to 16px.
- Type steps above h2 scale down one step on small screens.
- Navigation collapses to a disclosure menu below lg.
- Touch targets stay at least 44×44px on every breakpoint.
07
Motion
Durations and easing curves. Previews respect your reduced-motion setting.
- fast190ms
- base320ms
- slow550ms
ease-standard
ease-enter
ease-exit
Principles
- Motion is measured and calm, easing into place rather than snapping.
- Animate opacity and transform only; avoid animating layout.
- Respect prefers-reduced-motion by replacing movement with instant state changes or fades.
Figure, its logo and trademarks belong to their owner and are shown only to say where this style comes from. This is our own study of their public website — not made or endorsed by Figure. Use your own words and images.