Replicate

Replicate's marketing surfaces pair the warm-cream developer-tools aesthetic of an indie ML playground with a confident hot-orange brand accent and a signature display typeface (rb-freigeist-neue) sized aggressively large at 72px+. The system reads as "AI lab notebook crossed with print magazine": cream and bone surfaces, dark ink type, monospace code wells, irregular hand-drawn-feeling diagrams,

Homepage Example

Replicate
Features About Sign Up Free

Welcome to Replicate

A modern, elegant design system built for the digital age.

Get Started Learn More
Pixel Perfect
Every element is carefully crafted for consistency across all platforms.
Design Tokens
A comprehensive token system that makes scaling effortless.
Built for Teams
Collaborate seamlessly using a shared design language.
© 2026 Replicate

Color Palette (22)

primary#ea2804
primary-deep#c01f00
on-primary#ffffff
ink#202020
body#3a3a3a
charcoal#575757
mute#646464
ash#8d8d8d
stone#bbbbbb
on-dark#fcfcfc
canvas#f9f7f3
surface-bone#f3f0e8
surface-card#ffffff
surface-dark#202020
surface-deep#000000
hairline-strong#202020
hero-warm#ea2804
hero-glow#ff6a3d
hero-pink#f4a8a0
badge-success#2b9a66
link#ea2804
github-dark#24292e

Typography (17)

Replicate
display-xxl128px · weight 700
Replicate
display-xl72px · weight 700
Replicate
display-lg48px · weight 700
Replicate
display-md30px · weight 600
Replicate
heading-lg38.4px · weight 600
Replicate
heading-md24px · weight 600
Replicate
heading-sm20px · weight 600
Replicate
subtitle18px · weight 600
Replicate
body-lg18px · weight 400
Replicate
body-md16px · weight 400
Replicate
body-sm14px · weight 400
Replicate
button-md16px · weight 600
Replicate
button-sm14px · weight 600
Replicate
caption12px · weight 400
Replicate
caption-tight14px · weight 600
Replicate
code-md14px · weight 400
Replicate
code-sm11px · weight 400

Components (20)

button-primary
button-primary
button-primary-pressed
button-primary-pressed
button-dark
button-dark
button-outline
button-outline
button-ghost
button-ghost
button-icon
button-icon
text-input
text-input
hero-band
hero-band
model-card
model-card
collection-tile
collection-tile
pricing-tier
pricing-tier
pricing-tier-featured
pricing-tier-featured
code-block
code-block
code-tab
code-tab
badge-status
badge-status
badge-tag
badge-tag
nav-bar
nav-bar
sub-nav-pill
sub-nav-pill
contributor-avatar
contributor-avatar
footer
footer

Border Radius

none (0px)
xs (4px)
sm (6px)
md (10px)
lg (16px)
full (9999px)

Design Philosophy

Overview

Replicate is a developer-tools platform with the soul of an art zine. The

public marketing surfaces sit on a warm cream canvas (`{colors.canvas}` —

`#f9f7f3`) rather than the white-or-near-black default of typical AI

infrastructure sites, and that single decision colours everything else:

photography reads as editorial, code wells read as printed pull-quotes, and

the brand orange (`{colors.primary}` — `#ea2804`) feels like a stamp rather

than a notification.

The typography is the load-bearing decoration. **rb-freigeist-neue** — a

heavy, slightly condensed grotesque — appears at sizes up to 128px in hero

bands, with a tight `lineHeight: 1.0` and negative letter-spacing that lets

multi-line headlines pack into geometric blocks. The companion family,

**basier-square**, takes care of body, button labels, and metadata in the

14–18px range. **JetBrains Mono** carries every code well, command, and

example. Three families, three jobs, no overlap.

Page rhythm cycles between a default cream canvas, a bold full-bleed orange

hero band, and a `{colors.surface-dark}` (`#202020`) section that hosts the

code stories — the "how it works" walkthrough. Curves are intentional and

soft: every interactive surface (buttons, inputs, tags, avatars) uses

`{rounded.full}`, while content cards and code wells step up to `{rounded.md}`

or `{rounded.lg}`. There are no sharp corners on Replicate; the system reads

as friendly precision.

**Key Characteristics:**

  • A warm cream canvas (`{colors.canvas}` — `#f9f7f3`) replaces the typical white background, paired with `{colors.surface-bone}` for inset cards.
  • Hot orange (`{colors.primary}` — `#ea2804`) is reserved for the primary CTA, the hero band, and inline link colour. Never decorative.
  • Display headlines run massive — `{typography.display-xxl}` at 128px in hero bands and `{typography.display-xl}` at 72px on section openers — with tight `lineHeight: 1.0` and negative letter-spacing.
  • Three-family typography stack: `rb-freigeist-neue` for display, `basier-square` for UI/body, `jetbrains-mono` for code.
  • Every interactive element is fully rounded (`{rounded.full}` 9999px) — buttons, inputs, badges, avatars — while content cards step to `{rounded.md}` 10px.
  • Dark code wells (`{colors.surface-dark}` background) sit inside the cream canvas as full-bleed reading surfaces, mimicking print pull-quotes.
  • Section rhythm: cream → orange hero → cream → dark code-story band → cream → black footer.

