DESIGN.md · Analysis

Bybit

bybit.com · 21 May 2026 · 47 colors · Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif

Bybit

A professional cryptocurrency spot trading platform combining high-contrast dark UI with vibrant accent colors to convey precision, speed, and financial authority.

Colors

surface#000000
surface-dim#0a0a0a
surface-bright#1a1a1e
surface-container-lowest#101014
surface-container-low#17181e
surface-container#25282c
surface-container-high#3d3e46
surface-container-highest#404854
on-surface#ffffff
on-surface-variant#adb1b8
inverse-surface#f5f7fa
inverse-on-surface#121214
outline#71757a
outline-variant#404854
surface-tint#ffb11a
primary#ffb11a
on-primary#121214
primary-container#ffce6e
on-primary-container#1a1a1e
inverse-primary#f7a600
secondary#24ae64
on-secondary#ffffff
secondary-container#2d8f52
on-secondary-container#ffffff
tertiary#e04040
on-tertiary#ffffff
tertiary-container#ef454a
on-tertiary-container#ffffff
error#ef454a
on-error#ffffff
error-container#c41c1c
on-error-container#ffffff
primary-fixed#ffce6e
primary-fixed-dim#f7a600
on-primary-fixed#1a1a1e
on-primary-fixed-variant#121214
secondary-fixed#24ae64
secondary-fixed-dim#1d8a50
on-secondary-fixed#ffffff
on-secondary-fixed-variant#ffffff
tertiary-fixed#ef454a
tertiary-fixed-dim#c41c1c
on-tertiary-fixed#ffffff
on-tertiary-fixed-variant#ffffff
background#000000
on-background#ffffff
surface-variant#25282c

Typography

display
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 56px · fontWeight: 700 · lineHeight: 64px · letterSpacing: -0.03em
headline-lg
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 32px · fontWeight: 600 · lineHeight: 40px · letterSpacing: -0.02em
headline-md
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 24px · fontWeight: 600 · lineHeight: 32px · letterSpacing: -0.01em
title-lg
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 18px · fontWeight: 600 · lineHeight: 26px
body-lg
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 16px · fontWeight: 400 · lineHeight: 24px
body-md
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 14px · fontWeight: 400 · lineHeight: 20px
label-md
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 12px · fontWeight: 600 · lineHeight: 16px · letterSpacing: 0.01em
label-sm
fontFamily: Inter, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif · fontSize: 11px · fontWeight: 500 · lineHeight: 14px · letterSpacing: 0.02em

Design guidance

Overview

