HOKA Design System
HOKA's design system as a DESIGN.md file. Cobalt blue #0082ca brand voltage on white canvas, condensed grotesque headlines, maximal-cushion brand energy in flat UI tokens. For React, Next.js, and AI tools.
Add shadcn.io to your AI agent. · Pro It installs blocks, icons and templates in your design system from a prompt, with Pro.
Set up MCP- Primary
- #0082ca
- Typeface
- Barlow Condensed
- Shape
- Sharp
- Base radius
- 6px
- Colors
- 14
- Type tokens
- 10
- Components
- 14
- Spacing values
- 8
About
About HOKA DESIGN.md
Curated by Dov Azencot · Updated May 19, 2026 · Source hoka.com (opens in a new tab)
HOKA's brand identity runs on a single electric signal — the cobalt blue that carries the wordmark, the primary CTA buttons, the active navigation state, and the brand's visual energy. The HOKA logo on the blocked-extraction page shows the color precisely: a vivid, saturated cobalt (#0082ca) that reads as the most chromatic blue in athletic footwear branding, more saturated than New Balance's Royal and more direct than Adidas's three-stripe accent treatments. Everything else in the marketing chrome steps back to give that blue maximum oxygen — a white canvas, charcoal text, and photography of cushioned shoes in motion.
The DESIGN.md file packages the system into a machine-readable spec for React and AI tools. Inside: 14 colors tokens — cobalt primary, hover-state cobalt, white canvas, charcoal ink tiers, light-gray surfaces, and a small semantic set for error and success states. Ten typography tokens run a condensed geometric grotesque across display (48px / 800 all-caps for hero moments), heading, body, and label tiers. Fourteen components cover the cobalt-fill primary button, the white-canvas card, the top nav, the product grid, and promotional badge elements. The component set emphasizes the e-commerce surface — add-to-cart flows, product filtering, and category navigation — rather than editorial storytelling.
Feed this file to Claude or Cursor and it will reproduce HOKA's specific moves: cobalt CTA on white canvas, compressed grotesque uppercase for display, flat 0–6px radius on most surfaces with pill badges for promotional elements, and a photography-first grid that lets shoe colorways carry the emotional palette. The system is worth studying for the rare case of a brand that has one extremely saturated single accent and builds everything else to serve it — the cobalt works because the rest of the chrome stays disciplined.
What makes it distinct
5
- Cobalt voltageHOKA's #0082ca blue is one of the most saturated brand primaries in athletic footwear, appearing across the wordmark, primary CTAs, and active states
- Maximalism meets flat UIthe brand's oversized-cushion product identity appears in photography saturation and color energy, while the chrome stays deliberately flat
- All-caps condensed headlineshero displays combine uppercase treatment with compressed grotesque weight to convey athletic intensity without relying on brand color
- White canvas with cobalt accentsunlike Nike's black hero or UA's near-black chrome, HOKA runs a light canvas that makes the cobalt voltage pop against white
- Photography-forward product gridcampaign imagery at full-bleed drives brand emotion; the system chrome steps back to let shoe design lead
hoka.com
Live at hoka.com
A snapshot of the brand in production. Scroll the frame to see the whole page.

Colors
14 colors
HOKA's system runs on #0082ca as its primary voltage, used in 3 of 14 components. Type is set in Barlow Condensed across 10 tokens from 12px to 48px, weights 400–800. Shape language is sharp — components average 2px corner radius, favoring crisp rectangles.
Brand & Accent
Sparing, CTA-only voltage · 3
Surface
Page and card backgrounds · 3
Text
Headlines, body, captions · 3
Borders & Hairlines
Dividers, outlines, rules · 1
Semantic
Status, errors, success, links · 2
Other
Specialty colors · 2
Typography
10 type tokens
Set in Barlow Condensed across 10 tokens, from 12px to 48px, weights 400–800. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.
- display-xl48px · weight 800 · lh 52px · tracking 0.5pxThe quick brown fox jumps over the lazy dog
- display-lg36px · weight 800 · lh 40px · tracking 0.5pxThe quick brown fox jumps over the lazy dog
- heading-md24px · weight 700 · lh 28px · tracking 0The quick brown fox jumps over the lazy dog
- heading-sm18px · weight 700 · lh 22px · tracking 0The quick brown fox jumps over the lazy dog
- body-lg16px · weight 400 · lh 24px · tracking 0The quick brown fox jumps over the lazy dog
- body-md14px · weight 400 · lh 20px · tracking 0The quick brown fox jumps over the lazy dog
- body-sm12px · weight 400 · lh 16px · tracking 0The quick brown fox jumps over the lazy dog
- label-md12px · weight 600 · lh 16px · tracking 0.5pxThe quick brown fox jumps over the lazy dog
- button-md14px · weight 700 · lh 20px · tracking 0.5pxThe quick brown fox jumps over the lazy dog
- nav-link14px · weight 600 · lh 20px · tracking 0The quick brown fox jumps over the lazy dog
Layout
Radii and spacing
5 corner radii and 8 spacing values. Shape language: sharp.
Radii
- none0px
- xs2px
- sm4px
- md6px
- full9999px
Spacing
- xs4px
- sm8px
- base16px
- md24px
- lg32px
- xl48px
- 2xl64px
- 3xl96px
Components
14 components
Each rendered from its tokens (color, type, radius, padding) on HOKA's own canvas.
- Button Primarybutton-primaryButton Primary
- Button Primary Hoverbutton-primary-hoverButton Primary Hover
- Button Secondarybutton-secondaryButton Secondary
- Top Navtop-navTop Nav
- Nav Linknav-linkNav Link
- Nav Link Activenav-link-activeNav Link Active
- Hero Headinghero-headingHero Heading
- Section Headingsection-headingSection Heading
- Body Paragraphbody-paragraphBody Paragraph
- CardcardCard
- Product Labelproduct-labelProduct Label
- Badge Promobadge-promoBadge Promo
- Type here…text-inputText Input
- FooterfooterFooter
In use
The system, in use
HOKA's tokens on the kind of product it builds.
Build something people actually use.
A short paragraph of marketing copy that previews how the brand's display tier and body tier read together. Two sentences is usually enough.
FAQ
HOKA design system FAQ
Common questions about HOKA's tokens, components, and how to use this DESIGN.md in your project.
Read next
Related reading
Specs, directories, and component libraries that pair with this design system.
- Browse all design systemsThe full directory of DESIGN.md files on shadcn.io, with live mockups for each.shadcn.io
- HOKA — official siteHOKA's public marketing site — the source of truth for the live design system this file approximates.hoka.com (opens in a new tab)
- The DESIGN.md specificationGoogle Labs' open spec for machine-readable design system files — the format this page is built on.github.com (opens in a new tab)
Use it
Use HOKA in your project
One machine-readable file. Drop it into Claude, Cursor, 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 HOKA.
Feed it to your AI tool
Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match HOKA'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
HOKA's marketing system operates on a single-voltage principle carried to its clearest conclusion. Cobalt as sole signal: the cobalt blue visible in the HOKA wordmark is the only chromatic element in the marketing chrome, appearing on primary CTAs, active navigation states, selected filter chips, and promotional badges. Everything else — page floor, card backgrounds, body text, icon fills, hairline dividers — is white, charcoal, or gray. Where Nike's brand is black, Under Armour's brand is achromatic, and Adidas deploys a two-tone black-and-white system, HOKA makes a single vivid choice and holds it.
The typography system leans into athletic compression. Condensed grotesque at maximum weight: hero headlines run a condensed geometric grotesque at weight 800 in uppercase, with moderate positive tracking — the combination signals athletic intensity through letterform density rather than through color. Body text steps down to a non-condensed regular weight at 14–16px, creating a clear visual break between the high-energy display tier and the calm product-information tier. The transition from condensed-800 headline to regular-400 body is sharper than most brands that use a single weight-range family.
Shape language stays flat. Corner rounding sits at 0–6px for product cards, hero containers, and form inputs; the primary CTA button is 4px — enough to signal "action" but nowhere near the warm pill geometry of a brand like Airbnb or Cloudflare. The exception is the promotional badge ({component.badge-promo}), which uses a full pill at 9999px to read as a separate information layer from the button system.
Key Characteristics:
- Cobalt blue #0082ca as the single chromatic brand signal — one of the most saturated blues in the athletic-brand category.
- White canvas floor — the cobalt reads at maximum intensity against pure white rather than the near-blacks that Nike and UA use.
- Condensed grotesque weight 800 at 48px for hero headlines, all-caps — type carries athletic intensity without color.
- 0–6px radius on structural surfaces, full pill on promotional badges only.
- Product photography drives the chromatic palette — each shoe's colorway becomes the page's emotional palette.
- Cobalt-fill-on-white primary button versus cobalt-border-on-white secondary button — the two CTA states are differentiated by fill only.
- Active nav-link state uses a cobalt underline or text-color shift — not a background fill.
Colors
Brand
- Primary (
{colors.primary}— #0082ca): HOKA's singular brand voltage — visible in the wordmark from the blocked-extraction screenshot. Used as primary CTA background, active navigation indicator, selected filter chip fill, and promotional badge fill. The saturated cobalt reads as the page's loudest chromatic element against the white canvas floor. - Primary Hover (
{colors.primary-hover}— #0066a0): a darker cobalt for the button pressed/hover state — approximately 20% darker in lightness than the base primary, maintaining the blue family while signaling interaction. - Primary Light (
{colors.primary-light}— #e5f2fa): a near-white cobalt tint — used for the hover background on inactive nav links and for selected-state chip backgrounds in product filtering.
Structural
- Ink (
{colors.ink}— #1a1a1a): the primary text color — a near-black with almost no undertone. Used for all body text, product names, price labels, nav labels in default state, and icon fills. - Ink Muted (
{colors.ink-muted}— #666666): secondary text — product metadata, sorting labels, footer copy, secondary nav links. - Ink Light (
{colors.ink-light}— #999999): tertiary text — placeholder form text, disabled states, legal fine print. - Canvas (
{colors.canvas}— #ffffff): the page floor — pure white, providing the contrast surface that makes the cobalt primary pop. - Surface-1 (
{colors.surface-1}— #f5f5f5): the first elevated surface — footer backgrounds, alternate section fills, inactive chip backgrounds. - Surface-2 (
{colors.surface-2}— #ebebeb): deeper light gray — active filter chip inactive state, breadcrumb backgrounds. - Hairline (
{colors.hairline}— #d9d9d9): 1px dividers between product grid rows, nav bottom border, form input outlines.
Semantic
- Error (
{colors.error}— #d0021b): form validation error states. - Success (
{colors.success}— #2d8653): in-stock confirmation, success messaging. - Sale Red (
{colors.sale-red}— #cc0000): sale price labels — distinct from error red, appearing in product-grid price comparisons.
Typography
Font Family
HOKA's brand system uses a condensed geometric grotesque for display and headline contexts — the wordmark and hero headlines run in a compressed, high-weight sans that reads as purpose-designed for the brand. The closest open-source approximation is Barlow Condensed at weight 800 for the display tier. Body and label text uses the non-condensed variant of the same family (Barlow or equivalent), creating a clear visual separation between the high-energy headline and the calm editorial body. Note: font identification is based on visual analysis of the brand wordmark rather than live CSS extraction, as the site was bot-blocked during capture.
Hierarchy
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
{typography.display-xl} | 48px | 800 | 52px | 0.5px | Hero h1 — all-caps campaign headline |
{typography.display-lg} | 36px | 800 | 40px | 0.5px | Secondary hero, collection headlines |
{typography.heading-md} | 24px | 700 | 28px | 0 | Section headers ("NEW ARRIVALS", "RUN COLLECTION") |
{typography.heading-sm} | 18px | 700 | 22px | 0 | Sub-section headers, editorial callouts |
{typography.body-lg} | 16px | 400 | 24px | 0 | Product descriptions, editorial copy |
{typography.body-md} | 14px | 400 | 20px | 0 | Product metadata, price labels, grid captions |
{typography.body-sm} | 12px | 400 | 16px | 0 | Legal text, fine print |
{typography.label-md} | 12px | 600 | 16px | 0.5px | Filter chips, category labels, tab labels |
{typography.button-md} | 14px | 700 | 20px | 0.5px | CTA button labels ("SHOP NOW", "ADD TO CART") |
{typography.nav-link} | 14px | 600 | 20px | 0 | Top-nav link labels |
Principles
The display tier uses condensed grotesque at weight 800 — compressing more characters into the hero headline space without sacrificing the weight signal. Body text switches to a non-condensed variant at weight 400, creating a legibility contrast that makes the editorial copy feel calm against the compressed headline energy. Unlike Under Armour, which uses a single family across all tiers with only weight variation, HOKA's condensed-to-regular switch between headline and body is a deliberate rhythm move.
Note on Font Substitutes
Barlow Condensed at weight 700–800 is the closest open-source match for the display tier. Barlow (non-condensed) at weight 400 and 600 covers the body and label tiers. If a project needs a single-family approach, Montserrat with condensed variants handles both roles. The key requirement is condensed proportions at display scale — swapping to Inter or Helvetica Neue at the headline tier loses the athletic-compression identity.
Layout
Spacing System
- Base unit: 8px, with 16px as the standard product-grid gutter.
- Tokens:
{spacing.xs}4px ·{spacing.sm}8px ·{spacing.base}16px ·{spacing.md}24px ·{spacing.lg}32px ·{spacing.xl}48px ·{spacing.2xl}64px ·{spacing.3xl}96px. - Product grid gutter: 16px between columns and rows.
- Section padding (vertical): 48–64px between major editorial sections.
- Card internal padding: 0px on image containers; 16px on text metadata below product images.
Grid & Container
- Max content width: ~1320px with 24px side padding.
- Product grid: 4-column at desktop, 2-column at tablet, 1-column at mobile.
- Hero: full-bleed photography with the headline overlaid in the lower-left or center of the frame.
- Category strips: alternating full-width photography banners and product-grid rows.
Rhythm
The page moves between full-bleed photographic hero moments and dense product grids. Section transitions use hairline rules rather than background-color shifts — the white canvas runs continuously, with only 1px hairlines marking breaks. The rhythm is catalog-adjacent but with more generous hero photography than New Balance's catalog-first approach.
Elevation
The system uses no drop shadow tier in the marketing chrome. Product cards sit flat on the white canvas. The nav bar sits above content with a 1px {colors.hairline} bottom border. Modal overlays use a dark scrim. Hover states on cards and buttons handle feedback through color (cobalt deepens to primary-hover) and border (secondary buttons shift to primary-hover border) rather than shadow.
- Flat cards: product grid items — 0px shadow at rest, no hover shadow.
- Nav bar: 1px
{colors.hairline}bottom border.
Shapes
HOKA's radius vocabulary is concise:
{rounded.none}0px — product cards, hero containers, section headers, image wrappers.{rounded.xs}2px — form inputs and search field.{rounded.sm}4px — primary and secondary CTA buttons.{rounded.md}6px — popover menus, dropdown panels.{rounded.full}9999px — promotional badges ("NEW", "SALE", loyalty chips), not CTAs.
The split between 4px CTAs and 9999px badges is the system's shape signal: buttons are purposeful and flat-adjacent, while badges are ephemeral and information-layer markers. Adding pill rounding to CTAs would collapse this distinction.
Components
button-primary — Cobalt {colors.primary} fill, white text, {rounded.sm} 4px radius, 44px height, 12×24px padding, condensed grotesque 14px weight 700. "SHOP NOW" and "ADD TO CART" are the canonical instances.
button-primary-hover — Darker cobalt {colors.primary-hover} fill — same dimensions as primary, shifts to the hover variant on interaction.
button-secondary — White {colors.canvas} fill, cobalt text, 1px cobalt border, same {rounded.sm} 4px radius. Used for secondary actions like "LEARN MORE" where a filled cobalt button would dominate too strongly.
top-nav — White canvas, charcoal text, 64px height, 1px {colors.hairline} bottom border, 24px horizontal padding. Houses the HOKA wordmark (left), category links (center — Men, Women, Kids, Sale), and icon cluster — search, account, favorites, bag (right).
nav-link — Transparent background, charcoal text at {typography.nav-link} (14px / 600), 8×12px padding.
nav-link-active — Cobalt {colors.primary} text, cobalt underline or bottom border, same padding and dimensions. The active-state signal is text-color shift rather than background fill.
hero-heading — White text on photography overlay, {typography.display-xl} (48px / 800, all-caps, condensed grotesque). Positioned lower-left or center depending on the campaign image.
section-heading — Charcoal text, {typography.heading-md} (24px / 700, condensed grotesque). Section titles above product grids.
body-paragraph — Charcoal text at {typography.body-lg} — editorial copy in campaign sections.
card — White fill, no border (whitespace gutter separates grid items), completely flat {rounded.none}. Shoe photography fills the upper area edge-to-edge; metadata (name, price, colorway count) sits in a 16px-padded block below.
product-label — Charcoal text at {typography.body-md} — product name and colorway label.
badge-promo — Cobalt {colors.promo-badge} fill, white text, {rounded.full} 9999px, 4×10px padding, label-md type (12px / 600 / 0.5px tracking). Appears on product cards as "NEW", "SALE", or "LIMITED" overlays.
text-input — White fill, charcoal text, {rounded.xs} 2px radius, 1px {colors.hairline} border, 44px height. Search and form fields.
footer — Light-gray {colors.surface-1} background, muted-charcoal text at {typography.body-sm}, 48×24px padding. Multi-column link grid with the HOKA wordmark in cobalt above the link columns.
Do's and Don'ts
Do use cobalt #0082ca as the sole chromatic accent in marketing chrome. The system's discipline depends on the cobalt appearing only on action-oriented elements (CTAs, active states, promotional badges) — the contrast with the white canvas gives it maximum signal strength.
Do reserve the full-pill rounding (9999px) exclusively for promotional badges and loyalty chips. The distinction between the 4px CTA button and the pill badge encodes meaning: button = action, pill = metadata/status. Collapsing this distinction by giving CTAs pill rounding would make the badge system unreadable.
Do use condensed grotesque weight 800 only at 24px and above. At smaller sizes (14–18px) the condensed family's compressed counters hurt legibility; body and label tiers should use the non-condensed weight-400 variant.
Do let {colors.primary-light} (#e5f2fa) carry hover background on nav links and inactive filter chips — not the full cobalt fill. The primary blue is too saturated for background fills at nav scale; the light tint provides the hover affordance without overloading the chrome.
Don't apply the cobalt primary as a section background fill. Unlike Cloudflare (which uses its orange to fill the entire hero canvas), HOKA's cobalt is too saturated and too specifically associated with CTA actions to work as an editorial background. A cobalt-background section would read as "click me" rather than "read me."
Don't use {colors.sale-red} (#cc0000) for any element other than price comparisons. In the context of a running-shoe product grid, red means "reduced price" with near-universal convention; using it on hover states, error messages beyond forms, or decorative accents breaks the semantic contract.
Don't render display headlines at weight below 700 or in non-condensed width. The system's typographic identity is condensed-and-heavy for all headline tiers; switching to a regular-width grotesque at the same size loses the athletic compression that distinguishes HOKA's visual language from the near-identical tone of New Balance's catalog approach.
Don't add decorative background fills or gradient washes to product cards. The white-canvas product card with photography as the sole visual is the system's core unit — adding fills or gradients behind product images reduces the photograph's impact and makes the grid look promotional rather than editorial.
Known Gaps
- Extraction blocked: HOKA's site deployed bot-detection during the extraction run, returning only a Cloudflare challenge page that confirmed the brand's cobalt logo color but nothing else. The color tokens, typography values, radius choices, and component specifications in this file are grounded in public brand knowledge, visual analysis of the HOKA wordmark from the blocked screenshot, and observable patterns from HOKA's established digital design language — not live CSS measurement.
- Exact font identification: the HOKA wordmark uses a brand-modified condensed grotesque. Whether this is Barlow Condensed, a licensed variant of Futura Condensed, or a fully proprietary typeface is not determinable without access to the CSS font-face declarations. Barlow Condensed is used here as the closest open-source approximation.
- Secondary color palette: HOKA has used a lime-green seasonal accent and coral tones in campaign sub-sites. Whether these are permanent secondary tokens or campaign-specific colors is not determinable from the blocked extraction.
- Dark mode: no dark-mode variant is declared in HOKA's public brand guidelines; the system is documented as light-only.
- Hover states beyond button-primary-hover: the full state matrix (input focus rings, card hover shadows, nav dropdown animation) is not available from the blocked capture.
- Regional and seasonal variants: HOKA serves international markets and runs seasonal campaign sub-sites that may carry alternate color treatments and editorial type sizes.
E-commerce & Retail
More systems like this
More DESIGN.md files in E-commerce & Retail.
Pricing
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.
- Production-ready React sections: hero, pricing, features, dashboards and more.
- Complete multi-page sites you can ship as they are.
- React icons from every major library, installable with one command.
- Presets that restyle every block, in light and dark.
- Lets your AI editor search, preview and install blocks for you.
- 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
- Pro blocks: 6,000+ blocks
- Templates: All 14 templates
- React icons: 294k+ icons
- Themes: All 59 themes
- MCP server: Basic usage
- 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
- Pro blocks: 6,000+ blocks
- Templates: All 14 templates
- React icons: 294k+ icons
- Themes: All 59 themes
- MCP server: High usage
- Support: Priority
Organization
For companies with larger teams
$132instead of $199/mo
$1,589 billed yearly
- Seats: Unlimited seats
- Commercial use: Included
- Pro blocks: 6,000+ blocks
- Templates: All 14 templates
- React icons: 294k+ icons
- Themes: All 59 themes
- MCP server: Unlimited usage
- 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
- Production-ready React sections: hero, pricing, features, dashboards and more.Pro blocks: 6,000+ blocks
- Complete multi-page sites you can ship as they are.Templates: All 14 templates
- React icons from every major library, installable with one command.React icons: 294k+ icons
- Presets that restyle every block, in light and dark.Themes: All 59 themes
- Lets your AI editor search, preview and install blocks for you.MCP server: Basic usage
- 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
- Lets your AI editor search, preview and install blocks for you.MCP server: High usage
- 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
- Lets your AI editor search, preview and install blocks for you.MCP server: Unlimited usage
- Secure checkout via Stripe
- Code lives in your repo
- Keep what you've shipped if you cancel
- License terms
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.