DESIGN.md · Analysis

Render

dashboard.render.com · 27 Aug 2026 · 47 colors · Roobert, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif, 'Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif

Render

Render is a unified cloud platform for developers to build and run applications with automatic deploys, global CDN, and private networks. The design system emphasizes clarity, developer-centric minimalism, and purposeful accent colors for authentication and interactive states.

Colors

surface#ffffff
surface-dim#f5f5f5
surface-bright#ffffff
surface-container-lowest#fafafa
surface-container-low#f0f0f0
surface-container#e8e8e8
surface-container-high#e3e3e3
surface-container-highest#d9d9d9
on-surface#1a1a1a
on-surface-variant#4d4d4d
inverse-surface#141414
inverse-on-surface#f4f4f4
outline#8a8a8a
outline-variant#c7c7c7
surface-tint#8a05ff
primary#8a05ff
on-primary#ffffff
primary-container#f4e8ff
on-primary-container#48008c
inverse-primary#d4b3ff
secondary#37cd8f
on-secondary#ffffff
secondary-container#d4f5e8
on-secondary-container#0d5c3a
tertiary#af1d27
on-tertiary#ffffff
tertiary-container#ffd9dd
on-tertiary-container#5c0a12
error#af1d27
on-error#ffffff
error-container#ffd9dd
on-error-container#5c0a12
primary-fixed#f4e8ff
primary-fixed-dim#d4b3ff
on-primary-fixed#48008c
on-primary-fixed-variant#6b00cc
secondary-fixed#d4f5e8
secondary-fixed-dim#a8e6d0
on-secondary-fixed#0d5c3a
on-secondary-fixed-variant#1a7d52
tertiary-fixed#ffd9dd
tertiary-fixed-dim#ffb3ba
on-tertiary-fixed#5c0a12
on-tertiary-fixed-variant#8b1420
background#ffffff
on-background#1a1a1a
surface-variant#e3e3e3

Typography

display
fontFamily: Roobert, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 56px · fontWeight: 700 · lineHeight: 64px · letterSpacing: -0.02em
headline-lg
fontFamily: Roobert, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.01em
headline-md
fontFamily: Roobert, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: 0em
title-lg
fontFamily: 'Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0.01em
body-lg
fontFamily: 'Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: 'Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: 'Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: 'Neue Montreal', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Render is a cloud application platform designed for developers who value clarity, speed, and developer experience. The design system embodies 'Developer-Centric Minimalism'—a philosophy that strips away unnecessary visual noise while maintaining purposeful hierarchy through strategic use of accent colors. The interface prioritizes authentication flows and deployment workflows with a clean, light-dominant aesthetic punctuated by vibrant purple (#8a05ff) for primary actions and emerald green (#37cd8f) for success states. The brand personality is direct, technical, and approachable: it speaks to developers in their language without condescension, favoring precision over decoration. Example sentence: 'Deploy from Git in seconds—your app is live before you finish your coffee.'

Colors