Colors

Brand & Accent

  • **Replicate Orange** (`{colors.primary}` — `#ea2804`): the brand accent. Reserved for the primary CTA, hero band background, and inline link colour. Treat as a stamp — one orange element per viewport at most.
  • **Orange Pressed** (`{colors.primary-deep}` — `#c01f00`): the active/pressed state of `{colors.primary}` — used on `{component.button-primary-pressed}`.
  • **Hero Glow** (`{colors.hero-glow}` — `#ff6a3d`): the lighter orange that appears in the radial atmospheric mesh behind the hero copy.
  • **Hero Pink** (`{colors.hero-pink}` — `#f4a8a0`): a warm pink wash that softens the bottom edge of the hero band before it transitions to cream.
  • **On-Primary** (`{colors.on-primary}` — `#ffffff`): label colour on top of `{colors.primary}` surfaces.

Surface

  • **Canvas** (`{colors.canvas}` — `#f9f7f3`): the default page background. Warm cream, never pure white.
  • **Surface Bone** (`{colors.surface-bone}` — `#f3f0e8`): a half-step deeper cream used for inset card groups and feature bands.
  • **Surface Card** (`{colors.surface-card}` — `#ffffff`): pure white for individual model cards, search inputs, and pricing tiers — the only place white appears.
  • **Surface Dark** (`{colors.surface-dark}` — `#202020`): code wells, featured pricing tier, and the "how it works" walkthrough band.
  • **Surface Deep** (`{colors.surface-deep}` — `#000000`): footer canvas and the inset code-tab strip inside `{component.code-block}`.
  • **Hairline** (`{colors.hairline}` — `rgba(32,32,32,0.12)`): low-contrast 1px dividers on cream surfaces.
  • **Hairline Strong** (`{colors.hairline-strong}` — `#202020`): button outlines, focused inputs, and structural separators.

Text

  • **Ink** (`{colors.ink}` — `#202020`): primary text colour. Notably warmer than `#000000`, matching the cream canvas.
  • **Body** (`{colors.body}` — `#3a3a3a`): long-form body copy where ink would feel too heavy at 18px+ line lengths.
  • **Charcoal** (`{colors.charcoal}` — `#575757`): captions, metadata, secondary nav.
  • **Mute** (`{colors.mute}` — `#646464`): supporting text and inactive labels.
  • **Ash** (`{colors.ash}` — `#8d8d8d`): tertiary text, placeholder copy.
  • **Stone** (`{colors.stone}` — `#bbbbbb`): disabled foreground, neutral icon outlines.
  • **On-Dark** (`{colors.on-dark}` — `#fcfcfc`): primary text on `{colors.surface-dark}` and `{colors.surface-deep}`.
  • **On-Dark Mute** (`{colors.on-dark-mute}` — `rgba(252,252,252,0.72)`): secondary text in dark regions; preserves the off-white feel without pure white pop.

