M

Mistral-AI Design System

8 colors20 componentsSatoshi / CerealAug 2026

---

version: alpha

name: Mistral-AI-design-analysis

description: Mistral AI brands itself with a singular signature — atmospheric sunset gradients (mustard, orange, deep red) layered over photography of mountains, plus a horizontal "sunset stripe" bar that closes every page. The system pairs warm cream-yellow surfaces ({colors.cream}) with a saturated orange primary CTA ({colors.primary}) and uses an elegant near-serif voice for hero displays. Coverage spans homepage (Frontier AI hero), Le Studio product page, Coding solutions, news article surfaces, contact form, and services tier page — all anchored by the signature gradient closing band.

colors:

primary: "#fa520f"

primary-deep: "#cc3a05"

on-primary: "#ffffff"

sunshine-300: "#ffd06a"

sunshine-500: "#ffb83e"

sunshine-700: "#ffa110"

sunshine-800: "#ff8105"

sunshine-900: "#ff8a00"

yellow-saturated: "#ffd900"

cream: "#fff8e0"

cream-light: "#fffaeb"

cream-deeper: "#fff0c2"

beige-deep: "#e6d5a8"

block-5: "#ffe295"

block-6: "#ffd900"

block-7: "#ff8105"

ink: "#1f1f1f"

ink-tint: "#3d3d3d"

charcoal: "#2c2c2c"

slate: "#4a4a4a"

steel: "#6a6a6a"

stone: "#8a8a8a"

muted: "#a8a8a8"

hairline: "#e5e5e5"

hairline-soft: "#ededed"

hairline-strong: "#c7c7c7"

canvas: "#ffffff"

surface: "#fafafa"

surface-cream: "#fff8e0"

surface-cream-soft: "#fffaeb"

surface-code: "#1c1c1e"

on-dark: "#ffffff"

on-dark-muted: "#a8a8a8"

on-cream: "#1f1f1f"

footer-cream: "#fff8e0"

link: "#fa520f"

typography:

hero-display:

fontFamily: PP Editorial Old

fontSize: 84px

fontWeight: 400

lineHeight: 1.05

letterSpacing: -1.5px

display-lg:

fontFamily: PP Editorial Old

fontSize: 64px

fontWeight: 400

lineHeight: 1.10

letterSpacing: -1px

heading-1:

fontFamily: PP Editorial Old

fontSize: 52px

fontWeight: 400

lineHeight: 1.15

letterSpacing: -0.5px

heading-2:

fontFamily: Inter

fontSize: 36px

fontWeight: 500

lineHeight: 1.20

letterSpacing: -0.5px

heading-3:

fontFamily: Inter

fontSize: 28px

fontWeight: 500

lineHeight: 1.25

heading-4:

fontFamily: Inter

fontSize: 22px

fontWeight: 500

lineHeight: 1.30

heading-5:

fontFamily: Inter

fontSize: 18px

fontWeight: 500

lineHeight: 1.40

subtitle:

fontFamily: Inter

fontSize: 18px

fontWeight: 400

lineHeight: 1.50

body-md:

fontFamily: Inter

fontSize: 16px

fontWeight: 400

lineHeight: 1.55

body-md-medium:

fontFamily: Inter

fontSize: 16px

fontWeight: 500

lineHeight: 1.55

body-sm:

fontFamily: Inter

fontSize: 14px

fontWeight: 400

lineHeight: 1.50

body-sm-medium:

fontFamily: Inter

fontSize: 14px

fontWeight: 500

lineHeight: 1.50

caption:

fontFamily: Inter

fontSize: 13px

fontWeight: 400

lineHeight: 1.40

caption-bold:

fontFamily: Inter

fontSize: 13px

fontWeight: 600

lineHeight: 1.40

micro:

fontFamily: Inter

fontSize: 12px

fontWeight: 500

lineHeight: 1.40

micro-uppercase:

fontFamily: Inter

fontSize: 11px

fontWeight: 600

lineHeight: 1.40

letterSpacing: 1px

button-md:

fontFamily: Inter

fontSize: 14px

fontWeight: 500

lineHeight: 1.30

stat-display:

fontFamily: PP Editorial Old

fontSize: 56px

fontWeight: 400

lineHeight: 1.10

letterSpacing: -1px

code-md:

fontFamily: JetBrains Mono

fontSize: 14px

fontWeight: 400

lineHeight: 1.50

rounded:

xs: 4px

sm: 6px

md: 8px

lg: 12px

xl: 16px

xxl: 20px

full: 9999px

spacing:

