What font does Substack use?
Substack’s website uses Cahuenga for headings and body text. Cahuenga is not on Google Fonts; the closest free match is Figtree.
| Font | Used for | Weights | Free to use? |
|---|---|---|---|
| Cahuenga | Body | 500 | Licensed. Free match: Figtree |
| the system interface fontCSS name: -apple-system-ui-serif | Interface | 400, 700 | Yes, a system font |
| Jetbrains Mono | Code | 700 | Yes, Google Fonts |
Substack colour palette
Substack’s home page is light (#FFFFFF background, #363737 text) and uses #FF6719 for its main actions. Its palette: #FFFFFF, #232525, #EEEEEE, #363737, #2F6D5D, #000000.
Type scale
Each size the page sets text in, with its weight and line height. Substack’s largest type is 32px at weight 500.
| Style | Size | Weight | Line height | Font |
|---|---|---|---|---|
| Headline Large | 32px | 500 | 39.68px | Cahuenga |
| Headline Small | 24px | 500 | 30px | Cahuenga |
| Title | 20px | 700 | 24px | the system interface font |
| Body Large | 17px | 400 | 28px | the system interface font |
| Body Small | 15px | 400 | 21px | the system interface font |
| Label | 13px | 400 | 17px | the system interface font |
Spacing and shape
Spacing sits on a 4px grid: 4px, 8px, 12px, 16px, 20px, 24px, 32px, 40px, 48px.
Corner radii: 4px, 8px, 12px, pill. 2 shadow levels measured.
What makes Substack look like Substack
Almost entirely neutral: 99% of the page is painted in #FFFFFF and #232525.
#2F6D5D is an accent: 0.9% of the page, as small fills such as buttons and badges. Keep it to small areas.
#FF6719 is an accent: 0.3% of the page, as small fills such as buttons and badges. Keep it to small areas.
The largest type (32px Cahuenga) is medium weight, not bold (500).
Substack DESIGN.md for Claude Code, Cursor and Lovable
A DESIGN.md is the brief an AI coding tool reads before it writes UI. This one carries everything on this page as rules a model follows: the allowed colours and what each is for, the fonts with free stand-ins, the type scale, spacing, corners, and the things Substack’s design never does.
Put it in your project root and ask your tool to follow it: “Read DESIGN.md and build [your product] in this design language.” It describes a style, not Substack’s product, so use your own name, words and images.
As CSS variables
The measured values as CSS custom properties, with free fonts standing in for licensed ones. Use them to learn from or to start a project in a similar style; Substack’s name, logo, words and images are theirs.
@import url("https://fonts.googleapis.com/css2?family=Figtree:wght@500&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Jetbrains+Mono:wght@700&display=swap");
:root {
--color-background: #FFFFFF; /* Background */
--color-surface: #EEEEEE; /* Surface */
--color-text: #363737; /* Text */
--color-text-muted: #777777; /* Text muted */
--color-action: #FF6719; /* Action */
--color-on-action: #000000; /* On action */
--color-positive: #2F6D5D; /* Positive */
--color-232525: #232525; /* 3.5% of the page, as fills */
--font-body: "Cahuenga", "Figtree", sans-serif; /* Cahuenga on the site; Figtree renders */
--font-interface: -apple-system-ui-serif, serif; /* -apple-system-ui-serif */
--font-code: "Jetbrains Mono", monospace; /* Jetbrains Mono */
--type-headline-large: 32px; /* Headline Large, weight 500 */
--type-headline-large-leading: 39.68px;
--type-headline-small: 24px; /* Headline Small, weight 500 */
--type-headline-small-leading: 30px;
--type-title: 20px; /* Title, weight 700 */
--type-title-leading: 24px;
--type-body-large: 17px; /* Body Large, weight 400 */
--type-body-large-leading: 28px;
--type-body-small: 15px; /* Body Small, weight 400 */
--type-body-small-leading: 21px;
--type-label: 13px; /* Label, weight 400 */
--type-label-leading: 17px;
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--space-8: 32px;
--space-10: 40px;
--space-12: 48px;
--radius-sm: 4px;
--radius-md: 8px;
--radius-lg: 12px;
--radius-full: 9999px;
}How this was measured
PikSpec’s scanner read the substack.com home page in Chrome at 1440px wide on 15 October 2026: the computed styles of its elements, the fonts that rendered and how much of the page each colour covers. Websites change; capture the page yourself with PikSpec for today’s values, any page, and exports in five formats.
Substack is a trademark of its owner. This page is an independent measurement and is not affiliated with or endorsed by Substack.
Similar light designs: Airbnb · Airtable · Allbirds · Anthropic · Apple · Arc
Questions
What font does Substack use?
Substack’s website uses Cahuenga for headings and body text. Cahuenga is not on Google Fonts; the closest free match is Figtree.
What are Substack’s brand colors?
Substack’s home page is light (#FFFFFF background, #363737 text) and uses #FF6719 for its main actions. Its palette: #FFFFFF, #232525, #EEEEEE, #363737, #2F6D5D, #000000.
Is there a DESIGN.md for Substack?
Yes: download it from this page (/design-systems/substack/DESIGN.md). It is measured from substack.com with PikSpec, with licensed fonts replaced by free matches, and works with Claude Code, Cursor, Codex, Lovable and v0.
How can I build a website in Substack’s style?
Use the values on this page as design tokens, swap any licensed font for its free match, and use your own name, words and images. PikSpec’s Build with AI turns a capture like this into a prompt and starter project for Lovable, Claude, v0, Cursor or Claude Code.
Is this Substack’s official design system?
No. It is measured from the rendered substack.com home page on 15 October 2026 and is not affiliated with or endorsed by Substack. Names and roles are inferred; the values are what the page displayed.
Contact PikSpec
Email support@pikspec.com for support, privacy requests or content reports.