Semantic

  • **Success** (`{colors.badge-success}` — `#2b9a66`): inline success badges and "running" status pills on model cards.
  • **Link** (`{colors.link}` — `#ea2804`): inline link colour — same as primary orange, intentionally pulling links into the brand accent.
  • **Focus Ring** (`{colors.ring-focus}` — `rgba(59,130,246,0.5)`): the default focus ring on interactive elements.
  • **GitHub Dark** (`{colors.github-dark}` — `#24292e`): the GitHub-branded button surface (kept off-brand-on-purpose to match GitHub's own tokens).

Typography

Font Family

Replicate ships a deliberate three-family stack:

  • **rb-freigeist-neue** — proprietary heavy grotesque used for all display sizes (30px+). Carries the editorial-magazine personality through tight `lineHeight: 1.0` and negative letter-spacing.
  • **basier-square** — proprietary humanist sans-serif used for body, button labels, captions, and metadata.
  • **jetbrains-mono** — open-source monospace used in every code well and inline command.

When proprietary families cannot be licensed, **Bricolage Grotesque** or **Migra** are credible substitutes for rb-freigeist-neue, and **Geist** or **Inter** can stand in for basier-square. JetBrains Mono is open-source and should always be used directly.

Hierarchy

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

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

| `{typography.display-xxl}` | 128px | 700 | 1.0 | -3px | The single hero "Run AI" / "Imagine what you can build" headline. One per page. |

| `{typography.display-xl}` | 72px | 700 | 1.0 | -1.8px | Section openers ("How it works", "Scale on Replicate"). |

| `{typography.display-lg}` | 48px | 700 | 1.0 | -1px | Sub-section titles, pricing tier names. |

| `{typography.display-md}` | 30px | 600 | 1.2 | -0.5px | Feature card titles. |

| `{typography.heading-lg}` | 38.4px | 600 | 0.83 | -0.5px | Tightly-stacked basier-square headlines, used in pricing and enterprise hero. |

| `{typography.heading-md}` | 24px | 600 | 1.33 | -0.35px | Card titles, model detail headers. |

| `{typography.heading-sm}` | 20px | 600 | 1.4 | -0.3px | List section headers. |

| `{typography.subtitle}` | 18px | 600 | 1.56 | 0 | Lead paragraphs in display sections. |

| `{typography.body-lg}` | 18px | 400 | 1.56 | 0 | Marketing prose. |

| `{typography.body-md}` | 16px | 400 | 1.5 | 0 | Default body. |

| `{typography.body-sm}` | 14px | 400 | 1.43 | 0 | Captions, metadata. |

| `{typography.button-md}` | 16px | 600 | 1.0 | 0 | Default button label. |

| `{typography.button-sm}` | 14px | 600 | 1.0 | 0 | Compact button label, sub-nav pills. |

| `{typography.caption}` | 12px | 400 | 1.33 | 0 | Footer disclosure, copyright. |

| `{typography.caption-tight}` | 14px | 600 | 1.43 | -0.35px | Emphatic small caption used in pricing tier rows. |

| `{typography.code-md}` | 14px | 400 | 1.43 | 0 | Code blocks and inline code. |

| `{typography.code-sm}` | 11px | 400 | 1.5 | 0 | Code-tab labels and small inline tokens. |

Principles

  • Display sizes hold `lineHeight: 1.0` (or 0.83 on `{typography.heading-lg}`) so multi-line stacks read as single typographic blocks.
  • Negative letter-spacing scales with size — bigger types tighten more (-3px at 128px down to -0.3px at 20px). Body type stays at 0.
  • Body weight sits at 400 across `{typography.body-lg}` and `{typography.body-md}` — never bumped to 500 for emphasis. Emphasis comes from family change (basier-square → rb-freigeist-neue) rather than weight.
  • Code is never set in basier-square, even at small sizes — JetBrains Mono carries every literal command, every model slug, every API call.

Note on Font Substitutes

When the proprietary families are unavailable, clamp display `lineHeight` to 1.0 explicitly and apply a -3% letter-spacing on display-xxl / display-xl to match the original tightness. Substitutes typically render with looser tracking by default.

Layout

Spacing System

  • **Base unit**: 4px, with the working scale on multiples of 4 / 8 / 16.
  • **Tokens**: `{spacing.xxs}` 2px · `{spacing.xs}` 4px · `{spacing.sm}` 8px · `{spacing.md}` 12px · `{spacing.lg}` 16px · `{spacing.xl}` 24px · `{spacing.xxl}` 32px · `{spacing.xxxl}` 48px · `{spacing.section}` 96px · `{spacing.band}` 160px.
  • Section padding: `{spacing.section}` (96px) vertical between full-width bands; `{spacing.band}` (160px) when a band needs extra editorial breathing room (the hero, the closing "Imagine what you can build" stripe).
  • Card internal padding: `{spacing.lg}` (16px) on `{component.model-card}`, `{spacing.xxl}` (32px) on `{component.pricing-tier}`.

Grid & Container

  • **Max content width** ≈ 1280px on body sections, 1440px on hero bands which run full-bleed.
  • **Model grid** on collections: 4 columns at desktop, 3 at tablet large, 2 at tablet, 1 at mobile.
  • **Pricing**: 3-tier grid centred at desktop, stacking vertically below 1024px; the centre tier flips to `{component.pricing-tier-featured}` (dark inversion) as the recommended option.
  • **Code-story sections**: a 2-up split — narrative copy left, code well right — collapsing to stacked at < 1024px.

Whitespace Philosophy

  • Whitespace on cream is generous and editorial — sections breathe at 96px and key bands open at 160px so the typography can scale up without feeling cramped.
  • Inside cards, the system tightens to 16–32px so model thumbnails, statuses, and metadata sit in a compact list-of-cards rhythm.
  • Hairline `{colors.hairline}` dividers replace shadow on cream surfaces; on dark surfaces, `{colors.divider-dark}` carries the equivalent role.

Elevation & Depth

| Level | Treatment | Use |

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

| 0 — flat | No shadow, no border | Default cream canvas, full-bleed bands. |

| 1 — outline | 1px solid `{colors.hairline}` or `{colors.hairline-strong}` | Model cards, pricing tiers, collection tiles. |

| 2 — bone inset | Surface colour shift to `{colors.surface-bone}` inside a `{colors.canvas}` band | Feature group containers, "How it works" walkthrough. |

| 3 — dark inversion | Card swaps to `{colors.surface-dark}` against cream | Code wells, featured pricing tier, "Scale on Replicate" hero card. |

| 4 — soft drop | `0 8px 24px rgba(32,32,32,0.08)` | Hover-anchored model thumbnails (visual only — not interaction-state-documented). |

Drop shadows exist in the extracted tokens but are restrained — used sparingly to lift photography thumbnails one step off the cream canvas. The dominant elevation language is colour-blocking.

Decorative Depth

  • **Hero atmospheric mesh** — the orange-to-pink gradient backing the home hero is a layered radial mesh: `{colors.primary}` core → `{colors.hero-glow}` mid-stop → `{colors.hero-pink}` outer wash. Reserved for the home hero band only.
  • **Code-story dark band** — the "How it works" section uses `{colors.surface-dark}` full-bleed with a single hairline `{colors.divider-dark}` separating narrative copy and code well.
  • **Contributor mosaic** — the home page features a horizontally-scrolling band of circular avatars (`{component.contributor-avatar}`) over a textured cream canvas; this is the only place avatars appear at the brand level.

Shapes

Border Radius Scale

| Token | Value | Use |

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

| `{rounded.none}` | 0px | Hero bands, full-bleed sections, footer. |

| `{rounded.xs}` | 4px | Code tabs, inline tags inside code wells. |

| `{rounded.sm}` | 6px | Mid-radius callouts, small inset chips. |

| `{rounded.md}` | 10px | Model cards, collection tiles, code wells. |

| `{rounded.lg}` | 16px | Pricing tiers, larger feature cards. |

| `{rounded.full}` | 9999px | Buttons, inputs, badges, avatars, pills. |

Photography Geometry

  • Model thumbnails: square (1:1) with `{rounded.md}` corners, full-bleed image to the card edge.
  • Hero example outputs: 4:3 or 16:9 with `{rounded.md}` corners.
  • Contributor avatars: circular (`{rounded.full}`), 40px on home, 32px in card metadata.
  • The hero band uses a stylised black-ink illustration (the "tinkerer at the workbench") as its photography stand-in — kept inside the orange band rather than overlaid on cream.

Components

Buttons

**`button-primary`** — orange CTA

  • Background `{colors.primary}`, label `{colors.on-primary}`, type `{typography.button-md}`, padding `12px 24px`, `rounded: {rounded.full}`, height 44px.
  • The single most important action on a page (e.g. "Sign in with GitHub", "Try a model").
  • Pressed state lives in `button-primary-pressed` (background `{colors.primary-deep}`).

**`button-dark`** — dark CTA

  • Background `{colors.surface-dark}`, label `{colors.on-dark}`, type `{typography.button-md}`, `rounded: {rounded.full}`.
  • Equal-weight secondary action paired with `{component.button-primary}`, or the primary action on cream when orange would be too loud.

**`button-outline`** — outlined CTA

  • Background `{colors.surface-card}`, label `{colors.ink}`, 1px solid `{colors.hairline-strong}`, type `{typography.button-md}`, `rounded: {rounded.full}`.
  • Tertiary action; appears alongside primary/dark for "View docs", "Read more".

**`button-ghost`** — inline button

  • Background `{colors.canvas}`, label `{colors.ink}`, no border, type `{typography.button-md}`, `rounded: {rounded.full}`, padding `8px 16px`.
  • Sub-actions inside cards and inline with body copy.

**`button-icon`** — icon button

  • Background `{colors.surface-card}`, label `{colors.ink}`, 1px solid `{colors.hairline}`, `rounded: {rounded.full}`, 36×36px circular.
  • Carousel arrows, copy-to-clipboard, GitHub link icon.

Cards & Containers

**`model-card`** — model listing card

  • Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.body-md}`, `rounded: {rounded.md}`, padding `{spacing.lg}` (16px).
  • Square thumbnail on top, model owner + name beneath in `{typography.body-sm}`, single-line description in `{colors.charcoal}`, status pill `{component.badge-status}` bottom-left.

**`collection-tile`** — collection-of-models tile

  • Background `{colors.canvas}`, text `{colors.ink}`, type `{typography.heading-md}`, `rounded: {rounded.md}`, padding `{spacing.xl}` (24px).
  • Cream-on-cream tile inside a `{colors.surface-bone}` band, used for browsing model categories.

**`pricing-tier`** — pricing tier card

  • Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.body-md}`, `rounded: {rounded.lg}`, padding `{spacing.xxl}` (32px).
  • 3-up grid; tier name in `{typography.display-lg}` ("Free", "Pro", "Enterprise"), price in `{typography.display-md}`.