xxs: 4px

xs: 8px

sm: 12px

md: 16px

lg: 20px

xl: 24px

xxl: 32px

xxxl: 40px

section-sm: 48px

section: 64px

section-lg: 96px

hero: 120px

components:

button-primary:

backgroundColor: "{colors.primary}"

textColor: "{colors.on-primary}"

typography: "{typography.button-md}"

rounded: "{rounded.md}"

padding: "10px 20px"

button-primary-pressed:

backgroundColor: "{colors.primary-deep}"

textColor: "{colors.on-primary}"

button-primary-disabled:

backgroundColor: "{colors.hairline}"

textColor: "{colors.muted}"

button-cream:

backgroundColor: "{colors.cream}"

textColor: "{colors.ink}"

typography: "{typography.button-md}"

rounded: "{rounded.md}"

padding: "10px 20px"

border: "1px solid {colors.beige-deep}"

button-dark:

backgroundColor: "{colors.ink}"

textColor: "{colors.on-dark}"

typography: "{typography.button-md}"

rounded: "{rounded.md}"

padding: "10px 20px"

button-secondary:

backgroundColor: "transparent"

textColor: "{colors.ink}"

typography: "{typography.button-md}"

rounded: "{rounded.md}"

padding: "10px 20px"

border: "1px solid {colors.hairline-strong}"

button-on-cream:

backgroundColor: "{colors.canvas}"

textColor: "{colors.ink}"

typography: "{typography.button-md}"

rounded: "{rounded.md}"

padding: "10px 20px"

border: "1px solid {colors.beige-deep}"

button-link:

backgroundColor: "transparent"

textColor: "{colors.primary}"

typography: "{typography.body-sm-medium}"

padding: "0"

card-base:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.lg}"

padding: "{spacing.xl}"

border: "1px solid {colors.hairline-soft}"

card-feature:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "1px solid {colors.hairline-soft}"

card-cream:

backgroundColor: "{colors.cream}"

textColor: "{colors.ink}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "1px solid {colors.beige-deep}"

card-cream-soft:

backgroundColor: "{colors.surface-cream-soft}"

textColor: "{colors.ink}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

card-feature-product:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "1px solid {colors.hairline-soft}"

shadow: "rgba(0, 0, 0, 0.04) 0px 4px 12px"

card-photographic:

backgroundColor: "{colors.surface-code}"

textColor: "{colors.on-dark}"

rounded: "{rounded.lg}"

padding: "0"

pricing-card:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "1px solid {colors.hairline-soft}"

pricing-card-featured:

backgroundColor: "{colors.cream}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "2px solid {colors.primary}"

text-input:

backgroundColor: "{colors.canvas}"

textColor: "{colors.ink}"

typography: "{typography.body-md}"

rounded: "{rounded.md}"

padding: "{spacing.sm} {spacing.md}"

border: "1px solid {colors.hairline-strong}"

height: 44px

text-input-focused:

backgroundColor: "{colors.canvas}"

textColor: "{colors.ink}"

border: "2px solid {colors.primary}"

text-area:

backgroundColor: "{colors.canvas}"

textColor: "{colors.ink}"

typography: "{typography.body-md}"

rounded: "{rounded.md}"

padding: "{spacing.md}"

border: "1px solid {colors.hairline-strong}"

contact-form-panel:

backgroundColor: "{colors.cream}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "1px solid {colors.beige-deep}"

pill-tab:

backgroundColor: "{colors.canvas}"

textColor: "{colors.steel}"

typography: "{typography.body-sm-medium}"

rounded: "{rounded.full}"

padding: "{spacing.xs} {spacing.md}"

border: "1px solid {colors.hairline}"

pill-tab-active:

backgroundColor: "{colors.ink}"

textColor: "{colors.on-dark}"

rounded: "{rounded.full}"

border: "1px solid {colors.ink}"

segmented-tab:

backgroundColor: "transparent"

textColor: "{colors.steel}"

typography: "{typography.body-sm-medium}"

padding: "{spacing.sm} {spacing.md}"

border: "0 0 2px transparent solid"

segmented-tab-active:

backgroundColor: "transparent"

textColor: "{colors.primary}"

typography: "{typography.body-sm-medium}"

border: "0 0 2px {colors.primary} solid"

badge-orange:

backgroundColor: "{colors.primary}"

textColor: "{colors.on-primary}"

typography: "{typography.caption-bold}"

rounded: "{rounded.full}"

padding: "4px 10px"

badge-cream:

backgroundColor: "{colors.cream-deeper}"

textColor: "{colors.ink}"

