| version | alpha |
| name | Mistral AI |
| 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
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
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
- 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
- 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
- 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
- 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
- Link ({colors.link}): Inline link color (matches primary orange)
Typography
Font Family
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
| 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
- 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
Spacing System
- 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
- 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
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
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
- 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
Border Radius Scale
| 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
- 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
Per the no-hover policy, hover states are NOT documented. Default and pressed/active states only.
Buttons
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
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
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
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
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
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
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
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
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
Do
- 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
- 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
Breakpoints
| 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
- 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
- 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
- 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
- Focus on ONE component at a time
- Reference component names and tokens directly (
{colors.primary}, {component-name}-pressed)
- Run
npx @google/design.md lint DESIGN.md after edits
- Add new variants as separate
components: entries
- Default to
{typography.body-md} for body and {typography.subtitle} for emphasis. Hero displays use {typography.hero-display} (PP Editorial Old).
- Keep
{colors.primary} confined to primary CTAs, active states, and the sunset stripe band
- Cards use
{rounded.lg} (12px), buttons use {rounded.md} (8px). Pills ({rounded.full}) reserved for badges only.
- Always include the sunset-stripe-band component at the foot of every page mockup.
Known Gaps
- 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