**`pricing-tier-featured`** — featured pricing tier

  • Background `{colors.surface-dark}`, text `{colors.on-dark}`, type `{typography.body-md}`, `rounded: {rounded.lg}`, padding `{spacing.xxl}`.
  • Centre tier flipped to dark inversion to mark "recommended".

**`code-block`** — code well

  • Background `{colors.surface-dark}`, text `{colors.on-dark}`, type `{typography.code-md}`, `rounded: {rounded.md}`, padding `{spacing.xl}` (24px).
  • Tab strip on top using `{component.code-tab}` for switching between languages (Python, Node.js, cURL, HTTP).

**`code-tab`** — code tab chip

  • Background `{colors.surface-deep}`, text `{colors.on-dark-mute}`, type `{typography.code-sm}`, `rounded: {rounded.xs}`, padding `6px 12px`.
  • Active tab swaps text colour to `{colors.on-dark}` and adds a 2px bottom underline in `{colors.primary}`.

**`hero-band`** — full-bleed hero

  • Background `{colors.hero-warm}` with the atmospheric mesh detailed in Elevation, text `{colors.on-dark}`, type `{typography.display-xxl}` for the title.
  • Used only on the home page; secondary pages open with cream + `{typography.display-xl}`.

Inputs & Forms

**`text-input`** — default input

  • Background `{colors.surface-card}`, text `{colors.ink}`, type `{typography.body-md}`, 1px solid `{colors.hairline}`, `rounded: {rounded.full}`, padding `12px 20px`, height 44px.
  • Pill-shaped search and email fields. Focus state adds a `{colors.ring-focus}` 3px ring.

Navigation

