light · bold · sans · ai · inference

DESIGN.md inspired by Groq

Warm off-white canvas, light-weight Space Grotesk, and a single hot `#f43e01` orange — speed-obsessed AI inference.

By webdesignhot · groq.com
$ npx @webdesignhot/design-md add groq
Learn more about the CLI
Compare to…
try on →
theme
1440 × 900
mobile · 390 × 844
Tokens webdesignhot/0.1
  • bg #f3f3ee
  • bg-warm #ecece4
  • surface #e8e8de
  • surface-card #fffcfc
  • surface-dark #2a2a25
  • surface-darker #1f1f1b
  • text AAA · 12.0 #2d2f33
  • text-body #3a3c40
  • text-muted #64748b
  • text-faint — · 2.6 #9498a0
  • text-on-brand #ffffff
  • text-on-dark #f3f3ee
  • text-on-dark-muted #b8b8ae
  • brand AA·LG · 3.4 #f43e01
  • brand-hover #d83602
  • brand-active #bf2f02
  • brand-soft #fde4da
  • brand-deep #9e2701
  • on-brand #ffffff
  • dark #2a2a25
  • dark-hover #1f1f1b
  • link #2d2f33
  • link-hover #f43e01
  • border — · 1.2 #dbe2f0
  • border-strong — · 1.5 #c4cbd9
  • border-warm #d8d8cd
  • shadow-color rgba(31, 31, 27, 0.05)
  • shadow-color-md rgba(31, 31, 27, 0.08)
  • shadow-color-lg rgba(31, 31, 27, 0.12)
  • shadow-glow-orange rgba(244, 62, 1, 0.18)
  • success #16a34a
  • warning #d97706
  • danger #dc2626
  • info #0ea5e9
Typography
Ship faster than ever.
display-hero Space Grotesk" 80px w300 -0.03em
Ship faster than ever.
display-lg Space Grotesk" 56px w300 -0.02em
Ship faster than ever.
stat-display Space Grotesk" 56px w300 -0.02em
Ship faster than ever.
display-md Space Grotesk" 46px w300 -0.02em
Ship faster than ever.
h1 Space Grotesk" 32px w300 -0.02em
Built for teams that ship.
h2 Space Grotesk" 32px w300 -0.02em
A complete kit
h3 Space Grotesk" 24px w400 -0.01em
The quick brown fox jumps over the lazy dog.
h4 Space Grotesk" 20px w500 0
The quick brown fox jumps over the lazy dog.
title Space Grotesk" 18px w500 0
The quick brown fox jumps over the lazy dog.
body-lg Space Grotesk" 18px w400 0
The quick brown fox jumps over the lazy dog.
body Space Grotesk" 16px w400 0
The quick brown fox jumps over the lazy dog.
button Space Grotesk" 15px w400 0
The quick brown fox jumps over the lazy dog.
nav-link Space Grotesk" 15px w400 0
The quick brown fox jumps over the lazy dog.
body-sm Space Grotesk" 14px w400 0
npx @webdesignhot/design-md add stripe
code IBM Plex Mono 14px w400 0
OUR DESIGN SYSTEM
label Space Grotesk" 13px w500 0
OUR DESIGN SYSTEM
caption Space Grotesk" 12px w500 0.02em
OUR DESIGN SYSTEM
mono-eyebrow IBM Plex Mono 12px w500 1.2px
Spacing
  • step-0 0px
  • step-1 4px
  • step-2 8px
  • step-3 12px
  • step-4 16px
  • step-5 24px
  • step-6 32px
  • step-7 48px
  • step-8 64px
  • step-9 96px
Radius
  • micro 2px
  • sm 4px
  • md 8px
  • lg 12px
  • xl 16px
  • pill 9999px
Components
Text link →
Card preview A complete kit — everything your product needs. Hero, pricing, FAQ, dashboard, docs — every layout your product needs.
New Stable v1.0
Design roles 6/8 mapped · webdesignhot/0.1

Maps the 8 canonical role names to this entry's actual tokens. Use these to plug the design into role-aware tools — shadcn/ui themes, role-aware Tailwind plugins, atelier-lint — without hard-coding token names.

  • background bg
  • foreground text
  • primary brand
  • primary-foreground on-brand
  • accent
  • muted text-muted
  • border border
  • ring
Lineage & influences

Groq's marketing aesthetic descends from the **precision-instrument** lineage — the warm paper canvas of editorial design crossed with the restraint of Swiss-grid typography. The whole type identity rests on **Space Grotesk**, Florian Karsten's reworking of Haas Grotesk Display: a geometric grotesque with a tall x-height and distinctive single-storey forms that give Groq an engineered, slightly mechanical voice. The light weight (300) on large headlines is the signature move — most hardware-AI brands shout in bold, Groq whispers in light, which reads as confidence: the speed speaks for itself. The warm off-white `#f3f3ee` paper (NOT sterile white) softens the technical register and ties to print-grade editorial work. A single hot `#f43e01` orange — the LPU brand voltage — is the one place the page raises its voice, rendered as a fully-rounded 1000px pill. IBM Plex Mono on the stat eyebrows nods to the lab-instrument / terminal heritage. Where Baseten dresses ML deployment in approachable purple and Modal in lime-green optimism, Groq commits to speed-obsessed minimalism: fast, low cost inference, said quietly on warm paper.

Export 4 formats · paste-ready
Tailwind

theme.extend block for tailwind.config.js

tailwind.config.js
CSS variables

:root { --bg, --text, --brand, … } you can paste anywhere

design.css
DTCG JSON

W3C Design Tokens Community Group format

design.tokens.json
Figma Variables

Importable into Figma → Variables → Import

figma-variables.json
The file
---
name: Groq
tagline: 'Warm off-white canvas, light-weight Space Grotesk, and a single hot `#f43e01` orange — speed-obsessed AI inference.'
updated_at: 2026-05-28T22:16:06.555Z
published_at: 2026-05-28T22:16:06.555Z
author: webdesignhot
source_url: https://groq.com
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [ai, dev-tools]
tags: [light, bold, sans, ai, inference]
preview_swatch: ['#f3f3ee', '#f43e01', '#2d2f33']
related: [baseten, modal, replicate]
description: 'Groq''s marketing surface reads like a precision instrument tuned for speed — a warm off-white `#f3f3ee` canvas, graphite `#2d2f33` text, and the whole type identity carried by Space Grotesk, a geometric grotesque whose distinctive single-storey forms and tall x-height become the brand''s signature. Headlines arrive at large sizes in a light weight (300) with tight negative tracking, an unusual editorial restraint for a hardware-AI company; body text holds Space Grotesk at 400. One hot `#f43e01` orange — borrowed from the Groq LPU brand voltage — handles every primary CTA, rendered as a fully-rounded `1000px` pill. A dark `#2a2a25` secondary button anchors the speed-demo affordance, and IBM Plex Mono carries the stat eyebrows ("3M DEVELOPERS AND TEAMS", tokens-per-second counters). Where Baseten dresses ML deployment in approachable purple workshop chrome and Modal commits to lime-green developer optimism, Groq commits to a speed-obsessed register — fast, low cost inference — expressed through light type, warm paper, and a single decisive orange.'


# Canonical 8-role aliases (bg / text / brand / border / accent / muted / surface / danger).
# Maps role names to this entry's actual token names so role-aware
# downstream tools resolve `theme.background` → entry's `bg`, etc.
# Auto-generated by scripts/add-aliases.mjs — do not edit manually;
# regenerate after changing color token names.
aliases:
  background: bg
  foreground: text
  primary: brand
  primary-foreground: on-brand
  muted: text-muted
  border: border
colors:
  bg: '#f3f3ee'                  # warm off-white canvas — the brand's signature paper
  bg-warm: '#ecece4'             # slightly deeper warm band for alternation
  surface: '#e8e8de'             # soft card / panel tint on the warm canvas
  surface-card: '#fffcfc'        # near-white elevated content card
  surface-dark: '#2a2a25'        # dark secondary-button / inverted band surface
  surface-darker: '#1f1f1b'      # deepest inverted footer / code surface
  text: '#2d2f33'                # primary graphite text — headlines + body
  text-body: '#3a3c40'           # default running-text, fractionally softer
  text-muted: '#64748b'          # captions, secondary links, fine-print
  text-faint: '#9498a0'          # tertiary fine-print, disabled labels
  text-on-brand: '#ffffff'       # white text on the orange pill
  text-on-dark: '#f3f3ee'        # off-white text on dark surfaces (matches canvas)
  text-on-dark-muted: '#b8b8ae'  # muted body on dark surfaces
  brand: '#f43e01'               # the Groq hot orange — every primary CTA
  brand-hover: '#d83602'         # darkened orange for hover / press
  brand-active: '#bf2f02'        # deepest orange for active state
  brand-soft: '#fde4da'          # tinted orange wash for badges / highlights
  brand-deep: '#9e2701'          # darkest orange for type on brand-soft
  on-brand: '#ffffff'            # white label on orange pill
  dark: '#2a2a25'                # dark secondary action / inverted band
  dark-hover: '#1f1f1b'          # darkened dark-button hover
  link: '#2d2f33'               # inline links match text, underlined
  link-hover: '#f43e01'          # links warm to orange on hover
  border: '#dbe2f0'              # light hairline on cards / inputs
  border-strong: '#c4cbd9'       # stronger divider on focused inputs
  border-warm: '#d8d8cd'         # warm-tinted hairline on the off-white canvas
  shadow-color: 'rgba(31, 31, 27, 0.05)'    # ambient
  shadow-color-md: 'rgba(31, 31, 27, 0.08)' # standard card shadow
  shadow-color-lg: 'rgba(31, 31, 27, 0.12)' # hover / modal
  shadow-glow-orange: 'rgba(244, 62, 1, 0.18)'  # rare ambient glow on hero CTA
  success: '#16a34a'             # confirmation
  warning: '#d97706'             # caution
  danger: '#dc2626'              # destructive / error
  info: '#0ea5e9'                # informational notices