typography: "{typography.caption-bold}"

rounded: "{rounded.full}"

padding: "4px 10px"

badge-dark:

backgroundColor: "{colors.ink}"

textColor: "{colors.on-dark}"

typography: "{typography.caption-bold}"

rounded: "{rounded.full}"

padding: "4px 10px"

promo-banner:

backgroundColor: "{colors.ink}"

textColor: "{colors.on-dark}"

typography: "{typography.body-sm-medium}"

padding: "{spacing.sm} {spacing.md}"

hero-band-sunset:

backgroundColor: "{colors.sunshine-700}"

textColor: "{colors.ink}"

rounded: "0"

padding: "{spacing.hero}"

sunset-stripe-band:

backgroundColor: "{colors.primary}"

textColor: "{colors.on-primary}"

rounded: "0"

padding: "{spacing.lg} 0"

cta-banner-cream:

backgroundColor: "{colors.cream}"

textColor: "{colors.ink}"

rounded: "{rounded.lg}"

padding: "{spacing.section}"

code-block:

backgroundColor: "{colors.surface-code}"

textColor: "{colors.on-dark}"

typography: "{typography.code-md}"

rounded: "{rounded.md}"

padding: "{spacing.md}"

code-block-header:

backgroundColor: "{colors.surface-code}"

textColor: "{colors.on-dark-muted}"

typography: "{typography.caption}"

padding: "{spacing.xs} {spacing.md}"

border: "0 0 1px rgba(255,255,255,0.08) solid"

feature-icon-tile:

backgroundColor: "{colors.cream}"

rounded: "{rounded.md}"

padding: "{spacing.md}"

border: "1px solid {colors.beige-deep}"

industry-tile:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.lg}"

padding: "{spacing.xl}"

border: "1px solid {colors.hairline-soft}"

stat-cell:

backgroundColor: "transparent"

textColor: "{colors.ink}"

typography: "{typography.stat-display}"

padding: "{spacing.lg}"

customer-testimonial-card:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.lg}"

padding: "{spacing.xxl}"

border: "1px solid {colors.hairline-soft}"

logo-wall-item:

backgroundColor: "transparent"

textColor: "{colors.steel}"

typography: "{typography.body-md-medium}"

padding: "{spacing.lg}"

faq-accordion-item:

backgroundColor: "{colors.canvas}"

rounded: "{rounded.md}"

padding: "{spacing.xl}"

border: "0 0 1px {colors.hairline} solid"

footer-region:

backgroundColor: "{colors.footer-cream}"

textColor: "{colors.ink}"

typography: "{typography.body-sm}"

padding: "{spacing.section} {spacing.xxl}"

footer-link:

backgroundColor: "transparent"

textColor: "{colors.primary}"

typography: "{typography.body-sm}"

padding: "{spacing.xxs} 0"

app-store-badge:

backgroundColor: "{colors.ink}"

textColor: "{colors.on-dark}"

typography: "{typography.caption-bold}"

rounded: "{rounded.md}"

padding: "{spacing.sm} {spacing.md}"

---

Overview

Section 01

Mistral AI carries itself with a singular, almost cinematographic visual signature — the homepage opens with "Frontier AI. In your hands." rendered in elegant near-serif display type over a photographic mountain landscape bathed in mustard-orange sunset light. Below the hero, every page closes with the same recognizable element: a horizontal "sunset stripe" gradient band running red→orange→yellow→cream that wraps the foot of the page just above the footer. This stripe is THE brand recognizer — it appears on the homepage, products/studio, solutions/coding, news articles, contact form, and services tier page without exception.

The system pairs PP Editorial Old (a near-serif elegant display face) for hero displays with Inter for everything else (body, headings, UI). Cream-yellow surfaces ({colors.cream}, {colors.surface-cream-soft}) anchor form panels and feature cards; saturated orange ({colors.primary}) carries primary CTAs; the deep mountain photography on the homepage and the dark code mockups inside Le Studio create photographic depth. Cards are rectangular with `{rounded.lg}` (12px) corners — distinctly less playful than Miro's or Mintlify's pill-buttons-everywhere approach. Buttons are also `{rounded.md}` (8px), not pills — Mistral's geometry is more sober and editorial than its peers.

**Key Characteristics:**