**`nav-bar`** — top nav (desktop)

  • Background `{colors.canvas}`, type `{typography.button-sm}`, height 60px, single hairline `{colors.hairline}` bottom border.
  • Left: wordmark logo. Centre: top-level nav ("Explore", "Pricing", "Docs", "Blog"). Right: GitHub icon + "Sign in" link + `{component.button-primary}`.

**`nav-bar`** (mobile)

  • Same height 60px, collapses centre nav into a hamburger icon. Logo stays left, sign-in CTA stays right.

**`sub-nav-pill`** — sub-nav chip

  • Pill chips set in a horizontal row above content (e.g. "All", "Featured", "Image generation", "Audio"), `{component.sub-nav-pill}` styling.

Signature Components

**`badge-status`** — model status badge

  • Background `{colors.badge-success}`, label `{colors.on-dark}`, type `{typography.caption}`, `rounded: {rounded.full}`, padding `4px 10px`.
  • Anchored on the bottom-left of model cards to indicate "running" or "deployed".

**`badge-tag`** — neutral tag

  • Background `{colors.canvas}`, label `{colors.ink}`, 1px solid `{colors.hairline}`, type `{typography.caption}`, `rounded: {rounded.full}`, padding `4px 10px`.
  • Capability tags ("text-to-image", "video", "audio") on model cards.

**`contributor-avatar`** — community contributor

  • Background `{colors.surface-card}` placeholder behind 1:1 photography, `rounded: {rounded.full}`, 40×40px (32px in metadata contexts).
  • Used in the home-page contributor mosaic.

**`footer`** — global footer

  • Background `{colors.surface-deep}`, text `{colors.on-dark}`, type `{typography.body-sm}`, `rounded: {rounded.none}`, padding `64px 32px`.
  • Multi-column quick-links grid above a copyright row separated by `{colors.divider-dark}`.

Do's and Don'ts

Do

  • Use `{colors.canvas}` (cream) as the default page background. White (`{colors.surface-card}`) appears only on individual cards, inputs, and the hero illustration backdrop.
  • Reserve `{colors.primary}` for the primary CTA, the home hero band, and inline links — three roles, nothing else.
  • Set every interactive element to `{rounded.full}` — buttons, inputs, badges, avatars, pills.
  • Step content cards up to `{rounded.md}` (10px) or `{rounded.lg}` (16px) — never sharp corners.
  • Open hero bands with `{typography.display-xxl}` (128px) and `{typography.display-xl}` (72px) at `lineHeight: 1.0` with negative letter-spacing.
  • Use `rb-freigeist-neue` for all display, `basier-square` for UI/body, `jetbrains-mono` for code. Keep the lanes strict.
  • Render code in `{component.code-block}` with a `{colors.surface-dark}` background — code is print, not an inline grey box.
  • Pair photography with `{rounded.md}` corners and full-bleed crop inside cards.

Don't

  • Don't replace cream with pure white at the page level. The brand temperature comes from `{colors.canvas}`.
  • Don't introduce a secondary brand colour. Orange is the only accent; semantic green and focus blue are functional, not decorative.
  • Don't loosen display `lineHeight` past 1.0. Tight stacking is structural.
  • Don't bump body weight to 500 for emphasis — change family (`basier-square` → `rb-freigeist-neue`) instead.
  • Don't apply `{rounded.full}` to content cards. Pill-shaped cards break the rhythm.
  • Don't put code in a light grey box. Code wells are always `{colors.surface-dark}` or `{colors.surface-deep}`.
  • Don't use orange on body text or large surfaces — it loses its stamp quality immediately.
  • Don't add drop shadows on cream surfaces. Elevation is colour-blocking; shadows are reserved for floating thumbnails.

Responsive Behavior

Breakpoints

| Name | Width | Key Changes |

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

| Desktop XL | ≥ 1440px | Full max-width 1280 body, hero band runs full-bleed, 4-up model grid. |

| Desktop | 1280–1439px | Container shrinks; padding `{spacing.xl}` (24px) sides. |

| Tablet Large | 1024–1279px | Model grid 3-up, code-story splits remain 2-up. |

| Tablet | 768–1023px | Model grid 2-up, code-story stacks (narrative on top, code below), pricing stacks vertically. |

| Mobile Large | 426–767px | Model grid 1-up at 480px+, nav collapses to hamburger, hero `{typography.display-xxl}` clamps to 64px. |

| Mobile | ≤ 425px | All grids 1-up, hero clamps to 48px, section padding `{spacing.section}` collapses to 64px. |

Touch Targets

  • All buttons ship at minimum 44px tall on mobile; default `{component.button-primary}` is 44px tall — comfortably clearing WCAG AAA.
  • `{component.button-icon}` (36px) is bumped to 44px on mobile via increased padding.
  • `{component.sub-nav-pill}` stays at 36px on desktop and grows to 40px on mobile via vertical padding adjustment.

Collapsing Strategy

  • Top-level nav collapses to hamburger at < 1024px; the wordmark and `{component.button-primary}` stay anchored.
  • Hero `{typography.display-xxl}` clamps: 128px → 96px → 64px → 48px across the breakpoint ladder.
  • Pricing 3-up grid stacks vertically at < 1024px with the featured tier remaining centre-stacked.
  • Code-story splits switch from side-by-side to stacked at < 1024px, code well always second.
  • Sub-nav pills convert from a wrap row to a horizontal scroll-rail at < 768px.