The color system is built on a light, neutral foundation with three strategic accent roles. Primary (#8a05ff) is the signature brand purple used exclusively for call-to-action buttons, links, and focus states—it commands attention without aggression. Secondary (#37cd8f) is an emerald accent reserved for success confirmations, enabled toggles, and positive feedback. Tertiary (#af1d27) is a muted red for errors and destructive actions. The surface stack ranges from pure white (#ffffff) at the brightest level through carefully calibrated grays (#f5f5f5, #e3e3e3, #c7c7c7) to near-black (#1a1a1a) for primary text. On-surface text is #1a1a1a (98% black) for maximum readability at 16px body size; secondary text uses #4d4d4d (30% opacity black) for hierarchy. Outlines use #c7c7c7 for subtle border

Typography

The type system pairs Roobert (a geometric sans-serif from Pangram Foundry) for display and headline scales with 'Neue Montreal' for body and label scales, creating a two-tier hierarchy that signals importance without requiring weight changes alone. Display (56px, 700 weight, -0.02em tracking) is reserved for hero moments; Headline-lg (40px, 600 weight) anchors major sections; Headline-md (28px, 600 weight) introduces subsections. Body-lg (18px, 400 weight) and Body-md (16px, 400 weight) carry content with generous 28px and 24px line heights respectively, ensuring comfortable reading at arm's length. Label-md (14px, 600 weight) and Label-sm (12px, 500 weight) are used for buttons, badges, and form labels with 0.01em–0.02em positive letter-spacing to maintain clarity at small sizes. All int

Layout

The layout system uses a 12-column grid with a 1280px max-width container, centered on the viewport with symmetric 24px gutters on desktop and 12px on mobile. The spacing scale is semantic: unit (8px) is the atomic increment; xs (4px) is used sparingly for micro-adjustments; sm (12px) separates inline elements; md (24px) is the default section and component padding; lg (40px) separates major sections; xl (64px) is reserved for hero spacing. Form fields and buttons use 44px height (12px vertical padding + 20px line-height) to meet touch targets. Cards use 24px padding with 1px borders at #c7c7c7. The page rhythm emphasizes breathing room: section separators use lg spacing (40px), while related content groups use md spacing (24px). Container max-width is 1280px; narrower breakpoints (768px,

Elevation & Depth

Depth is conveyed through subtle shadows and border treatments rather than layering or blur. Level 1 (Base surface) has no shadow; Level 2 (Cards, input fields) uses a 1px solid border at #c7c7c7 with elevation.sm shadow (0 1px 2px rgba(0, 0, 0, 0.06)) for minimal lift. Level 3 (Modals, dropdowns) uses elevation.md (0 4px 12px rgba(0, 0, 0, 0.08)) with a 1px border at #8a8a8a. Level 4 (Floating action, notifications) uses elevation.lg (0 16px 40px rgba(0, 0, 0, 0.12)) with a 1px border at #8a8a8a. Hover states on cards transition to elevation.md over 200ms. Focus states add a 3px inset box-sha

Shapes

The shape philosophy is 'Technical Precision'—rounded corners are minimal and purposeful, never organic. Buttons and inputs use 4px radius (sm) for a slightly softened edge that feels contemporary without sacrificing technical clarity. Cards and larger containers use 12px radius (lg) to provide visual breathing room. Badges and pills use full (9999px) radius only when circular or truly pill-shaped; otherwise, default to sm or md. The rationale: small radii (4–8px) feel engineered and trustworthy for a developer platform; larger radii (12px+) are reserved for container elements that need to fee

Components

Action Elements Buttons are the primary interaction pattern. Primary buttons (button-primary) use #8a05ff background, white text, 44px height, 12px vertical + 24px horizontal padding, 4px radius, 600 weight label-md typography. On hover, background shifts to #6b00cc with a 200ms ease-out transition; on active, it darkens to #48008c. Secondary buttons (button-secondary) use transparent background with a 1px #8a8a8a border, #8a05ff text, and the same padding/height; on hover, the background becomes #f0f0f0. OAuth buttons (GitHub, GitLab, Bitbucket, Google) use white background with a 1px #c7c7c7 border, #1a1a1a text, and 500 weight; on hover, background becomes #f5f5f5 and border becomes #8a8a8a. All buttons use cursor: pointer and transition: background-color 200ms ease-out.

Inputs

Do's and Don'ts

**Do**

  • Do use primary purple (#8a05ff) exclusively for primary CTAs, focus states, and brand-critical interactions—never dilute it with secondary uses.
  • Do maintain 44px minimum height for all clickable elements to meet touch targets and accessibility standards.
  • Do apply 200ms ease-out transitions to all interactive state changes (hover, focus, active) for a cohesive, responsive feel.
  • Do use 4px border-radius on buttons and inputs, 12px on cards, and full (9999px) only on true pills—never mix radii arbitrarily.
  • Do pair Roobert for headlines (40px+) with 'Neue Montreal' for body text to create clear visual hierarchy without relying solely on weight.
  • Do use the full M3 surface stack (#ffffff → #f5f5f5 → #e3e3e3 → #c7c7c7) for layered containers and hover states.
  • Do include a 3px box-shadow: 0 0 0 3px rgba(138, 5, 255, 0.1) on all focused interactive elements for keyboard navigation accessibility.

**Don't**

  • Don't use the primary purple (#8a05ff) for body text, backgrounds, or non-interactive elements—it's reserved for actions and brand moments.
  • Don't create buttons shorter than 44px or narrower than 80px (including padding)—they become difficult to tap and fail accessibility.
  • Don't apply instant state changes without transitions; always use transition: all 200ms ease-out or transition: background-color 200ms ease-out.
  • Don't mix border-radius values within a single component family (e.g., 4px on one button and 8px on another)—consistency builds trust.
  • Don't use system fonts (ui-sans-serif, system-ui) for headlines; always load Roobert or fall back to -apple-system, BlinkMacSystemFont for body.
  • Don't exceed 1280px container width; content becomes hard to scan and loses the intended rhythm.
  • Don't use shadows darker than rgba(0, 0, 0, 0.12) or blur effects—Render's aesthetic is clean and precise, not atmospheric.