Atmospheric mountain-sunset hero photography (orange-red-yellow gradient sky)
Horizontal "sunset stripe" band ({colors.primary} → {colors.sunshine-700} → {colors.yellow-saturated} → {colors.cream}) at every page bottom
Cream-yellow surfaces ({colors.cream}, {colors.cream-soft}) for form panels and feature cards
PP Editorial Old (or similar near-serif) for hero displays; Inter for everything else
`{rounded.md}` (8px) buttons and `{rounded.lg}` (12px) cards — less playful, more editorial geometry
Saturated orange primary CTA ({colors.primary}) carries every action call

Colors

Section 02

> Source pages: mistral.ai/ (homepage), /products/studio (Le Studio product), /solutions/coding (coding solution), /news/vibe-remote-agents-mistral-medium-3-5 (news), /contact (contact form), /services (services tiers). Token coverage was identical across all six pages.

Brand & Accent

Section 03
Mistral Orange ({colors.primary}): Primary CTA color, brand orange
Orange Deep ({colors.primary-deep}): Pressed-state and emphasis variant
Sunshine 300 ({colors.sunshine-300}): Atmospheric light orange-yellow
Sunshine 500 ({colors.sunshine-500}): Mid-spectrum sunset orange
Sunshine 700 ({colors.sunshine-700}): Saturated mid sunset gradient stop
Sunshine 800 ({colors.sunshine-800}): Deep sunset gradient stop
Sunshine 900 ({colors.sunshine-900}): Deepest sunset orange
Yellow Saturated ({colors.yellow-saturated}): Pure brand yellow used in the sunset stripe gradient
Block 5/6/7 ({colors.block-5}, {colors.block-6}, {colors.block-7}): Spectrum stops along the sunset gradient (light-yellow → mid-yellow → deep-orange)

Cream / Neutral Warm

Section 04
Cream ({colors.cream}): Warm yellow-cream surface for form panels, feature cards, footer
Cream Soft ({colors.cream-soft}): Lighter cream variant
Cream Deeper ({colors.cream-deeper}): More-saturated cream for badge/tag chips
Beige Deep ({colors.beige-deep}): Cream surface 1px border color

Surface

Section 05
Canvas White ({colors.canvas}): Page background and card surface
Surface ({colors.surface}): Subtle quieter background
Surface Cream ({colors.surface-cream}): Cream-yellow tinted surface
Surface Code ({colors.surface-code}): Dark code-block / IDE mockup surface
Hairline ({colors.hairline}): 1px borders
Hairline Soft ({colors.hairline-soft}): Quieter dividers
Hairline Strong ({colors.hairline-strong}): Stronger 1px border for inputs

Text

Section 06
Ink ({colors.ink}): Primary headlines and body text
Ink Tint ({colors.ink-tint}): Slightly softer black for hero overlay text
Charcoal ({colors.charcoal}): Body emphasis
Slate ({colors.slate}): Secondary text
Steel ({colors.steel}): Tertiary text, captions
Stone ({colors.stone}): Muted labels
Muted ({colors.muted}): Disabled, placeholders
On Dark ({colors.on-dark}): White text on dark surfaces
On Dark Muted ({colors.on-dark-muted}): Reduced-opacity white
On Cream ({colors.on-cream}): Ink text on cream surfaces

Semantic

Section 07
Link ({colors.link}): Inline link color (matches primary orange)

Typography

Section 08

Font Family

Section 09

**PP Editorial Old** (display): Mistral's signature near-serif elegant display typeface used for hero displays, large numbers, and editorial section openers. Carries a slightly classical, intelligent character that contrasts the contemporary product positioning. Fallbacks: 'Times New Roman', Georgia, serif.

**Inter** (UI prose): Variable typeface for body, navigation, buttons, labels, captions. Fallbacks: ui-sans-serif, system-ui, -apple-system, sans-serif.

**JetBrains Mono** (code): Monospace for code blocks and IDE mockups. Fallbacks: 'SF Mono', Menlo, Consolas, monospace.

Hierarchy

Section 010

| Token | Size | Weight | Line Height | Letter Spacing | Family | Use |

|---|---|---|---|---|---|---|

| `{typography.hero-display}` | 84px | 400 | 1.05 | -1.5px | PP Editorial Old | Hero ("Frontier AI. In your hands.") |

| `{typography.display-lg}` | 64px | 400 | 1.10 | -1px | PP Editorial Old | Section openers |

| `{typography.heading-1}` | 52px | 400 | 1.15 | -0.5px | PP Editorial Old | Page headlines ("Get in touch with the team.") |

| `{typography.stat-display}` | 56px | 400 | 1.10 | -1px | PP Editorial Old | Stat callouts ("75%") |

| `{typography.heading-2}` | 36px | 500 | 1.20 | -0.5px | Inter | Subsection headlines |

