DESIGN.md · Analysis

OutRay

outray.dev · 15 May 2026 · 47 colors · Geom

OutRay

OutRay is an open-source tunneling platform that exposes localhost servers to the internet. The design system emphasizes technical clarity, developer-first aesthetics, and high-contrast accessibility through a dark-mode-primary approach with strategic accent highlights.

Colors

surface#000000
surface-dim#0a0a0a
surface-bright#1a1a1a
surface-container-lowest#050505
surface-container-low#0c0c0c
surface-container#121212
surface-container-high#1f1f1f
surface-container-highest#2a2a2a
on-surface#ffffff
on-surface-variant#b3b3b3
inverse-surface#f5f5f5
inverse-on-surface#000000
outline#646cff
outline-variant#4a4a4a
surface-tint#646cff
primary#ffffff
on-primary#000000
primary-container#e9ecef
on-primary-container#0a0a0a
inverse-primary#0c0c0c
secondary#646cff
on-secondary#ffffff
secondary-container#4a52d9
on-secondary-container#f5f5f5
tertiary#e0234e
on-tertiary#ffffff
tertiary-container#c80a64
on-tertiary-container#fafafa
error#ff5f56
on-error#000000
error-container#d63a2f
on-error-container#ffffff
primary-fixed#e9ecef
primary-fixed-dim#d0d0d0
on-primary-fixed#0a0a0a
on-primary-fixed-variant#1a1a1a
secondary-fixed#646cff
secondary-fixed-dim#4a52d9
on-secondary-fixed#ffffff
on-secondary-fixed-variant#e9ecef
tertiary-fixed#e0234e
tertiary-fixed-dim#c80a64
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#fafafa
background#000000
on-background#ffffff
surface-variant#1a1a1a

Typography

display
fontFamily: Geom · fontSize: 72px · fontWeight: 700 · lineHeight: 84px · letterSpacing: -0.02em
headline-lg
fontFamily: Geom · fontSize: 48px · fontWeight: 700 · lineHeight: 56px · letterSpacing: -0.015em
headline-md
fontFamily: Geom · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: -0.01em
title-lg
fontFamily: Geom · fontSize: 24px · fontWeight: 600 · lineHeight: 32px
body-lg
fontFamily: Geom · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
body-md
fontFamily: Geom · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
label-md
fontFamily: Geom · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Geom · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