Image Behavior

  • Model thumbnails serve at 1.5× and 2× DPR; below 768px the system swaps to a 600×600 export instead of 1200×1200.
  • Hero atmospheric mesh is rendered as a CSS gradient — no asset cost, no breakpoint variation.
  • Code-block contents wrap softly at < 1024px (no horizontal scroll); long lines break with a continuation marker.

Iteration Guide

1. Focus on ONE component at a time. Most interactive elements share `{rounded.full}` and the `{colors.canvas}` / `{colors.surface-card}` pair — only the role-specific tokens (`{colors.primary}`, `{component.code-block}`) shift between variants.

2. Reference component names and tokens directly (`{colors.primary}`, `{component.button-primary-pressed}`, `{rounded.lg}`) — do not paraphrase.

3. Run `npx @google/design.md lint DESIGN.md` after edits; orphaned-tokens warnings will catch unused entries.

4. Add new variants as separate entries (`-pressed`, `-disabled`, `-featured`) — do not bury them in prose.

5. Default body type to `{typography.body-md}`; reach for `{typography.subtitle}` only on hero subtitles.

6. Keep `{colors.primary}` scarce — if more than one orange element appears per viewport, ask whether one should drop to `{colors.surface-dark}` instead.

Known Gaps

  • Active/pressed visual states are documented for `button-primary-pressed` only; other components rely on the focus-ring (`{colors.ring-focus}`) for interactive feedback, which is not extracted as a per-component variant.
  • The model playground / try-this-model interactive surfaces (logged-in feature) are out of scope; only the public marketing canvas is documented.
  • Dashboard / billing / API key management surfaces are not extracted — those live behind authentication.
  • The home hero illustration ("the tinkerer at the workbench") is treated as decorative artwork, not a system component; replicating it requires bespoke illustration rather than tokens.

개요

Replicate는 예술 잡지의 영혼을 담은 개발자 도구 플랫폼입니다. 는

공개 마케팅 표면은 따뜻한 크림색 캔버스 위에 놓여 있습니다(`{colors.canvas}` —

일반적인 AI의 흰색 또는 검정색에 가까운 기본값이 아닌 `#f9f7f3`)

인프라 사이트를 구축하고 그 단 하나의 결정이 다른 모든 것을 채색합니다.

사진은 사설로 읽히고, 코드 웰은 인쇄된 인용문으로 읽혀지며,

브랜드 오렌지(`{colors.primary}` — `#ea2804`)는 오히려 우표처럼 느껴집니다.

알림보다.

타이포그래피는 하중을 견디는 장식입니다. **rb-freigeist-neue** — a

무겁고 약간 압축된 그로테스크한 — 영웅에서는 최대 128px 크기로 나타납니다.

촘촘한 `lineHeight: 1.0`과 음수 문자 간격을 사용하여 밴드를 만들 수 있습니다.

여러 줄의 헤드라인을 기하학적 블록으로 묶습니다. 동반 가족,

**기본 사각형**은 본문, 버튼 라벨 및 메타데이터를 관리합니다.

14~18px 범위. **JetBrains Mono**는 모든 코드, 명령 및 코드를 전달합니다.

예. 세 가족, 세 가지 직업, 중복되지 않습니다.

기본 크림색 캔버스와 굵은 풀블리드 오렌지 사이의 페이지 리듬 주기

히어로 밴드와 `{colors.surface-dark}`(`#202020`) 섹션을 호스팅합니다.

코드 스토리 — "작동 방식" 연습. 곡선은 의도적이며

소프트: 모든 대화형 표면(버튼, 입력, 태그, 아바타)은

`{rounded.full}`, 콘텐츠 카드와 코드 웰은 `{rounded.md}`로 올라갑니다.

또는 `{rounded.lg}`. 복제에는 날카로운 모서리가 없습니다. 시스템이 읽습니다

친근한 정밀도로.

**주요 특징:**

  • 따뜻한 크림색 캔버스(`{colors.canvas}` — `#f9f7f3`)는 삽입 카드용 `{colors.surface-bone}`과 쌍을 이루는 일반적인 흰색 배경을 대체합니다.
  • 핫 오렌지(`{colors.primary}` — `#ea2804`)는 기본 CTA, 히어로 밴드 및 인라인 링크 색상용으로 예약되어 있습니다. 결코 장식적이지 않습니다.
  • 디스플레이 헤드라인은 엄청납니다. 히어로 밴드에서는 `{typography.display-xxl}`이 128px이고, 섹션 오프너에서는 `{typography.display-xl}`가 72px입니다. `lineHeight: 1.0`이 좁고 음수 문자 간격이 있습니다.
  • 3군 타이포그래피 스택: 디스플레이용 'rb-freigeist-neue', UI/본문용 'basier-square', 코드용 'jetbrains-mono'.
  • 모든 대화형 요소는 버튼, 입력, 배지, 아바타 등 완전히 반올림(`{rounded.full}` 9999px)되는 반면 콘텐츠 카드는 `{rounded.md}` 10px로 단계화됩니다.
  • 어두운 코드 웰(`{colors.surface-dark}` 배경)은 인쇄된 인용문을 흉내내는 풀 블리드 판독 표면으로 크림색 캔버스 내부에 있습니다.
  • 섹션 리듬 : 크림 → 오렌지 히어로 → 크림 → 다크 코드 스토리 밴드 → 크림 → 블랙 푸터.