| `{typography.heading-3}` | 28px | 500 | 1.25 | 0 | Inter | Card titles |

| `{typography.heading-4}` | 22px | 500 | 1.30 | 0 | Inter | Feature tile titles |

| `{typography.heading-5}` | 18px | 500 | 1.40 | 0 | Inter | Smaller card titles |

| `{typography.subtitle}` | 18px | 400 | 1.50 | 0 | Inter | Hero subtitle, lead body |

| `{typography.body-md}` | 16px | 400 | 1.55 | 0 | Inter | Primary body text |

| `{typography.body-md-medium}` | 16px | 500 | 1.55 | 0 | Inter | Body emphasis |

| `{typography.body-sm}` | 14px | 400 | 1.50 | 0 | Inter | Secondary body |

| `{typography.body-sm-medium}` | 14px | 500 | 1.50 | 0 | Inter | Active sidebar, button labels |

| `{typography.caption}` | 13px | 400 | 1.40 | 0 | Inter | Helper text |

| `{typography.caption-bold}` | 13px | 600 | 1.40 | 0 | Inter | Badge labels |

| `{typography.micro}` | 12px | 500 | 1.40 | 0 | Inter | Footer microcopy |

| `{typography.micro-uppercase}` | 11px | 600 | 1.40 | 1px | Inter | Section eyebrows |

| `{typography.button-md}` | 14px | 500 | 1.30 | 0 | Inter | Button labels |

| `{typography.code-md}` | 14px | 400 | 1.50 | 0 | JetBrains Mono | Code blocks |

Principles

Section 011
Editorial / sans pairing — PP Editorial Old (near-serif, classical) anchors hero displays; Inter (geometric sans) carries everything else. The contrast IS the brand voice.
Generous body leading (1.55 on body-md) for editorial readability across long-form pages
Tight hero leading (1.05 on 84px display) creates magazine-grade typographic display
Negative letter-spacing progresses with size — display sizes use -1.5px to -0.5px; smaller heads relax to 0
Stat-display token (56px Editorial) for marketing stat callouts ("75% / 80% / 100%")

Layout

Section 012

Spacing System

Section 013
Base unit: 4px (8px primary increment)
Tokens: `{spacing.xxs}` (4px) · `{spacing.xs}` (8px) · `{spacing.sm}` (12px) · `{spacing.md}` (16px) · `{spacing.lg}` (20px) · `{spacing.xl}` (24px) · `{spacing.xxl}` (32px) · `{spacing.xxxl}` (40px) · `{spacing.section-sm}` (48px) · `{spacing.section}` (64px) · `{spacing.section-lg}` (96px) · `{spacing.hero}` (120px)
Section rhythm: Marketing pages use `{spacing.section-lg}` (96px); content pages tighten to `{spacing.section}` (64px)
Card internal padding: `{spacing.xl}` (24px) for compact cards; `{spacing.xxl}` (32px) for feature panels and form panels

Grid & Container

Section 014
Marketing pages use 1280px max-width with 32px gutters
Hero band uses 2-column split (text left, sunset photography right) on desktop
Le Studio product page uses 3-up feature grid below the hero
Contact page uses 1-column layout with cream form panel centered (~520px max-width)
Services page uses 4-tier card layout with cream feature panel separator strip

Whitespace Philosophy

Section 015

Marketing surfaces give content generous breathing room — `{spacing.hero}` (120px) hero padding lets the mountain-sunset photography fill the frame. Form pages tighten dramatically: contact form panel uses `{spacing.xxl}` (32px) internal padding, fields stack on `{spacing.md}` (16px) gap.

Elevation & Depth

Section 016

The system runs predominantly flat with strategic atmospheric depth from photography.

| Level | Treatment | Use |

|---|---|---|

| 0 (flat) | No shadow; `{colors.hairline-soft}` border | Default cards, table rows, form inputs |

| 1 (subtle) | `rgba(0, 0, 0, 0.04) 0px 1px 2px 0px` | Hover-elevated tiles |

| 2 (card) | `rgba(0, 0, 0, 0.04) 0px 4px 12px 0px` | Standard feature cards |

| 3 (mockup) | `rgba(0, 0, 0, 0.08) 0px 12px 24px -4px` | IDE mockup, code editor frames |

| 4 (modal) | `rgba(0, 0, 0, 0.12) 0px 16px 48px -8px` | Modals, dropdowns |

Decorative Depth

