Skip to content

CHANEL Design System

CHANEL's marketing design system as a DESIGN.md file. abchanel-corpo uppercase on white canvas, five-step greyscale, zero chromatic accent, 16 components. 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
#333333
Typeface
abchanel-corpo
Shape
Mixed
Base radius
0px
Colors
11
Type tokens
11
Components
16
Spacing values
7

About

About CHANEL DESIGN.md

Curated by Dov Azencot · Updated May 19, 2026 · Source chanel.com (opens in a new tab)

CHANEL's digital system runs a five-step greyscale and stops there. The palette is pure white for the canvas, near-black for the hardest structural elements, and three intermediate greys separating information tiers — middle grey at 767676 for body text and borders (the most frequently used tone in the system, at 367 total occurrences), light grey at 9b9b9b for secondary labels, and warm charcoal at 333333 for heading-weight text. There is no chromatic accent, no brand rouge, no gold-adjacent warm. The identity is carried entirely by abchanel-corpo — a proprietary compressed uppercase typeface that appears on every navigation label, every product category, every section identifier, and the two interlocked C marks of the logo. Where other luxury houses use a brand color as their primary identity signal, CHANEL uses a letterform.

The DESIGN.md file captures 11 colors tokens from the five-step greyscale, 11 typography tokens spanning abchanel-corpo at 11–30px (weight 600, uppercase or lowercase depending on context) and Helvetica at 12–14px (weight 100–300 for body and supporting text), a minimal radius scale (only 40px captured, used for a single pill element), 7 spacing tokens, and 16 components definitions. The extraction confirms one notable detail: CHANEL's body text runs Helvetica at weight 100 — ultra-light, unusual for running prose — which creates a deliberate contrast with the weight-600 uppercase abchanel-corpo labels.

Feed this file to Claude or Cursor and it reproduces CHANEL's specific moves: white canvas, abchanel-corpo uppercase at 12px / 600 for every label and navigation element, Helvetica at ultra-light for body paragraphs, and the absence of any chromatic accent. The discipline worth studying: the system functions because abchanel-corpo is doing the job that brand color normally does — it's the single signal that identifies this as CHANEL rather than any other luxury white-canvas site. Without it, the greyscale and Helvetica could belong to anyone.

What makes it distinct

5

  1. Proprietary uppercase type as logoabchanel-corpo at 12px bold uppercase, with weight 600, is the brand mark at every scale from the interlocking CC to the navigation label
  2. Five-step greyscale with no chromatic elementthe entire system runs from pure white through three grey tones to near-black, with zero hue involvement anywhere
  3. Weight 600 as the only boldabchanel-corpo uses a single weight (600), which reads as simultaneously authoritative and controlled; there is no 700 or 800 tier
  4. Helvetica as the deliberate supporting voicewhere other brands would use a second proprietary family, CHANEL uses a universal system font, making abchanel-corpo the sole carrier of identity
  5. Full-bleed photography over token decorationthe site's visual richness comes entirely from campaign imagery; the UI chrome is stripped to the minimum that keeps photography centered

chanel.com

Live at chanel.com

A snapshot of the brand in production. Scroll the frame to see the whole page.

CHANEL's website at chanel.com

Colors

11 colors

CHANEL's system runs on #333333 as its primary voltage, used in 2 of 16 components. Type is set in abchanel-corpo across 11 tokens from 11px to 30px, weights 100–600. Shape language is mixed across 16 components, blending pills, soft rounds, and squarer corners.

Surface

Page and card backgrounds · 3

Text

Headlines, body, captions · 5

Borders & Hairlines

Dividers, outlines, rules · 3

Typography

11 type tokens