색상

브랜드 및 액센트

  • **주황색 복제** (`{colors.primary}` — `#ea2804`): 브랜드 액센트. 기본 CTA, 히어로 밴드 배경 및 인라인 링크 색상용으로 예약되어 있습니다. 스탬프로 처리합니다. 뷰포트당 최대 하나의 주황색 요소입니다.
  • **주황색 누름** (`{colors.primary-deep}` — `#c01f00`): `{colors.primary}`의 활성/눌림 상태 - `{comComponent.button-primary-pressed}`에 사용됩니다.
  • **Hero Glow** (`{colors.hero-glow}` — `#ff6a3d`): 영웅 사본 뒤의 방사형 대기 메쉬에 나타나는 밝은 주황색입니다.
  • **히어로 핑크**(`{colors.hero-pink}` — `#f4a8a0`): 크림으로 변하기 전에 히어로 밴드의 하단 가장자리를 부드럽게 만드는 따뜻한 핑크 워시입니다.
  • **On-Primary** (`{colors.on-primary}` — `#ffffff`): `{colors.primary}` 표면 위에 라벨 색상을 표시합니다.

표면

  • **캔버스** (`{colors.canvas}` — `#f9f7f3`): 기본 페이지 배경. 결코 순백색이 아닌 따뜻한 크림.
  • **Surface Bone** (`{colors.surface-bone}` — `#f3f0e8`): 삽입된 카드 그룹 및 기능 밴드에 사용되는 반 단계 더 깊은 크림입니다.
  • **Surface 카드**(`{colors.surface-card}` - `#ffffff`): 개별 모델 카드, 검색 입력 및 가격 책정 계층에 대한 순백색 — 흰색이 나타나는 유일한 위치입니다.
  • **Surface Dark** (`{colors.surface-dark}` — `#202020`): 코드 웰, 주요 가격 책정 계층 및 "작동 방식" 연습 밴드.
  • **표면 깊이**(`{colors.surface-deep}` — `#000000`): 바닥글 캔버스 및 `{comComponent.code-block}` 내부에 삽입된 코드 탭 스트립.
  • **헤어라인** (`{colors.hairline}` — `rgba(32,32,32,0.12)`): 크림색 표면의 저대비 1px 구분선입니다.
  • **Hairline Strong** (`{colors.hairline-strong}` — `#202020`): 버튼 윤곽선, 집중된 입력 및 구조적 구분 기호.