typography:
  display:
    family: 'Space Grotesk", system-ui, -apple-system, sans-serif'
    weights: [300, 400, 500, 600, 700]
  body:
    family: 'Space Grotesk", system-ui, -apple-system, sans-serif'
    weights: [400, 500, 600]
  mono:
    family: 'IBM Plex Mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace'
    weights: [400, 500]
  scale:
    display-hero:    { size: 80, weight: 300, lineHeight: 1.0,  tracking: '-0.03em',  family: display, notes: 'large hero — light weight, the brand signature' }
    display-lg:      { size: 56, weight: 300, lineHeight: 1.05, tracking: '-0.02em',  family: display, notes: 'major section heads, light' }
    display-md:      { size: 46, weight: 300, lineHeight: 1.1,  tracking: '-0.02em',  family: display, notes: 'editorial sub-heads, light' }
    h1:              { size: 32, weight: 300, lineHeight: 1.3,  tracking: '-0.02em',  family: display, notes: 'page h1 — Space Grotesk 32px/300' }
    h2:              { size: 32, weight: 300, lineHeight: 1.2,  tracking: '-0.02em',  family: display, notes: 'section h2 — light weight' }
    h3:              { size: 24, weight: 400, lineHeight: 1.25, tracking: '-0.01em',  family: display }
    h4:              { size: 20, weight: 500, lineHeight: 1.3,  tracking: '0',        family: display }
    title:           { size: 18, weight: 500, lineHeight: 1.35, tracking: '0',        family: display }
    body-lg:         { size: 18, weight: 400, lineHeight: 1.55, tracking: '0',        family: body }
    body:            { size: 16, weight: 400, lineHeight: 1.55, tracking: '0',        family: body }
    body-sm:         { size: 14, weight: 400, lineHeight: 1.5,  tracking: '0',        family: body }
    button:          { size: 15, weight: 400, lineHeight: 1.0,  tracking: '0',        family: body }
    nav-link:        { size: 15, weight: 400, lineHeight: 1.4,  tracking: '0',        family: body }
    label:           { size: 13, weight: 500, lineHeight: 1.4,  tracking: '0',        family: body }
    caption:         { size: 12, weight: 500, lineHeight: 1.4,  tracking: '0.02em',   family: body }
    mono-eyebrow:    { size: 12, weight: 500, lineHeight: 1.4,  tracking: '1.2px',    family: mono, transform: uppercase, notes: 'stat eyebrows — IBM Plex Mono' }
    stat-display:    { size: 56, weight: 300, lineHeight: 1.0,  tracking: '-0.02em',  family: display, notes: 'big stat numbers — tokens/sec, dev count' }
    code:            { size: 14, weight: 400, lineHeight: 1.6,  tracking: '0',        family: mono }

radius:
  micro: 2
  sm: 4
  md: 8
  lg: 12
  xl: 16
  pill: 9999

spacing:
  base: 4
  scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96]

layout:
  page-width: 1280
  prose-width: 720
  header-height: 64

motion:
  ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
  ease-emphasized: 'cubic-bezier(0.2, 0, 0, 1)'
  duration-fast: 150
  duration-standard: 240
  duration-slow: 320
  reduced-motion: 'respects prefers-reduced-motion: reduce — opacity-only transitions, speed-counter animation frozen on final value'

breakpoints:
  mobile: 640
  tablet: 1024
  desktop: 1280
  wide: 1536

components:
  button-primary:
    bg: brand
    text: on-brand
    radius: pill
    padding: '10px 16px'
    fontSize: 15
    use: 'every primary CTA — Start Building, Get Started, View Pricing'
  button-dark:
    bg: dark
    text: on-brand
    radius: sm
    padding: '12px'
    fontSize: 15
    use: 'speed-demo affordance — TRY THE SPEED OF GROQ'
  button-ghost:
    bg: transparent
    text: text
    border: border-warm
    radius: pill
    padding: '10px 16px'
    use: 'paired secondary action'
  button-text-link:
    bg: transparent
    text: text
    use: 'inline text link — underlined, warms to orange on hover'
  card:
    bg: surface
    border: border
    radius: lg
    padding: 24
    use: 'standard content card on the warm canvas'
  card-elevated:
    bg: surface-card
    radius: lg
    padding: 24
    use: 'near-white elevated card with ambient shadow'
  card-dark:
    bg: surface-dark
    text: text-on-dark
    radius: lg
    padding: 24
    use: 'inverted card — speed demo / benchmark surface'
  badge-mono:
    bg: transparent
    text: text-muted
    radius: micro
    transform: uppercase
    use: 'IBM Plex Mono stat eyebrow — 3M DEVELOPERS AND TEAMS'
  badge-soft:
    bg: brand-soft
    text: brand-deep
    radius: pill
    padding: '4px 12px'
    use: 'orange-tinted pill for NEW / featured callout'
  input:
    bg: surface-card
    border: border
    text: text
    radius: md
    padding: '8px 12px'
  top-nav:
    bg: bg
    text: text
    height: 64

shadows:
  ambient: 'rgba(31, 31, 27, 0.05) 0 1px 2px'
  standard: 'rgba(31, 31, 27, 0.08) 0 4px 14px'
  elevated: 'rgba(31, 31, 27, 0.12) 0 12px 32px -8px'
  deep: 'rgba(31, 31, 27, 0.16) 0 24px 48px -12px'
  glow-orange: 'rgba(244, 62, 1, 0.18) 0 12px 48px -8px'
  ring: '0 0 0 3px rgba(244, 62, 1, 0.30)'

accessibility:
  contrast-text-on-bg: 11.1               # AAA — #2d2f33 on #f3f3ee
  contrast-body-on-bg: 9.6                # AAA — #3a3c40 on #f3f3ee
  contrast-muted-on-bg: 4.3               # AA (large) — #64748b on #f3f3ee
  contrast-on-brand: 3.6                  # AA large only — #ffffff on #f43e01 (use 15px+ / 400+)
  contrast-text-on-dark: 12.7             # AAA — #f3f3ee on #2a2a25
  focus-ring: '3px rgba(244, 62, 1, 0.30) ring with 1px solid #f43e01 core'
  reduced-motion-honored: true

dark-mode: 'light-default — Groq marketing runs on the warm off-white canvas. Dark moments are localised inverted bands (#2a2a25 / #1f1f1b) for speed demos and the footer, not a full dark theme.'

lineage:
  summary: |
    Groq's marketing aesthetic descends from the **precision-instrument**
    lineage — the warm paper canvas of editorial design crossed with the
    restraint of Swiss-grid typography. The whole type identity rests on
    **Space Grotesk**, Florian Karsten's reworking of Haas Grotesk Display:
    a geometric grotesque with a tall x-height and distinctive single-storey
    forms that give Groq an engineered, slightly mechanical voice. The light
    weight (300) on large headlines is the signature move — most hardware-AI
    brands shout in bold, Groq whispers in light, which reads as confidence:
    the speed speaks for itself. The warm off-white `#f3f3ee` paper (NOT
    sterile white) softens the technical register and ties to print-grade
    editorial work. A single hot `#f43e01` orange — the LPU brand voltage —
    is the one place the page raises its voice, rendered as a fully-rounded
    1000px pill. IBM Plex Mono on the stat eyebrows nods to the lab-instrument
    / terminal heritage. Where Baseten dresses ML deployment in approachable
    purple and Modal in lime-green optimism, Groq commits to speed-obsessed
    minimalism: fast, low cost inference, said quietly on warm paper.
  influences:
    - name: Space Grotesk (Florian Karsten)
      role: The entire type identity — geometric grotesque, tall x-height, single-storey forms.
      url: https://fonts.google.com/specimen/Space+Grotesk
    - name: IBM Plex Mono
      role: Lab-instrument stat eyebrows and tokens-per-second counters.
      url: https://fonts.google.com/specimen/IBM+Plex+Mono
    - name: Swiss / International Typographic Style
      role: Grid discipline, restraint, and the light-weight-large-headline editorial register.
      url: https://en.wikipedia.org/wiki/International_Typographic_Style
    - name: Vercel
      role: Single-accent dev-tool baseline; one decisive brand color on a quiet canvas.
      url: https://vercel.com
    - name: Linear
      role: Localised inverted dark band discipline rather than a full dark theme.
      url: https://linear.app
---

## 1. Visual Theme & Atmosphere

Groq's marketing surface reads like a precision instrument tuned for speed. The canvas is a warm off-white `#f3f3ee` — paper, not sterile white — carrying graphite `#2d2f33` type. The warmth is deliberate: it softens the hardware-AI register, tying Groq's custom-silicon story to the calm of print-grade editorial design rather than the cold blue of enterprise infrastructure. Where most inference companies arrive in dark dashboards and neon benchmark charts, Groq arrives on quiet paper and lets the numbers do the talking.

The defining typographic move is **light-weight large headlines**. The whole type identity rests on Space Grotesk — a geometric grotesque with a tall x-height and distinctive single-storey forms that give the brand an engineered, slightly mechanical voice — and Groq runs it at weight 300 on its biggest sizes. The hero headline ("Groq delivers fast, low cost inference that doesn't flake when things get real") lands at 32px in a light 300 with tight `-0.02em` tracking; the largest editorial heads reach 46–80px and stay light. Most hardware-AI brands shout in bold. Groq whispers in light, and the whisper reads as confidence: the speed speaks for itself.

There is exactly one place the page raises its voice — the hot `#f43e01` orange. It is the LPU brand voltage distilled into a single decisive color, and it is reserved almost entirely for the primary CTA, rendered as a fully-rounded `1000px` pill ("Start Building", "Get Started", "View Pricing"). The orange against warm paper is a high-contrast spark; used sparingly, it becomes the brand's heartbeat. A second, quieter affordance — the dark `#2a2a25` button with its small 5px radius ("TRY THE SPEED OF GROQ") — anchors the interactive speed demo that is Groq's signature party trick: watch tokens stream faster than you can read.