Section 017
The atmospheric depth on Mistral's hero comes from the photographic mountain-sunset imagery — natural light gradient does the work
The "sunset stripe" closing band carries depth via its multi-stop gradient (red → orange → yellow → cream)
IDE / code mockups use dark-canvas backgrounds with subtle drop shadow

Shapes

Section 018

Border Radius Scale

Section 019

| Token | Value | Use |

|---|---|---|

| `{rounded.xs}` | 4px | Small chips, micro-controls |

| `{rounded.sm}` | 6px | Discount badges, compact UI |

| `{rounded.md}` | 8px | Buttons, inputs, search-pill, code blocks |

| `{rounded.lg}` | 12px | Cards, modals, panels (the dominant card radius) |

| `{rounded.xl}` | 16px | Larger feature panels |

| `{rounded.xxl}` | 20px | Featured emphasis cards |

| `{rounded.full}` | 9999px | Status badges, pill tabs (used sparingly — most buttons are NOT pills) |

The radius scale is sober and editorial — Mistral does NOT use pill buttons. `{rounded.md}` (8px) for buttons, `{rounded.lg}` (12px) for cards, `{rounded.full}` reserved for badges and the rare pill tab.

Photography Geometry

Section 020
Hero photography is full-bleed atmospheric mountain-sunset imagery with no internal framing
IDE/code mockups render with `{rounded.lg}` (12px) corners on dark canvas
Customer logos wall presents wordmarks inline at consistent 60–80px height
Product imagery (Le Studio mockup, agent UI mockups) sits in `{rounded.lg}` panels with subtle border

Components

Section 021

> Per the no-hover policy, hover states are NOT documented. Default and pressed/active states only.

Buttons

Section 022

**`button-primary`** — Saturated-orange primary CTA, the dominant action.

Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.
Pressed state `button-primary-pressed` deepens to `{colors.primary-deep}`.
Disabled state `button-primary-disabled` uses `{colors.hairline}` background and `{colors.muted}` text.

**`button-cream`** — Warm cream-yellow secondary action, common on cream-surface sections.

Background `{colors.cream}`, text `{colors.ink}`, border `1px solid {colors.beige-deep}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.

**`button-dark`** — Dark/black primary CTA on cream surfaces.

Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.

**`button-secondary`** — Outlined secondary action.

Background transparent, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.

**`button-on-cream`** — White button on cream-tinted backgrounds.

Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.beige-deep}`, typography `{typography.button-md}`, padding `10px 20px`, rounded `{rounded.md}`.

**`button-link`** — Inline orange text link.

Background transparent, text `{colors.primary}`, typography `{typography.body-sm-medium}`, padding `0`. Underline on activation.

Cards & Containers

Section 023

**`card-base`** — Standard content card.

Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline-soft}`.

**`card-feature`** — White feature card with larger padding.

Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid `{colors.hairline-soft}`.

**`card-cream`** — Warm cream-yellow feature card (services tiers, perk callouts).

Background `{colors.cream}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.beige-deep}`.

**`card-cream-soft`** — Lighter cream variant.

Background `{colors.surface-cream-soft}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`.

**`card-feature-product`** — Product showcase card with subtle elevation.

Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`, shadow `rgba(0, 0, 0, 0.04) 0px 4px 12px`.

**`card-photographic`** — Photographic product card with dark background.

Background `{colors.surface-code}`, text `{colors.on-dark}`, rounded `{rounded.lg}`, padding `0` (image fills the card).

**`pricing-card`** — Standard pricing tier card.

Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`.

**`pricing-card-featured`** — Featured pricing tier (cream background + orange border).

Background `{colors.cream}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `2px solid {colors.primary}`.

Inputs & Forms

Section 024

**`text-input`** — Standard text field.

Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`, height 44px.

**`text-input-focused`** — Activated state.

Border switches to `2px solid {colors.primary}`.

**`text-area`** — Multi-line text area for contact form.

Background `{colors.canvas}`, text `{colors.ink}`, border `1px solid {colors.hairline-strong}`, rounded `{rounded.md}`, padding `{spacing.md}`.

**`contact-form-panel`** — Cream-tinted form container on the contact page.

Background `{colors.cream}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.beige-deep}`. Hosts text-inputs, text-area, submit `button-dark`.

Tabs

Section 025

**`pill-tab`** + **`pill-tab-active`** — Pill-style tab nav (used sparingly on product pages).

Inactive: background `{colors.canvas}`, text `{colors.steel}`, border `1px solid {colors.hairline}`, padding `{spacing.xs} {spacing.md}`, rounded `{rounded.full}`.
Active: background `{colors.ink}`, text `{colors.on-dark}`.

**`segmented-tab`** + **`segmented-tab-active`** — Underline-style tab navigation.

Inactive: text `{colors.steel}`, transparent background, padding `{spacing.sm} {spacing.md}`, no bottom border.
Active: text `{colors.primary}`, 2px bottom border in `{colors.primary}`.

Badges & Status

Section 026

**`badge-orange`** — Saturated orange badge.

Background `{colors.primary}`, text `{colors.on-primary}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`badge-cream`** — Cream-tinted tag chip.

