Skip to content
Markdown
All sites

Cloudflare

The connectivity cloud that powers a fifth of the internet

Collect Cloudflare

Keep the sites you like in one place and come back to them any time. Browsing stays free — no account needed.

Visit site (opens cloudflare.com in a new tab)Use this style

The style

A bold, confident infrastructure language. Clean white pages, a solid grotesk set medium and slightly tight, and one unmistakable orange for everything that matters. Big orange bands announce key messages, pills carry actions, and small 6px corners keep the product UI crisp and technical.

Colours

  • Brand#ff461f
  • Buttons#232323
  • Highlight#4c9e76
  • Background#fdfdfe
  • Text#262626

Click a colour to copy it.

Fonts

Archivo

For headings

Archivo

For everything else

Free fonts that look like Cloudflare’s own, so you can use them anywhere.

Buttons

Get startedContinueCancel

Orange pills for the main action, white pills with a faint border for the second.

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 Cloudflare’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 code

Make it your own

Change the colours, fonts and shapes, and see the result straight away before you use it.

Customise

Files

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.

/* Signal Orange — design tokens generated by Markdown */
/* Derived from an analysis of cloudflare.com; 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: #fdfdfe;
  --color-surface: #fdfdfc;
  --color-surface-muted: #f2f2f3;
  --color-text: #262626;
  --color-text-muted: #6e6e6e;
  --color-border: #f0f0f0;
  --color-primary: #232323;
  --color-on-primary: #ffffff;
  --color-brand: #ff461f;
  --color-on-brand: #262626;
  --color-accent: #4c9e76;
  --color-success: #2f7e54;
  --color-warning: #9c691c;
  --color-danger: #a3443e;
  --font-display: "Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-body: "Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --text-display: 3.1875rem;
  --text-display-line-height: 1;
  --text-display-weight: 500;
  --text-display-tracking: -0.022em;
  --text-h1: 2.5625rem;
  --text-h1-line-height: 1.03;
  --text-h1-weight: 500;
  --text-h1-tracking: -0.017em;
  --text-h2: 2rem;
  --text-h2-line-height: 1.06;
  --text-h2-weight: 500;
  --text-h2-tracking: -0.013em;
  --text-h3: 1.5625rem;
  --text-h3-line-height: 1.15;
  --text-h3-weight: 500;
  --text-h3-tracking: -0.009em;
  --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.01em;
  --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: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --radius-none: 0px;
  --radius-sm: 4px;
  --radius-md: 7px;
  --radius-lg: 11px;
  --radius-xl: 18px;
  --radius-full: 9999px;
  --border-width: 1px;
  --shadow-sm: 0 1px 2px rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 12px -2px rgb(0 0 0 / 0.08), 0 2px 4px -2px rgb(0 0 0 / 0.04);
  --shadow-lg: 0 18px 40px -12px rgb(0 0 0 / 0.18);
  --duration-fast: 110ms;
  --duration-base: 190ms;
  --duration-slow: 310ms;
  --ease-standard: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-exit: cubic-bezier(0.7, 0, 0.84, 0);
  --container: 1176px;
  --gutter: 24px;
  --button-radius: 9999px;
  --button-padding: 12px 24px;
  --input-radius: 7px;
  --input-height: 44px;
  --card-radius: 8px;
  --card-padding: 24px;
  --badge-radius: 9999px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --color-background: #101016;
    --color-surface: #1c1c22;
    --color-surface-muted: #212127;
    --color-text: #eaeaf0;
    --color-text-muted: #97979d;
    --color-border: #3c3c42;
    --color-primary: #9e9e9e;
    --color-on-primary: #141210;
    --color-brand: #ff461f;
    --color-on-brand: #141210;
    --color-accent: #6eb995;
    --color-success: #72ca9b;
    --color-warning: #e0a752;
    --color-danger: #cd7f7a;
  }
}

[data-theme="dark"] {
  color-scheme: dark;
  --color-background: #101016;
  --color-surface: #1c1c22;
  --color-surface-muted: #212127;
  --color-text: #eaeaf0;
  --color-text-muted: #97979d;
  --color-border: #3c3c42;
  --color-primary: #9e9e9e;
  --color-on-primary: #141210;
  --color-brand: #ff461f;
  --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

New ActivePendingOverdue

Project

Quarterly field notes

Draft

A card groups one idea: a title, one line of support and a clear next step.

Updated 2h agoOpen project

Weekly digest is ready

Three new comments and one approval.

npm i @brandless/ui

01

Colour

Semantic roles for light mode. Contrast is checked against WCAG AA as you edit.

  • Background

  • Surface

  • Surface muted

  • AA 14.9:1

    Text

  • AA 5.0:1

    Text muted

  • Border

  • AA 15.5:1

    Primary

  • AA 15.7:1

    On primary

  • Brand

  • Low 4.4: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.262 modular scale. Only open-licence fonts are recommended.

display

Archivo

Open alternative to FT Kunst Grotesk

body

Archivo

Open alternative to FT Kunst Grotesk

mono

IBM Plex Mono

Open alternative to Apercu Mono Pro
  • display · 51px / 1 · 500 · -0.022em

    The quiet grammar of form

  • h1 · 41px / 1.03 · 500 · -0.017em

    The quiet grammar of form

  • h2 · 32px / 1.06 · 500 · -0.013em

    The quiet grammar of form

  • h3 · 25px / 1.15 · 500 · -0.009em

    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.01em

    Readable text sets the pace of an interface.

  • code · 14px / 1.55 · 400 · 0em

    const tokens = await load();

03

Spacing

A 4px base unit. Use the scale for padding, gaps and section rhythm.

  • 4px
  • 8px
  • 12px
  • 16px
  • 24px
  • 32px
  • 48px
  • 64px
  • 96px
  • 128px

04

Shape & surface

Mostly flat surfaces with a light shadow reserved for raised, interactive elements.

Radii

  • none

    0px

  • sm

    4px

  • md

    7px

  • lg

    11px

  • xl

    18px

  • full

    pill

Shadows & borders

shadow-sm

0 1px 2px rgb(0 0 0 / 0.05)

shadow-md

0 4px 12px -2px rgb(0 0 0 / 0.08), 0 2px 4px -2px rgb(0 0 0 / 0.04)

shadow-lg

0 18px 40px -12px rgb(0 0 0 / 0.18)

Borders: 1px hairline · Surfaces: flat

06

Layout

1176px container · 12 columns · 24px gutters

Patterns

  • Split hero: message left, supporting visual or product frame right.
  • 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.

  • fast
    110ms
  • base
    190ms
  • slow
    310ms
  • 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.

Cloudflare, 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 Cloudflare. Use your own words and images.

  • New

    Collect Vercel

    Keep the sites you like in one place and come back to them any time. Browsing stays free — no account needed.

    Vercel

    A cloud platform for building and shipping websites

  • New

    Collect Linear

    Keep the sites you like in one place and come back to them any time. Browsing stays free — no account needed.

    Linear

    Plan and build products with your team and AI agents

  • New

    Collect Unify

    Keep the sites you like in one place and come back to them any time. Browsing stays free — no account needed.

    Unify logo

    Unify

    Outbound AI agents for every sales rep