Bybit is a professional-grade cryptocurrency spot trading platform designed for active traders and institutional participants. The design system embodies "High-Contrast Financial Precision"—a visual language that prioritizes clarity, speed, and data density through a pure black canvas (#000000) punctuated by vibrant, action-oriented accent colors. The brand personality is authoritative yet approachable: confident in its technical depth, never condescending. The UI conveys that trading is serious business, but the platform is built for humans, not algorithms. Voice example: "Buy BTC at market rate or set your limit—execution happens in milliseconds."

Colors

The color system is built on a deep dark foundation (surface #000000, surface-container-low #17181e) that reduces eye strain during extended trading sessions and emphasizes data visualization. Primary accent is the vibrant golden-orange (#ffb11a), used exclusively on call-to-action buttons ("Buy", "Sign Up"), active tab indicators, and promotional badges—this is the color users click. Secondary green (#24ae64) signals buy orders, gains, and positive price movements; tertiary red (#e04040) signals sell orders, losses, and warnings. The neutral palette (on-surface-variant #adb1b8, outline #71757a) provides hierarchy for secondary text, dividers, and disabled states. All interactive elements use rgba overlays for hover states: primary-fixed-dim (#f7a600) for button hover, surface-container-hi

Typography

The type system uses Inter as the primary typeface (with system fallbacks: -apple-system, BlinkMacSystemFont, Roboto, Arial) to ensure crisp rendering at small sizes and across platforms. Display (56px, 700 weight, -0.03em tracking) is reserved for hero headlines; headline-lg (32px, 600 weight) for section titles; body-md (14px, 400 weight) for trading data and order details; label-md (12px, 600 weight, 0.01em tracking) for buttons, tabs, and form labels. The tight tracking on display and label sizes (negative and positive respectively) creates visual tension that mirrors the fast-paced trading environment. Apply text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) on small labels (label-sm, 11px) when overlaid on charts or busy backgrounds to ensure legibility. Line heights are set to 1.4–1.5x font

Layout

The layout uses a fixed 12-column grid with a max-width of 1280px and a minimum viewport width of 1080px (enforced via min-width: 1080px on the skeleton root). The primary trading interface is split into a left flex-grow panel (chart + order book) and a fixed 300px right sidebar (order entry form). Spacing follows a 4px unit system: xs (4px) for micro-spacing within components, sm (8px) for padding within cards, md (12px) for internal component spacing, lg (16px) for section gutters, and xl (24px) for major section separation. The container uses gutter: 16px for horizontal padding on desktop. Vertical rhythm is maintained via margin-bottom: 4px between major sections (e.g., chart, order book, recent trades), creating a compact, scannable layout that prioritizes information density over whi

Elevation & Depth

Depth is conveyed through subtle shadows and background color shifts rather than dramatic layering. Level 1 (Base): surface #000000 with no shadow. Level 2 (Cards/Panels): surface-container-low #17181e with a 1px solid border at outline #71757a and box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15). Level 3 (Modals/Popovers): surface-container #25282c with box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2) and a 1px border at surface-container-high #3d3e46. Hover states elevate cards to surface-container-high (#3d3e46) with the Level 2 shadow, creating a tactile sense of interactivity. The shadow values use rgb

Shapes

The shape philosophy is "Precision with Softness"—sharp corners on data-heavy components (tables, charts) contrast with rounded corners on interactive elements (buttons, inputs). Buttons use border-radius: 9999px (full pill shape) for primary CTAs ("Buy", "Sign Up") to draw attention; secondary buttons and form inputs use border-radius: 4px (DEFAULT) for a more technical, grid-aligned appearance. Cards and panels use border-radius: 4px to align with the trading grid aesthetic. Badges and status indicators use border-radius: 9999px for visual distinction. The 4px default radius is the most freq

Components

Action Elements Buttons are the primary interaction mechanism. Primary buttons ("Buy", "Sign Up") use backgroundColor: #ffb11a, textColor: #121214, border-radius: 9999px, padding: 8px 20px, height: 36px, and font-weight: 600. On hover, backgroundColor shifts to #f7a600 (primary-fixed-dim) with a transition: all 0.3s ease-in-out. Success buttons ("Sell" in green context) use backgroundColor: #24ae64, on-secondary: #ffffff, border-radius: 8px, height: 40px. Danger buttons (sell orders, liquidation warnings) use backgroundColor: #e04040. All buttons apply text-transform: uppercase and letter-spacing: 0.01em for emphasis. Tab components use a 2px bottom border (border-bottom: 2px solid #ffb11a) for active state, with inactive tabs showing a transparent border and color: #adb1b8.

Conta

Do's and Don'ts

**Do**

  • Do use #ffb11a (primary) exclusively for CTAs and active states—it's the brand's signature accent and must remain visually distinct.
  • Do maintain the 4px unit spacing grid (4px, 8px, 12px, 16px, 24px) for consistent rhythm and alignment across all components.
  • Do apply the full M3 color token stack (surface-container-lowest through surface-container-highest) to create visual hierarchy without relying on brightness alone.
  • Do use Inter with system fallbacks and apply tight letter-spacing (-0.03em to 0.02em) on display and label sizes to enhance readability at small scales.
  • Do pair dark backgrounds (#000000, #101014) with high-contrast text (#ffffff, #adb1b8) to ensure accessibility (WCAG AA minimum 7:1 ratio on body text).
  • Do use green (#24ae64) and red (#e04040) consistently for buy/sell and gain/loss signals—never swap these roles.
  • Do apply box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) on hover states to create tactile elevation without harsh shadows.

**Don't**

  • Don't use primary (#ffb11a) for body text, backgrounds, or non-interactive elements—reserve it for CTAs and active indicators only.
  • Don't apply border-radius values outside the defined scale (sm: 2px, DEFAULT: 4px, md: 8px, lg: 10px, xl: 16px, full: 9999px)—consistency is critical for a professional trading platform.
  • Don't mix light and dark mode colors within a single view—the platform defaults to dark mode; light mode is a separate, complete theme.
  • Don't use shadows darker than rgba(0, 0, 0, 0.2) or lighter than rgba(0, 0, 0, 0.12)—the range is calibrated for the dark background.
  • Don't apply transparency to primary or secondary colors for backgrounds (use rgba overlays instead, e.g., rgba(255, 177, 26, 0.12) for badge backgrounds).
  • Don't reduce font-weight below 400 for body text or below 500 for labels—the platform prioritizes legibility over delicacy.
  • Don't use custom colors for status indicators—always map to the defined palette (green for success, red for error, orange for warning).