Background `{colors.cream-deeper}`, text `{colors.ink}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`badge-dark`** — Dark/black status badge.

Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.full}`, padding `4px 10px`.

**`promo-banner`** — Sticky black promo strip ABOVE the top nav.

Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.body-sm-medium}`, padding `{spacing.sm} {spacing.md}`. Carries one-line copy + inline CTA.

Code

Section 027

**`code-block`** — Syntax-highlighted IDE-style code block (Le Studio page mockup, agent demos).

Background `{colors.surface-code}`, text `{colors.on-dark}`, typography `{typography.code-md}`, rounded `{rounded.md}`, padding `{spacing.md}`.

**`code-block-header`** — Header bar above the code block.

Background `{colors.surface-code}`, text `{colors.on-dark-muted}`, typography `{typography.caption}`, padding `{spacing.xs} {spacing.md}`, bottom border `1px solid rgba(255,255,255,0.08)`.

Documentation Components

Section 028

**`feature-icon-tile`** — Cream-yellow feature icon callout.

Background `{colors.cream}`, rounded `{rounded.md}`, padding `{spacing.md}`, border `1px solid {colors.beige-deep}`.

**`industry-tile`** — Industry-vertical tile in solutions page grid.

Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xl}`, border `1px solid {colors.hairline-soft}`.

**`stat-cell`** — Stat-row cell ("75% more / 80% better").

Background transparent, text `{colors.ink}`, typography `{typography.stat-display}`, padding `{spacing.lg}`.

**`customer-testimonial-card`** — Customer quote card (used inside Le Studio and Solutions pages).

Background `{colors.canvas}`, rounded `{rounded.lg}`, padding `{spacing.xxl}`, border `1px solid {colors.hairline-soft}`. Quote in `{typography.body-md}`, attribution in `{typography.body-sm}` `{colors.steel}`.

**`logo-wall-item`** — Customer logo wordmark cell.

Background transparent, text `{colors.steel}`, typography `{typography.body-md-medium}`, padding `{spacing.lg}`.

**`faq-accordion-item`** — FAQ panel.

Background `{colors.canvas}`, rounded `{rounded.md}`, padding `{spacing.xl}`, bottom border `1px solid {colors.hairline}`.

**`app-store-badge`** — App Store / Google Play download badge.

Background `{colors.ink}`, text `{colors.on-dark}`, typography `{typography.caption-bold}`, rounded `{rounded.md}`, padding `{spacing.sm} {spacing.md}`.

Navigation

Section 029

**Top Navigation (Marketing)** — Sticky white bar.

Background `{colors.canvas}`, height ~64px, bottom border `1px solid {colors.hairline-soft}`.
Left: Mistral M-mark logo + "MISTRAL AI_" wordmark + horizontal link list (Products, Solutions, Research, Blog, Customers, Company).
Right: "Contact Sales" link + black-pill "Try Studio" CTA.

Signature Components

Section 030

**`hero-band-sunset`** — Atmospheric sunset hero band.

Background gradient `linear-gradient(135deg, {colors.sunshine-700} 0%, {colors.sunshine-900} 60%, {colors.primary} 100%)` overlaid on photographic mountain landscape.
Layout: hero headline left in `{typography.hero-display}` ({colors.ink}), subtitle in `{typography.subtitle}` ({colors.ink-tint}), button row (`button-dark` + `button-secondary`), atmospheric mountain photography right.

**`sunset-stripe-band`** — Horizontal closing band at the foot of every page.

Multi-stop gradient: `{colors.primary}` → `{colors.sunshine-700}` → `{colors.sunshine-500}` → `{colors.yellow-saturated}` → `{colors.cream}`.
Padding `{spacing.lg} 0`. Spans full width, sits above the footer. THIS IS THE BRAND'S MOST RECOGNIZABLE SIGNATURE ELEMENT.

**`cta-banner-cream`** — Page-bottom CTA band on cream surface.

Background `{colors.cream}`, text `{colors.ink}`, rounded `{rounded.lg}`, padding `{spacing.section}`. "The next chapter of AI is yours." headline in `{typography.heading-1}` (PP Editorial Old), button row below.