The supporting voice is **IBM Plex Mono**, which carries the stat eyebrows and counters: "3M DEVELOPERS AND TEAMS", tokens-per-second readouts, latency figures. The mono is a deliberate genre signal — lab instrument, terminal, the place where measured speed gets reported. It appears at 12px, weight 500, with 1.2px tracking, uppercase, and it is the one typeface allowed to set numbers that matter.

The page rhythm alternates the warm canvas with occasional inverted `#2a2a25` bands for speed demos and benchmark surfaces, and a deepest `#1f1f1b` footer. These dark moments are localised, not a full dark theme — the inverted band is a spotlight, used to make the orange CTA and the streaming-token demo pop, then the page returns to paper.

**Key Characteristics:**
- Warm off-white `#f3f3ee` canvas — paper, not sterile white — with graphite `#2d2f33` type.
- Space Grotesk carries the entire type identity: display and body, distinctive geometric grotesque forms.
- Light weight (300) on every large headline — the signature restraint move.
- Single hot `#f43e01` orange for primary CTAs, rendered as a fully-rounded `1000px` pill.
- Dark `#2a2a25` secondary button (small 5px radius) for the speed-demo affordance.
- IBM Plex Mono on stat eyebrows and tokens-per-second counters — lab-instrument voice.
- Tight negative tracking (`-0.02em` to `-0.03em`) on display sizes.
- Localised inverted `#2a2a25` / `#1f1f1b` bands — spotlights, not a full dark theme.
- Speed-obsessed register: "fast, low cost inference" said quietly, with one orange spark.
- Single brand color discipline — orange + graphite + warm grayscale, no second accent.

## 2. Color Palette & Roles

### Primary
- **Bg / Canvas** (`#f3f3ee`): Warm off-white paper — runs every marketing page. The brand's signature surface.
- **Text** (`#2d2f33`): Graphite — headlines and body. Warm-neutral, not pure black.
- **Brand / Primary CTA** (`#f43e01`): The Groq hot orange — every primary CTA, the page's one loud color.

### Brand & Orange
- **Brand** (`#f43e01`): Reserved for primary CTA pills, link-hover state, focus rings, rare hero accents.
- **Brand Hover** (`#d83602`): Darkened orange for hover / press on the pill.
- **Brand Active** (`#bf2f02`): Deepest orange for the active / pressed state.
- **Brand Soft** (`#fde4da`): Tinted orange wash for "NEW" / featured badges.
- **Brand Deep** (`#9e2701`): Darkest orange — type set on the `brand-soft` wash.
- **On-Brand** (`#ffffff`): White label on the orange pill.

### Dark / Inverted
- **Dark** (`#2a2a25`): Dark secondary button (speed demo) and localised inverted bands.
- **Dark Hover** (`#1f1f1b`): Darkened dark-button hover.
- **Surface Dark** (`#2a2a25`): Inverted card / band surface — benchmark + speed-demo moments.
- **Surface Darker** (`#1f1f1b`): Deepest inverted surface — footer, code window.

### Interactive
- **Link** (`#2d2f33`): Inline body links match text, underlined.
- **Link Hover** (`#f43e01`): Links warm to the brand orange on hover.
- **Selected** (`rgba(244, 62, 1, 0.15)`): Selected text background — faint orange tint.
- **Disabled** (`#9498a0`): Disabled labels and tertiary text.

### Neutral Scale
- **Text** (`#2d2f33`): Primary graphite — headlines, body.
- **Text Body** (`#3a3c40`): Default running-text, fractionally softer than headlines.
- **Text Muted** (`#64748b`): Captions, secondary links, breadcrumbs.
- **Text Faint** (`#9498a0`): Tertiary fine-print, disabled labels.
- **Text on Dark** (`#f3f3ee`): Off-white text on inverted bands — matches the canvas, keeps warmth.
- **Text on Dark Muted** (`#b8b8ae`): Muted body on inverted surfaces.

### Surface & Borders
- **Bg Warm** (`#ecece4`): Slightly deeper warm band for editorial alternation.
- **Surface** (`#e8e8de`): Soft card / panel tint on the warm canvas.
- **Surface Card** (`#fffcfc`): Near-white elevated content card.
- **Border** (`#dbe2f0`): Light hairline on cards and inputs.
- **Border Warm** (`#d8d8cd`): Warm-tinted hairline that reads correctly on the off-white canvas.
- **Border Strong** (`#c4cbd9`): Stronger divider on focused inputs.

### Shadow Colors
Groq uses warm-graphite shadows at low alpha — `rgba(31, 31, 27, ...)`, tied to the deepest inverted surface so depth stays brand-aligned and warm.
- **Shadow Color** (`rgba(31, 31, 27, 0.05)`): Ambient.
- **Shadow Color Md** (`rgba(31, 31, 27, 0.08)`): Standard card shadow.
- **Shadow Color Lg** (`rgba(31, 31, 27, 0.12)`): Hover / modal entrance.
- **Shadow Glow Orange** (`rgba(244, 62, 1, 0.18)`): Rare ambient glow on the hero CTA.

### Semantic
- **Success** (`#16a34a`): Confirmation toasts, "deployed" indicators in product UI.
- **Warning** (`#d97706`): Caution states (kept warm to harmonise with the orange).
- **Danger** (`#dc2626`): Destructive actions and error states.
- **Info** (`#0ea5e9`): Informational notices.

## 3. Typography Rules

### Font Family
- **Primary (display + body)**: `"Space Grotesk", system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif`. Space Grotesk handles every text role — the whole brand voice is in this one geometric grotesque.
- **Mono**: `"IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace`. Stat eyebrows, tokens-per-second counters, code surfaces.
- **No separate display family** — Space Grotesk's character (tall x-height, single-storey forms) is enough to carry both running text and large heads; the hierarchy is built from weight and size, not a second face.

### Hierarchy

| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| display-hero | Space Grotesk | 80 | 300 | 1.0 | -0.03em | Large hero — light weight, the signature |
| display-lg | Space Grotesk | 56 | 300 | 1.05 | -0.02em | Major section heads, light |
| display-md | Space Grotesk | 46 | 300 | 1.10 | -0.02em | Editorial sub-heads, light |
| h1 | Space Grotesk | 32 | 300 | 1.30 | -0.02em | Page h1 — the canonical Groq headline |
| h2 | Space Grotesk | 32 | 300 | 1.20 | -0.02em | Section h2 — light weight |
| h3 | Space Grotesk | 24 | 400 | 1.25 | -0.01em | Card titles, sub-heads |
| h4 | Space Grotesk | 20 | 500 | 1.30 | 0 | Small card titles |
| title | Space Grotesk | 18 | 500 | 1.35 | 0 | List labels, feature titles |
| body-lg | Space Grotesk | 18 | 400 | 1.55 | 0 | Hero subhead, intro copy |
| body | Space Grotesk | 16 | 400 | 1.55 | 0 | Default running-text |
| body-sm | Space Grotesk | 14 | 400 | 1.50 | 0 | Footer body, fine-print |
| button | Space Grotesk | 15 | 400 | 1.0 | 0 | CTA pill and button labels |
| nav-link | Space Grotesk | 15 | 400 | 1.40 | 0 | Top-nav menu items |
| label | Space Grotesk | 13 | 500 | 1.40 | 0 | Form labels, small UI labels |
| caption | Space Grotesk | 12 | 500 | 1.40 | 0.02em | Captions |
| mono-eyebrow | IBM Plex Mono | 12 | 500 | 1.40 | 1.2px | Stat eyebrows — uppercase ("3M DEVELOPERS AND TEAMS") |
| stat-display | Space Grotesk | 56 | 300 | 1.0 | -0.02em | Big stat numbers — tokens/sec, dev count |
| code | IBM Plex Mono | 14 | 400 | 1.60 | 0 | Code blocks, API snippets |

### Principles
- **Display weight stays light (300).** This is the brand's defining move — large headlines arrive light, not bold. Bold (600–700) is reserved for the rare emphatic moment, never the default headline.
- **Negative tracking on every display size.** `-0.02em` to `-0.03em` tightens the light type so it reads as one continuous line, not loose letters.
- **Body holds Space Grotesk at 400 / 1.55.** Comfortable, even, slightly tall — the grotesque's x-height does the legibility work.
- **Weight, not a second face, builds hierarchy.** Space Grotesk runs 300 → 400 → 500 → 600 across the scale; the family carries everything.
- **IBM Plex Mono is for measured numbers only.** Stat eyebrows, tokens-per-second, latency, developer counts. Uppercase, 1.2px tracking — the lab-instrument register.
- **Stat-display numbers carry the speed story.** "3M", tokens/sec readouts, "<1s" — set in light Space Grotesk at display size, the credibility moments.
- **Graphite, not black.** `#2d2f33` keeps the type warm against the off-white paper; pure black would feel cold and break the editorial calm.
- **Tight tracking + light weight = the Groq fingerprint.** If a headline is bold or loosely tracked, it is not Groq.

## 4. Component Stylings

### Buttons (4 variants)

**`button-primary`** — The signature orange pill. Background `#f43e01`, label `#ffffff`, Space Grotesk 15px / 400, padding 10px × 16px, radius `1000px` (full pill). Hover: `#d83602` over 150ms. Used for every primary CTA — "Start Building", "Get Started", "View Pricing", "Learn More". This is the one loud element on the page.

**`button-dark`** — Dark speed-demo action. Background `#2a2a25`, label `#ffffff`, Space Grotesk 15px / 400, padding 12px, small `5px` radius (NOT a pill — the contrast in shape distinguishes it from the primary CTA). Used for "TRY THE SPEED OF GROQ" — the interactive token-streaming demo.

**`button-ghost`** — Quiet secondary. Transparent background, `#2d2f33` label, 1px `#d8d8cd` warm hairline border, radius `1000px` to echo the primary pill shape, same padding. Paired secondary action ("Read the docs").

**`button-text-link`** — Inline text link in `#2d2f33`, underlined, warms to `#f43e01` on hover. Used inside running copy.

### Cards

**`card`** — Standard content card. Background `#e8e8de` (soft tint on the warm canvas), 1px `#dbe2f0` border, radius `12px`, padding 24px. Sits flat or with a faint ambient shadow.