Set in abchanel-corpo across 11 tokens, from 11px to 30px, weights 100–600. Shown in its own stack: where the font isn't installed, the fallback the file names stands in.

  • display-xl30px · weight 600 · lh 36pxThe quick brown fox jumps over the lazy dog
  • display-md12px · weight 600 · lh 18px · tracking 1pxThe quick brown fox jumps over the lazy dog
  • heading-sm11px · weight 600 · lh 18pxThe quick brown fox jumps over the lazy dog
  • label-md12px · weight 600 · lh 18pxThe quick brown fox jumps over the lazy dog
  • body-lg14px · weight 300 · lh 18pxThe quick brown fox jumps over the lazy dog
  • body-md14px · weight 100 · lh 18px · tracking 0.1pxThe quick brown fox jumps over the lazy dog
  • body-sm12px · weight 300 · lh 18px · tracking 0.5pxThe quick brown fox jumps over the lazy dog
  • caption12px · weight 300 · lh 16pxThe quick brown fox jumps over the lazy dog
  • button-md14px · weight 300 · lh 18pxThe quick brown fox jumps over the lazy dog
  • nav-link12px · weight 600 · lh 18pxThe quick brown fox jumps over the lazy dog
  • input-text14px · weight 400 · lh 18pxThe quick brown fox jumps over the lazy dog

Layout

Radii and spacing

3 corner radii and 7 spacing values. Shape language: mixed.

Radii

  • none0px
  • pill40px
  • full9999px

Spacing

  • xs5px
  • sm9px
  • md16px
  • base18px
  • lg27px
  • xl30px
  • 2xl72px

Components

16 components

Each rendered from its tokens (color, type, radius, padding) on CHANEL's own canvas.

  • Button Primary
    button-primaryButton Primary
  • Button Primary Hover
    button-primary-hoverButton Primary Hover
  • Button Secondary
    button-secondaryButton Secondary
  • Top Nav
    top-navTop Nav
  • Nav Link
    nav-linkNav Link
  • Hero Heading
    hero-headingHero Heading
  • Section Heading
    section-headingSection Heading
  • Editorial Label
    editorial-labelEditorial Label
  • Body Paragraph
    body-paragraphBody Paragraph
  • Body Paragraph Strong
    body-paragraph-strongBody Paragraph Strong
  • Card
    cardCard
  • Product Card
    product-cardProduct Card
  • Editorial Overlay
    editorial-overlayEditorial Overlay
  • Type here…
    text-inputText Input
  • Label Tag
    label-tagLabel Tag
  • Footer
    footerFooter

In use

The system, in use

CHANEL'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.

Get startedLearn more
Marketing heroHeadline, sub-copy, primary CTA — the universal homepage opener.
Slow BurnAlbum · 2024
Open WindowSingle · 2025
Hours of LightEP · 2024
After HoursMix · 1h 42m
Media gridCover-art tiles with title + meta — streaming archetype.

FAQ

CHANEL design system FAQ

Common questions about CHANEL's tokens, components, and how to use this DESIGN.md in your project.

Read next

Specs, directories, and component libraries that pair with this design system.

Use it

Use CHANEL in your project

One machine-readable file. Drop it into Claude, Cursor, or any AI tool that reads DESIGN.md.

Download DESIGN.md
  1. Download the DESIGN.md

    One machine-readable file: every color, type, radius, spacing, and component token of CHANEL.

  2. Feed it to your AI tool

    Drop it into Claude, Cursor, or GitHub Copilot. The agent writes React components and Tailwind classes that match CHANEL's visual language.

  3. 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

CHANEL's digital system is built on a typographic equation that has no chromatic term. Letterform as logo. Where Balenciaga uses compression and density as its brand statement, and Dior uses Futura's geometry as its historical anchor, CHANEL runs abchanel-corpo — a proprietary uppercase-compressed face — as the brand's sole identity carrier, across every nav label, every editorial identifier, every product heading. The system carries five grey tones and zero hues.

Unlike the convention in luxury fashion digital design of using a brand red, a champagne warm, or a gold accent to signal heritage, CHANEL's visual system makes the interlocking CC mark and the uppercase letterforms of abchanel-corpo carry all that weight. The supporting body voice is Helvetica at weight 100 — not 400, not 300, but the ultra-light register — which makes every body sentence read like a whisper against the weight-600 authority of the labels. The system deliberately widens the perceptual gap between identity type and content type.

The extraction confirms the discipline: 1847 elements scanned, nine color values found, all within greyscale. The dominant tone is medium grey #767676, appearing 367 times — most of it as border and text. It is the workhorse of the system, not the canvas and not the ink.

