Cloudflare DNS — Design System Deep Dive
1. Brand Overview
Cloudflare DNS’s design language is utilitarian tech with a hint of playfulness. The site at https://one.one.one.one/dns/ is aimed at a broad audience — from developers who care about DNS speed and privacy to everyday users who just want a faster, safer internet connection.
The vibe: clean, high-contrast, and functional. There’s no overuse of gradients or ornamental elements. Instead, they rely on a crisp color palette and a highly legible type system to convey trust and clarity. This is a product that wants to feel fast, secure, and modern — without the intimidating complexity that DNS often carries.
The design philosophy leans on minimalism but keeps it approachable. White is the dominant background, giving a sense of openness and neutrality, while accents in bright tech blues (#0000ee) and brand-specific purples, oranges, and greens inject life. The use of Open Sans throughout reinforces clarity and legibility — it’s a workhorse font for digital products.
Navigation and component styles show restraint. Buttons are flat, relying on color changes and subtle transforms for interaction feedback. Shadows are rare — you’ll see one soft shadow (rgb(204, 204, 204) 0px 3px 4px) used sparingly. This signals a preference for a flat, content-first interface.
Breakpoints range from 375px to 1200px, showing a tightly controlled responsive strategy. This isn’t a fluid, experimental layout — it’s precise, with clearly defined steps for mobile, tablet, and desktop.
Overall, Cloudflare DNS’s brand system is about trust through clarity. Minimal ornamentation, strict palette control, and functional typography make it feel like an infrastructure product that’s accessible to non-experts. It’s a tech-first aesthetic but softened just enough to be welcoming.
2. Color System
2.1 Primary Colors
Primary is rgb(255, 255, 255) (#ffffff) — white. That’s unusual for a “primary” designation, but on this site, white is the main canvas. Interactive elements lean heavily on deep blue (#0000ee) for links and accents. This choice signals “tech” and “trust” — blue is common in internet infrastructure (think IBM, Intel, Microsoft). Compared to competitors like Google Public DNS, which use more brand-heavy colors, Cloudflare DNS keeps the main UI neutral.
Secondary is transparent (rgba(0,0,0,0)), which means secondary areas inherit context colors — there’s no fixed secondary brand color.
2.2 Complete Palette
| Color Name | Hex | Role | Usage |
|---|---|---|---|
| Deep Blue | #0000ee | Accent, link color | Links, interactive text |
| White | #ffffff | Primary background | Page backgrounds, button surfaces |
| Deep Indigo | #221e68 | Accent/dark background | Possibly hero or section backgrounds |
| Dark Gray | #414142 | Logo neutral | Cloudflare logo neutral |
| Light Purple Overlay | #413680 | Hover/focus accent | Hover/focus background for nav items |
| Brand Accent Orange | #f69259 | Accent | Brand highlight, possibly icons |
| Header Text Color | #333333 | Text | Header typography |
| Brand Accent Purple 2 | #ba77b1 | Accent | Decorative accents |
| Brand Accent Yellow | #ffdb6f | Accent | Icons, highlights |
| Button Blue | #2c7cb0 | Button | Secondary button background |
| Brand Accent Blue | #408bc9 | Accent | Links, icons |
| Accent Color | #348af0 | Accent | Primary actions |
| Input Placeholder | rgba(94,120,146,.5) | UI neutral | Placeholder text |
| Dark Green | #1c422b | Accent | Status indicators |
| Input Background | rgba(135,159,183,.15) | UI neutral | Input fields |
| Red Accent | #f16975 | Accent | Alerts, errors |
| Accent Text Blue | #0069e4 | Accent text | Links, emphasis text |
| Green Accent | #65cc9a | Accent | Success indicators |
| Background White | #ffffff | Background | Global background |
| Text Black | #000000 | Text | Body text |
| Nav Link Active BG | rgba(65,54,128,.1) | Active state | Navigation active indicator |
| Button Hover Blue | #276d9b | Hover state | Button hover |
| Mid Red Accent | #f3bac3 | Accent | Soft alert background |
| Purple Accent 1 | #8176b5 | Accent | Decorative accents |
| Mobile Section Shadow | rgba(0,0,0,.08) | Shadow | Mobile section separators |
| Border Gray | #a9a9a9 | Border | Dividers |
| Dark Red Accent | #711423 | Accent | Alerts |
| Light Green Accent | #eff8f3 | Accent background | Success backgrounds |
| Light Red Accent | #fcf0f2 | Accent background | Error backgrounds |
| Light Blue Accent | #76c4e2 | Accent background | Info backgrounds |
| Input Border Color | rgba(66,89,111,.15) | UI neutral | Input fields |
| Mid Green Accent | #b0ddc2 | Accent | Success secondary |
2.3 Color Relationships
White (#ffffff) background against deep blue (#0000ee) links gives excellent contrast (WCAG AAA). Black text (#000000) on white is perfect for readability. Accent colors like #348af0 also have strong contrast against white, but some softer accents (like #f3bac3) are more decorative and shouldn’t be used for text.
Dark backgrounds like #221e68 with white text also pass contrast easily. Transparent secondary colors mean context is king — you must ensure background contrast manually.
2.4 Usage Guide
- Use deep blue (#0000ee) for links and interactive text.
- Keep white (#ffffff) as the main background — it’s the canvas.
- Accent colors (#f69259, #ba77b1, #65cc9a, etc.) should be sparingly used for highlights or status indicators.
- Avoid using soft accent backgrounds (#f3bac3, #eff8f3) for text — they’re for context panels.
- Maintain strong contrast for accessibility; don’t overlay light text on light backgrounds without a darker backdrop.
3. Typography
3.1 Font Families
Primary font is Open Sans, with fallbacks to Helvetica and Arial. Source: Google Fonts. No Adobe or variable fonts.
3.2 Type Scale
| Element | Font | Size (px/rem) | Weight | Line Height |
|---|---|---|---|---|
| H1 | Open Sans | 40px / 2.50 | 500 | 1.40 |
| H1 | Open Sans | 36px / 2.25 | 500 | 1.00 |
| H1 | Open Sans | 30px / 1.88 | 400 | 1.40 |
| H1 | Open Sans | 26px / 1.63 | 400 | 1.20 |
| H1 | Open Sans | 25px / 1.56 | 300 | 1.40 |
| Link | Open Sans | 22px / 1.38 | 600 | 1.40 |
| Link | Open Sans | 20px / 1.25 | 300 | 1.40 |
| H1 | Open Sans | 20px / 1.25 | 300 | 1.40 |
| Button | Open Sans | 20px / 1.25 | 300 | 1.40 |
| H1 | Open Sans | 20px / 1.25 | 400 | 1.40 |
| Link | Open Sans | 20px / 1.25 | 400 | 1.40 |
| Link | Helvetica | 19px / 1.19 | 500 | 1.40 |
| H1 | Open Sans | 19px / 1.19 | 400 | 1.40 |
| Link | Open Sans | 19px / 1.19 | 400 | 1.40 |
| Button | Open Sans | 17px / 1.06 | 600 | 1.40 |
| H1 | Open Sans | 17px / 1.06 | 600 | 1.40 |
| Button | Open Sans | 16px / 1.00 | 300 | 1.40 |
| H1 | Open Sans | 16px / 1.00 | 300 | 1.40 |
| Link | Open Sans | 16px / 1.00 | 300 | 1.70 |
| H1 | Open Sans | 16px / 1.00 | 400 | 1.60 |
| Link | Open Sans | 16px / 1.00 | 400 | 1.40 |
| Caption | Open Sans | 12px / 0.75 | 400 | 1.40 |
3.3 Hierarchy
They use multiple size variants for H1, which probably adjust per breakpoint. The smallest heading is still 16px, meaning headings remain readable even on mobile. Links get special treatment with uppercase and letter spacing in some contexts (4.4px). Buttons mostly use 17px or 20px, keeping tap targets readable.
4. Spacing & Layout
4.1 Spacing Scale
8px base grid. Common values:
| px | rem | Count | Use Case |
|---|---|---|---|
| 3 | 0.19 | 3 | Tight icon spacing |
| 3.2 | 0.20 | 2 | Minor micro-adjustments |
| 4 | 0.25 | 4 | Small gaps |
| 5 | 0.31 | 4 | Button padding |
| 5.1 | 0.32 | 12 | Button padding |
| 8 | 0.50 | 3 | Small gaps |
| 10 | 0.63 | 37 | Default UI spacing |
| 12 | 0.75 | 2 | Input padding |
| 14.4 | 0.90 | 2 | Line spacing adjustments |
| 16 | 1.00 | 1 | Text block padding |
| 20 | 1.25 | 4 | Card padding |
| 25 | 1.56 | 2 | Section gaps |
| 27 | 1.69 | 2 | Section gaps |
| 40 | 2.50 | 4 | Large section padding |
| 50 | 3.13 | 2 | Hero spacing |
| 60 | 3.75 | 1 | Hero spacing |
| 80 | 5.00 | 1 | Page section |
| 100 | 6.25 | 13 | Major vertical spacing |
| 346.5 | 21.66 | 1 | Special layout element |
4.2 Layout
Breakpoints: 375px, 525px, 576px, 650px, 768px, 769px, 920px, 1080px, 1200px. That’s a lot — meaning they fine-tune layout shifts. Likely max content width around 1200px.
5. Visual Elements
Border Radius
| Value | Count | Elements | Notes |
|---|---|---|---|
| 0px | — | — | Flat edges |
| 3px | 2 | div, p | Small rounding |
| 40px | 3 | div | Large pill-like |
| 224px | 1 | button | Extreme pill |
| 50% | 3 | button | Perfect circle |
Shadows
Only one: rgb(204, 204, 204) 0px 3px 4px 0px — soft, light shadow.
Borders
Minimal. Example: 1px solid rgb(196, 215, 238) top border on section.
6. Components
6.1 Buttons
Button choice (default)
- Background: transparent
- Color: black
- Padding: 5.1px 10.2px
- Border radius: 0px
- Border: 3px solid transparent
- Hover: background
var(--selection-background-color), translate Y -1px - Active: background rgba(0,0,0,0.2), translate Y +1px
Button choice selected
- Background: black
- Color: white
- Same padding/border as above
- Hover/active similar to default
Share button
- Background: white
- Color: black
- Padding: 0
- Border radius: 50%
- Hover: adds inset shadows
6.2 Links
Three styles:
- White text, underline
- Deep blue (#0000ee), underline
- Black text, underline
No hover color changes.
6.3 Forms
No custom input data in extracted set — probably minimal styling with placeholder color rgba(94,120,146,.5), border rgba(66,89,111,.15).
7. Design Tokens
:root {
/* Colors */
--brand-accent-orange: #f69259;
--header-color: #333333;
--brand-accent-purple2: #ba77b1;
--brand-accent-yellow: #ffdb6f;
--button-color: #2c7cb0;
--brand-accent-blue: #408bc9;
--accent-color: #348af0;
--input-placeholder-color: rgba(94,120,146,.5);
--brand-accent-dark-green: #1c422b;
--input-background-color: rgba(135,159,183,.15);
--brand-accent-red: #f16975;
--accent-text-color: #0069e4;
--brand-accent-green: #65cc9a;
--bg-background-color: #ffffff;
--text-color: #000000;
--nav-link-background-color-active: rgba(65,54,128,.1);
--button-hover-color: #276d9b;
--brand-accent-mid-red: #f3bac3;
--brand-accent-purple1: #8176b5;
--mobile-content-section-shadow-color: rgba(0,0,0,.08);
--border-color: #a9a9a9;
--brand-accent-dark-red: #711423;
--brand-accent-light-green: #eff8f3;
--brand-accent-light-red: #fcf0f2;
--brand-accent-light-blue: #76c4e2;
--input-border-color: rgba(66,89,111,.15);
--brand-accent-mid-green: #b0ddc2;
/* Typography */
--font-primary: 'Open Sans', Helvetica, Arial;
/* Spacing */
--space-3: 3px;
--space-3_2: 3.2px;
--space-4: 4px;
--space-5: 5px;
--space-5_1: 5.1px;
--space-8: 8px;
--space-10: 10px;
--space-12: 12px;
--space-14_4: 14.4px;
--space-16: 16px;
--space-20: 20px;
--space-25: 25px;
--space-27: 27px;
--space-40: 40px;
--space-50: 50px;
--space-60: 60px;
--space-80: 80px;
--space-100: 100px;
--space-346_5: 346.5px;
/* Radius */
--radius-sm: 3px;
--radius-lg: 40px;
--radius-pill: 224px;
--radius-full: 50%;
/* Shadows */
--shadow-soft: rgb(204, 204, 204) 0px 3px 4px 0px;
}8. AI Coding Assistant Prompt
# Cloudflare DNS Design System Specification
System Prompt:
You are a Cloudflare DNS design expert. Build UIs matching their visual language exactly.
Brand Context:
Cloudflare DNS values clarity, speed, and trust. The design is minimal, flat, and highly legible, with a restrained palette and functional typography. Components are precise and responsive, avoiding unnecessary decoration.
Color Palette:
- Deep Blue: #0000ee — Links, interactive text
- White: #ffffff — Backgrounds, button surfaces
- Deep Indigo: #221e68 — Section backgrounds
- Dark Gray: #414142 — Logo neutral
- Light Purple Overlay: #413680 — Hover/focus backgrounds
- Brand Accent Orange: #f69259 — Highlights, icons
- Header Text: #333333 — Headings
- Brand Accent Purple2: #ba77b1 — Decorative accents
- Brand Accent Yellow: #ffdb6f — Icons, highlights
- Button Blue: #2c7cb0 — Secondary buttons
- Brand Accent Blue: #408bc9 — Links, icons
- Accent Blue: #348af0 — Primary actions
- Placeholder: rgba(94,120,146,.5) — Input placeholder
- Dark Green: #1c422b — Status indicators
- Input Background: rgba(135,159,183,.15) — Input fields
- Red Accent: #f16975 — Errors
- Accent Text Blue: #0069e4 — Emphasis text
- Green Accent: #65cc9a — Success
- Nav Active BG: rgba(65,54,128,.1) — Active nav item
- Button Hover Blue: #276d9b — Button hover
- Mid Red Accent: #f3bac3 — Soft alert background
- Purple Accent1: #8176b5 — Decorative accents
- Mobile Section Shadow: rgba(0,0,0,.08) — Section separators
- Border Gray: #a9a9a9 — Dividers
- Dark Red Accent: #711423 — Alerts
- Light Green Accent: #eff8f3 — Success backgrounds
- Light Red Accent: #fcf0f2 — Error backgrounds
- Light Blue Accent: #76c4e2 — Info backgrounds
- Input Border: rgba(66,89,111,.15) — Input borders
- Mid Green Accent: #b0ddc2 — Success secondary
Typography:
Font Family: 'Open Sans', Helvetica, Arial — from Google Fonts
Sizes & Weights:
| Element | Size | Weight | Line Height | Use Case |
| H1 | 40px | 500 | 1.4 | Page titles |
| H1 | 36px | 500 | 1.0 | Hero titles |
| H1 | 30px | 400 | 1.4 | Section headings |
| ... (include all from table above) ...
Spacing & Grid:
Base: 8px grid
Tokens: 3px, 3.2px, 4px, 5px, 5.1px, 8px, 10px, 12px, 14.4px, 16px, 20px, 25px, 27px, 40px, 50px, 60px, 80px, 100px, 346.5px
Use: Button padding (5.1px), card padding (20px), section gaps (25px+)
Border Radius:
- none: 0 — nav links
- sm: 3px — inputs
- lg: 40px — pill-like divs
- pill: 224px — extreme pill buttons
- full: 50% — circular buttons
Shadows & Depth:
Soft shadow: rgb(204, 204, 204) 0px 3px 4px — used sparingly
Otherwise flat design — rely on borders
Component Specifications:
Primary Button:
Default: background transparent, color #000000, padding 5.1px 10.2px, border-radius 0px, border 3px solid transparent
Hover: background var(--selection-background-color), transform translateY(-1px)
Active: background rgba(0,0,0,0.2), transform translateY(1px)
Focus: outline none
Secondary Button:
Default: background #000000, color #ffffff, same padding/border
Hover/Active: same as primary
Share Button:
Background #ffffff, color #000000, padding 0, border-radius 50%
Hover: inset shadows
Links:
White / deep blue / black text, underline, no hover change
Input Fields:
Background rgba(135,159,183,.15)
Border rgba(66,89,111,.15)
Placeholder rgba(94,120,146,.5)
Layout & Responsive Rules:
Max width: 1200px
Breakpoints: 375px, 525px, 576px, 650px, 768px, 769px, 920px, 1080px, 1200px
Interaction Rules:
Transitions: 150ms ease for state changes
Focus: outline none for buttons, rely on background change
Hover: slight translateY for buttons
DO:
- Use exact hex values from palette
- Maintain 8px grid
- Keep buttons flat — no heavy shadows
- Use Open Sans everywhere
- Ensure WCAG AA contrast
DON'T:
- Invent new colors
- Mix rounded and square corners inconsistently
- Use gradients
- Apply drop shadows to text
Code Examples:
```css
.btn-primary {
background: transparent;
color: #000000;
padding: 5.1px 10.2px;
border-radius: 0;
border: 3px solid transparent;
font-weight: 600;
font-size: 17px;
transition: background 150ms ease, transform 150ms ease;
}
.btn-primary:hover {
background: var(--selection-background-color);
transform: translateY(-1px);
}
.btn-primary:active {
background: rgba(0,0,0,0.2);
transform: translateY(1px);
}
.card {
background: #ffffff;
border-radius: 3px;
padding: 20px;
box-shadow: var(--shadow-soft);
}
.input {
border: 1px solid rgba(66,89,111,.15);
border-radius: 3px;
padding: 12px;
font-size: 16px;
background: rgba(135,159,183,.15);
}
.input::placeholder {
color: rgba(94,120,146,.5);
}
```9. Summary
TL;DR — Cloudflare DNS’s design system is flat, precise, and color-controlled. White dominates, blue signals interaction, and Open Sans keeps everything readable. The 8px grid and strict breakpoints make it predictable for developers.
Brand Keywords:
- tech-minimalist
- high-contrast
- trust-first
- flat-interface
- developer-friendly