**`card-elevated`** — Near-white elevated card. Background `#fffcfc`, radius `12px`, padding 24px, standard warm-graphite shadow. Lifts content off the paper.

**`card-dark`** — Inverted speed / benchmark card. Background `#2a2a25`, text `#f3f3ee`, radius `12px`, padding 24px. Hosts the streaming-token demo, tokens-per-second counters, and benchmark comparisons — the spotlight surface where the orange CTA and the mono numbers pop.

### Badges & Pills

**`badge-mono`** — The stat eyebrow. Transparent background, `#64748b` text, IBM Plex Mono 12px / 500, 1.2px tracking, uppercase ("3M DEVELOPERS AND TEAMS", "TOKENS / SEC"). The brand's distinctive label chrome.

**`badge-soft`** — Orange-tinted pill for "NEW" / featured callouts. Background `#fde4da`, text `#9e2701`, radius `1000px`, padding 4px × 12px.

### Inputs / Forms

**`input`** — Text input. Background `#fffcfc`, 1px `#dbe2f0` border, text `#2d2f33`, radius `8px`, padding 8px × 12px. Placeholder `#9498a0`.

**`input-focused`** — 3px `rgba(244, 62, 1, 0.30)` ring with 1px solid `#f43e01` core, border darkens to `#c4cbd9`.

### Navigation

**`top-nav`** — Transparent / warm-canvas nav pinned to top, 64px tall, background `#f3f3ee`. Groq wordmark left, primary horizontal menu (Products, Developers, Enterprise, Pricing, Company) center, right-side: "Sign in" text link + orange `button-primary` pill ("Start Building"). No bottom border at rest; a faint warm hairline appears on scroll.

### Decorative

**`speed-counter`** — Animated tokens-per-second readout in light Space Grotesk stat-display sizing, the value counting up on scroll-into-view. Paired with an IBM Plex Mono "TOKENS / SEC" eyebrow.

**`customer-logo-strip`** — Horizontal monochrome customer-logo strip (McLaren F1 and others) in `#64748b`, padding 32px vertical, on the warm canvas.

## 5. Layout Principles

### Spacing System
Base unit **4px**. Scale: `[0, 4, 8, 12, 16, 24, 32, 48, 64, 96]`. 96px section padding sets the editorial vertical rhythm; 24px card padding; 16px the common gutter. The generous top/bottom section padding is part of the calm, paper-like register.

### Grid & Container
Max content width **1280px** centered; prose width capped at **720px** for readability. Editorial body uses a 12-column grid. The hero often runs asymmetric — light headline left, speed demo or benchmark card right. Feature card grids run 3-up at desktop, 2-up at tablet, 1-up at mobile.

### Whitespace Philosophy
Groq uses generous, editorial whitespace — the page should feel unhurried and confident, the opposite of a cluttered dashboard. The light headlines need room to breathe; tight type plus open space is the brand's balance. The orange CTA earns its impact precisely because the surrounding space is calm.

### Section Cadence
Warm-canvas hero (light headline + speed demo) → customer-logo strip → inverted `#2a2a25` benchmark / speed-demo band → light feature card grid → stat-callout strip (mono eyebrows + light stat numbers) → editorial sub-section on warm-deeper `#ecece4` band → pricing → CTA band → deepest `#1f1f1b` footer.

## 6. Shapes & Radius Scale

| Tier | Token | Value | Use |
|---|---|---|---|
| Micro | micro | 2px | Tiny chips, mono-eyebrow underline accents |
| Standard | sm | 4px | Dark speed-demo button (rendered ~5px), tight inline elements |
| Comfortable | md | 8px | Inputs, small inline buttons |
| Large | lg | 12px | Content cards, elevated cards, dark benchmark cards |
| Featured | xl | 16px | Hero shells, large feature panels |
| Pill | pill | 9999px | Primary orange CTA, ghost buttons, soft badges |

The radius story is a deliberate contrast: the **primary CTA is a full pill (1000px)** — soft, friendly, fast-feeling — while the **dark speed-demo button is sharp (~5px)** to set it apart. Cards sit at a calm 12px.

## 7. Depth & Elevation

| Level | Treatment | Use |
|---|---|---|
| 0 — Flat | No shadow, no border | Body sections, top nav at rest, hero text |
| 1 — Soft hairline | 1px `#dbe2f0` / `#d8d8cd` border | Standard cards, inputs |
| 2 — Soft shadow | 1px border + ambient shadow | Cards on hover |
| 3 — Standard shadow | Standard warm-graphite shadow | Elevated near-white cards |
| 4 — Brand glow | Glow-orange shadow | Hero CTA card (rare) |
| 5 — Inverted | Dark `#2a2a25` surface, no shadow | Benchmark / speed-demo spotlight bands |
| 6 — Modal | Standard shadow + backdrop dim 55% | Dialogs, dropdowns |

### Shadow Philosophy
Groq's depth is restrained and warm. Shadows use `rgba(31, 31, 27, ...)` — the deepest inverted surface tinted at low alpha — so elevation stays brand-aligned and never reads cold or blue. Most of the page is flat (paper rests on paper); shadow is reserved for genuinely floating elements. Hover lifts are subtle (translateY(-2px) + shadow up one tier). The rare orange glow appears only behind the hero CTA.

## 8. Interaction & Motion

### Easing Curves
- **Standard ease**: `cubic-bezier(0.4, 0, 0.2, 1)` — default for color, opacity, transforms.
- **Emphasized ease**: `cubic-bezier(0.2, 0, 0, 1)` — CTA hover, modal entrances, the speed-counter count-up.

### Duration Buckets
- **Fast (150ms)**: Color and opacity transitions, button hover.
- **Standard (240ms)**: Card hover lifts, dropdown opens.
- **Slow (320ms)**: Modal entrance, section-on-scroll reveals.

### Per-Component Micro-States
- **Primary CTA hover**: Orange darkens `#f43e01` → `#d83602` over 150ms; subtle 1px lift.
- **Dark button hover**: `#2a2a25` → `#1f1f1b` over 150ms.
- **Card hover**: TranslateY(-2px) over 240ms; shadow intensifies one tier.
- **Speed counter**: On scroll-into-view, the tokens-per-second number counts up from 0 to its real value over ~1.2s with emphasized easing — the brand's literal demonstration of speed.
- **Link hover**: Color warms graphite → orange over 150ms; underline persists.
- **Input focus**: 3px orange ring expands.

### Page Transitions
Standard browser navigation. Section-on-scroll reveals are 320ms fade-in-up. The speed-demo band animates its counter on first view, then holds.

### Reduced Motion
Honored — the speed-counter animation is skipped and the number renders at its final value immediately; all count-ups, transforms, and parallax are removed; only opacity fades remain. Critically, the speed message must survive without motion: the final number is the message, not the animation.

## 9. Accessibility & A11y

### Contrast Pairs
- **Text on bg**: `#2d2f33` on `#f3f3ee` = **11.1** — AAA.
- **Body on bg**: `#3a3c40` on `#f3f3ee` = **9.6** — AAA.
- **Muted on bg**: `#64748b` on `#f3f3ee` = **4.3** — AA for large text; use at 18px+ or 14px-bold for captions.
- **On-brand on brand**: `#ffffff` on `#f43e01` = **3.6** — AA for large text only. The CTA label is 15px / 400, which sits at the large-text threshold; keep CTA labels ≥15px and never drop white-on-orange below it. For small orange text use `brand-deep` `#9e2701` on a light surface instead.
- **Text on dark**: `#f3f3ee` on `#2a2a25` = **12.7** — AAA on inverted bands.
- **Brand-deep on brand-soft**: `#9e2701` on `#fde4da` = **5.9** — AA.

### Focus Indicators
3px `rgba(244, 62, 1, 0.30)` ring with 1px solid `#f43e01` core. The orange ring is consistent across light and inverted surfaces — visible on both the warm canvas and the dark bands.

### ARIA Patterns
- **Buttons**: Native `<button>` / `<a role="button">`; icon-only carry `aria-label`.
- **Speed counter**: Wrap the animated value in `aria-live="off"` and expose the final value via `aria-label` so screen readers announce the number, not the count-up.
- **Navigation**: `<nav aria-label="Primary">`.
- **Logo strip**: Each logo `<img>` carries `alt` with the customer name.
- **Dialog**: `role="dialog"` + `aria-labelledby` + `aria-modal="true"`.

### Keyboard Navigation
Tab order follows reading order. Skip-link ("skip to content", already present on the live site) to `<main>`. Modal traps focus and Escape closes. The orange focus ring makes the focused control unambiguous on every surface.

### Screen Reader Hints
Stat numbers expose full unit readout via `aria-label` ("3 million developers and teams", "X tokens per second"). The speed-demo band provides a textual summary so the speed claim is conveyed without the animation.

### Reduced Motion Handling
Honored — counters freeze on final values, reveals become opacity-only, no parallax. See section 8.

## 10. Responsive Behavior

### Breakpoints

| Name | Width | Key Changes |
|---|---|---|
| Mobile | < 640px | Hamburger nav; hero headline 32→26px (stays light 300); demo card stacks below; feature grids 1-up; 96→56px section padding |
| Tablet | 640–1024px | Top nav tightens; feature cards 2-up; hero headline ~40px |
| Desktop | 1024–1280px | Full top-nav; 3-up feature cards; hero at full size |
| Wide | > 1280px | Same as desktop with more breathing room; max content 1280px |

### Touch Targets
Primary CTA pill min 44px tall on touch (padding bumps from 10px to ~13px vertical). Icon-only controls 44 × 44px hit area. Input height ≥44px on touch.

### Collapsing Strategy
Top nav collapses to a hamburger at < 1024px. Hero asymmetric layout collapses to single-column (headline first, then speed-demo card). The stat-callout strip stacks vertically; mono eyebrows stay above their numbers. Inverted benchmark bands keep full-bleed width and reflow their internal columns.

### Image Behavior
Customer logos retain native aspect; the strip scrolls horizontally on mobile rather than shrinking past legibility. Benchmark charts in the dark band switch from side-by-side to stacked.