Key Characteristics:

  • abchanel-corpo weight 600 uppercase for every identity-bearing surface — navigation, product category labels, editorial section identifiers, campaign headlines.
  • Five-step greyscale: {colors.canvas} white, {colors.canvas-alt} near-white, {colors.hairline-light} light grey, {colors.ink-light} medium-light, {colors.ink-muted} medium, {colors.ink-medium} dark charcoal, {colors.ink} near-black.
  • Helvetica at weight 100 for body copy — the ultra-light registers as editorial restraint rather than accessibility-optimized design.
  • Zero chromatic accent — the --swiper-theme-color: #007aff is a Swiper library default with zero render occurrences; it is not part of the CHANEL system.
  • Hard right-angle architecture (zero radius) on all structural surfaces; a single 40px pill element appears for a notification or consent chip.
  • Full-bleed photography carries every chromatic moment — fashion, fragrance, and beauty campaigns provide the color that the UI chrome refuses.

Colors

Text & Structural

  • Ink Muted ({colors.ink-muted} — #767676): frequency 367. Used as text (183), border (183), background (1). The workhorse tone — carries both body text and structural dividers simultaneously, making it the single tone doing double duty across both content and structure in the system.
  • Canvas ({colors.canvas} — #ffffff): frequency 126. Used as text (57), border (54), background (15). The floor and the primary contrast inversion surface — white-on-dark for editorial overlay text.
  • Ink Light ({colors.ink-light} — #9b9b9b): frequency 98. Used as text (49), border (49). Secondary text and lightweight dividers — product subtitle text, supporting navigation labels.
  • Ink Medium ({colors.ink-medium} — #333333): frequency 97. Used as text (50), border (47). Heading-weight text and medium-weight structural borders.
  • Ink ({colors.ink} — #1d1d1d): frequency 94. Used as text (48), border (46). Near-black for the heaviest structural text — the navLink component text color.
  • Ink Deep ({colors.ink-deep} — #000000): frequency 40. Used as text (8), border (8), gradient (24). Pure black, primarily for gradient fills on editorial imagery; the hardest structural element in the system.

Hairlines

  • Hairline Light ({colors.hairline-light} — #d8d8d8): frequency 10. Used as text (5), border (5). Light-weight dividers for footer rows and card separators.
  • Hairline Faint ({colors.hairline-faint} — #ececec): frequency 1. Used as shadow (1). The faintest possible structural tone — appears once as a shadow.

Canvas Variants

  • Canvas Alt ({colors.canvas-alt} — #f9f9f9): merged into the canvas cluster. A fractionally off-white for alternate-row or secondary surface fills.
  • Surface Overlay ({colors.surface-overlay} — #000000): used in background-image: linear-gradient on editorial image overlays — the darkening gradient that allows white abchanel-corpo text to read over campaign photography.

Typography

Font Families

The system runs abchanel-corpo for every identity-bearing surface — navigation, editorial labels, product category headings, and the hero h2 overlay — at weight 600 across all sizes (11px to 30px). The body and supporting voice is Helvetica (with Open-Sans and the sans-serif-light system font as fallbacks) at weights 100, 300, and 400. The polarization is intentional: one proprietary compressed face for identity, one universal system font for content.

Hierarchy

TokenSizeWeightLine HeightUse
{typography.display-xl}30px60036pxCampaign section headlines (abchanel-corpo uppercase)
{typography.display-md}12px60018pxEditorial overlay labels, product category section headers with 1px tracking (abchanel-corpo uppercase)
{typography.heading-sm}11px60018pxSub-labels and secondary category identifiers (abchanel-corpo lowercase)
{typography.label-md}12px60018pxStandard UI labels, nav badges (abchanel-corpo)
{typography.body-lg}14px30018pxLead body copy, support text (Helvetica light)
{typography.body-md}14px10018pxDefault body paragraph (Helvetica ultra-light)
{typography.body-sm}12px30018pxCaption, metadata, small supporting text
{typography.caption}12px30016pxFooter text, secondary metadata
{typography.button-md}14px30018pxButton labels (Helvetica light)
{typography.nav-link}12px60018pxNavigation links (abchanel-corpo)
{typography.input-text}14px40018pxForm input text (Arial)

Principles

The weight system is binary: 600 for abchanel-corpo identity elements, 100–300 for Helvetica content elements. The gap between weight 600 and weight 100 is the system's primary hierarchy tool — no intermediate weights mediate between them. The abchanel-corpo display-md at 12px/600/1px tracking with uppercase creates the same visual impact as a 30px regular — weight and tracking combine to produce authority at small sizes.

Note on Font Substitutes

abchanel-corpo is proprietary. For open-source substitutes: Univers Condensed Bold approximates the compressed structure; Trade Gothic Condensed No. 18 is historically close. For web deployment, Barlow Condensed at weight 600 is the most accessible free alternative. For the body Helvetica, the system's fallback chain (Open-Sans, sans-serif-light) covers most environments; Helvetica Neue Ultralight or Thin is the correct substitute where Helvetica Neue is available.

Layout

Spacing System

  • Base unit: 9px (the dominant value at 8 occurrences, also appears as 9x18 button padding).
  • Tokens: {spacing.xs} 5px · {spacing.sm} 9px · {spacing.md} 16px · {spacing.base} 18px · {spacing.lg} 27px · {spacing.xl} 30px · {spacing.2xl} 72px.
  • Navigation tab padding: 0x16px horizontal and 9px bottom — the nav link sits asymmetrically padded, weighted toward the bottom.
  • Product card bottom padding: 72px — generous vertical breathing room beneath each product tile in the grid.
  • Section vertical spacing: 72px between major editorial sections.

Grid & Container

  • Max content width: approximately 1440px — CHANEL's editorial layout is full-bleed at 1440px viewport width.
  • Hero sections: full-bleed photography with abchanel-corpo text overlaid at constrained centered max-width.
  • Product grid: image-first tiles with generous 72px bottom padding separating rows.

Rhythm

The page stacks full-bleed editorial photography horizontally, with each band occupying approximately 74vh (captured as a CSS custom property --play-pause-worn-video-bottom-desktop: 20px, indicating video-banner heights near full-viewport). The rhythm is editorial-magazine: large, unbroken photography bands separated by minimal structural chrome.

Elevation

The system has essentially no shadow tier. A single faint shadow token ({colors.hairline-faint} — #ececec, frequency 1 as shadow) marks the full extent of the shadow system. Depth comes instead from:

  • Editorial overlay gradients — linear-gradient(to bottom, rgba(0,0,0,0)) to rgba(#000000, 0.6) creating photography depth without any explicit shadow element.
  • Hairline borders ({colors.hairline} and {colors.hairline-light}) as surface separators.
  • No surface-tonal lift: the system does not use slightly-darker backgrounds to indicate elevation.

Shapes

The radius philosophy is architectural zero, with a single named exception. Every structural surface — section containers, product cards, navigation, image frames, the text input — runs at zero radius ({rounded.none}). The input field (height: 30px, rounded: none) is noticeably sharp-cornered even by luxury-fashion standards. The one exception is a pill-shaped element using {rounded.pill} (40px), which appears on a tag or notification chip — a concession to legibility on a small interactive target.

The 40px pill on a compact surface (like a 5px-padded label tag) produces a fully-rounded appearance at any height below 80px. The architectural sharpness everywhere else makes this single pill treatment stand out as an intentional affordance marker.

Components

button-primary — Near-black {colors.ink} fill, white text, Helvetica light at {typography.button-md}, zero radius, 9x18 padding, 36px height. No border.

button-secondary — White canvas fill, ink text, 1px medium-grey border ({colors.ink-muted}), zero radius, same 9x18 padding.

top-nav — White canvas, 54px height, bottom hairline border ({colors.ink-muted}). Houses the CHANEL wordmark centered, with abchanel-corpo nav links ("Haute Couture," "Fashion," "Fine Jewellery & Watches," "Watches," "Fragrance & Beauty") on 0x16x9 padding.

nav-link — Transparent, near-black text at {typography.nav-link} (abchanel-corpo 12px/600), 0x16x9 padding, 54px height. The bottom-weighted padding creates a typographic baseline effect where labels sit near the bottom of the nav bar.

hero-heading — White text on photography overlay, abchanel-corpo at {typography.display-xl} (30px / 600). The captured instance: "CHANEL COCO BEACH 2026 / Collection."

section-heading — Ink text, abchanel-corpo at {typography.display-md} (12px / 600 / 1px tracking uppercase). Used for collection category labels.

editorial-label — White text (for use over dark photography), abchanel-corpo at {typography.display-md}. The campaign section identity layer.

body-paragraph — Medium grey {colors.ink-muted} text, Helvetica at {typography.body-md} (14px / 100). The ultra-light weight makes editorial support text recede behind the bold-uppercase labels.

product-card — White canvas, zero radius, 72px bottom padding. Holds product photography, abchanel-corpo label, and supporting details.

editorial-overlay — Black surface overlay, white abchanel-corpo text, 30x7.5x20 padding. Used on full-bleed video and photography sections where the brand identity text reads over imagery.

text-input — White canvas, pure-black text at {typography.input-text} (Arial 14px/400), zero radius, 6x49x5x0 padding (generous right-padding for a search icon), 30px height, medium-grey border. The input is compact and sharp-cornered.

label-tag — Transparent, medium-grey text, abchanel-corpo at {typography.heading-sm} (11px/600), {rounded.pill} 40px radius, 5px padding. The single pill-shape element in the system.

footer — White canvas, medium-grey text, 27x16 padding, light hairline top border.

Do's and Don'ts

Do use abchanel-corpo (or its substitute Barlow Condensed Bold) at weight 600 for every identity-bearing label — navigation, product category heading, editorial section identifier. The system has no other mechanism for brand recognition; the typeface is doing the job that a brand color would do elsewhere.

Do use Helvetica (or system sans-serif) at weight 100 or 300 for body copy. The ultra-light weight is not an error — it is the deliberate contrast that makes the weight-600 abchanel-corpo labels read as authoritative. Using weight 400 for body text narrows that gap and dilutes the hierarchy.

Do let full-bleed photography carry all chromatic content. The UI chrome makes no chromatic gesture; every color impression a visitor receives comes from campaign imagery. Sizing photographs generously (74vh hero sections) is load-bearing in this system, not decorative.

Do apply the asymmetric nav-link padding (0px top, 16px horizontal, 9px bottom) exactly. The bottom-weighted tab structure positions labels typographically at the base of the nav bar rather than centered — a subtle but consistent alignment decision captured in the extraction.

Don't introduce a chromatic accent — not a red sale tag, not a warm badge, not a campaign seasonal color in the UI chrome. The extraction confirms zero non-grey tones in the system. The only color in the UI is what the photography brings; adding a UI accent destroys the photographic-supremacy principle.

Don't use abchanel-corpo at weight below 600 or at lowercase for product names or section headers. The extraction shows the face exclusively at weight 600. The lowercase variant ({typography.heading-sm} at 11px/600) appears only for specific sub-labels, not for primary identity elements.

Don't increase body text weight above 300 for standard paragraph copy. The {typography.body-md} token uses weight 100 for the default running text. Bumping it to 400 normalizes the body weight to the point where the 600-weight labels no longer read as distinctly authoritative.

Don't round the text input or card surfaces. The zero-radius architecture applies to every structural surface. The input field is specifically zero-radius at 30px height — adding rounding turns it into a consumer-app field rather than a luxury form element.

Known Gaps

  • Hover and focus states: no hover state captured for nav links, product cards, or buttons. Focus rings and keyboard navigation states are not documented.
  • Dark editorial surfaces: some CHANEL campaign microsites and seasonal pages run on dark or black canvas. These are not represented; the captured system is the main site's white-canvas treatment.
  • Fragrance and beauty sub-brand treatments: the fragrance and beauty categories use photography with warm and romantic color temperatures that do not correspond to UI tokens in this file.
  • Form validation states: the text input error state, success state, and loading state are not captured.
  • Video component states: the site uses video banners with play/pause controls (the CSS variable --play-pause-worn-video-bottom-desktop was captured), but the video-player UI chrome is not included.
  • Accessibility on ultra-light body text: Helvetica at weight 100 on a mid-grey (#767676) background may not meet WCAG AA contrast requirements at 12px. The live site's accessibility approach for these cases is not represented in the token file.

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.

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 popular

For 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.

Get Pro