Vodafone Inspired Design System
Vodafone Red #e60000 on every CTA, uppercase Vodafone sans at weight 800 and photo hero bands over white, as tokens for React, Next.js and AI tools.
- Primary color
- #e60000
- Typeface
- Vodafone
- Shape
- Soft
- Base radius
- 6px
- Colors
- 8
- Type tokens
- 17
- Components
- 26
- Spacing values
- 8
About Vodafone Inspired DESIGN.md
Curated by Dov Azencot, updated May 12, 2026. Source vodafone.com (opens in a new tab).
Vodafone's design system reads like a campaign poster more than a corporate website. The brand operates from a single voltage of scarlet red (#e60000) paired with near-black ink (#25282b), and trusts its proprietary display sans set at weight 800 in upper case to do the heavy lifting at hero scale. Editorial photography crops portraits and city scenes tight, then a single colossal stencil headline floats on top at 144px with -1px tracking. There is no second accent colour competing for attention, no decorative gradient, no soft drop shadow on cards. The depth cue is surface contrast between dark hero bands and light content bands.
This page packages that posture into a single DESIGN.md file built to the Google Labs spec. Inside: 8 colour tokens covering primary red, three ink/text greys, two surface tints, and on-dark white; 17 typography roles all drawing from the one custom Vodafone face at weights 300, 400, 600, 700, and 800; 8 spacing tokens on a 4px base; 6 radius tokens running from 0px through pill-lg at 60px; and 30+ components covering buttons, cards, the signature hero bands, the red speechmark logo orb, navigation, footer, and an example surface kit for downstream re-skinning.
Feed the file to Claude, Cursor, or GitHub Copilot and the agent will reproduce Vodafone's restraint — the red pill, the uppercase 800-weight hero, the two-band rhythm — rather than emit a generic telco theme. Or reference the tokens directly in Tailwind config and CSS variables. The system is worth studying for one reason: it shows how a brand can run a global web surface on three colours, one font, and zero shadow tiers, and still feel like a billboard. Restraint is the product.
What makes it distinct
5 highlights
- Single accent voltageVodafone Red #e60000 carries every primary CTA, the speechmark logo orb, and zero secondary use
- Weight 800 uppercase display at 144px with -1px trackingThe stencil hero is the brand's typographic signature
- Two-band page rhythmInk #25282b hero into white #ffffff content, with no mid-band greys for elevation
- Pill geometry on every interactive60px CTA pills are non-negotiable, square buttons do not exist in the system
- No drop shadowsDepth comes entirely from surface polarity flip between ink and canvas bands
Live at vodafone.com
Vodafone in production, as captured. Scroll the window to see the whole page.