## 11. Content & Voice

### Tone
**Fast, confident, plainspoken, speed-obsessed.** Groq writes for developers and teams who care about inference latency and cost. The voice is the typographic light weight in words: it states capability quietly and lets the numbers carry the boast ("fast, low cost inference that doesn't flake when things get real"). It is technical without jargon-stacking, confident without shouting — closer to a precision-instrument datasheet than a hype deck.

### Microcopy Patterns
- **CTA verbs**: "Start Building", "Get Started", "View Pricing", "View Models", "Learn More", "Read More", "Start Now". Action-first, no fluff.
- **Stat eyebrows** (IBM Plex Mono, uppercase): "3M DEVELOPERS AND TEAMS", "TOKENS / SEC", "LPU INFERENCE".
- **Feature copy**: Verb-first and outcome-led ("Deploy in seconds", "Built for inference", "Instant intelligence, deployed worldwide").
- **Speed framing**: Numbers are the headline. Pair every speed claim with a real figure in light stat-display type.

### Empty States
Console / dashboard: "No models running yet — make your first request and watch it stream." Welcoming, speed-forward, with an orange link to the quickstart.

### Error Messages
Pattern: `<icon in #dc2626> + "What went wrong" + "What to try next"`. Example: "Request failed — check your API key and try again." Kept short and unalarming.

### Success Confirmations
Toast in `#2d2f33` over `#fffcfc` with a success stripe. "Request complete — N tokens in Xms." Auto-dismiss 4s. Even confirmations report a speed number.

## 12. Dark Mode & Theming

Groq marketing is **light-default** on the warm `#f3f3ee` canvas. There is no full dark theme; instead, Groq uses **localised inverted bands** (`#2a2a25` surface, `#1f1f1b` for the footer and code) as spotlights — for the speed demo, benchmark comparisons, and the footer. On these inverted surfaces tokens map: `bg: #2a2a25` (or `#1f1f1b`), `text: #f3f3ee` (the canvas color, reused to preserve warmth), `text-muted: #b8b8ae`, `brand: #f43e01` (unchanged — the orange is identical on both surfaces), `border: rgba(243,243,238,0.12)`. The deliberate reuse of the off-white as on-dark text keeps every surface, light or dark, inside the same warm family. If a product dark theme were added, it would extend this band palette rather than introduce a cool-gray system.

## 13. Lineage & Influences

Groq's marketing aesthetic descends from the **precision-instrument** lineage — the warm paper canvas of editorial design crossed with the restraint of Swiss-grid typography. The whole type identity rests on **Space Grotesk**, Florian Karsten's reworking of Haas Grotesk Display: a geometric grotesque with a tall x-height and distinctive single-storey forms that give Groq an engineered, slightly mechanical voice. The defining move is the **light weight (300) on large headlines** — most hardware-AI brands shout in bold; Groq whispers in light, which reads as confidence: the speed speaks for itself.

The warm off-white `#f3f3ee` paper (NOT sterile white) softens the technical register and ties to print-grade editorial work, while a single hot `#f43e01` orange — the LPU brand voltage — is the one place the page raises its voice, rendered as a fully-rounded `1000px` pill. **IBM Plex Mono** on the stat eyebrows nods to the lab-instrument / terminal heritage where measured speed gets reported. The **localised inverted bands** rather than a full dark theme borrow Linear's discipline of keeping dark moments deliberate and brand-aligned. The single-accent-on-a-quiet-canvas baseline is Vercel's, but where Vercel goes monochrome-on-white, Groq goes orange-on-warm-paper. Where Baseten dresses ML deployment in approachable purple workshop chrome and Modal commits to lime-green developer optimism, Groq rejects the dashboard-dark, neon-benchmark cliché of the inference category entirely and commits to speed-obsessed minimalism: fast, low cost inference, said quietly on warm paper.

- **Space Grotesk (Florian Karsten)** — The entire type identity: geometric grotesque, tall x-height, single-storey forms. https://fonts.google.com/specimen/Space+Grotesk
- **IBM Plex Mono** — Lab-instrument stat eyebrows and tokens-per-second counters. https://fonts.google.com/specimen/IBM+Plex+Mono
- **Swiss / International Typographic Style** — Grid discipline and the light-large-headline editorial register. https://en.wikipedia.org/wiki/International_Typographic_Style
- **Vercel** — Single-accent dev-tool baseline; one decisive brand color on a quiet canvas. https://vercel.com
- **Linear** — Localised inverted dark band discipline rather than a full dark theme. https://linear.app

## 14. Do's and Don'ts

### Do
- Anchor every page on the warm off-white `#f3f3ee` canvas — paper, not sterile white.
- Set Space Grotesk on every text role; the family is the brand voice.
- Keep large headlines at the light weight (300) with tight `-0.02em` to `-0.03em` tracking.
- Reserve the hot orange `#f43e01` for the primary CTA — rendered as a full `1000px` pill.
- Use the dark `#2a2a25` button (small ~5px radius) for the speed-demo affordance, to contrast the orange pill.
- Set stat eyebrows in IBM Plex Mono, uppercase, 1.2px tracking ("3M DEVELOPERS AND TEAMS").
- Pair every speed claim with a real number in light stat-display type.
- Use localised inverted `#2a2a25` / `#1f1f1b` bands as spotlights for speed demos and benchmarks.
- Use graphite `#2d2f33`, not black, for type — it keeps the warm editorial calm.
- Keep generous 96px section rhythm so the light type and orange CTA have room to breathe.

### Don't
- Don't switch the canvas to pure white or pure black. The warmth of `#f3f3ee` is the brand.
- Don't set headlines in bold by default — the light weight is the signature; bold breaks it.
- Don't introduce a second accent color. Groq is orange + graphite + warm grayscale, full stop.
- Don't render the primary CTA with a small radius — it must be a full `1000px` pill.
- Don't render the dark speed-demo button as a pill — its sharp radius is what distinguishes it.
- Don't use a second sans-serif. Space Grotesk carries everything; no Inter, no Helvetica swap.
- Don't set small white text on the orange — contrast is AA-large only; use `#9e2701` on light for small orange type.
- Don't fill the page with dark dashboard chrome and neon charts — that is the cliché Groq rejects.
- Don't loosely track the light headlines; tight tracking is half the fingerprint.
- Don't add gradients to the orange. Solid `#f43e01` only; the rare glow shadow is the one exception.

## 15. Agent Prompt Guide

### Quick Color Reference
```
Bg / Canvas:     #f3f3ee (warm off-white paper)
Bg Warm:         #ecece4 (deeper warm alternation band)
Surface:         #e8e8de (soft card tint)
Surface Card:    #fffcfc (near-white elevated card)
Text:            #2d2f33 (graphite — headlines + body)
Text Body:       #3a3c40 (running-text)
Text Muted:      #64748b (captions, secondary)
Brand:           #f43e01 (hot orange — primary CTA pill)
Brand Hover:     #d83602 (orange press state)
Dark:            #2a2a25 (speed-demo button / inverted band)
Border Warm:     #d8d8cd (warm hairline)
On-Brand:        #ffffff (white on orange)
```

### Example Component Prompts

1. "Create a Groq hero on a warm off-white `#f3f3ee` canvas. Headline in Space Grotesk at a LIGHT 300 weight, ~32px, `-0.02em` tracking, color `#2d2f33` ('Groq delivers fast, low cost inference that doesn't flake when things get real'). 18px / 400 `#3a3c40` subhead. Primary CTA: a fully-rounded `1000px` orange `#f43e01` pill with white 15px label ('Start Building'), paired with a ghost button (transparent, 1px `#d8d8cd` border, also pill-shaped, 'Read the docs')."

2. "Design a dark speed-demo card. Background `#2a2a25`, 12px radius, 24px padding, text `#f3f3ee`. Inside: an IBM Plex Mono uppercase eyebrow 'TOKENS / SEC' at 12px / 1.2px tracking, a large light-weight (Space Grotesk 56px / 300) counting number, and a sharp-cornered (~5px radius) dark button 'TRY THE SPEED OF GROQ'. The orange `#f43e01` appears once as a small accent."

3. "Build a 3-column feature grid on `#f3f3ee`. Each card: background `#e8e8de`, 1px `#dbe2f0` border, 12px radius, 24px padding, a Space Grotesk 24px / 400 `#2d2f33` title, 16px / 400 `#3a3c40` body, and an IBM Plex Mono uppercase eyebrow ('LPU INFERENCE', 'LOW COST', 'WORLDWIDE')."

4. "Compose a stat-callout strip on the warm canvas: three figures ('3M', '<1s', '100s of tok/s') in light Space Grotesk 56px / 300 / `#2d2f33`, each with an IBM Plex Mono uppercase 12px / 1.2px `#64748b` label below ('DEVELOPERS AND TEAMS', 'TIME TO FIRST TOKEN', 'THROUGHPUT'). 96px vertical padding, no shadows."

5. "Design a Groq top nav: 64px tall, transparent over `#f3f3ee`, no border at rest. Wordmark left, horizontal menu center (Products, Developers, Enterprise, Pricing, Company) in Space Grotesk 15px / 400 `#2d2f33`, right side a 'Sign in' text link plus an orange `#f43e01` `1000px` pill CTA ('Start Building')."

6. "Create a pre-footer CTA section on a `#1f1f1b` inverted band: light Space Grotesk 46px / 300 / `#f3f3ee` headline ('Ready to go fast?'), `#b8b8ae` subhead, and a single orange `#f43e01` `1000px` pill ('Get Started'). The orange is the only color on the dark surface."

### Iteration Guide
1. Start on the warm `#f3f3ee` paper — if your canvas is white or black, you've already lost the brand.
2. Set the headline LIGHT. Space Grotesk 300, tight `-0.02em` tracking. Resist the urge to bold it.
3. Place exactly one orange `#f43e01` pill per band — the primary CTA, fully rounded at 1000px.
4. Make the speed numbers the loudest content: light stat-display figures + IBM Plex Mono eyebrows.
5. If you need a dark moment (speed demo, benchmark), use a localised `#2a2a25` band, not a full dark page.
6. Keep the dark speed-demo button sharp (~5px) so it never reads as a second primary CTA.
7. Hold the line on one type family and one accent color — Space Grotesk + orange + warm grayscale.
8. Use generous 96px section rhythm; the calm space is what gives the single orange its impact.

