DESIGN.md · Analysis

Replit

replit.com · 13 Jul 2026 · 47 colors · IBM Plex Sans

Replit

Replit is a collaborative AI-powered development platform that transforms software creation into a rapid, accessible experience. The design system emphasizes clarity, efficiency, and approachability through a light, minimal aesthetic with strategic accent colors.

Colors

surface#fcfcfc
surface-dim#f0f1f2
surface-bright#ffffff
surface-container-lowest#ebeced
surface-container-low#f0f1f2
surface-container#f0f1f2
surface-container-high#e4e5e6
surface-container-highest#d2d4d6
on-surface#07080a
on-surface-variant#3d4047
inverse-surface#07080a
inverse-on-surface#fcfcfc
outline#afb1b3
outline-variant#c0c3c4
surface-tint#0f87ff
primary#0f87ff
on-primary#ffffff
primary-container#b2d9ff
on-primary-container#004182
inverse-primary#6bb5ff
secondary#ec4e02
on-secondary#ffffff
secondary-container#feccb3
on-secondary-container#7e2a01
tertiary#00a11b
on-tertiary#ffffff
tertiary-container#7aeb8d
on-tertiary-container#004d0d
error#fa4b4b
on-error#ffffff
error-container#ffc7c7
on-error-container#8a0000
primary-fixed#b2d9ff
primary-fixed-dim#6bb5ff
on-primary-fixed#004182
on-primary-fixed-variant#005cb8
secondary-fixed#feccb3
secondary-fixed-dim#fe9c6c
on-secondary-fixed#7e2a01
on-secondary-fixed-variant#bb3e02
tertiary-fixed#7aeb8d
tertiary-fixed-dim#3cc954
on-tertiary-fixed#004d0d
on-tertiary-fixed-variant#036e15
background#fcfcfc
on-background#07080a
surface-variant#d2d4d6

Typography