8 colors
Vodafone's system runs on #e60000 as its primary voltage, used in 5 of 26 components. Type is set in Vodafone across 17 tokens from 12px to 144px, weights 300–800. Shape language is soft — components average 17px corner radius, with no sharp interactive edges.
Brand & Accent
Sparing, CTA-only voltage · 1
Surface
Page and card backgrounds · 2
Text
Headlines, body, captions · 4
Other
Specialty colors · 1
17 type tokens
Set in Vodafone across 17 tokens, from 12px to 144px, weights 300–800. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.
- display-hero144px · weight 800 · lh 114px · tracking -1pxThe quick brown fox jumps over the lazy dog
- display-xxl126px · weight 800 · lh 113px · tracking -1pxThe quick brown fox jumps over the lazy dog
- display-xl90px · weight 800 · lh 84pxThe quick brown fox jumps over the lazy dog
- display-lg48px · weight 300 · lh 52pxThe quick brown fox jumps over the lazy dog
- display-md40px · weight 300 · lh 44pxThe quick brown fox jumps over the lazy dog
- display-sm32px · weight 700 · lh 40pxThe quick brown fox jumps over the lazy dog
- display-xs24px · weight 700 · lh 24pxThe quick brown fox jumps over the lazy dog
- eyebrow-uppercase16px · weight 800 · lh 24pxThe quick brown fox jumps over the lazy dog
- body-lg22px · weight 400 · lh 24pxThe quick brown fox jumps over the lazy dog
- body-md18px · weight 400 · lh 28pxThe quick brown fox jumps over the lazy dog
- body-md-strong18px · weight 600 · lh 28pxThe quick brown fox jumps over the lazy dog
- body-sm16px · weight 400 · lh 20pxThe quick brown fox jumps over the lazy dog
- body-sm-strong16px · weight 700 · lh 22pxThe quick brown fox jumps over the lazy dog
- caption14px · weight 400 · lh 16pxThe quick brown fox jumps over the lazy dog
- caption-strong14px · weight 700 · lh 21pxThe quick brown fox jumps over the lazy dog
- caption-uppercase12px · weight 600 · lh 16px · tracking 0.5691pxThe quick brown fox jumps over the lazy dog
- button-md18px · weight 400 · lh 28pxThe quick brown fox jumps over the lazy dog
Radii and spacing
7 corner radii and 8 spacing values. Shape language: soft, on a 6px base radius.
Radii7
- none0px
- xs1px
- sm6px
- card6px
- pill-md32px
- pill-lg60px
- full9999px
Spacing8
- xxs2px
- xs4px
- sm8px
- md12px
- lg16px
- xl20px
- 2xl24px
- 3xl32px
26 components
Each rendered from its tokens (color, type, radius, padding) on Vodafone's own canvas.
- Nav BarNav Barnav-bar
- Nav LinkNav Linknav-link
- Button PrimaryButton Primarybutton-primary
- Button Outline RedButton Outline Redbutton-outline-red
- Button Outline DarkButton Outline Darkbutton-outline-dark
- Button Icon Circularbutton-icon-circular
- Type here…Text Inputtext-input
- Badge ChipBadge Chipbadge-chip
- Card ContentCard Contentcard-content
- Card HeroCard Herocard-hero
- Hero Band DarkHero Band Darkhero-band-dark
- Hero Band RedHero Band Redhero-band-red
- Content Band LightContent Band Lightcontent-band-light
- Speechmark Logo OrbSpeechmark Logo Orbspeechmark-logo-orb
- Divider On DarkDivider On Darkdivider-on-dark
- FooterFooterfooter
- Ex Pricing TierEx Pricing Tierex-pricing-tier
- Ex Pricing Tier FeaturedEx Pricing Tier Featuredex-pricing-tier-featured
- Ex Product SelectorEx Product Selectorex-product-selector
- Ex Cart DrawerEx Cart Drawerex-cart-drawer
- Ex App Shell RowEx App Shell Rowex-app-shell-row
- Ex Data Table CellEx Data Table Cellex-data-table-cell
- Ex Auth Form CardEx Auth Form Cardex-auth-form-card
- Ex Modal CardEx Modal Cardex-modal-card
- Ex Empty State CardEx Empty State Cardex-empty-state-card
- Ex ToastEx Toastex-toast
The system, in use
Vodafone's tokens on the kind of product it builds.
Stay close to the people who matter
Share moments, start conversations and find your communities, on any device.
Vodafone design system FAQ
Vodafone's tokens, its components and how to use this DESIGN.md in your project.
What are the color tokens in the Vodafone DESIGN.md?
What is Vodafone's primary color hex code?
How do I use Vodafone's colors in Tailwind CSS?
What is Vodafone's primary brand color?
Does Vodafone's design system have a dark mode?
What fonts does Vodafone use?
What is Vodafone's type scale?
What can I use if I don't have Vodafone's font?
What typography does Vodafone use, and what should I use if the custom font isn't available?
Which components does the Vodafone DESIGN.md define?
What corner radius and spacing does Vodafone use?
Why does Vodafone use pill-shaped buttons everywhere?
How do I apply the Vodafone design system to a shadcn/ui project?
How do I use the Vodafone DESIGN.md with Claude Code or Cursor?
Is the Vodafone DESIGN.md free to download?
How was the Vodafone DESIGN.md made?
Is the Vodafone DESIGN.md official?
Can I use this DESIGN.md to build my own React landing page in the Vodafone design system?
What's missing from this DESIGN.md spec in the Vodafone design system?
Related reading
Specs, directories and component libraries that pair with this design system.
Use Vodafone Inspired in your project
One machine-readable file. Drop it into Claude Code, Cursor, VS Code or any AI tool that reads DESIGN.md.
Download the DESIGN.md
One machine-readable file: every color, type, radius, spacing, and component token of Vodafone Inspired.
Feed it to your AI tool
Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match Vodafone Inspired's visual language.
Reference the tokens directly
Or paste the values into your Tailwind config, CSS variables, or component library: every color, size and radius is a quoted, ready-to-copy value.
Read the full DESIGN.md overview, rationale, do’s and don’ts
Overview
Vodafone is a global telecom super-brand and its web surface delivers exactly that posture: heroic editorial photography, occasionally cropping a portrait so tight only an eye line and a phone hand are visible, with a single colossal uppercase headline floating on top in the brand's proprietary heavy display weight. The page reads like a campaign poster more than a corporate site, then breaks into a calmer content rhythm of light-canvas story cards and a single red marker (the iconic speechmark logo) drawing the eye to the brand's centre of gravity. There is no second accent colour competing — the entire decorative palette is {colors.primary} Vodafone red (#e60000), near-black {colors.ink} (#25282b), and the surrounding white and grayscale neutrals.
Type is the second decisive voice. Vodafone's custom display sans (extracted as Vodafone) carries every headline at impossibly heavy weight 800 in upper case for hero scale ({typography.display-hero} 144 px, {typography.display-xxl} 126 px) and at lighter weight 300 for the sub-displays that follow. Body text stays in the same family at weight 400 with neutral tracking. The contrast between display weight 800 and display weight 300 IS the brand's typographic story: a shout, then a calm sentence.
Every interactive CTA renders as a generously rounded pill ({rounded.pill-lg} 60 px) — Vodafone has never used a square button on its marketing surface in years, and the brand's pill scale ladder runs from 32 px (badge pills) through 60 px (CTA pills) up to 9999 px (icon circular containers). Cards stay gentler at {rounded.card} 6 px.
Key Characteristics:
- A single primary CTA color
{colors.primary}(#e60000) — Vodafone Red. Pill-filled for primary, pill-outline for secondary. No third button variant. - Massive uppercase display weight 800 (
{typography.display-hero}and siblings) is the brand's signature. The 300-weight headline siblings ({typography.display-lg}/{typography.display-md}) handle calmer secondary moments. - The
speechmark-logo-orb— a red square hosting Vodafone's quotation-mark icon — is the only piece of decorative chrome that's not a CTA. It anchors the brand's centre of every page. - Pill geometry on every interactive shape —
{rounded.pill-lg}60 px for buttons,{rounded.pill-md}32 px for inline badges. Card chrome stays at{rounded.card}6 px. - A two-band page rhythm —
{colors.ink}(#25282b) dark hero /{colors.canvas}(#ffffff) light content. No mid-band greys; the brand uses surface contrast, not soft neutrals, for elevation. - Editorial photography (real portraits, real cities, real cabling) is the only consistent decorative system — no illustration, no atmospheric gradients.
Colors
Brand & Accent
- Vodafone Red (
{colors.primary}—#e60000): The single brand accent. Every primary CTA pill, every speechmark logo, every conversion target. The most iconic red in telecom — never desaturated, never used at scale for body fills (reserved for high-attention surfaces).
Surface
- Canvas (
{colors.canvas}—#ffffff): The default light content background. - Canvas Soft (
{colors.canvas-soft}—#f2f2f2): A near-white tint used as the badge-chip background. - Ink (
{colors.ink}—#25282b): The brand's near-black surface — used as the dark hero band, the nav background, and the footer fill. Doubles as the primary text color on light surfaces.
Text
- Ink (
{colors.ink}—#25282b): Every heading and body paragraph on light surfaces. - Body (
{colors.body}—#7e7e7e): Secondary body text on light surfaces — captions, metadata, supporting copy. - Mute (
{colors.mute}—#bebebe): The lowest-priority text color — placeholder text, low-key footer links. - On Dark (
{colors.on-dark}—#ffffff): All text on{colors.ink}surfaces (hero, footer, nav).
Semantic
The brand does not maintain a separate semantic palette. The primary red #e60000 doubles as validation / destructive signal when needed; success / warning use are reserved for in-product contexts and are not part of the documented marketing system.
Typography
Font Family
A single custom face carries the entire system: Vodafone, the brand's proprietary display sans. The face spans weights 300 (light), 400 (regular), 600, 700, and 800 — every role in the system pulls from this one family. There is no mono companion; technical labels (rare on the marketing surface) borrow the same face at smaller sizes.
The icomoon icon-font is loaded for proprietary glyphs but does not render as a typographic role.
Hierarchy
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
{typography.display-hero} | 144px | 800 | 114px | -1px | The hero stencil ("STAY CONNECTED") — uppercase, ultra-tight tracking, brand's signature size. |
{typography.display-xxl} | 126px | 800 | 113px | -1px | Slightly smaller hero variant. |
{typography.display-xl} | 90px | 800 | 84px | 0 | Mid-hero scale. |
{typography.display-lg} | 48px | 300 | 52px | 0 | Section-headline sub-display in the lighter weight. |
{typography.display-md} | 40px | 300 | 44px | 0 | Sub-section displays. |
{typography.display-sm} | 32px | 700 | 40px | 0 | Card headings, story-card titles. |
{typography.display-xs} | 24px | 700 | 24px | 0 | Inline display micro-headings. |
{typography.eyebrow-uppercase} | 16px | 800 | 24px | 0 | Uppercase eyebrow tags above section headlines. |
{typography.body-lg} | 22px | 400 | 24px | 0 | Lead body paragraphs. |
{typography.body-md} | 18px | 400 | 28px | 0 | Default paragraph body. |
{typography.body-md-strong} | 18px | 600 | 28px | 0 | Bolded inline body. |
{typography.body-sm} | 16px | 400 | 20px | 0 | Secondary body. |
{typography.body-sm-strong} | 16px | 700 | 22px | 0 | Bolded short body. |
{typography.caption} | 14px | 400 | 16px | 0 | Captions, fine print. |
{typography.caption-strong} | 14px | 700 | 21px | 0 | Bold captions, badge labels. |
{typography.caption-uppercase} | 12px | 600 | 16px | 0.57px | Uppercase metadata, footer eyebrows. |
{typography.button-md} | 18px | 400 | 28px | 0 | Default button label. |
Principles
- Weight 800 + uppercase = hero voice. This is the entire reason the brand reads as a billboard rather than a tech site.
- Weight 300 = the calmer secondary voice. Used at 40 – 48 px for sub-displays; never below 24 px to keep legibility.
- Single family throughout. The brand never mixes a serif or a mono into the typographic system. Consistency is the calm.
- Tracking stays tight at display sizes.
-1pxat 144 px is the brand's calibration; reverting to neutral tracking softens the stencil look.
Note on Font Substitutes
The Vodafone display sans is proprietary. Open-source substitutes:
- Display sans — Inter weight 800 at hero scale with
letter-spacing: -1pxis the closest free match. Geist weight 700–800 is the second-best. - Lighter display weight (300) — Inter weight 300 holds its line-height well at 48 px display sizes.
Layout
Spacing System
- Base unit: 4 px (mostly multiples of 4; a few 5/7 px appear inside icon-padding compensation).
- Tokens:
{spacing.xxs}2 px ·{spacing.xs}4 px ·{spacing.sm}8 px ·{spacing.md}12 px ·{spacing.lg}16 px ·{spacing.xl}20 px ·{spacing.2xl}24 px ·{spacing.3xl}32 px. - Section padding: hero bands and content bands use
{spacing.3xl}32 px gutters; vertical spacing inside hero is fluid (fill-the-band). - Card interior padding: story cards use
{spacing.lg}16 px around image + headline. - Inline gap: button rows and chip rows use
{spacing.md}12 px between siblings.
Grid & Container
- Marketing content uses a wide container (effectively edge-to-edge with
{spacing.3xl}gutters on desktop, shrinking on mobile). - Story-card grids: 2-up at desktop, 1-up at mobile.
- Hero photography fills the viewport; the headline overlays at the top-left.
Whitespace Philosophy
The hero's massive display headline owns the whole top of the page; whitespace below is generous to let the second band breathe. Inside content cards, headline and copy hug close ({spacing.sm} 8 px gap), then a wider gap ({spacing.3xl}) before the next card. The footer band is dark and dense.
Responsive Strategy
Breakpoints
| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 600px | Hero display scales down to ~64 px; story-card grid drops to 1-up; nav collapses to hamburger. |
| Tablet | 600–1023px | Story-card grid 2-up; display headlines drop to 90 – 110 px. |
| Desktop | 1024–1399px | Full display headline at 126 – 144 px; 2-up story grid. |
| Ultra-wide | ≥ 1400px | Container caps at ~1400 px; bands stay edge-to-edge in colour. |
Touch Targets
The button-primary pill renders at ~52 px tall (12 px vertical padding + 28 px line-height). All buttons comfortably meet WCAG AAA at every breakpoint.
Collapsing Strategy
- Nav: full link row at desktop. Collapses to a hamburger menu at mobile; the menu opens as a dark overlay with the same link list stacked.
- Hero: the massive display headline scales fluidly. At mobile, the photography crop tightens to the figure's face only.
- Story-card grid: 2-up → 1-up at the breakpoint above.
- Speechmark logo orb: stays at consistent size relative to surrounding content; never shrinks below ~48 px.
Image Behavior
- Hero photography: full-bleed 16:9 or 4:3 portraits at desktop; tighter crops at mobile.
- Story-card thumbnails: 16:9 landscape inside
{rounded.card}6 px chrome. - Speechmark orb: always rendered as the red SVG quote-mark icon, never substituted.
- Logo bar (if present on partner pages): monochrome SVGs at consistent height.
Elevation & Depth
| Level | Treatment | Use |
|---|---|---|
| Level 0 — Flat | No shadow, no border. | Default for most cards and panels — surface contrast does the elevation work. |
| Level 1 — Hairline | 1 px solid {colors.ink} (#25282b) border. | Form inputs, the divider-on-dark between footer columns. |
| Level 2 — Border on Dark | 1 px solid {colors.on-dark} (#ffffff) border on {colors.ink} surfaces. | Outline buttons sitting on the dark hero band. |
The brand does not use soft drop shadows; depth comes from polarity-flip between {colors.ink} (#25282b) and {colors.canvas} (#ffffff) bands.
Decorative Depth
- Editorial photography: the hero photo (real-person portrait or environment shot) is the brand's only true atmospheric effect.
- Speechmark logo orb as visual anchor: the red orb hosting the quote-mark icon acts as a single point of focal-depth in the centre of the otherwise-flat content rhythm.
Shapes
Border Radius Scale
| Token | Value | Use |
|---|---|---|
{rounded.none} | 0px | Full-bleed hero bands, footer, banner strips. |
{rounded.xs} | 1px | Tightest inline indicator (rarely used). |
{rounded.sm} | 6px | The brand's canonical content radius — applied to images and inputs. |
{rounded.card} | 6px | Card chrome and image frames (alias for sm). |
{rounded.pill-md} | 32px | Badge / chip pills. |
{rounded.pill-lg} | 60px | The brand's signature CTA pill — every primary and secondary button. |
{rounded.full} | 9999px | Circular icon containers (e.g., video play/pause). |
Photography Geometry
- Hero portraits: edge-to-edge 16:9 or 4:3 with no internal frame.
- Story-card thumbnails: 16:9 landscape inside
{rounded.card}chrome. - Speechmark logo orb: square with
{rounded.sm}corners (visually a tilted-square mark; the SVG mark itself fills the orb).
Components
Buttons
button-primary — the red pill CTA, brand's primary conversion target.
- Background
{colors.primary}(#e60000), text{colors.on-primary}(#ffffff), 1 px solid{colors.primary}border, label set in{typography.button-md}, padding{spacing.md} {spacing.2xl}, shape{rounded.pill-lg}60 px.
button-outline-red — the secondary pill, red-text-on-white with red border.
- Background
{colors.canvas}(#ffffff), text{colors.primary}(#e60000), 1 px solid{colors.primary}border, same label / padding / shape asbutton-primary.
button-outline-dark — the tertiary pill, ink-text-on-white with ink border.
- Background
{colors.canvas}(#ffffff), text{colors.ink}(#25282b), 1 px solid{colors.ink}border, same label / padding / shape.
button-icon-circular — the round white icon button (video play / pause / chevron).
- Background
{colors.canvas}(#ffffff), ink icon, 1 px solid{colors.canvas}outline (effectively borderless), shape{rounded.full}.
Cards & Containers
card-content — the default story-card chrome.
- Background
{colors.canvas}(#ffffff), text{colors.ink}(#25282b), padding{spacing.lg}, shape{rounded.card}6 px. Hosts a 16:9 thumbnail at the top + headline + caption.
card-hero — the slightly larger card variant used as the lead story.
- Same chrome as
card-contentbut headline scales to{typography.display-sm}.
Inputs & Forms
text-input — the canonical text input.
- Background
{colors.canvas}(#ffffff), text{colors.ink}(#25282b), 1 px solid{colors.ink}border, body in{typography.body-sm}, padding{spacing.md} {spacing.lg}, shape{rounded.sm}6 px.
Navigation
nav-bar — the dark top nav, fixed to the page top.
- Background
{colors.ink}(#25282b), text{colors.on-dark}(#ffffff), padding{spacing.lg} {spacing.3xl}. Layout: logo left, link row right with login / search affordances.
nav-link — the link items inside nav-bar.
- Text
{colors.on-dark}(#ffffff), set in{typography.body-sm}.
footer — the dark footer band.
- Background
{colors.ink}(#25282b), text{colors.on-dark}(#ffffff), padding{spacing.3xl} {spacing.3xl}. Body in{typography.body-sm}; column eyebrows in{typography.caption-uppercase}.
Signature Components
hero-band-dark — the dark navy/ink hero band hosting the massive display headline.
- Background
{colors.ink}(#25282b) with full-bleed editorial photography overlay at reduced opacity; text{colors.on-dark}(#ffffff); padding{spacing.3xl} {spacing.3xl}. Headline in{typography.display-hero}(uppercase, weight 800).
hero-band-red — the rare full-bleed red hero used on signature campaigns.
- Background
{colors.primary}(#e60000), text{colors.on-primary}(#ffffff), padding{spacing.3xl} {spacing.3xl}. Headline in{typography.display-xl}.
content-band-light — the white content band that follows every hero.
- Background
{colors.canvas}(#ffffff), text{colors.ink}(#25282b), padding{spacing.3xl} {spacing.3xl}. Section headline in{typography.display-md}or{typography.display-lg}(weight 300).
speechmark-logo-orb — the red square hosting Vodafone's quotation-mark icon. The brand's visual anchor.
- Background
{colors.primary}(#e60000), white icon glyph, shape{rounded.sm}. Acts as a focal element between content bands, often near the centre of long pages.
badge-chip — the inline metadata pill used for category tags inside story cards.
- Background
{colors.canvas-soft}(#f2f2f2), text{colors.ink}(#25282b), label in{typography.caption-strong}, padding{spacing.xs} {spacing.md}, shape{rounded.pill-md}32 px.
divider-on-dark — the 1 px hairline used between sections / columns on dark surfaces.
- 1 px solid
{colors.on-dark}(#ffffff, often at 25 % opacity at the component level).
Examples (illustrative)
Auto-derived kit-mirror demonstration surfaces (
scripts/derive-examples-block.mjs). Eachex-*entry references brand-native primitives so downstream consumers (/preview-design,/generate-kit) re-skin the same 10 surfaces consistently.
ex-pricing-tier — Default pricing tier card. Re-uses card-content chrome with brand canvas-soft surface.
- Properties:
backgroundColor,textColor,borderColor,rounded,padding
ex-pricing-tier-featured — Featured tier — polarity-flipped to ink (#25282b) fill + white text.
- Properties:
backgroundColor,textColor,rounded,padding
ex-product-selector — Tariff-tier picker — re-purposed as the brand's plan selector with badge-chip chips inside the frame.
- Properties:
backgroundColor,rounded,padding
ex-cart-drawer — Subscription summary — line items per tariff add-on, light hairline dividers.
- Properties:
backgroundColor,rounded,padding,item-divider
ex-app-shell-row — Sidebar nav row. Active state uses brand primary (#e60000) as the left-edge indicator bar.
- Properties:
backgroundColor,activeIndicator,rounded,padding
ex-data-table-cell — Default data-table th + td chrome. Header uses caption-uppercase eyebrow typography; body uses body-sm.
- Properties:
headerBackground,headerTypography,bodyTypography,cellPadding,rowBorder
ex-auth-form-card — Sign-in / sign-up card. Re-uses card-content chrome with text-input primitives inside.
- Properties:
backgroundColor,rounded,padding
ex-modal-card — Modal dialog surface — same chrome as card-content; brand uses scrim, not card shadow.
- Properties:
backgroundColor,rounded,padding
ex-empty-state-card — Empty-state illustration frame on canvas-soft (#f2f2f2) with generous interior padding.
- Properties:
backgroundColor,rounded,padding,captionTypography
ex-toast — Toast notification surface — card-content shape with caption-strong body.
- Properties:
backgroundColor,rounded,padding,typography
Do's and Don'ts
Do
- Reserve
{colors.primary}Vodafone Red (#e60000) for primary CTAs and thespeechmark-logo-orb. Every conversion target uses the red pill. - Set hero headlines in
{typography.display-hero}weight 800 UPPERCASE with tight-1pxtracking. That stencil look IS the brand voice. - Use
{rounded.pill-lg}60 px on every interactive pill. The brand never uses square corners on CTAs. - Cycle page surfaces in
{colors.ink}(#25282b) dark hero →{colors.canvas}(#ffffff) light content →{colors.ink}footer. Surface contrast is the depth cue. - Pair editorial portrait photography with the massive display headline overlay — that combination IS the brand's signature.
- Render the speechmark logo orb at consistent size relative to surrounding content — it's the brand's centre of gravity on every page.
Don't
- Don't introduce a second accent colour. The brand operates with red + ink + grayscale only.
- Don't render headlines in sentence case at hero scale. Hero display IS uppercase weight 800.
- Don't render the primary CTA as a square rectangle. The 60 px pill is non-negotiable.
- Don't drop a soft drop-shadow on cards. The brand relies on surface-colour contrast, not shadow.
- Don't substitute the speechmark logo orb with a wordmark or a different shape. The orb is the iconic mark.
- Don't pair the weight 800 display face with letter-spacing 0 at 144 px — the
-1pxtracking is part of the brand's calibration.
Known Gaps
- Motion / transition system: the brand uses brief easings on CTA hover and image reveals, but the precise timing functions and durations are not captured in the spec.
- Semantic palette beyond primary: the documented marketing system reuses primary red
#e60000for destructive signals and does not maintain success or warning tokens; full in-product semantic colours are not included. - Icomoon glyph set: the proprietary icon font is loaded across the brand surfaces but the individual glyph names and codepoints are not extracted here.
- In-product surfaces: account dashboards, billing flows, and self-service portals operate under separate tokens (typography overrides, denser table chrome) not represented in this marketing-surface spec.
- Photography art direction: the editorial portrait crops (figure-only, eye-line, hand-and-phone) are stylistically distinctive but the specific framing rules and grading recipe live in a separate brand guideline not included in DESIGN.md.
More systems like this
Discord, Intercom, Loom and 11 more in Communication & Messaging: each brand's colors, type and components in one file your AI agent builds from.
Build it with Pro
The DESIGN.md files are free. Pro adds 6,000+ blocks, premium templates and the MCP server, so your AI editor builds in your system for you.
4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.
Billing
Billed once a year in USD. Cancel anytime.
- How many people can use the license.
- Client work, SaaS products and anything you charge for.
- Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.
- Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.
- Your AI agent searches, previews and installs any component, block, icon or DESIGN.md from a prompt: 22 tools in Claude Code, Cursor, VS Code and 35 more clients.
- Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.
- Typewriters, scrambles, counters and more, for headlines, labels and numbers.
- Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.
- WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.
- One design and one theme on all four: the components, blocks and effects are built for each framework.
- React on Base UI, Radix UI, React Aria or Ark UI: install the version for the library your project already uses. Vue, Svelte and Solid run on Ark UI.
- From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.
- Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.
- Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.
- Debounce, local storage, media queries and more: each hook is one typed file you own.
- From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.
- Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.
- Restyle every component and block at once: 8 styles, 7 grays, 18 colors and 5 radii, shared as a shadcn preset code.
- Priority requests are answered first.
Individual
For personal projects & open source
$32instead of $49/mo
$389 billed yearly
- Seats: 1 seat
- Commercial use: Personal & open source only
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Standard
Team
Most popularFor freelancers, agencies & startups
$66instead of $99/mo
$789 billed yearly · ≈ $13/dev/mo
- Seats: Up to 5 seats
- Commercial use: Included
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Priority
Organization
For companies with larger teams
$132instead of $199/mo
$1,589 billed yearly
- Seats: Unlimited seats
- Commercial use: Included
- Blocks: All 6,181 blocks
- Templates: All 14 templates
- MCP server: 38 AI clients
- Animated buttons: All 35 buttons
- Text effects: All 97 effects
- Backgrounds: All 100 backgrounds
- Shaders: All 100 shaders
- Frameworks: React, Vue, Svelte, Solid
- UI libraries: Base UI, Radix, Aria, Ark
- Components: All 174 components
- Examples: All 1,103 examples
- Charts: All 70 charts
- React hooks: All 35 hooks
- Icons: 294k+ icons
- DESIGN.md files: All 500 brands
- Theme builder: 8 styles × 18 colors
- Support: Priority
Billed once a year in USD. Cancel anytime.
Individual
For personal projects & open source
$32instead of $49/mo
$389 billed yearly
- How many people can use the license.Seats: 1 seat
- Client work, SaaS products and anything you charge for.Commercial use: Personal & open source only
- Page sections in 56 categories, from heroes and pricing tables to dashboards and settings, on every framework and UI library, in your theme.Blocks: All 6,181 blocks
- Complete Next.js sites for startups, SaaS, agencies and portfolios, every page designed, ready to ship.Templates: All 14 templates
- Your AI agent searches, previews and installs any component, block, icon or DESIGN.md from a prompt: 22 tools in Claude Code, Cursor, VS Code and 35 more clients.MCP server: 38 AI clients
- Buttons with motion and states of their own, from an arrow that slides in to a burst of confetti.Animated buttons: All 35 buttons
- Typewriters, scrambles, counters and more, for headlines, labels and numbers.Text effects: All 97 effects
- Animated backgrounds for heroes, sections and cards, from a soft aurora to a flock that flees the cursor. Most are pure CSS.Backgrounds: All 100 backgrounds
- WebGPU shaders, from a slow aurora to a black hole, each drawing only while it's on screen.Shaders: All 100 shaders
- One design and one theme on all four: the components, blocks and effects are built for each framework.Frameworks: React, Vue, Svelte, Solid
- React on Base UI, Radix UI, React Aria or Ark UI: install the version for the library your project already uses. Vue, Svelte and Solid run on Ark UI.UI libraries: Base UI, Radix, Aria, Ark
- From a button to a date picker, a color picker or a guided tour: accessible, typed in TypeScript, each with live demos.Components: All 174 components
- Real-world patterns built from the components, in 53 galleries: forms, tables, menus, dialogs and more.Examples: All 1,103 examples
- Area, bar, line, pie, radar and radial charts on TanStack Charts, on every framework. React also gets the Recharts originals.Charts: All 70 charts
- Debounce, local storage, media queries and more: each hook is one typed file you own.React hooks: All 35 hooks
- From 222 libraries, Lucide, Heroicons, Tabler and Material Symbols among them, as SVG or a React component in one command.Icons: 294k+ icons
- Stripe, Linear, Apple and 497 more: a brand's colors, typography and components in one file your AI agent builds from.DESIGN.md files: All 500 brands
- Restyle every component and block at once: 8 styles, 7 grays, 18 colors and 5 radii, shared as a shadcn preset code.Theme builder: 8 styles × 18 colors
- Priority requests are answered first.Support: Standard
Team
Most popularFor freelancers, agencies & startups
$66instead of $99/mo
$789 billed yearly · ≈ $13/dev/mo
Everything in Individual, plus
- How many people can use the license.Seats: Up to 5 seats
- Client work, SaaS products and anything you charge for.Commercial use: Included
- Priority requests are answered first.Support: Priority
Organization
For companies with larger teams
$132instead of $199/mo
$1,589 billed yearly
Everything in Team, plus
- How many people can use the license.Seats: Unlimited seats
- Secure checkout via Stripe
- Code lives in your repo
- Keep what you've shipped if you cancel
- License terms
4.9 out of 5 from 150+ developers
Your system, built for you
Every block, template and icon, installed by your AI agent in your design system. The DESIGN.md files stay free.
- Cancel anytime
- Keep what you've shipped