---

*Theme-toggle audit: score=0, signals=[none]*
Prose

1. Visual Theme & Atmosphere

Groq’s marketing surface reads like a precision instrument tuned for speed. The canvas is a warm off-white #f3f3ee — paper, not sterile white — carrying graphite #2d2f33 type. The warmth is deliberate: it softens the hardware-AI register, tying Groq’s custom-silicon story to the calm of print-grade editorial design rather than the cold blue of enterprise infrastructure. Where most inference companies arrive in dark dashboards and neon benchmark charts, Groq arrives on quiet paper and lets the numbers do the talking.

The defining typographic move is light-weight large headlines. The whole type identity rests on Space Grotesk — a geometric grotesque with a tall x-height and distinctive single-storey forms that give the brand an engineered, slightly mechanical voice — and Groq runs it at weight 300 on its biggest sizes. The hero headline (“Groq delivers fast, low cost inference that doesn’t flake when things get real”) lands at 32px in a light 300 with tight -0.02em tracking; the largest editorial heads reach 46–80px and stay light. Most hardware-AI brands shout in bold. Groq whispers in light, and the whisper reads as confidence: the speed speaks for itself.

There is exactly one place the page raises its voice — the hot #f43e01 orange. It is the LPU brand voltage distilled into a single decisive color, and it is reserved almost entirely for the primary CTA, rendered as a fully-rounded 1000px pill (“Start Building”, “Get Started”, “View Pricing”). The orange against warm paper is a high-contrast spark; used sparingly, it becomes the brand’s heartbeat. A second, quieter affordance — the dark #2a2a25 button with its small 5px radius (“TRY THE SPEED OF GROQ”) — anchors the interactive speed demo that is Groq’s signature party trick: watch tokens stream faster than you can read.

The supporting voice is IBM Plex Mono, which carries the stat eyebrows and counters: “3M DEVELOPERS AND TEAMS”, tokens-per-second readouts, latency figures. The mono is a deliberate genre signal — lab instrument, terminal, the place where measured speed gets reported. It appears at 12px, weight 500, with 1.2px tracking, uppercase, and it is the one typeface allowed to set numbers that matter.

The page rhythm alternates the warm canvas with occasional inverted #2a2a25 bands for speed demos and benchmark surfaces, and a deepest #1f1f1b footer. These dark moments are localised, not a full dark theme — the inverted band is a spotlight, used to make the orange CTA and the streaming-token demo pop, then the page returns to paper.

Key Characteristics:

  • Warm off-white #f3f3ee canvas — paper, not sterile white — with graphite #2d2f33 type.
  • Space Grotesk carries the entire type identity: display and body, distinctive geometric grotesque forms.
  • Light weight (300) on every large headline — the signature restraint move.
  • Single hot #f43e01 orange for primary CTAs, rendered as a fully-rounded 1000px pill.
  • Dark #2a2a25 secondary button (small 5px radius) for the speed-demo affordance.
  • IBM Plex Mono on stat eyebrows and tokens-per-second counters — lab-instrument voice.
  • Tight negative tracking (-0.02em to -0.03em) on display sizes.
  • Localised inverted #2a2a25 / #1f1f1b bands — spotlights, not a full dark theme.
  • Speed-obsessed register: “fast, low cost inference” said quietly, with one orange spark.
  • Single brand color discipline — orange + graphite + warm grayscale, no second accent.

2. Color Palette & Roles