**`footer-region`** — Cream-tinted multi-column footer.

Background `{colors.footer-cream}`, padding `{spacing.section} {spacing.xxl}`.
5-column link grid (Why Mistral / Explore / Build / Legal + brand mark column).
Bottom: language picker + social icons.

**`footer-link`** — Individual footer link.

Background transparent, text `{colors.primary}`, typography `{typography.body-sm}`, padding `{spacing.xxs} 0`.

Do's and Don'ts

Section 031

Do

Section 032
Reserve `{colors.primary}` (saturated orange) for primary CTAs and active states only
Use the **sunset stripe band** at the foot of every page — it's the brand's most recognizable signature
Pair PP Editorial Old (display) with Inter (UI) — never substitute either with a generic alternative
Apply `{rounded.md}` (8px) to buttons and `{rounded.lg}` (12px) to cards consistently
Use cream-yellow surfaces ({colors.cream}) for form panels, feature cards, and footer
Anchor heroes with photographic mountain-sunset imagery (or its visual equivalent — atmospheric gradient sky)
Use stat-display token (PP Editorial 56px) for stat callouts to maintain editorial character

Don't

Section 033
Don't use pill-shaped buttons (`{rounded.full}`) — Mistral's geometry is sober and editorial, not playful
Don't introduce additional accent colors beyond the orange/yellow/cream sunset palette
Don't reduce hero leading below 1.05 — the editorial display needs that magazine-grade tightness
Don't replace PP Editorial Old hero displays with Inter — the editorial / sans contrast IS the brand
Don't apply heavy shadows on flat documentation cards; reserve elevation for IDE mockups
Don't drop the sunset stripe band from any page bottom — it's the brand's continuity element

Responsive Behavior

Section 034

Breakpoints

Section 035

| Name | Width | Key Changes |

|---|---|---|

| Mobile (small) | < 480px | Single column. Hero scales to 40px (PP Editorial). Pill nav collapses to hamburger. Pricing tiers stack 1-up. |

| Mobile (large) | 480 – 767px | Feature tiles 2-up. Hero scales to 52px. |

| Tablet | 768 – 1023px | 2-column feature grids. Pill-tab nav returns. Hero 64px. |

| Desktop | 1024 – 1279px | Multi-column layouts. Hero 76px. Stat row at full width. |

| Wide Desktop | ≥ 1280px | Full 84px hero presentation. |

Touch Targets

Section 036
Buttons render at 40–44px effective height — at WCAG AAA floor with `10px 20px` padding
Form inputs render at 44px height
Pill tabs render at ~32px tall — bumps to 44px on mobile

Collapsing Strategy

Section 037
Promo banner stays full-width; truncates at < 480px
Top nav below 1024px collapses to hamburger
Hero band: 2-column hero (text + photography) collapses to stacked at < 1024px
Pricing tiers: 4-column desktop → 2-column tablet → 1-column mobile
Stat row: 3-column → stacked at < 768px
Hero typography: 84px → 64px → 52px → 40px
Footer: 5-column desktop → 3-column tablet → 1-column accordion mobile
Sunset stripe band stays full-width on all breakpoints

Image Behavior

Section 038
Mountain-sunset photography uses 16:9 ratio with full-bleed scaling
IDE mockup images maintain aspect ratio across breakpoints
Customer logo wall presents wordmarks at consistent 60–80px height

Iteration Guide

Section 039

1. Focus on ONE component at a time

2. Reference component names and tokens directly (`{colors.primary}`, `{component-name}-pressed`)

3. Run `npx @google/design.md lint DESIGN.md` after edits

4. Add new variants as separate `components:` entries

5. Default to `{typography.body-md}` for body and `{typography.subtitle}` for emphasis. Hero displays use `{typography.hero-display}` (PP Editorial Old).

6. Keep `{colors.primary}` confined to primary CTAs, active states, and the sunset stripe band

7. Cards use `{rounded.lg}` (12px), buttons use `{rounded.md}` (8px). Pills (`{rounded.full}`) reserved for badges only.

8. Always include the sunset-stripe-band component at the foot of every page mockup.

Known Gaps

Section 040
Specific dark-mode token values not surfaced; the brand has not shipped a published dark-mode palette
Animation/transition timings not extracted; recommend 150–200ms ease for hover/focus state transitions
Form validation success state not explicitly captured beyond defaults
Sunset stripe band gradient stops are approximations — the actual values may vary slightly across pages but the visual rhythm is consistent
72,570+ DESIGN.md files generated