텍스트

  • **잉크**(`{colors.ink}` — `#202020`): 기본 텍스트 색상입니다. '#000000'보다 눈에 띄게 따뜻해 크림색 캔버스와 잘 어울립니다.
  • **본문**(`{colors.body}` — `#3a3a3a`): 18px 이상의 줄 길이에서는 잉크가 너무 무거워지는 긴 형식의 본문 사본입니다.
  • **차콜**(`{colors.charcoal}` — `#575757`): 캡션, 메타데이터, 보조 탐색.
  • **음소거**(`{colors.mute}` — `#646464`): 텍스트 및 비활성 라벨을 지원합니다.
  • **Ash** (`{colors.ash}` — `#8d8d8d`): 3차 텍스트, 자리 표시자 사본.
  • **Stone** (`{colors.stone}` — `#bbbbbb`): 전경 비활성화, 중립 아이콘 윤곽선.
  • **On-Dark** (`{colors.on-dark}` — `#fcfcfc`): `{colors.surface-dark}` 및 `{colors.surface-deep}`의 기본 텍스트입니다.
  • **온-다크 음소거** (`{colors.on-dark-mute}` — `rgb

概要

Replicate は、アート ZINE の魂を持つ開発者ツール プラットフォームです。の

パブリック マーケティングの表面は、温かみのあるクリーム色のキャンバス (`{colors.canvas}`) の上に置かれます。

`#f9f7f3`) 典型的な AI のデフォルトの白人または黒人に近いものではなく

インフラストラクチャ サイト、そしてその 1 つの決定が他のすべてを決定します。

写真は編集として読み取られ、コードウェルは印刷されたプルクオートとして読み取られ、

オレンジというブランド (`{colors.primary}` — `#ea2804`) はむしろスタンプのように感じます

通知よりも。

タイポグラフィーは耐荷重装飾です。 **rb-freigeist-neue** —

重く、わずかに凝縮されたグロテスク — ヒーローでは最大 128 ピクセルのサイズで表示されます

タイトな `lineHeight: 1.0` と負の文字間隔を持つバンド。

複数行の見出しが幾何学的なブロックに詰め込まれます。同行家族は、

**basier-square** は、ボディ、ボタンのラベル、およびメタデータを処理します。

14 ~ 18 ピクセルの範囲。 **JetBrains Mono** は、あらゆるコード、コマンド、および

たとえば。 3 つの家族、3 つの仕事、重複はありません。

ページのリズムは、デフォルトのクリーム色キャンバスと大胆なフルブリード オレンジの間で循環します。

ヒーローバンドと、

コード ストーリー — 「仕組み」のウォークスルー。曲線は意図的なものであり、

ソフト: すべてのインタラクティブ サーフェス (ボタン、入力、タグ、アバター) は

`{rounded.full}`、コンテンツ カードとコード ウェルは `{rounded.md}` にステップアップします

または「{rounded.lg}」。 Replicate には鋭い角がありません。システムは読み取ります

フレンドリーな精度として。

**主な特徴:**

  • 温かみのあるクリーム色のキャンバス (`{colors.canvas}` — `#f9f7f3`) が典型的な白の背景を置き換え、差し込みカード用の `{colors.surface-bone}` と組み合わせられます。
  • ホット オレンジ (`{colors.primary}` — `#ea2804`) は、プライマリ CTA、ヒーロー バンド、およびインライン リンクの色用に予約されています。決して装飾的ではありません。
  • 表示見出しは大規模に実行されます。ヒーロー バンドでは `{typography.display-xxl}` が 128 ピクセル、セクション オープナーでは `{typography.display-xl}` が 72 ピクセルで、狭い `lineHeight: 1.0` と負の文字間隔を使用します。
  • 3 つのファミリーのタイポグラフィ スタック: ディスプレイ用の `rb-freigeist-neue`、UI/ボディ用の `basier-square`、コード用の `jetbrains-mono`。
  • ボタン、入力、バッジ、アバターなど、すべてのインタラクティブ要素は完全に丸められています (`{rounded.full}` 9999px)。一方、コンテンツ カードは `{rounded.md}` 10 ピクセルに進みます。
  • ダーク コード ウェル (`{colors.surface-dark}` 背景) は、フルブリードの読み取り面としてクリーム色のキャンバス内に配置され、印刷物のプルクォートを模倣します。

・セクションリズム:クリーム→オレンジヒーロー→クリーム→ダークコードストーリーバンド→クリーム→ブラックフッター。

ブランドとアクセント

  • **レプリケートオレンジ** (`{colors.primary}` — `#ea2804`): ブランドのアクセント。プライマリ CTA、ヒーロー バンドの背景、インライン リンクの色用に予約されています。スタンプとして扱います - ビューポートごとに最大 1 つのオレンジ色の要素。
  • **Orange Pressed** (`{colors.primary-deep}` — `#c01f00`): `{colors.primary}` のアクティブ/押された状態 — `{component.button-primary-pressed}` で使用されます。
  • **ヒーロー グロー** (`{colors.hero-glow}` — `#ff6a3d`): ヒーロー コピーの背後にある放射状の大気メッシュに表示される明るいオレンジ色。
  • **ヒーロー ピンク** (`{colors.hero-pink}` — `#f4a8a0`): クリームに移行する前にヒーロー バンドの下端を柔らかくする温かみのあるピンクのウォッシュ。
  • **On-Primary** (`{colors.on-primary}` — `#ffffff`): `{colors.primary}` サーフェス上のラベル カラー。

表面

  • **キャンバス** (`{colors.canvas}` — `#f9f7f3`): デフォルトのページの背景。温かいクリーム、決して真っ白ではありません。
  • **Surface Bone** (`{colors.surface-bone}` — `#f3f0e8`): 差し込みカード グループとフィーチャー バンドに使用される、半段階濃いクリームです。
  • **Surface Card** (`{colors.surface-card}` — `#ffffff`): 個々のモデル カード、検索入力、および価格帯の純粋な白 — 白が表示される唯一の場所。
  • **Surface Dark** (`{colors.surface-dark}` — `#202020`): コード ウェル、注目の価格帯、および「仕組み」ウォークスルー バンド。
  • **Surface Deep** (`{colors.surface-deep}` — `#000000`): `{component.code-block}` 内のフッター キャンバスと差し込みコードタブ ストリップ。
  • **ヘアライン** (`{colors.hairline}` — `rgba(32,32,32,0.12)`): クリーム色の表面上の低コントラストの 1 ピクセルの仕切り。
  • **ヘアライン ストロング** (`{colors.hairline-strong}` — `#202020`): ボタンのアウトライン、集中入力、および構造的なセパレーター。

テキスト

  • **インク** (`{colors.ink}` — `#202020`): 主要なテキストの色。 `#000000`よりも格段に暖かく、クリーム色のキャンバスにマッチします。
  • **本文** (`{colors.body}` — `#3a3a3a`): 18 ピクセル以上の行長ではインクが重すぎると感じる長い形式の本文コピー。
  • **Charcoal** (`{colors.charcoal}` — `#575757`): キャプション、メタデータ、セカンダリ ナビゲーション。
  • **ミュート** (`{colors.mute}` — `#646464`): テキストと非アクティブなラベルをサポートします。
  • **Ash** (`{colors.ash}` — `#8d8d8d`): 三次テキスト、プレースホルダー コピー。
  • **ストーン** (`{colors.stone}` — `#bbbbbb`): 前景、ニュートラル アイコンのアウトラインが無効になります。
  • **On-Dark** (`{colors.on-dark}` — `#fcfcfc`): `{colors.surface-dark}` および `{colors.surface-deep}` のプライマリ テキスト。
  • **オンダークミュート** (`{colors.on-dark-mute}` — `rgb