display
fontFamily: IBM Plex Sans · fontSize: 60px · fontWeight: 500 · lineHeight: 68px · letterSpacing: -0.02em
headline-lg
fontFamily: IBM Plex Sans · fontSize: 40px · fontWeight: 500 · lineHeight: 48px · letterSpacing: -0.01em
headline-md
fontFamily: IBM Plex Sans · fontSize: 32px · fontWeight: 500 · lineHeight: 40px · letterSpacing: 0em
title-lg
fontFamily: IBM Plex Sans · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0.01em
body-lg
fontFamily: IBM Plex Sans · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: IBM Plex Sans · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: IBM Plex Sans · fontSize: 14px · fontWeight: 500 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: IBM Plex Sans · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Replit is an AI-powered collaborative development platform that democratizes software creation by eliminating setup friction and accelerating ideation-to-deployment cycles. The design system embodies "Efficient Minimalism"—a philosophy that strips away visual noise while maintaining warmth and approachability. The interface prioritizes clarity through generous whitespace (background: #FCFCFC, surface: #F0F1F2), a restrained neutral palette (foreground: #07080A, outline: #AFB1B3), and strategic accent colors that guide user attention to high-value actions. The emotional response is one of calm competence: users feel empowered to build without cognitive overload.

The brand voice is direct, encouraging, and technically credible without being pretentious. Replit speaks to both novices and experienced developers, using concrete language and avoiding jargon when possible. Example sentence in brand voice: "Turn your idea into a working app in minutes—no setup, no friction, just code." The visual identity reinforces this through IBM Plex Sans (a humanist sans-serif that balances professionalism with accessibility), consistent 150ms transitions on interactive elements, and a color hierarchy that reserves the vibrant blue (#0F87FF) and orange (#EC4E02) accents for moments that matter—CTAs, confirmations, and status indicators.

Colors

The Replit color system operates on a light-first, accent-driven model. The surface stack provides a subtle tonal hierarchy: surface (#FCFCFC) serves as the primary canvas, surface-dim (#F0F1F2) creates gentle separation for secondary containers, and surface-container-highest (#D2D4D6) anchors the darkest neutral layer. The on-surface palette (#07080A for primary text, #3D4047 for secondary text, #5C5F66 for tertiary) ensures WCAG AA contrast across all surfaces. Primary (#0F87FF) is the signature interaction color—reserved for primary CTAs, focus states, and active navigation elements. It appears in three intensities: primary-container (#B2D9FF) for backgrounds, primary (#0F87FF) for interactive elements, and primary-fixed-dim (#6BB5FF) for hover states. Secondary (#EC4E02, a warm orange-

Typography

The typography system uses IBM Plex Sans exclusively across all scales, creating a unified, professional voice. Display (60px, 500 weight, -0.02em tracking) anchors hero sections and major announcements; headline-lg (40px, 500 weight) structures primary page headings; headline-md (32px, 500 weight) organizes section breaks; title-lg (20px, 600 weight) emphasizes card titles and subsections; body-lg (18px, 400 weight, 28px line-height) handles long-form content with generous leading; body-md (16px, 400 weight, 24px line-height) is the default paragraph text; label-md (14px, 500 weight, 0.01em tracking) styles interactive labels and button text; label-sm (12px, 500 weight, 0.02em tracking) is reserved for metadata, timestamps, and secondary annotations. The weight progression (400 → 500 → 60

Layout

Replit uses a 12-column fluid grid with a max-width of 1280px, allowing responsive scaling from mobile (single column) to desktop (multi-column layouts). The spacing scale is semantic: unit (8px) is the baseline increment; xs (4px) and sm (12px) are used for tight component spacing; md (24px) is the default gutter between sections and card padding; lg (40px) separates major content blocks; xl (64px) anchors full-page margins and hero sections. Container max-width (1280px) prevents line-length from exceeding 80 characters on desktop, maintaining readability. White-space is intentional and generous—the hero section uses lg spacing above and below to create breathing room around the headline "What will you build?" and supporting copy. Cards and input fields use md padding (24px) internally, w

Elevation & Depth

Elevation in Replit is achieved through subtle shadows and surface color shifts rather than dramatic depth. Level 1 (Base): the default surface (#FCFCFC) with no shadow, establishing the primary plane. Level 2 (Cards & Inputs): surface-container-low (#F0F1F2) background with elevation.sm shadow (0 1px 2px rgba(0, 0, 0, 0.05)), creating gentle separation from the base. Level 3 (Hovered Cards & Modals): surface-container (#F0F1F2) or surface-container-high (#E4E5E6) background with elevation.md shadow (0 4px 8px -2px rgba(0, 0, 0, 0.06), 0 2px 4px -2px rgba(0, 0, 0, 0.05)), signaling interactivi

Shapes

Replit employs "Geometric Warmth"—a shape philosophy that balances precision with approachability. Buttons use full rounding (border-radius: 9999px) to create pill-shaped affordances that feel inviting and modern, signaling interactivity at a glance. Cards and containers use lg (16px) or xl (24px) rounding to soften corners without appearing overly playful; this radius is applied consistently across all card types, creating visual cohesion. Input fields use md (12px) rounding, slightly less than cards, to establish a subtle hierarchy—inputs feel contained and focused. Badges and small UI eleme

Components

Action Elements Buttons are the primary interaction mechanism. Button-primary uses primary (#0F87FF) background with on-primary (#FFFFFF) text, 40px height, 12px vertical / 24px horizontal padding, and full rounding (9999px). On hover, the background shifts to inverse-primary (#6BB5FF) with a 150ms ease-out transition. Button-secondary uses a transparent background with on-surface text (#07080A), a 1px outline-variant border (#C0C3C4), and the same padding and rounding. Button-cta-accent (for high-priority actions like "Create account") uses secondary (#EC4E02) background with on-secondary (#FFFFFF) text, matching the primary button dimensions but with a warmer accent color. All buttons include a 150ms transition on background-color to provide tactile feedback.

Containers & Surfac

Do's and Don'ts

**Do**

  • Do use primary (#0F87FF) exclusively for primary CTAs, focus states, and active navigation—never for decorative elements or backgrounds.
  • Do apply md (24px) padding consistently to all cards and containers to maintain visual rhythm and breathing room.
  • Do use full rounding (9999px) on all buttons to create clear affordances that signal interactivity.
  • Do transition interactive elements over 150ms (ease-out) to provide smooth, responsive feedback without feeling sluggish.
  • Do maintain at least 3:1 contrast between text and background colors across all surfaces to ensure WCAG AA compliance.
  • Do use IBM Plex Sans at 500 weight for headlines and 400 weight for body text—avoid mixing typefaces.

**Don't**

  • Don't use secondary (#EC4E02) or tertiary (#00A11B) for primary CTAs—reserve these for high-priority confirmations and status indicators only.
  • Don't apply shadows larger than elevation.lg (0 8px 16px rgba(0, 0, 0, 0.08)) as they create visual clutter and reduce clarity.
  • Don't use rounding smaller than sm (4px) on buttons or cards—sharp corners feel harsh and reduce approachability.
  • Don't exceed 1280px container max-width on desktop to prevent line-length from becoming difficult to scan.
  • Don't transition elements faster than 150ms or slower than 300ms—faster feels jarring, slower feels unresponsive.
  • Don't mix IBM Plex Sans with other typefaces (e.g., Replit Diatype or ABC Diatype) in the main UI—reserve specialty fonts for code blocks and monospace contexts only.