Primary

  • Bg / Canvas (#f3f3ee): Warm off-white paper — runs every marketing page. The brand’s signature surface.
  • Text (#2d2f33): Graphite — headlines and body. Warm-neutral, not pure black.
  • Brand / Primary CTA (#f43e01): The Groq hot orange — every primary CTA, the page’s one loud color.

Brand & Orange

  • Brand (#f43e01): Reserved for primary CTA pills, link-hover state, focus rings, rare hero accents.
  • Brand Hover (#d83602): Darkened orange for hover / press on the pill.
  • Brand Active (#bf2f02): Deepest orange for the active / pressed state.
  • Brand Soft (#fde4da): Tinted orange wash for “NEW” / featured badges.
  • Brand Deep (#9e2701): Darkest orange — type set on the brand-soft wash.
  • On-Brand (#ffffff): White label on the orange pill.

Dark / Inverted

  • Dark (#2a2a25): Dark secondary button (speed demo) and localised inverted bands.
  • Dark Hover (#1f1f1b): Darkened dark-button hover.
  • Surface Dark (#2a2a25): Inverted card / band surface — benchmark + speed-demo moments.
  • Surface Darker (#1f1f1b): Deepest inverted surface — footer, code window.

Interactive

  • Link (#2d2f33): Inline body links match text, underlined.
  • Link Hover (#f43e01): Links warm to the brand orange on hover.
  • Selected (rgba(244, 62, 1, 0.15)): Selected text background — faint orange tint.
  • Disabled (#9498a0): Disabled labels and tertiary text.

Neutral Scale

  • Text (#2d2f33): Primary graphite — headlines, body.
  • Text Body (#3a3c40): Default running-text, fractionally softer than headlines.
  • Text Muted (#64748b): Captions, secondary links, breadcrumbs.
  • Text Faint (#9498a0): Tertiary fine-print, disabled labels.
  • Text on Dark (#f3f3ee): Off-white text on inverted bands — matches the canvas, keeps warmth.
  • Text on Dark Muted (#b8b8ae): Muted body on inverted surfaces.

Surface & Borders

  • Bg Warm (#ecece4): Slightly deeper warm band for editorial alternation.
  • Surface (#e8e8de): Soft card / panel tint on the warm canvas.
  • Surface Card (#fffcfc): Near-white elevated content card.
  • Border (#dbe2f0): Light hairline on cards and inputs.
  • Border Warm (#d8d8cd): Warm-tinted hairline that reads correctly on the off-white canvas.
  • Border Strong (#c4cbd9): Stronger divider on focused inputs.

Shadow Colors

Groq uses warm-graphite shadows at low alpha — rgba(31, 31, 27, ...), tied to the deepest inverted surface so depth stays brand-aligned and warm.

  • Shadow Color (rgba(31, 31, 27, 0.05)): Ambient.
  • Shadow Color Md (rgba(31, 31, 27, 0.08)): Standard card shadow.
  • Shadow Color Lg (rgba(31, 31, 27, 0.12)): Hover / modal entrance.
  • Shadow Glow Orange (rgba(244, 62, 1, 0.18)): Rare ambient glow on the hero CTA.

Semantic

  • Success (#16a34a): Confirmation toasts, “deployed” indicators in product UI.
  • Warning (#d97706): Caution states (kept warm to harmonise with the orange).
  • Danger (#dc2626): Destructive actions and error states.
  • Info (#0ea5e9): Informational notices.

3. Typography Rules

Font Family

  • Primary (display + body): "Space Grotesk", system-ui, -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif. Space Grotesk handles every text role — the whole brand voice is in this one geometric grotesque.
  • Mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace. Stat eyebrows, tokens-per-second counters, code surfaces.
  • No separate display family — Space Grotesk’s character (tall x-height, single-storey forms) is enough to carry both running text and large heads; the hierarchy is built from weight and size, not a second face.

Hierarchy

RoleFontSizeWeightLine HeightLetter SpacingNotes
display-heroSpace Grotesk803001.0-0.03emLarge hero — light weight, the signature
display-lgSpace Grotesk563001.05-0.02emMajor section heads, light
display-mdSpace Grotesk463001.10-0.02emEditorial sub-heads, light
h1Space Grotesk323001.30-0.02emPage h1 — the canonical Groq headline
h2Space Grotesk323001.20-0.02emSection h2 — light weight
h3Space Grotesk244001.25-0.01emCard titles, sub-heads
h4Space Grotesk205001.300Small card titles
titleSpace Grotesk185001.350List labels, feature titles
body-lgSpace Grotesk184001.550Hero subhead, intro copy
bodySpace Grotesk164001.550Default running-text
body-smSpace Grotesk144001.500Footer body, fine-print
buttonSpace Grotesk154001.00CTA pill and button labels
nav-linkSpace Grotesk154001.400Top-nav menu items
labelSpace Grotesk135001.400Form labels, small UI labels
captionSpace Grotesk125001.400.02emCaptions
mono-eyebrowIBM Plex Mono125001.401.2pxStat eyebrows — uppercase (“3M DEVELOPERS AND TEAMS”)
stat-displaySpace Grotesk563001.0-0.02emBig stat numbers — tokens/sec, dev count
codeIBM Plex Mono144001.600Code blocks, API snippets

Principles

  • Display weight stays light (300). This is the brand’s defining move — large headlines arrive light, not bold. Bold (600–700) is reserved for the rare emphatic moment, never the default headline.
  • Negative tracking on every display size. -0.02em to -0.03em tightens the light type so it reads as one continuous line, not loose letters.
  • Body holds Space Grotesk at 400 / 1.55. Comfortable, even, slightly tall — the grotesque’s x-height does the legibility work.
  • Weight, not a second face, builds hierarchy. Space Grotesk runs 300 → 400 → 500 → 600 across the scale; the family carries everything.
  • IBM Plex Mono is for measured numbers only. Stat eyebrows, tokens-per-second, latency, developer counts. Uppercase, 1.2px tracking — the lab-instrument register.
  • Stat-display numbers carry the speed story. “3M”, tokens/sec readouts, “<1s” — set in light Space Grotesk at display size, the credibility moments.
  • Graphite, not black. #2d2f33 keeps the type warm against the off-white paper; pure black would feel cold and break the editorial calm.
  • Tight tracking + light weight = the Groq fingerprint. If a headline is bold or loosely tracked, it is not Groq.

4. Component Stylings

Buttons (4 variants)

button-primary — The signature orange pill. Background #f43e01, label #ffffff, Space Grotesk 15px / 400, padding 10px × 16px, radius 1000px (full pill). Hover: #d83602 over 150ms. Used for every primary CTA — “Start Building”, “Get Started”, “View Pricing”, “Learn More”. This is the one loud element on the page.

button-dark — Dark speed-demo action. Background #2a2a25, label #ffffff, Space Grotesk 15px / 400, padding 12px, small 5px radius (NOT a pill — the contrast in shape distinguishes it from the primary CTA). Used for “TRY THE SPEED OF GROQ” — the interactive token-streaming demo.

button-ghost — Quiet secondary. Transparent background, #2d2f33 label, 1px #d8d8cd warm hairline border, radius 1000px to echo the primary pill shape, same padding. Paired secondary action (“Read the docs”).

button-text-link — Inline text link in #2d2f33, underlined, warms to #f43e01 on hover. Used inside running copy.

Cards

card — Standard content card. Background #e8e8de (soft tint on the warm canvas), 1px #dbe2f0 border, radius 12px, padding 24px. Sits flat or with a faint ambient shadow.

card-elevated — Near-white elevated card. Background #fffcfc, radius 12px, padding 24px, standard warm-graphite shadow. Lifts content off the paper.

card-dark — Inverted speed / benchmark card. Background #2a2a25, text #f3f3ee, radius 12px, padding 24px. Hosts the streaming-token demo, tokens-per-second counters, and benchmark comparisons — the spotlight surface where the orange CTA and the mono numbers pop.

Badges & Pills

badge-mono — The stat eyebrow. Transparent background, #64748b text, IBM Plex Mono 12px / 500, 1.2px tracking, uppercase (“3M DEVELOPERS AND TEAMS”, “TOKENS / SEC”). The brand’s distinctive label chrome.

badge-soft — Orange-tinted pill for “NEW” / featured callouts. Background #fde4da, text #9e2701, radius 1000px, padding 4px × 12px.

Inputs / Forms

input — Text input. Background #fffcfc, 1px #dbe2f0 border, text #2d2f33, radius 8px, padding 8px × 12px. Placeholder #9498a0.

input-focused — 3px rgba(244, 62, 1, 0.30) ring with 1px solid #f43e01 core, border darkens to #c4cbd9.

top-nav — Transparent / warm-canvas nav pinned to top, 64px tall, background #f3f3ee. Groq wordmark left, primary horizontal menu (Products, Developers, Enterprise, Pricing, Company) center, right-side: “Sign in” text link + orange button-primary pill (“Start Building”). No bottom border at rest; a faint warm hairline appears on scroll.

Decorative

speed-counter — Animated tokens-per-second readout in light Space Grotesk stat-display sizing, the value counting up on scroll-into-view. Paired with an IBM Plex Mono “TOKENS / SEC” eyebrow.

customer-logo-strip — Horizontal monochrome customer-logo strip (McLaren F1 and others) in #64748b, padding 32px vertical, on the warm canvas.

5. Layout Principles

Spacing System

Base unit 4px. Scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96]. 96px section padding sets the editorial vertical rhythm; 24px card padding; 16px the common gutter. The generous top/bottom section padding is part of the calm, paper-like register.

Grid & Container

Max content width 1280px centered; prose width capped at 720px for readability. Editorial body uses a 12-column grid. The hero often runs asymmetric — light headline left, speed demo or benchmark card right. Feature card grids run 3-up at desktop, 2-up at tablet, 1-up at mobile.

Whitespace Philosophy

Groq uses generous, editorial whitespace — the page should feel unhurried and confident, the opposite of a cluttered dashboard. The light headlines need room to breathe; tight type plus open space is the brand’s balance. The orange CTA earns its impact precisely because the surrounding space is calm.

Section Cadence

Warm-canvas hero (light headline + speed demo) → customer-logo strip → inverted #2a2a25 benchmark / speed-demo band → light feature card grid → stat-callout strip (mono eyebrows + light stat numbers) → editorial sub-section on warm-deeper #ecece4 band → pricing → CTA band → deepest #1f1f1b footer.

6. Shapes & Radius Scale

TierTokenValueUse
Micromicro2pxTiny chips, mono-eyebrow underline accents
Standardsm4pxDark speed-demo button (rendered ~5px), tight inline elements
Comfortablemd8pxInputs, small inline buttons
Largelg12pxContent cards, elevated cards, dark benchmark cards
Featuredxl16pxHero shells, large feature panels
Pillpill9999pxPrimary orange CTA, ghost buttons, soft badges

The radius story is a deliberate contrast: the primary CTA is a full pill (1000px) — soft, friendly, fast-feeling — while the dark speed-demo button is sharp (~5px) to set it apart. Cards sit at a calm 12px.

7. Depth & Elevation

LevelTreatmentUse
0 — FlatNo shadow, no borderBody sections, top nav at rest, hero text
1 — Soft hairline1px #dbe2f0 / #d8d8cd borderStandard cards, inputs
2 — Soft shadow1px border + ambient shadowCards on hover
3 — Standard shadowStandard warm-graphite shadowElevated near-white cards
4 — Brand glowGlow-orange shadowHero CTA card (rare)
5 — InvertedDark #2a2a25 surface, no shadowBenchmark / speed-demo spotlight bands
6 — ModalStandard shadow + backdrop dim 55%Dialogs, dropdowns

Shadow Philosophy

Groq’s depth is restrained and warm. Shadows use rgba(31, 31, 27, ...) — the deepest inverted surface tinted at low alpha — so elevation stays brand-aligned and never reads cold or blue. Most of the page is flat (paper rests on paper); shadow is reserved for genuinely floating elements. Hover lifts are subtle (translateY(-2px) + shadow up one tier). The rare orange glow appears only behind the hero CTA.

8. Interaction & Motion

Easing Curves

  • Standard ease: cubic-bezier(0.4, 0, 0.2, 1) — default for color, opacity, transforms.
  • Emphasized ease: cubic-bezier(0.2, 0, 0, 1) — CTA hover, modal entrances, the speed-counter count-up.

Duration Buckets

  • Fast (150ms): Color and opacity transitions, button hover.
  • Standard (240ms): Card hover lifts, dropdown opens.
  • Slow (320ms): Modal entrance, section-on-scroll reveals.

Per-Component Micro-States

  • Primary CTA hover: Orange darkens #f43e01#d83602 over 150ms; subtle 1px lift.
  • Dark button hover: #2a2a25#1f1f1b over 150ms.
  • Card hover: TranslateY(-2px) over 240ms; shadow intensifies one tier.
  • Speed counter: On scroll-into-view, the tokens-per-second number counts up from 0 to its real value over ~1.2s with emphasized easing — the brand’s literal demonstration of speed.
  • Link hover: Color warms graphite → orange over 150ms; underline persists.
  • Input focus: 3px orange ring expands.

Page Transitions

Standard browser navigation. Section-on-scroll reveals are 320ms fade-in-up. The speed-demo band animates its counter on first view, then holds.

Reduced Motion

Honored — the speed-counter animation is skipped and the number renders at its final value immediately; all count-ups, transforms, and parallax are removed; only opacity fades remain. Critically, the speed message must survive without motion: the final number is the message, not the animation.

9. Accessibility & A11y

Contrast Pairs

  • Text on bg: #2d2f33 on #f3f3ee = 11.1 — AAA.
  • Body on bg: #3a3c40 on #f3f3ee = 9.6 — AAA.
  • Muted on bg: #64748b on #f3f3ee = 4.3 — AA for large text; use at 18px+ or 14px-bold for captions.
  • On-brand on brand: #ffffff on #f43e01 = 3.6 — AA for large text only. The CTA label is 15px / 400, which sits at the large-text threshold; keep CTA labels ≥15px and never drop white-on-orange below it. For small orange text use brand-deep #9e2701 on a light surface instead.
  • Text on dark: #f3f3ee on #2a2a25 = 12.7 — AAA on inverted bands.
  • Brand-deep on brand-soft: #9e2701 on #fde4da = 5.9 — AA.

Focus Indicators

3px rgba(244, 62, 1, 0.30) ring with 1px solid #f43e01 core. The orange ring is consistent across light and inverted surfaces — visible on both the warm canvas and the dark bands.

ARIA Patterns

  • Buttons: Native <button> / <a role="button">; icon-only carry aria-label.
  • Speed counter: Wrap the animated value in aria-live="off" and expose the final value via aria-label so screen readers announce the number, not the count-up.
  • Navigation: <nav aria-label="Primary">.
  • Logo strip: Each logo <img> carries alt with the customer name.
  • Dialog: role="dialog" + aria-labelledby + aria-modal="true".

Keyboard Navigation

Tab order follows reading order. Skip-link (“skip to content”, already present on the live site) to <main>. Modal traps focus and Escape closes. The orange focus ring makes the focused control unambiguous on every surface.

Screen Reader Hints

Stat numbers expose full unit readout via aria-label (“3 million developers and teams”, “X tokens per second”). The speed-demo band provides a textual summary so the speed claim is conveyed without the animation.

Reduced Motion Handling

Honored — counters freeze on final values, reveals become opacity-only, no parallax. See section 8.

10. Responsive Behavior

Breakpoints

NameWidthKey Changes
Mobile< 640pxHamburger nav; hero headline 32→26px (stays light 300); demo card stacks below; feature grids 1-up; 96→56px section padding
Tablet640–1024pxTop nav tightens; feature cards 2-up; hero headline ~40px
Desktop1024–1280pxFull top-nav; 3-up feature cards; hero at full size
Wide> 1280pxSame as desktop with more breathing room; max content 1280px

Touch Targets

Primary CTA pill min 44px tall on touch (padding bumps from 10px to ~13px vertical). Icon-only controls 44 × 44px hit area. Input height ≥44px on touch.

Collapsing Strategy

Top nav collapses to a hamburger at < 1024px. Hero asymmetric layout collapses to single-column (headline first, then speed-demo card). The stat-callout strip stacks vertically; mono eyebrows stay above their numbers. Inverted benchmark bands keep full-bleed width and reflow their internal columns.

Image Behavior

Customer logos retain native aspect; the strip scrolls horizontally on mobile rather than shrinking past legibility. Benchmark charts in the dark band switch from side-by-side to stacked.

11. Content & Voice

Tone

Fast, confident, plainspoken, speed-obsessed. Groq writes for developers and teams who care about inference latency and cost. The voice is the typographic light weight in words: it states capability quietly and lets the numbers carry the boast (“fast, low cost inference that doesn’t flake when things get real”). It is technical without jargon-stacking, confident without shouting — closer to a precision-instrument datasheet than a hype deck.

Microcopy Patterns

  • CTA verbs: “Start Building”, “Get Started”, “View Pricing”, “View Models”, “Learn More”, “Read More”, “Start Now”. Action-first, no fluff.
  • Stat eyebrows (IBM Plex Mono, uppercase): “3M DEVELOPERS AND TEAMS”, “TOKENS / SEC”, “LPU INFERENCE”.
  • Feature copy: Verb-first and outcome-led (“Deploy in seconds”, “Built for inference”, “Instant intelligence, deployed worldwide”).
  • Speed framing: Numbers are the headline. Pair every speed claim with a real figure in light stat-display type.

Empty States

Console / dashboard: “No models running yet — make your first request and watch it stream.” Welcoming, speed-forward, with an orange link to the quickstart.

Error Messages

Pattern: <icon in #dc2626> + "What went wrong" + "What to try next". Example: “Request failed — check your API key and try again.” Kept short and unalarming.

Success Confirmations

Toast in #2d2f33 over #fffcfc with a success stripe. “Request complete — N tokens in Xms.” Auto-dismiss 4s. Even confirmations report a speed number.

12. Dark Mode & Theming

Groq marketing is light-default on the warm #f3f3ee canvas. There is no full dark theme; instead, Groq uses localised inverted bands (#2a2a25 surface, #1f1f1b for the footer and code) as spotlights — for the speed demo, benchmark comparisons, and the footer. On these inverted surfaces tokens map: bg: #2a2a25 (or #1f1f1b), text: #f3f3ee (the canvas color, reused to preserve warmth), text-muted: #b8b8ae, brand: #f43e01 (unchanged — the orange is identical on both surfaces), border: rgba(243,243,238,0.12). The deliberate reuse of the off-white as on-dark text keeps every surface, light or dark, inside the same warm family. If a product dark theme were added, it would extend this band palette rather than introduce a cool-gray system.

13. Lineage & Influences

Groq’s marketing aesthetic descends from the precision-instrument lineage — the warm paper canvas of editorial design crossed with the restraint of Swiss-grid typography. The whole type identity rests on Space Grotesk, Florian Karsten’s reworking of Haas Grotesk Display: a geometric grotesque with a tall x-height and distinctive single-storey forms that give Groq an engineered, slightly mechanical voice. The defining move is the light weight (300) on large headlines — most hardware-AI brands shout in bold; Groq whispers in light, which reads as confidence: the speed speaks for itself.

The warm off-white #f3f3ee paper (NOT sterile white) softens the technical register and ties to print-grade editorial work, while a single hot #f43e01 orange — the LPU brand voltage — is the one place the page raises its voice, rendered as a fully-rounded 1000px pill. IBM Plex Mono on the stat eyebrows nods to the lab-instrument / terminal heritage where measured speed gets reported. The localised inverted bands rather than a full dark theme borrow Linear’s discipline of keeping dark moments deliberate and brand-aligned. The single-accent-on-a-quiet-canvas baseline is Vercel’s, but where Vercel goes monochrome-on-white, Groq goes orange-on-warm-paper. Where Baseten dresses ML deployment in approachable purple workshop chrome and Modal commits to lime-green developer optimism, Groq rejects the dashboard-dark, neon-benchmark cliché of the inference category entirely and commits to speed-obsessed minimalism: fast, low cost inference, said quietly on warm paper.

14. Do’s and Don’ts

Do

  • Anchor every page on the warm off-white #f3f3ee canvas — paper, not sterile white.
  • Set Space Grotesk on every text role; the family is the brand voice.
  • Keep large headlines at the light weight (300) with tight -0.02em to -0.03em tracking.
  • Reserve the hot orange #f43e01 for the primary CTA — rendered as a full 1000px pill.
  • Use the dark #2a2a25 button (small ~5px radius) for the speed-demo affordance, to contrast the orange pill.
  • Set stat eyebrows in IBM Plex Mono, uppercase, 1.2px tracking (“3M DEVELOPERS AND TEAMS”).
  • Pair every speed claim with a real number in light stat-display type.
  • Use localised inverted #2a2a25 / #1f1f1b bands as spotlights for speed demos and benchmarks.
  • Use graphite #2d2f33, not black, for type — it keeps the warm editorial calm.
  • Keep generous 96px section rhythm so the light type and orange CTA have room to breathe.

Don’t

  • Don’t switch the canvas to pure white or pure black. The warmth of #f3f3ee is the brand.
  • Don’t set headlines in bold by default — the light weight is the signature; bold breaks it.
  • Don’t introduce a second accent color. Groq is orange + graphite + warm grayscale, full stop.
  • Don’t render the primary CTA with a small radius — it must be a full 1000px pill.
  • Don’t render the dark speed-demo button as a pill — its sharp radius is what distinguishes it.
  • Don’t use a second sans-serif. Space Grotesk carries everything; no Inter, no Helvetica swap.
  • Don’t set small white text on the orange — contrast is AA-large only; use #9e2701 on light for small orange type.
  • Don’t fill the page with dark dashboard chrome and neon charts — that is the cliché Groq rejects.
  • Don’t loosely track the light headlines; tight tracking is half the fingerprint.
  • Don’t add gradients to the orange. Solid #f43e01 only; the rare glow shadow is the one exception.

15. Agent Prompt Guide

Quick Color Reference

Bg / Canvas:     #f3f3ee (warm off-white paper)
Bg Warm:         #ecece4 (deeper warm alternation band)
Surface:         #e8e8de (soft card tint)
Surface Card:    #fffcfc (near-white elevated card)
Text:            #2d2f33 (graphite — headlines + body)
Text Body:       #3a3c40 (running-text)
Text Muted:      #64748b (captions, secondary)
Brand:           #f43e01 (hot orange — primary CTA pill)
Brand Hover:     #d83602 (orange press state)
Dark:            #2a2a25 (speed-demo button / inverted band)
Border Warm:     #d8d8cd (warm hairline)
On-Brand:        #ffffff (white on orange)

Example Component Prompts

  1. “Create a Groq hero on a warm off-white #f3f3ee canvas. Headline in Space Grotesk at a LIGHT 300 weight, ~32px, -0.02em tracking, color #2d2f33 (‘Groq delivers fast, low cost inference that doesn’t flake when things get real’). 18px / 400 #3a3c40 subhead. Primary CTA: a fully-rounded 1000px orange #f43e01 pill with white 15px label (‘Start Building’), paired with a ghost button (transparent, 1px #d8d8cd border, also pill-shaped, ‘Read the docs’).”

  2. “Design a dark speed-demo card. Background #2a2a25, 12px radius, 24px padding, text #f3f3ee. Inside: an IBM Plex Mono uppercase eyebrow ‘TOKENS / SEC’ at 12px / 1.2px tracking, a large light-weight (Space Grotesk 56px / 300) counting number, and a sharp-cornered (~5px radius) dark button ‘TRY THE SPEED OF GROQ’. The orange #f43e01 appears once as a small accent.”

  3. “Build a 3-column feature grid on #f3f3ee. Each card: background #e8e8de, 1px #dbe2f0 border, 12px radius, 24px padding, a Space Grotesk 24px / 400 #2d2f33 title, 16px / 400 #3a3c40 body, and an IBM Plex Mono uppercase eyebrow (‘LPU INFERENCE’, ‘LOW COST’, ‘WORLDWIDE’).”

  4. “Compose a stat-callout strip on the warm canvas: three figures (‘3M’, ‘<1s’, ‘100s of tok/s’) in light Space Grotesk 56px / 300 / #2d2f33, each with an IBM Plex Mono uppercase 12px / 1.2px #64748b label below (‘DEVELOPERS AND TEAMS’, ‘TIME TO FIRST TOKEN’, ‘THROUGHPUT’). 96px vertical padding, no shadows.”

  5. “Design a Groq top nav: 64px tall, transparent over #f3f3ee, no border at rest. Wordmark left, horizontal menu center (Products, Developers, Enterprise, Pricing, Company) in Space Grotesk 15px / 400 #2d2f33, right side a ‘Sign in’ text link plus an orange #f43e01 1000px pill CTA (‘Start Building’).”

  6. “Create a pre-footer CTA section on a #1f1f1b inverted band: light Space Grotesk 46px / 300 / #f3f3ee headline (‘Ready to go fast?’), #b8b8ae subhead, and a single orange #f43e01 1000px pill (‘Get Started’). The orange is the only color on the dark surface.”

Iteration Guide

  1. Start on the warm #f3f3ee paper — if your canvas is white or black, you’ve already lost the brand.
  2. Set the headline LIGHT. Space Grotesk 300, tight -0.02em tracking. Resist the urge to bold it.
  3. Place exactly one orange #f43e01 pill per band — the primary CTA, fully rounded at 1000px.
  4. Make the speed numbers the loudest content: light stat-display figures + IBM Plex Mono eyebrows.
  5. If you need a dark moment (speed demo, benchmark), use a localised #2a2a25 band, not a full dark page.
  6. Keep the dark speed-demo button sharp (~5px) so it never reads as a second primary CTA.
  7. Hold the line on one type family and one accent color — Space Grotesk + orange + warm grayscale.
  8. Use generous 96px section rhythm; the calm space is what gives the single orange its impact.

Theme-toggle audit: score=0, signals=[none]

Ship with this

Drop groq into your project, then ship the actual sections in an afternoon.

1 · install design
npx @webdesignhot/design-md add groq
2 · ship landing page
npx agentkit init --design groq
How AgentKit reads DESIGN.md