OutRay is a developer-centric tunneling platform that transforms localhost exposure into a seamless, accessible experience. The design system embraces **Technical Minimalism**—a philosophy that strips away visual noise while maintaining high-contrast accessibility and functional clarity. The brand serves developers and DevOps engineers who demand precision, speed, and reliability; the UI reflects this through a pure black canvas (rgb(0, 0, 0)) punctuated by high-contrast white (rgb(255, 255, 255)) and strategic accent colors (electric blue #646cff, vivid red #e0234e) that signal interactivity and status without distraction.

The voice is direct, confident, and technically literate—never condescending, always precise. Example: "Tunnel your localhost in 30 seconds. No configuration, no friction." The brand personality balances approachability (friendly, open-source ethos) with authority (battle-tested infrastructure, production-ready). Every visual element serves a functional purpose: buttons are unmistakable, terminal output is legible, and error states are immediately recognizable.

Colors

The color system is built on a **high-contrast dark foundation** optimized for developer environments and extended terminal sessions. Primary surface is pure black (#000000, rgb(0, 0, 0)), with a carefully calibrated surface stack that avoids muddy grays: surface-container-low is #0c0c0c (just 12 levels above black), surface-container is #121212 (18 levels), and surface-container-high is #1f1f1f (31 levels). This restrained palette prevents eye fatigue while maintaining clear visual hierarchy through subtle shifts in luminance.

Primary is white (#ffffff, rgb(255, 255, 255))—the dominant CTA color on all action buttons ("Get Started Free", "Get Started"). Secondary is electric blue (#646cff, rgb(100, 108, 255)), used for interactive elements, focus states, and accent highlights; it provide

Typography

The type system uses **Geom** exclusively across all scales, a geometric sans-serif that conveys technical precision without sacrificing warmth. Display (72px, 700 weight, -0.02em tracking) anchors hero sections and major headings; headline-lg (48px, 700 weight) is used for section titles; headline-md (32px, 600 weight) for subsections; body-lg (18px, 400 weight, 28px line-height) for hero copy and feature descriptions; body-md (16px, 400 weight, 24px line-height) for standard paragraph text; label-md (14px, 600 weight, 0.01em tracking) for button labels and interactive text; label-sm (12px, 500 weight, 0.02em tracking) for badges, metadata, and small UI labels. The progression from display to body creates a clear visual hierarchy without relying on color alone. All headings use negative l

Layout

The layout system uses a **12-column fluid grid** with a max-width of 1280px (container-max), centered on the viewport. The gutter is 24px (spacing.md), applied consistently between columns and as horizontal padding on the container. Hero sections use full-width backgrounds (black, #000000) with centered content constrained to the 1280px container. Section spacing follows a semantic rhythm: lg spacing (40px) separates major sections (hero, features, pricing), md spacing (24px) separates cards and feature blocks, sm spacing (12px) separates inline elements. The design favors generous whitespace—no section should feel cramped. Container max-width of 1280px ensures readability on ultra-wide displays while maintaining focus on content. Mobile breakpoint is 768px; below this, padding increases

Elevation & Depth

Depth is conveyed through **layered shadows and subtle background shifts** rather than bright highlights or gradients. The elevation system defines three levels: sm (0 1px 2px rgba(0, 0, 0, 0.12)) for subtle hover states on cards and buttons; md (0 3px 8px rgba(0, 0, 0, 0.15)) for elevated cards, modals, and dropdowns; lg (0 8px 24px rgba(0, 0, 0, 0.2)) for floating elements like tooltips and popovers. Shadows use pure black (rgba(0, 0, 0, ...)) with opacity as the only variable, avoiding color shifts that would muddy the dark theme. The surface stack (surface-container-low through surface-con

Shapes

The shape system follows **Technical Roundness**—a philosophy that applies generous border-radius to buttons and interactive elements (full, 9999px) while keeping cards and containers slightly softer (lg, 1rem). This distinction signals interactivity: pill-shaped buttons (border-radius: 9999px) are unmistakably clickable, while cards (border-radius: 1rem) feel contained and organized. Input fields use DEFAULT radius (0.5rem, 8px) for a balanced, professional appearance. Code blocks and terminal windows use md radius (0.75rem, 12px) to suggest containment without appearing overly rounded. The r

Components

Action Elements Buttons are the primary interaction pattern. **button-primary** uses white background (rgb(255, 255, 255)), black text (rgb(0, 0, 0)), full border-radius (9999px), padding 16px 32px, and font-weight 700 (Geom). On hover, transition to primary-container (#e9ecef) with a 0 3px 8px rgba(0, 0, 0, 0.15) shadow over 150ms (cubic-bezier(0.4, 0, 0.2, 1)). **button-secondary** uses transparent background with rgba(255, 255, 255, 0.1), white text, 1px border at rgba(255, 255, 255, 0.2), and full radius. Hover state increases background opacity to 0.15 and border to rgba(255, 255, 255, 0.3). **button-accent** uses secondary blue (#646cff) background, white text, lg radius (1rem), padding 12px 24px. Hover adds a 0 3px 8px rgba(100, 108, 255, 0.25) shadow (blue-tinted for accent con

Do's and Don'ts

**Do**

  • Do use white (#ffffff) for primary CTAs and high-emphasis actions—it creates unmistakable affordance against the black canvas.
  • Do apply the full border-radius (9999px) to all buttons to signal interactivity and create visual momentum.
  • Do maintain the surface stack hierarchy (surface-container-low through surface-container-highest) to convey depth without relying solely on shadows.
  • Do use secondary blue (#646cff) for focus states, links, and accent highlights—it provides 7.2:1 contrast and signals interactivity.
  • Do apply negative letter-spacing (-0.02em to -0.01em) on all display and headline text to enhance visual impact and technical precision.
  • Do use monospace font-family (e.g., 'Courier New', 'SF Mono') for code blocks and terminal output to maintain developer familiarity.
  • Do include a 200ms cubic-bezier(0.4, 0, 0.2, 1) transition on all interactive elements (buttons, cards, inputs) for smooth, predictable feedback.

**Don't**

  • Don't use gradients or blur effects (backdrop-filter) on the main canvas—they muddy the technical aesthetic and reduce terminal-like clarity.
  • Don't apply border-radius below lg (1rem) to buttons; use full radius exclusively to maintain the pill-shaped affordance.
  • Don't mix accent colors (secondary blue and tertiary red) on the same component; reserve blue for interactive elements and red for errors/warnings only.
  • Don't use light grays (e.g., #e9ecef) as primary text on the black canvas—they reduce contrast and readability. Use white (#ffffff) or on-surface-variant (#b3b3b3).
  • Don't exceed 1280px container max-width; wider layouts dilute focus and reduce readability for developer-focused content.
  • Don't apply shadows larger than lg (0 8px 24px rgba(0, 0, 0, 0.2))—they create visual clutter and distract from content.
  • Don't use system fonts (system-ui, -apple-system) for body text; enforce Geom across all scales to maintain brand consistency and technical personality.