DESIGN.md inspired by Hyperliquid
Near-black
Compare to…
- bg
#04060c - bg-elev-1
#0a0d16 - bg-elev-2
#121622 - bg-elev-3
#1a1f2e - surface
#0a0d16 - surface-row-hover
#121622 - text AAA · 17.0
rgba(255, 255, 255, 0.92) - text-body
rgba(255, 255, 255, 0.78) - text-muted
rgba(255, 255, 255, 0.60) - text-subtle
rgba(255, 255, 255, 0.45) - brand AAA · 16.7
#97fce4 - brand-strong
#50d2c1 - brand-deep
#2fa89a - brand-soft
rgba(151, 252, 228, 0.12) - brand-glow
rgba(151, 252, 228, 0.35) - on-brand
#04060c - border — · 1.5
rgba(255, 255, 255, 0.16) - border-soft
rgba(255, 255, 255, 0.08) - border-strong — · 2.3
rgba(255, 255, 255, 0.28) - border-brand
#97fce4 - semantic-up
#3fd68b - semantic-up-soft
rgba(63, 214, 139, 0.14) - semantic-down
#ff5470 - semantic-down-soft
rgba(255, 84, 112, 0.14) - semantic-warning
#ffd25f - semantic-info
#97fce4 - focus-ring
rgba(151, 252, 228, 0.55) - scrim
rgba(2, 3, 7, 0.78) - link
#97fce4 - link-hover
#50d2c1
- step-0 0px
- step-1 4px
- step-2 8px
- step-3 12px
- step-4 16px
- step-5 24px
- step-6 32px
- step-7 48px
- step-8 64px
- step-9 96px
- micro
2px - sm
4px - md
8px - lg
12px - xl
16px - pill
9999px
Maps the 8 canonical role names to this entry's actual tokens. Use these to plug the design into role-aware tools — shadcn/ui themes, role-aware Tailwind plugins, atelier-lint — without hard-coding token names.
- background → bg
- foreground → text
- primary → brand
- primary-foreground → on-brand
- accent → —
- muted → —
- border → border
- ring → —
Hyperliquid descends from professional trading terminals (TradingView, dYdX, GMX) filtered through modern dark-product minimalism (Linear, Vercel). It keeps the terminal canon — near-black canvas, tabular-mono numeric columns, long-green/short-red semantics, numbers-as-content priority — but applies the disciplined craft of the modern dark SaaS surface: a single near-black canvas, Inter as the human voice, restrained radius, and one signature accent doing all the chromatic work. The defining choice is mint-teal #97FCE4 on near-black, a cool bioluminescent cyan-green that sits in a near-empty part of the DeFi color space and reads as Hyperliquid the instant it appears. It rejects Blur's pure-black-orange brutalism, Coinbase's corporate navy, and the heavy gradients and glassmorphism common to L1 marketing sites.
- Single near-black surface, Inter, restrained radius, one disciplined accent doing the chromatic work
- Minimal dark-product craft, confident sans display, content-forward marketing on a dark canvas
- Terminal-grade charting, tabular numeric columns, long/short color semantics
- On-chain perps trading surface; order-book + order-entry terminal layout and dark register
- Decentralized perps DEX; dense data-forward trading UI on a dark canvas
- The typeface for every human surface; chosen for legibility, weight range, and tabular figures
theme.extend block for tailwind.config.js
:root { --bg, --text, --brand, … } you can paste anywhere
W3C Design Tokens Community Group format
Importable into Figma → Variables → Import
---
name: Hyperliquid
tagline: Near-black #04060c canvas, mint-teal #97FCE4 voltage, Inter throughout — a fast, minimal on-chain perps terminal.
updated_at: 2026-05-28T23:13:52.119Z
published_at: 2026-05-28T23:13:52.119Z
author: webdesignhot
source_url: https://hyperliquid.xyz
spec: webdesignhot/0.1
quality: curated
featured: false
categories: [saas, fintech]
tags: [dark, minimal, mono, crypto, defi, mint, trader, web3]
preview_swatch: ['#04060c', '#97fce4', '#50d2c1']
related: [blur-io]
description: 'Hyperliquid reads like a trading terminal that stripped itself down to speed. The canvas is a **near-black** `#04060c` — not pure black, not navy, but a deep blue-shifted ink (rgb 4, 6, 12) that reads cooler and more screen-native than true `#000`. White text sits at `92%` opacity for a softer-than-glaring read, Inter carries every glyph, and a single distinctive **mint-teal** `#97FCE4` voltage flags every primary action, live datapoint, and brand mark. That mint-on-near-black pairing is the entire identity: where Blur commits to neon-orange brutalism and OpenSea to electric-blue calm, Hyperliquid commits to a cool, clinical, almost-bioluminescent green-cyan that feels like a heads-up display glowing in the dark. The register is minimal and fast — this is an on-chain perpetuals DEX running on its own purpose-built L1, and the surface advertises that engineering: tight type, generous-but-disciplined spacing, restrained radius, and zero decorative motion that does not serve a trader watching a fill. Numbers are the content. Mint is the highlight. Everything else gets out of the way.'
# Canonical 8-role aliases (bg / text / brand / border / accent / muted / surface / danger).
# Maps role names to this entry's actual token names so role-aware
# downstream tools resolve `theme.background` → entry's `bg`, etc.
# Auto-generated by scripts/add-aliases.mjs — do not edit manually;
# regenerate after changing color token names.
aliases:
background: bg
foreground: text
primary: brand
primary-foreground: on-brand
border: border
colors:
bg: '#04060c' # canvas — near-black, blue-shifted ink (rgb 4,6,12)
bg-elev-1: '#0a0d16' # surface-soft — panels, secondary sections
bg-elev-2: '#121622' # surface-strong — card bg, row hover
bg-elev-3: '#1a1f2e' # surface-elevated — popovers, dropdowns
surface: '#0a0d16' # default raised surface (cards, panels)
surface-row-hover: '#121622'
text: 'rgba(255, 255, 255, 0.92)' # ink — primary, white at 92% opacity
text-body: 'rgba(255, 255, 255, 0.78)' # body running text
text-muted: 'rgba(255, 255, 255, 0.60)' # captions, column headers, secondary labels
text-subtle: 'rgba(255, 255, 255, 0.45)' # disabled, placeholder, timestamps
brand: '#97fce4' # Hyperliquid Mint — the signature voltage
brand-strong: '#50d2c1' # deeper teal — hover/pressed, dense fills
brand-deep: '#2fa89a' # darkest teal — pressed on light fills
brand-soft: 'rgba(151, 252, 228, 0.12)' # 12% mint tint — soft fills, active bg
brand-glow: 'rgba(151, 252, 228, 0.35)' # focus/glow halo
on-brand: '#04060c' # near-black text on mint CTAs (high contrast)
border: 'rgba(255, 255, 255, 0.16)' # default 1px hairline
border-soft: 'rgba(255, 255, 255, 0.08)' # softer divider on dense lists
border-strong: 'rgba(255, 255, 255, 0.28)' # focused/hover row border
border-brand: '#97fce4' # mint border on active/focus state
semantic-up: '#3fd68b' # price-up / long green
semantic-up-soft: 'rgba(63, 214, 139, 0.14)'
semantic-down: '#ff5470' # price-down / short red
semantic-down-soft: 'rgba(255, 84, 112, 0.14)'
semantic-warning: '#ffd25f' # liquidation / funding warning yellow
semantic-info: '#97fce4' # info reuses mint — no separate blue
focus-ring: 'rgba(151, 252, 228, 0.55)'
scrim: 'rgba(2, 3, 7, 0.78)'
link: '#97fce4'
link-hover: '#50d2c1'
typography:
display:
family: 'Inter, system-ui, -apple-system, sans-serif'
weights: [500, 600, 700]
opentype-features: ['cv05', 'ss01']
body:
family: 'Inter, system-ui, -apple-system, sans-serif'
weights: [400, 500, 600]
mono:
family: 'ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace'
weights: [400, 500]
opentype-features: ['tnum', 'zero']
scale:
display-hero: { size: 80, weight: 700, lineHeight: 1.0, tracking: '-0.03em', family: display }
display-lg: { size: 56, weight: 700, lineHeight: 1.05, tracking: '-0.02em', family: display }
h1: { size: 40, weight: 700, lineHeight: 1.1, tracking: '-0.018em', family: display }
h2: { size: 32, weight: 600, lineHeight: 1.2, tracking: '-0.012em', family: display }
h3: { size: 24, weight: 600, lineHeight: 1.25, tracking: '-0.005em', family: display }
h4: { size: 20, weight: 600, lineHeight: 1.3, tracking: '0', family: body }
body-lg: { size: 18, weight: 400, lineHeight: 1.55, tracking: '0', family: body }
body: { size: 16, weight: 400, lineHeight: 1.55, tracking: '0', family: body }
body-sm: { size: 14, weight: 400, lineHeight: 1.5, tracking: '0', family: body }
label: { size: 13, weight: 500, lineHeight: 1.4, tracking: '0', family: body }
caption: { size: 12, weight: 500, lineHeight: 1.4, tracking: '0.02em', family: body }
mono-price: { size: 16, weight: 500, lineHeight: 1.2, tracking: '0', family: mono, opentype: 'tnum, zero' }
mono-row: { size: 13, weight: 400, lineHeight: 1.3, tracking: '0', family: mono, opentype: 'tnum, zero' }
mono-micro: { size: 11, weight: 400, lineHeight: 1.3, tracking: '0', family: mono, opentype: 'tnum, zero' }
radius:
micro: 2
sm: 4
md: 8
lg: 12
xl: 16
pill: 9999
spacing:
base: 4
scale: [0, 4, 8, 12, 16, 24, 32, 48, 64, 96]
layout:
page-width: 1280
prose-width: 720
header-height: 64
motion:
ease-standard: 'cubic-bezier(0.4, 0, 0.2, 1)'
ease-out: 'cubic-bezier(0.16, 1, 0.3, 1)'
duration-fast: 150
duration-standard: 240
duration-slow: 320
reduced-motion: 'respects prefers-reduced-motion: reduce'
breakpoints:
mobile: 640
tablet: 1024
desktop: 1280
wide: 1536
shadows:
ambient: '0 1px 2px rgba(0, 0, 0, 0.4)'
standard: '0 4px 16px rgba(0, 0, 0, 0.5)'
elevated: '0 12px 32px rgba(0, 0, 0, 0.6)'
glow: '0 0 0 1px rgba(151, 252, 228, 0.4), 0 0 24px rgba(151, 252, 228, 0.18)'
ring: '0 0 0 3px rgba(151, 252, 228, 0.55)'
components:
button-primary: { bg: brand, text: on-brand, padding: '10px 16px', radius: 8 }
button-secondary: { bg: bg-elev-2, text: text, border: border, padding: '10px 16px', radius: 8 }
button-ghost: { bg: transparent, text: text, border: border, padding: '10px 16px', radius: 8 }
button-link: { bg: transparent, text: brand, padding: '0', radius: 0 }
card: { bg: surface, border: border, radius: 12, padding: 24 }
input: { bg: bg, border: border, text: text, radius: 8, padding: '8px 12px' }
badge: { bg: brand-soft, text: brand, radius: 9999, padding: '2px 10px' }
accessibility:
contrast-text-on-bg: 17.0
contrast-brand-on-bg: 16.8
contrast-on-brand-on-brand: 16.8
contrast-body-on-bg: 12.8
focus-ring: '3px solid rgba(151, 252, 228, 0.55)'
reduced-motion-honored: true
dark-mode: dark-only
lineage:
summary: 'Hyperliquid descends from professional trading terminals (TradingView, dYdX, GMX) filtered through modern dark-product minimalism (Linear, Vercel). It keeps the terminal canon — near-black canvas, tabular-mono numeric columns, long-green/short-red semantics, numbers-as-content priority — but applies the disciplined craft of the modern dark SaaS surface: a single near-black canvas, Inter as the human voice, restrained radius, and one signature accent doing all the chromatic work. The defining choice is mint-teal #97FCE4 on near-black, a cool bioluminescent cyan-green that sits in a near-empty part of the DeFi color space and reads as Hyperliquid the instant it appears. It rejects Blur''s pure-black-orange brutalism, Coinbase''s corporate navy, and the heavy gradients and glassmorphism common to L1 marketing sites.'
influences:
- { name: 'Linear', role: 'Single near-black surface, Inter, restrained radius, one disciplined accent doing the chromatic work', url: 'https://linear.app' }
- { name: 'Vercel', role: 'Minimal dark-product craft, confident sans display, content-forward marketing on a dark canvas', url: 'https://vercel.com' }
- { name: 'TradingView', role: 'Terminal-grade charting, tabular numeric columns, long/short color semantics', url: 'https://www.tradingview.com' }
- { name: 'dYdX', role: 'On-chain perps trading surface; order-book + order-entry terminal layout and dark register', url: 'https://dydx.exchange' }
- { name: 'GMX', role: 'Decentralized perps DEX; dense data-forward trading UI on a dark canvas', url: 'https://gmx.io' }
- { name: 'Inter typeface', role: 'The typeface for every human surface; chosen for legibility, weight range, and tabular figures', url: 'https://rsms.me/inter' }
---
## 1. Visual Theme & Atmosphere
Hyperliquid looks like a heads-up display floating in deep space. The canvas is a **near-black** `#04060c` — measured live at `rgb(4, 6, 12)`, which is to say not pure black (that would read brutalist, like Blur) and not navy (that would read corporate-fintech, like Coinbase), but a blue-shifted ink that sits one or two clicks cooler than `#000`. Those extra blue bits matter: they make white text feel softer, make the mint voltage glow rather than scream, and give the whole surface the cool, screen-native temperature of an exchange terminal left running overnight. White text renders at **92% opacity** rather than full strength — a deliberate softening that takes the harsh edge off long sessions of reading numbers.
The entire identity rides on a single chromatic decision: **mint-teal on near-black**. The brand color is `#97FCE4`, a bioluminescent green-cyan that is almost the opposite of every other DeFi brand's choice. It carries the wordmark, the primary CTAs, the live price ticks, the active nav state, the focus rings, and the chart accents. A deeper teal `#50d2c1` handles hover and pressed states and denser fills where the lighter mint would bloom too brightly. Nothing else on the surface is allowed to be chromatic except the semantic up-green and down-red of a trading book. The discipline is the point — when only one accent exists, every appearance of it reads as "this is live, this is actionable, this is yours."
Typography is **Inter, top to bottom**. Unlike Blur's mono-everywhere brutalism, Hyperliquid uses a clean humanist sans for all prose, headlines, navigation, and buttons, then drops to a tabular monospace **only** where alignment is functional — order-book columns, price ladders, PnL figures, funding rates. That split is itself a statement: marketing and explanation get the warmth and legibility of Inter; the trading surface gets the rigor of `tnum` mono. Headlines run tight (-0.018em to -0.03em at display sizes) and confident; body runs at a comfortable 1.55 line-height. The voice in type is fast and precise, never ornamental.
The register is **minimal and fast**, in service of an on-chain perpetuals DEX running on its own purpose-built L1. The surface advertises engineering credibility through restraint: disciplined spacing on a 4px grid, a modest radius scale that softens corners just enough to feel modern without rounding into consumer-app friendliness, near-zero decorative motion, and a depth system built from subtle shadows and a single mint glow rather than skeuomorphic lift. Where a marketing site would add illustration, Hyperliquid adds a live chart. Where it could add a gradient, it adds a number.
Layout is **content-forward and uncrowded**. Marketing pages center a 1280px column with generous vertical cadence; the app surfaces lean toward dense terminal panels — order book, positions table, chart, order entry — arranged in resizable grids. Across both modes the rule is consistent: the mint highlights the one thing you should look at next, and the near-black recedes so far it nearly disappears, leaving only data and a glow.
**Key Characteristics:**
- Near-black canvas `#04060c` (rgb 4, 6, 12) — blue-shifted, not pure black, not navy
- Single mint-teal voltage `#97FCE4` — the entire brand identity in one color
- Deeper teal `#50d2c1` for hover/pressed and dense fills
- White text at 92% opacity — softened for long trading sessions
- Inter for everything human; tabular mono only for aligned numeric data
- Restrained radius scale (2–16px) — modern, never consumer-rounded
- Subtle shadows plus one mint glow — no skeuomorphic lift, no glassmorphism
- Tight display tracking (-0.018em to -0.03em) — fast, confident headlines
- Semantic up-green / down-red are the only other chromatic tokens
- Numbers are the content; mint is the highlight; everything else recedes
## 2. Color Palette & Roles
### Primary
- **Canvas** (`#04060c`): Near-black blue-shifted ink — the defining surface, measured live at rgb(4, 6, 12).
- **Ink** (`rgba(255,255,255,0.92)`): Primary text — white at 92% opacity, softer than glaring full-white.
- **Brand** (`#97FCE4`): Hyperliquid Mint — every primary action, live datapoint, and brand mark.
### Brand & Voltage
- **Mint** (`#97FCE4`): The singular voltage. Wordmark, primary CTAs, active nav, focus rings, chart accent, live ticks.
- **Brand Strong** (`#50d2c1`): Deeper teal for hover/pressed and dense fills where light mint would bloom.
- **Brand Deep** (`#2FA89A`): Darkest teal — pressed state on mint-filled surfaces.
- **Brand Soft** (`rgba(151,252,228,0.12)`): 12% mint tint — active row bg, soft pills, selected filter.
- **Brand Glow** (`rgba(151,252,228,0.35)`): Halo used in focus glow and hovered-CTA aura.
- **On-Brand** (`#04060c`): Near-black text on mint CTAs. The 16.8:1 contrast is the highest legible reading; white-on-mint would fall below AA.
### Accent
None beyond mint. Hyperliquid deliberately rejects a second accent. Tertiary highlights, informational states, and brand surfaces all reuse mint — its scarcity reads as meaning, not decoration. Even the `semantic-info` token points back to mint. The system commits to **one voltage plus trading semantics**.
### Interactive
- **Link** (`#97FCE4`): No underline by default, underline or strong-teal on hover.
- **Hover**: Primary CTA fill shifts toward `#50d2c1`; rows shift bg to `#121622` and border to 28% white.
- **Active / Pressed** (`#2FA89A`): Brand Deep on filled CTAs.
- **Disabled** (`rgba(255,255,255,0.45)` text on `#0a0d16` bg): With `cursor: not-allowed`.
- **Selected** (filter / tab): Mint text, mint border, brand-soft bg.
### Neutral Scale
`#04060c` (Canvas) → `#0a0d16` (Surface Soft) → `#121622` (Surface Strong / Hover) → `#1a1f2e` (Surface Elevated) → 8% white (Border Soft) → 16% white (Border) → 28% white (Border Strong) → 45% white (Subtle / Disabled) → 60% white (Muted) → 78% white (Body) → 92% white (Ink). The dark steps are blue-shifted neutrals — each surface tier keeps the canvas's cool temperature rather than reverting to flat grey.
### Surface & Borders
- **Surface Soft** (`#0a0d16`): Card bg, secondary panel, modal bg.
- **Surface Strong** (`#121622`): Hover bg for rows and cards, dropdown bg.
- **Surface Elevated** (`#1a1f2e`): Popover and tooltip bg.
- **Border** (`rgba(255,255,255,0.16)`): Default 1px hairline.
- **Border Soft** (`rgba(255,255,255,0.08)`): Inner-row dividers on dense tables.
- **Border Strong** (`rgba(255,255,255,0.28)`): Focused/hovered border.
- **Border Brand** (`#97FCE4`): Active/focus state border.
### Shadow Colors
Shadows are pure black at depth, never tinted: `rgba(0,0,0,0.4)` ambient through `rgba(0,0,0,0.6)` for elevated overlays. The one chromatic depth effect is the **mint glow** (`0 0 0 1px rgba(151,252,228,0.4), 0 0 24px rgba(151,252,228,0.18)`), reserved for the primary CTA on hover and the live-data emphasis ring.
### Semantic
- **Up** (`#3FD68B`): Long / price-up green. Used on positive PnL, longs, 24h up.
- **Up Soft** (`rgba(63,214,139,0.14)`): pill / cell bg.
- **Down** (`#FF5470`): Short / price-down red. Used on negative PnL, shorts, 24h down.
- **Down Soft** (`rgba(255,84,112,0.14)`): pill / cell bg.
- **Warning** (`#FFD25F`): Liquidation-risk and funding warnings only.
- **Info** (`#97FCE4`): Reuses mint — there is no separate informational blue.
The up-green / down-red are the **only chromatic colors besides mint** that appear on Hyperliquid surfaces. The discipline holds across both the marketing site and the trading app.
## 3. Typography Rules
### Font Family
- **Display & Body** — `Inter`, fallback `system-ui, -apple-system, sans-serif`. Inter carries every human-readable surface: headlines, prose, navigation, buttons, labels.
- **Mono** — `ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace`. Used **only** where columnar alignment is functional: order book, price ladder, PnL, funding, addresses.
- **OpenType** — `tnum` and `zero` enabled on all mono surfaces so digits align and zeros disambiguate; `cv05`/`ss01` stylistic sets on Inter display for a slightly tighter `a`/`g`.
### Hierarchy
| Role | Font | Size | Weight | Line Height | Tracking | OT Features | Notes |
|------|------|-----:|-------:|------------:|---------:|-------------|-------|
| display-hero | Inter | 80 | 700 | 1.00 | -0.03em | cv05, ss01 | Marketing hero headline |
| display-lg | Inter | 56 | 700 | 1.05 | -0.02em | cv05, ss01 | Section heros |
| h1 | Inter | 40 | 700 | 1.10 | -0.018em | default | Page titles |
| h2 | Inter | 32 | 600 | 1.20 | -0.012em | default | Section titles |
| h3 | Inter | 24 | 600 | 1.25 | -0.005em | default | Sub-section titles |
| h4 | Inter | 20 | 600 | 1.30 | 0 | default | Card titles, panel headers |
| body-lg | Inter | 18 | 400 | 1.55 | 0 | default | Lead paragraphs |
| body | Inter | 16 | 400 | 1.55 | 0 | default | Default running text |
| body-sm | Inter | 14 | 400 | 1.50 | 0 | default | Secondary body, help text |
| label | Inter | 13 | 500 | 1.40 | 0 | default | Form labels, nav links |
| caption | Inter | 12 | 500 | 1.40 | 0.02em | default | Captions, column headers |
| mono-price | Mono | 16 | 500 | 1.20 | 0 | tnum, zero | Featured price / mark price |
| mono-row | Mono | 13 | 400 | 1.30 | 0 | tnum, zero | Order-book / table-row figures |
| mono-micro | Mono | 11 | 400 | 1.30 | 0 | tnum, zero | Funding rate, micro timestamps |
| nav-link | Inter | 13 | 500 | 1.40 | 0 | default | Top-nav items |
| button | Inter | 14 | 600 | 1.20 | 0 | default | All CTA labels |
### Principles
- **Inter is the human voice; mono is the data voice** — never use mono for prose, never use Inter for an aligned numeric column.
- **Tight tracking scales with size** — display sizes pull in to -0.03em; the negative tracking relaxes to 0 by the time text reaches body size.
- **Weights 400 / 500 / 600 / 700** — 400 body, 500 labels and emphasis, 600 section headings, 700 hero display only.
- **`tnum` always-on for numbers** — every figure that can change (price, size, PnL, funding) renders tabular so digits do not jitter on update.
- **`zero` (slashed/dotted zero)** — disambiguates 0/O in addresses and hashes; matters most on truncated `0x…` strings.
- **Sentence case, not all-caps** — Hyperliquid keeps headlines and buttons in sentence case (the anti-Blur choice); only tiny caption-eyebrows use light positive tracking.
- **Substitutes**: Inter is open-source — use directly. Closest alternatives are Geist, Söhne, or Aeonik for display; SF Mono / JetBrains Mono / IBM Plex Mono for the numeric role. Avoid Roboto (too neutral) and any serif.
## 4. Component Stylings
### Buttons
**`button-primary`** — Primary CTA. Background mint `#97FCE4`, **near-black** `#04060c` text, weight 600, 10 × 16 padding, 8px radius. Hover → fill `#50d2c1` plus a subtle mint glow; pressed → `#2FA89A`. Near-black-on-mint is non-negotiable — white-on-mint fails AA.
**`button-secondary`** — Background `#121622`, ink text, 1px 16%-white border, 8px radius. Hover → bg `#1a1f2e`, border to 28% white. Used for secondary, non-destructive actions paired beside a primary mint CTA.
**`button-ghost`** — Transparent bg, ink text, 1px 16%-white border, 8px radius. Hover → bg `#0a0d16`, border to 28% white. The quiet tertiary action.
**`button-link`** — Transparent, mint text, no border, no radius. Underline-on-hover or shift to `#50d2c1`. Inline textual actions ("Learn more", "View docs").
Trading-context variants reuse these: a **long** button tints toward `semantic-up` green, a **short** button toward `semantic-down` red, both with near-black text, 8px radius, matching the long/short coloring of the order book.
### Cards
**`card`** — `#0a0d16` bg, 1px 16%-white border, 12px radius, 24px padding. The default content container for marketing feature blocks and app panels. Optional ambient shadow `0 4px 16px rgba(0,0,0,0.5)` on raised cards. Hover (when interactive) → bg `#121622`, border to 28% white, no translate by default.
**`stat-panel`** — Compact data card: `#0a0d16` bg, 12px radius, 16px padding. A caption-size label in 60%-white above a `mono-price` figure in mint or ink. Used for TVL, 24h volume, open interest tiles.
**`terminal-panel`** — App-surface panel (order book, positions, chart). `#04060c` or `#0a0d16` bg, 1px 8%-white inner dividers, minimal padding, resizable. Header row in caption uppercase 60%-white; body in `mono-row`. Hover on a row swaps bg to `#121622`.
### Badges / Tags / Pills
**`badge`** — Default pill. `rgba(151,252,228,0.12)` brand-soft bg, mint text, full 9999 radius, 2 × 10 padding, caption size. The pill shape is the one place Hyperliquid fully rounds.
**`badge-up`** — Long / positive. `rgba(63,214,139,0.14)` bg, `#3FD68B` text, full radius. **`badge-down`** mirrors it in red.
**`badge-neutral`** — `#121622` bg, 78%-white text, full radius — for non-semantic tags (chain, market type).
**`filter-pill`** — Filter chip. `#0a0d16` bg, muted text, 1px 16%-white border, full radius, 6 × 12 padding. Active → mint text, mint border, brand-soft bg.
### Inputs / Forms
**`input`** — `#04060c` bg, 1px 16%-white border, 8px radius, 8 × 12 padding. Placeholder in 45%-white. Focus → 3px `rgba(151,252,228,0.55)` ring, border to mint. Caret is mint.
**`input-amount`** — Order-entry numeric input. Same shell, but value renders in `mono-price` with `tnum`, a unit suffix (USDC, the asset symbol) in muted text, and quick-fill percentage chips (25 / 50 / 75 / Max) as small filter-pills below.
**`select` / `dropdown`** — Trigger styled as `button-secondary`; menu on `#1a1f2e` surface-elevated bg, 8px radius, ambient shadow, mint check on the selected row.
### Navigation
**`top-nav`** — 64px tall, `#04060c` bg with a 1px 16%-white bottom border (or a subtle blur-backed translucent variant on scroll). Mint wordmark left, nav-link items center/left, a primary mint "Launch app" / "Connect" CTA right. Active tab → mint text with a 1px mint underline.
**`side-rail`** (app) — Vertical icon+label rail on `#0a0d16`, 1px 8%-white right border. Active item → mint icon, brand-soft bg, full-radius highlight pill behind it.
**`tab-bar`** — Underline tabs: inactive 60%-white, active ink with a 1px mint underline that slides between tabs on the standard ease.
### Modals & Overlays
**`modal`** — `#0a0d16` bg, 1px 16%-white border, 12px radius, 24px padding, elevated shadow `0 12px 32px rgba(0,0,0,0.6)`. Scrim is `rgba(2,3,7,0.78)`.
**`toast`** — `#1a1f2e` bg, 1px 16%-white border (or 1px mint for success), 12px radius, 12 × 16 padding, auto-dismiss at 4s. Success toasts carry a mint accent bar.
**`tooltip`** — `#1a1f2e` bg, 8px radius, caption text, ambient shadow. Used heavily to surface USD values, funding details, and definitions without crowding the terminal.
## 5. Layout Principles
### Spacing System
- **Base unit**: 4px.
- **Tokens**: 0 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96.
- **Section padding (vertical)**: 96px on marketing heros, 64px on standard marketing sections — confident but not cavernous.
- **Panel internal padding**: 24px on content cards, 16px on stat panels, 8–12px on dense terminal rows.
- **Gutters**: 24px between marketing cards; 1px hairlines (not gaps) between terminal rows.
### Grid & Container
- **Max content width**: 1280px on marketing pages, centered with auto margins.
- **Prose width**: 720px for docs and long-form reading.
- **Marketing grid**: 12-column with 24px gutters; feature blocks span 4 or 6 columns.
- **App layout**: resizable terminal grid — chart + order book + order entry + positions table — each panel an independent surface tier.
### Whitespace Philosophy
**Disciplined, not lavish.** Marketing breathes on a 64–96px cadence; the trading app compresses to information density without feeling cramped, because surface tiers and hairlines do the separating that whitespace would otherwise do. The goal is a fast read at both scales — a confident landing page and a legible terminal from the same token set.
### Section Cadence
The page stays near-black `#04060c` throughout; rhythm comes from surface-tier steps (`#04060c` → `#0a0d16`) and hairline dividers rather than light/dark alternation. Mint punctuates — one CTA, one live stat, one chart accent per section — and the eye follows the mint down the page.
## 6. Shapes & Radius Scale
| Tier | Token | Value | Use |
|------|-------|------:|-----|
| Micro | micro | 2px | Tiny chips, inline tags, checkbox corners |
| Standard | sm | 4px | Inputs in dense rows, small buttons |
| Comfortable | md | 8px | Buttons, inputs, dropdowns — the default CTA radius |
| Relaxed | lg | 12px | Cards, modals, panels |
| Large | xl | 16px | Feature cards, large surfaces, hero media frames |
| Pill | pill | 9999px | Badges, filter chips, avatars, toggle tracks |
The scale is **restrained-modern**: enough rounding (8px on CTAs, 12px on cards) to read contemporary and trustworthy, never so much that the surface feels like a consumer app. The live production body samples at 0px on the outermost canvas, but the system's interactive elements use the 2–16px scale above — the binary "0-or-9999" brutalism of Blur is explicitly **not** Hyperliquid's register. Pill (9999) is reserved for genuinely capsule shapes: badges, chips, avatars.
## 7. Depth & Elevation
| Level | Treatment | Use |
|-------|-----------|-----|
| 0 Flat | No shadow, no border | Body sections on canvas |
| 1 Hairline | 1px 16%-white border | Cards, inputs, table rows, nav borders |
| 2 Surface step | `#04060c` → `#0a0d16` | Cards, panels rising off canvas |
| 3 Ambient | `0 1px 2px` / `0 4px 16px rgba(0,0,0,.4–.5)` | Raised cards, dropdowns |
| 4 Elevated | `0 12px 32px rgba(0,0,0,0.6)` | Modals, popovers over scrim |
| 5 Mint glow | `0 0 0 1px rgba(151,252,228,.4), 0 0 24px rgba(151,252,228,.18)` | Primary CTA hover, live-data emphasis |
| Focus ring | `0 0 0 3px rgba(151,252,228,0.55)` | All keyboard focus |
**Shadow Philosophy**: Depth is mostly **surface-tier + hairline**, with black ambient shadows used sparingly on genuinely floating elements (dropdowns, modals). The signature is the **mint glow** — the one place the system spends a chromatic effect, reserved for the primary action and live data so the glow always means "look here, it's live." No glassmorphism heavy enough to muddy the near-black; an optional translucent-blur nav on scroll is the only backdrop-filter in the system.
## 8. Interaction & Motion
- **Easing standard** — `cubic-bezier(0.4, 0, 0.2, 1)` for most state and color transitions.
- **Easing out** — `cubic-bezier(0.16, 1, 0.3, 1)` for entrances (modal, dropdown, toast) — a confident decelerating settle.
- **Durations** — fast 150ms (hover color, focus ring), standard 240ms (panel/modal entrance, tab-underline slide), slow 320ms (large reveals).
- **Hover** — primary CTA fills toward `#50d2c1` and gains the mint glow over 150ms; rows swap bg toward `#121622` and border to 28% white; links shift to strong teal. No translateY on default cards.
- **Tab underline** — the 1px mint underline slides between active tabs over 240ms on the standard ease.
- **Price flash** — when a live figure updates, the cell briefly tints `semantic-up-soft` (up) or `semantic-down-soft` (down) then fades back over ~400ms; the figure itself never reflows because `tnum` holds digit width.
- **Connect / launch CTA** — on hover, the mint glow expands subtly; on press, fill drops to `#2FA89A`.
- **Page / route transition** — minimal; content cross-fades on the out ease. No heavy page wipes — speed is the brand.
- **Reduced motion** — `prefers-reduced-motion: reduce` honored: price-flash collapses to an instant color set with no fade, entrances become opacity-only, the tab underline jumps rather than slides, and the mint glow becomes static.
## 9. Accessibility & A11y
- **Contrast**: Ink (white 92%) on `#04060c` = **17.0:1** (AAA at all sizes). Near-black `#04060c` on Mint `#97FCE4` = **16.8:1** (AAA — this is why CTAs use near-black text on mint, never white). Body (white 78%) on canvas = **12.8:1** (AAA). Muted (white 60%) on canvas ≈ **7.3:1** (AAA at normal text). Subtle (white 45%) on canvas ≈ **4.5:1** — at the AA boundary, so reserved for disabled/placeholder, never primary content. Up-green `#3FD68B` (≈10:1) and down-red `#FF5470` (≈4.9:1) both clear AA on canvas.
- **Mint-text-on-canvas** = **16.8:1** — mint links and labels are fully AAA; mint is safe as both fill and foreground.
- **Focus indicator**: 3px `rgba(151,252,228,0.55)` ring on every interactive element — highly visible against near-black, never removed.
- **ARIA patterns**: The order book and positions tables use `role="table"` with `aria-sort` on sortable headers. Live-updating figures sit in `aria-live="polite"` regions so screen readers announce fills and PnL changes without spamming. Long/short toggles are `role="radiogroup"`.
- **Keyboard nav**: All controls reachable by tab; order-entry form fully keyboard-operable; Escape closes modals and popovers; arrow keys move between order-book rows.
- **Screen reader hints**: Color-coded prices carry visually-hidden "+N% up" / "-N% down" text so meaning never depends on red/green alone. The mint "live" indicator pairs with a text label.
- **Reduced motion**: Honored — see §8.
## 10. Responsive Behavior
| Breakpoint | Width | Key Changes |
|------------|------:|-------------|
| Mobile | < 640 | Top nav → hamburger; terminal panels stack vertically (chart → order entry → book → positions); marketing grid 1-up; section padding tightens to 48px |
| Tablet | 640–1024 | Marketing grid 2-up; app shows chart + order entry, book/positions behind tabs; side-rail collapses to icons |
| Desktop | 1024–1280 | Full marketing grid; app shows the multi-panel terminal grid; persistent side-rail |
| Wide | > 1280 | Container caps at 1280px on marketing; app expands panels to use 4K estate, order book and depth chart side-by-side |
**Touch Targets**: Primary CTAs and order-entry controls render at minimum 44 × 44px on touch. Order-book rows expand vertically on mobile for tap accuracy. Quick-fill percentage chips are full-radius, ≥ 32px tall on touch.
**Collapsing Strategy**: Top nav → hamburger sheet with the mint CTA pinned. Terminal grid → single-column stack with sticky chart and a fixed bottom order-entry sheet. Tables → key columns surfaced, secondary data behind tap-to-expand.
**Image Behavior**: Marketing media uses `loading="lazy"` and fixed `aspect-ratio` frames at 16px radius. The trading surface avoids decorative imagery entirely — charts and data render natively.
## 11. Content & Voice
- **Tone** — precise, fast, builder-credible. Hyperliquid speaks like an exchange that trusts its users to be traders: "Trade perps. Fully on-chain. On-chain order book." Short, declarative, technically specific. Confident without hype.
- **Microcopy** — sentence case, not all-caps (the anti-Blur choice). "Connect", "Launch app", "Open position", "Close", "Deposit". Verbs are direct and singular; numbers are exact.
- **CTA verbs** — "Launch app" (entry), "Connect" (wallet), "Deposit" / "Withdraw", "Long" / "Short", "Close position", "Read docs". The primary marketing CTA is "Launch app" or "Start trading".
- **Empty states** — minimal and informative. "No open positions" / "No open orders" / "Connect a wallet to start" — one line, no illustration, optionally a quiet mint link to the next step.
- **Error messages** — direct and remediable. "Insufficient margin" / "Order size below minimum" — name the constraint, name the fix. Wallet/RPC errors surface the provider message in a tooltip.
- **Number formatting** — always `tnum`; price precision scales per market; USD and asset-denominated values both available, USD often in a tooltip. Funding rates show sign and basis explicitly.
- **Brand voice prohibition** — no fake urgency, no emoji in product chrome, no exclamatory marketing. The mint glow does the excitement; the words stay flat and exact.
## 12. Dark Mode & Theming
Hyperliquid is **dark-only**, by design. The near-black `#04060c` canvas with mint voltage is the brand — there is no light variant, and the trader-terminal register would break under one (mint glow and price-flash semantics are tuned for a dark surface). The cool blue-shifted ink is intentional and not user-toggleable.
If a hypothetical light variant ever shipped, the predicted token map would be: `bg #ffffff`, `surface-soft #f6f8fa`, `surface-strong #eef1f4`, `border` ~`rgba(4,6,12,0.12)`, `text` ~`rgba(4,6,12,0.92)`, with the mint **darkened to `#2FA89A`-class** so it clears AA as a foreground on white (the `#97FCE4` brand mint is too light to read on a white surface). But the editorial position is that this surface should not exist — Hyperliquid is a dark, fast, screen-native instrument.
## 13. Lineage & Influences
Hyperliquid's design language descends from **professional trading terminals** filtered through **modern dark-product minimalism**. The near-black canvas, tabular-mono numeric columns, sparse chrome, and "numbers are the content" priority come straight from the exchange-terminal tradition — TradingView, the dYdX trading surface, GMX. But where those lean utilitarian, Hyperliquid borrows the disciplined dark-surface craft of Linear and Vercel: a single near-black canvas, Inter as the human voice, restrained radius, and one signature accent that does all the chromatic work. The result is a terminal that feels engineered like Linear rather than bolted together like a legacy exchange.
The defining choice — **mint-teal on near-black** — is its own. Most DeFi brands reach for purple, blue, or neon-green; the cool bioluminescent `#97FCE4` cyan-green sits in a near-empty part of the category's color space, which is exactly why it reads as Hyperliquid the instant it appears. It rejects Blur's pure-black-orange brutalism (Hyperliquid keeps Inter and softer radius), rejects Coinbase's corporate navy-blue, and rejects the heavy gradients and glassmorphism common to L1 marketing sites. What it keeps from the broader trader canon: long-green / short-red semantics, `tnum` everywhere, persistent live data, and a dark surface tuned for overnight sessions.
Influences:
- **Linear** — Single near-black surface, Inter, restrained radius, one disciplined accent doing the chromatic work. https://linear.app
- **Vercel** — Minimal dark-product craft, confident sans display, content-forward marketing on a dark canvas. https://vercel.com
- **TradingView** — Terminal-grade charting, tabular numeric columns, long/short color semantics. https://www.tradingview.com
- **dYdX** — On-chain perps trading surface; order-book + order-entry terminal layout and dark register. https://dydx.exchange
- **GMX** — Decentralized perps DEX; dense data-forward trading UI on a dark canvas. https://gmx.io
- **Inter** by Rasmus Andersson — The typeface for every human surface; chosen for legibility, weight range, and tabular figures. https://rsms.me/inter
## 14. Do's and Don'ts
### Do
- Keep the canvas at near-black `#04060c` (rgb 4, 6, 12) — blue-shifted, not pure black, not navy.
- Reserve mint `#97FCE4` for primary actions, live data, and the brand mark — scarcity is what makes it read as "actionable".
- Use **near-black** `#04060c` text on mint CTAs (16.8:1) — never white-on-mint (fails AA).
- Use Inter for everything human; drop to tabular mono only for aligned numeric columns.
- Render every changeable figure with `tnum` so digits never jitter on update.
- Use the restrained radius scale (8px CTAs, 12px cards) — modern, never consumer-rounded.
- Express depth through surface tiers and hairlines first; reserve the mint glow for the primary action and live data.
- Keep headlines and buttons in sentence case — the deliberate anti-Blur choice.
- Use long-green `#3FD68B` / short-red `#FF5470` for trading semantics, with text labels for a11y.
- Honor `prefers-reduced-motion` — collapse price-flash and entrances to instant/opacity-only.
### Don't
- Don't use pure black `#000000` (that's Blur) or navy (that's Coinbase) — the blue-shifted near-black is the brand.
- Don't add a second accent color — info, success-emphasis, and tertiary highlights all reuse mint.
- Don't put white text on the mint fill — it fails AA; near-black on mint is the only sanctioned pairing.
- Don't use mono for prose or Inter for an aligned numeric column — keep the two voices separate.
- Don't all-caps headlines and buttons — Hyperliquid stays sentence case.
- Don't over-round into consumer-app territory or flatten to brutalist 0px — hold the 2–16px scale.
- Don't add heavy gradients or glassmorphism that muddy the near-black canvas.
- Don't spend the mint glow on decoration — it must always mean "live" or "primary action".
- Don't reflow numbers on update — `tnum` plus a brief color flash, never a layout shift.
- Don't add fake urgency, emoji chrome, or exclamatory hype — the mint carries the energy, the words stay exact.
## 15. Agent Prompt Guide
### Quick Color Reference
- Brand (Mint): `#97FCE4`
- Brand strong (hover): `#50d2c1`
- Brand deep (pressed): `#2FA89A`
- Canvas: `#04060c`
- Surface soft: `#0a0d16`
- Surface strong: `#121622`
- Ink (text): white at 92% — `rgba(255,255,255,0.92)`
- Body: white at 78%
- Muted: white at 60%
- Border: white at 16%
- Up green: `#3FD68B`
- Down red: `#FF5470`
- On-brand (text on mint): `#04060c`
### Example Component Prompts
- "Create a Hyperliquid hero band: near-black `#04060c` background, 80px Inter weight 700 headline 'Trade perps. Fully on-chain.' with -0.03em tracking in white at 92%, body-lg sub at 18px Inter in white 78%, primary CTA mint `#97FCE4` with **near-black** `#04060c` text weight 600, 8px radius, 10 × 16 padding labeled 'Launch app' that gains a mint glow on hover. Beside it a ghost button 'Read docs' — transparent bg, white text, 1px 16%-white border."
- "Design a stat panel row: three cards on `#0a0d16` bg, 12px radius, 16px padding. Each: a caption-size label in white 60% ('24h Volume', 'Open Interest', 'TVL') above a mono-price figure 16px tabular in mint `#97FCE4`. Hairline 1px 16%-white borders, no shadow."
- "Build an order-book panel: `#04060c` bg, header row in caption uppercase white 60% ('Price', 'Size', 'Total'). Ask rows render the price in down-red `#FF5470` tabular mono, bid rows in up-green `#3FD68B` tabular mono, size/total in white 78% mono. Row hover swaps bg to `#121622`. A center spread row shows mark price in mint `#97FCE4` mono-price."
- "Render a primary mint CTA: background `#97FCE4`, text `#04060c` weight 600 14px sentence case 'Connect', 8px radius, 10 × 16 padding. Hover: fill shifts to `#50d2c1` and add glow `0 0 0 1px rgba(151,252,228,0.4), 0 0 24px rgba(151,252,228,0.18)`. Pressed: fill `#2FA89A`. Focus: 3px ring `rgba(151,252,228,0.55)`."
- "Compose a positions table: `#0a0d16` panel, 12px radius. Columns: market (Inter 13/500 white 92%), side badge (long → `rgba(63,214,139,0.14)` bg + `#3FD68B` text, full radius; short → red equivalents), size and entry in tabular mono white 78%, PnL in up-green or down-red mono. Row hover → bg `#121622`, border to 28% white. 'Close' button as a small ghost variant per row."
- "Make a connect-wallet modal: `#0a0d16` bg, 1px 16%-white border, 12px radius, 24px padding, elevated shadow `0 12px 32px rgba(0,0,0,0.6)` over a `rgba(2,3,7,0.78)` scrim. Title h3 24px Inter 600 white 92%, wallet rows as secondary buttons (`#121622` bg, 8px radius), a mint accent on the recommended option."
### Iteration Guide
1. Near-black canvas `#04060c` only — confirm it reads cooler than `#000` and is not navy. The blue-shift is the brand.
2. Mint `#97FCE4` is the single voltage — if a second accent appears, remove it and route the meaning back to mint.
3. Near-black text on every mint fill — if you see white-on-mint, it fails AA; fix it.
4. Inter for human text, tabular mono only for aligned numbers — keep the two voices cleanly separated.
5. Hold the restrained radius — 8px on CTAs, 12px on cards. Not 0px (Blur), not 20px+ (consumer).
6. Depth is surface-tier + hairline first; spend the mint glow only on the primary action and live data.
7. Sentence case everywhere — if a headline or button is all-caps, lowercase it (this is the anti-Blur tell).
8. Numbers use `tnum` plus a brief up/down color flash on change — never a layout shift, never a reflow.
1. Visual Theme & Atmosphere
Hyperliquid looks like a heads-up display floating in deep space. The canvas is a near-black #04060c — measured live at rgb(4, 6, 12), which is to say not pure black (that would read brutalist, like Blur) and not navy (that would read corporate-fintech, like Coinbase), but a blue-shifted ink that sits one or two clicks cooler than #000. Those extra blue bits matter: they make white text feel softer, make the mint voltage glow rather than scream, and give the whole surface the cool, screen-native temperature of an exchange terminal left running overnight. White text renders at 92% opacity rather than full strength — a deliberate softening that takes the harsh edge off long sessions of reading numbers.
The entire identity rides on a single chromatic decision: mint-teal on near-black. The brand color is #97FCE4, a bioluminescent green-cyan that is almost the opposite of every other DeFi brand’s choice. It carries the wordmark, the primary CTAs, the live price ticks, the active nav state, the focus rings, and the chart accents. A deeper teal #50d2c1 handles hover and pressed states and denser fills where the lighter mint would bloom too brightly. Nothing else on the surface is allowed to be chromatic except the semantic up-green and down-red of a trading book. The discipline is the point — when only one accent exists, every appearance of it reads as “this is live, this is actionable, this is yours.”
Typography is Inter, top to bottom. Unlike Blur’s mono-everywhere brutalism, Hyperliquid uses a clean humanist sans for all prose, headlines, navigation, and buttons, then drops to a tabular monospace only where alignment is functional — order-book columns, price ladders, PnL figures, funding rates. That split is itself a statement: marketing and explanation get the warmth and legibility of Inter; the trading surface gets the rigor of tnum mono. Headlines run tight (-0.018em to -0.03em at display sizes) and confident; body runs at a comfortable 1.55 line-height. The voice in type is fast and precise, never ornamental.
The register is minimal and fast, in service of an on-chain perpetuals DEX running on its own purpose-built L1. The surface advertises engineering credibility through restraint: disciplined spacing on a 4px grid, a modest radius scale that softens corners just enough to feel modern without rounding into consumer-app friendliness, near-zero decorative motion, and a depth system built from subtle shadows and a single mint glow rather than skeuomorphic lift. Where a marketing site would add illustration, Hyperliquid adds a live chart. Where it could add a gradient, it adds a number.
Layout is content-forward and uncrowded. Marketing pages center a 1280px column with generous vertical cadence; the app surfaces lean toward dense terminal panels — order book, positions table, chart, order entry — arranged in resizable grids. Across both modes the rule is consistent: the mint highlights the one thing you should look at next, and the near-black recedes so far it nearly disappears, leaving only data and a glow.
Key Characteristics:
- Near-black canvas
#04060c(rgb 4, 6, 12) — blue-shifted, not pure black, not navy - Single mint-teal voltage
#97FCE4— the entire brand identity in one color - Deeper teal
#50d2c1for hover/pressed and dense fills - White text at 92% opacity — softened for long trading sessions
- Inter for everything human; tabular mono only for aligned numeric data
- Restrained radius scale (2–16px) — modern, never consumer-rounded
- Subtle shadows plus one mint glow — no skeuomorphic lift, no glassmorphism
- Tight display tracking (-0.018em to -0.03em) — fast, confident headlines
- Semantic up-green / down-red are the only other chromatic tokens
- Numbers are the content; mint is the highlight; everything else recedes
2. Color Palette & Roles
Primary
- Canvas (
#04060c): Near-black blue-shifted ink — the defining surface, measured live at rgb(4, 6, 12). - Ink (
rgba(255,255,255,0.92)): Primary text — white at 92% opacity, softer than glaring full-white. - Brand (
#97FCE4): Hyperliquid Mint — every primary action, live datapoint, and brand mark.
Brand & Voltage
- Mint (
#97FCE4): The singular voltage. Wordmark, primary CTAs, active nav, focus rings, chart accent, live ticks. - Brand Strong (
#50d2c1): Deeper teal for hover/pressed and dense fills where light mint would bloom. - Brand Deep (
#2FA89A): Darkest teal — pressed state on mint-filled surfaces. - Brand Soft (
rgba(151,252,228,0.12)): 12% mint tint — active row bg, soft pills, selected filter. - Brand Glow (
rgba(151,252,228,0.35)): Halo used in focus glow and hovered-CTA aura. - On-Brand (
#04060c): Near-black text on mint CTAs. The 16.8:1 contrast is the highest legible reading; white-on-mint would fall below AA.
Accent
None beyond mint. Hyperliquid deliberately rejects a second accent. Tertiary highlights, informational states, and brand surfaces all reuse mint — its scarcity reads as meaning, not decoration. Even the semantic-info token points back to mint. The system commits to one voltage plus trading semantics.
Interactive
- Link (
#97FCE4): No underline by default, underline or strong-teal on hover. - Hover: Primary CTA fill shifts toward
#50d2c1; rows shift bg to#121622and border to 28% white. - Active / Pressed (
#2FA89A): Brand Deep on filled CTAs. - Disabled (
rgba(255,255,255,0.45)text on#0a0d16bg): Withcursor: not-allowed. - Selected (filter / tab): Mint text, mint border, brand-soft bg.
Neutral Scale
#04060c (Canvas) → #0a0d16 (Surface Soft) → #121622 (Surface Strong / Hover) → #1a1f2e (Surface Elevated) → 8% white (Border Soft) → 16% white (Border) → 28% white (Border Strong) → 45% white (Subtle / Disabled) → 60% white (Muted) → 78% white (Body) → 92% white (Ink). The dark steps are blue-shifted neutrals — each surface tier keeps the canvas’s cool temperature rather than reverting to flat grey.
Surface & Borders
- Surface Soft (
#0a0d16): Card bg, secondary panel, modal bg. - Surface Strong (
#121622): Hover bg for rows and cards, dropdown bg. - Surface Elevated (
#1a1f2e): Popover and tooltip bg. - Border (
rgba(255,255,255,0.16)): Default 1px hairline. - Border Soft (
rgba(255,255,255,0.08)): Inner-row dividers on dense tables. - Border Strong (
rgba(255,255,255,0.28)): Focused/hovered border. - Border Brand (
#97FCE4): Active/focus state border.
Shadow Colors
Shadows are pure black at depth, never tinted: rgba(0,0,0,0.4) ambient through rgba(0,0,0,0.6) for elevated overlays. The one chromatic depth effect is the mint glow (0 0 0 1px rgba(151,252,228,0.4), 0 0 24px rgba(151,252,228,0.18)), reserved for the primary CTA on hover and the live-data emphasis ring.
Semantic
- Up (
#3FD68B): Long / price-up green. Used on positive PnL, longs, 24h up. - Up Soft (
rgba(63,214,139,0.14)): pill / cell bg. - Down (
#FF5470): Short / price-down red. Used on negative PnL, shorts, 24h down. - Down Soft (
rgba(255,84,112,0.14)): pill / cell bg. - Warning (
#FFD25F): Liquidation-risk and funding warnings only. - Info (
#97FCE4): Reuses mint — there is no separate informational blue.
The up-green / down-red are the only chromatic colors besides mint that appear on Hyperliquid surfaces. The discipline holds across both the marketing site and the trading app.
3. Typography Rules
Font Family
- Display & Body —
Inter, fallbacksystem-ui, -apple-system, sans-serif. Inter carries every human-readable surface: headlines, prose, navigation, buttons, labels. - Mono —
ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace. Used only where columnar alignment is functional: order book, price ladder, PnL, funding, addresses. - OpenType —
tnumandzeroenabled on all mono surfaces so digits align and zeros disambiguate;cv05/ss01stylistic sets on Inter display for a slightly tightera/g.
Hierarchy
| Role | Font | Size | Weight | Line Height | Tracking | OT Features | Notes |
|---|---|---|---|---|---|---|---|
| display-hero | Inter | 80 | 700 | 1.00 | -0.03em | cv05, ss01 | Marketing hero headline |
| display-lg | Inter | 56 | 700 | 1.05 | -0.02em | cv05, ss01 | Section heros |
| h1 | Inter | 40 | 700 | 1.10 | -0.018em | default | Page titles |
| h2 | Inter | 32 | 600 | 1.20 | -0.012em | default | Section titles |
| h3 | Inter | 24 | 600 | 1.25 | -0.005em | default | Sub-section titles |
| h4 | Inter | 20 | 600 | 1.30 | 0 | default | Card titles, panel headers |
| body-lg | Inter | 18 | 400 | 1.55 | 0 | default | Lead paragraphs |
| body | Inter | 16 | 400 | 1.55 | 0 | default | Default running text |
| body-sm | Inter | 14 | 400 | 1.50 | 0 | default | Secondary body, help text |
| label | Inter | 13 | 500 | 1.40 | 0 | default | Form labels, nav links |
| caption | Inter | 12 | 500 | 1.40 | 0.02em | default | Captions, column headers |
| mono-price | Mono | 16 | 500 | 1.20 | 0 | tnum, zero | Featured price / mark price |
| mono-row | Mono | 13 | 400 | 1.30 | 0 | tnum, zero | Order-book / table-row figures |
| mono-micro | Mono | 11 | 400 | 1.30 | 0 | tnum, zero | Funding rate, micro timestamps |
| nav-link | Inter | 13 | 500 | 1.40 | 0 | default | Top-nav items |
| button | Inter | 14 | 600 | 1.20 | 0 | default | All CTA labels |
Principles
- Inter is the human voice; mono is the data voice — never use mono for prose, never use Inter for an aligned numeric column.
- Tight tracking scales with size — display sizes pull in to -0.03em; the negative tracking relaxes to 0 by the time text reaches body size.
- Weights 400 / 500 / 600 / 700 — 400 body, 500 labels and emphasis, 600 section headings, 700 hero display only.
tnumalways-on for numbers — every figure that can change (price, size, PnL, funding) renders tabular so digits do not jitter on update.zero(slashed/dotted zero) — disambiguates 0/O in addresses and hashes; matters most on truncated0x…strings.- Sentence case, not all-caps — Hyperliquid keeps headlines and buttons in sentence case (the anti-Blur choice); only tiny caption-eyebrows use light positive tracking.
- Substitutes: Inter is open-source — use directly. Closest alternatives are Geist, Söhne, or Aeonik for display; SF Mono / JetBrains Mono / IBM Plex Mono for the numeric role. Avoid Roboto (too neutral) and any serif.
4. Component Stylings
Buttons
button-primary — Primary CTA. Background mint #97FCE4, near-black #04060c text, weight 600, 10 × 16 padding, 8px radius. Hover → fill #50d2c1 plus a subtle mint glow; pressed → #2FA89A. Near-black-on-mint is non-negotiable — white-on-mint fails AA.
button-secondary — Background #121622, ink text, 1px 16%-white border, 8px radius. Hover → bg #1a1f2e, border to 28% white. Used for secondary, non-destructive actions paired beside a primary mint CTA.
button-ghost — Transparent bg, ink text, 1px 16%-white border, 8px radius. Hover → bg #0a0d16, border to 28% white. The quiet tertiary action.
button-link — Transparent, mint text, no border, no radius. Underline-on-hover or shift to #50d2c1. Inline textual actions (“Learn more”, “View docs”).
Trading-context variants reuse these: a long button tints toward semantic-up green, a short button toward semantic-down red, both with near-black text, 8px radius, matching the long/short coloring of the order book.
Cards
card — #0a0d16 bg, 1px 16%-white border, 12px radius, 24px padding. The default content container for marketing feature blocks and app panels. Optional ambient shadow 0 4px 16px rgba(0,0,0,0.5) on raised cards. Hover (when interactive) → bg #121622, border to 28% white, no translate by default.
stat-panel — Compact data card: #0a0d16 bg, 12px radius, 16px padding. A caption-size label in 60%-white above a mono-price figure in mint or ink. Used for TVL, 24h volume, open interest tiles.
terminal-panel — App-surface panel (order book, positions, chart). #04060c or #0a0d16 bg, 1px 8%-white inner dividers, minimal padding, resizable. Header row in caption uppercase 60%-white; body in mono-row. Hover on a row swaps bg to #121622.
Badges / Tags / Pills
badge — Default pill. rgba(151,252,228,0.12) brand-soft bg, mint text, full 9999 radius, 2 × 10 padding, caption size. The pill shape is the one place Hyperliquid fully rounds.
badge-up — Long / positive. rgba(63,214,139,0.14) bg, #3FD68B text, full radius. badge-down mirrors it in red.
badge-neutral — #121622 bg, 78%-white text, full radius — for non-semantic tags (chain, market type).
filter-pill — Filter chip. #0a0d16 bg, muted text, 1px 16%-white border, full radius, 6 × 12 padding. Active → mint text, mint border, brand-soft bg.
Inputs / Forms
input — #04060c bg, 1px 16%-white border, 8px radius, 8 × 12 padding. Placeholder in 45%-white. Focus → 3px rgba(151,252,228,0.55) ring, border to mint. Caret is mint.
input-amount — Order-entry numeric input. Same shell, but value renders in mono-price with tnum, a unit suffix (USDC, the asset symbol) in muted text, and quick-fill percentage chips (25 / 50 / 75 / Max) as small filter-pills below.
select / dropdown — Trigger styled as button-secondary; menu on #1a1f2e surface-elevated bg, 8px radius, ambient shadow, mint check on the selected row.
Navigation
top-nav — 64px tall, #04060c bg with a 1px 16%-white bottom border (or a subtle blur-backed translucent variant on scroll). Mint wordmark left, nav-link items center/left, a primary mint “Launch app” / “Connect” CTA right. Active tab → mint text with a 1px mint underline.
side-rail (app) — Vertical icon+label rail on #0a0d16, 1px 8%-white right border. Active item → mint icon, brand-soft bg, full-radius highlight pill behind it.
tab-bar — Underline tabs: inactive 60%-white, active ink with a 1px mint underline that slides between tabs on the standard ease.
Modals & Overlays
modal — #0a0d16 bg, 1px 16%-white border, 12px radius, 24px padding, elevated shadow 0 12px 32px rgba(0,0,0,0.6). Scrim is rgba(2,3,7,0.78).
toast — #1a1f2e bg, 1px 16%-white border (or 1px mint for success), 12px radius, 12 × 16 padding, auto-dismiss at 4s. Success toasts carry a mint accent bar.
tooltip — #1a1f2e bg, 8px radius, caption text, ambient shadow. Used heavily to surface USD values, funding details, and definitions without crowding the terminal.
5. Layout Principles
Spacing System
- Base unit: 4px.
- Tokens: 0 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96.
- Section padding (vertical): 96px on marketing heros, 64px on standard marketing sections — confident but not cavernous.
- Panel internal padding: 24px on content cards, 16px on stat panels, 8–12px on dense terminal rows.
- Gutters: 24px between marketing cards; 1px hairlines (not gaps) between terminal rows.
Grid & Container
- Max content width: 1280px on marketing pages, centered with auto margins.
- Prose width: 720px for docs and long-form reading.
- Marketing grid: 12-column with 24px gutters; feature blocks span 4 or 6 columns.
- App layout: resizable terminal grid — chart + order book + order entry + positions table — each panel an independent surface tier.
Whitespace Philosophy
Disciplined, not lavish. Marketing breathes on a 64–96px cadence; the trading app compresses to information density without feeling cramped, because surface tiers and hairlines do the separating that whitespace would otherwise do. The goal is a fast read at both scales — a confident landing page and a legible terminal from the same token set.
Section Cadence
The page stays near-black #04060c throughout; rhythm comes from surface-tier steps (#04060c → #0a0d16) and hairline dividers rather than light/dark alternation. Mint punctuates — one CTA, one live stat, one chart accent per section — and the eye follows the mint down the page.
6. Shapes & Radius Scale
| Tier | Token | Value | Use |
|---|---|---|---|
| Micro | micro | 2px | Tiny chips, inline tags, checkbox corners |
| Standard | sm | 4px | Inputs in dense rows, small buttons |
| Comfortable | md | 8px | Buttons, inputs, dropdowns — the default CTA radius |
| Relaxed | lg | 12px | Cards, modals, panels |
| Large | xl | 16px | Feature cards, large surfaces, hero media frames |
| Pill | pill | 9999px | Badges, filter chips, avatars, toggle tracks |
The scale is restrained-modern: enough rounding (8px on CTAs, 12px on cards) to read contemporary and trustworthy, never so much that the surface feels like a consumer app. The live production body samples at 0px on the outermost canvas, but the system’s interactive elements use the 2–16px scale above — the binary “0-or-9999” brutalism of Blur is explicitly not Hyperliquid’s register. Pill (9999) is reserved for genuinely capsule shapes: badges, chips, avatars.
7. Depth & Elevation
| Level | Treatment | Use |
|---|---|---|
| 0 Flat | No shadow, no border | Body sections on canvas |
| 1 Hairline | 1px 16%-white border | Cards, inputs, table rows, nav borders |
| 2 Surface step | #04060c → #0a0d16 | Cards, panels rising off canvas |
| 3 Ambient | 0 1px 2px / 0 4px 16px rgba(0,0,0,.4–.5) | Raised cards, dropdowns |
| 4 Elevated | 0 12px 32px rgba(0,0,0,0.6) | Modals, popovers over scrim |
| 5 Mint glow | 0 0 0 1px rgba(151,252,228,.4), 0 0 24px rgba(151,252,228,.18) | Primary CTA hover, live-data emphasis |
| Focus ring | 0 0 0 3px rgba(151,252,228,0.55) | All keyboard focus |
Shadow Philosophy: Depth is mostly surface-tier + hairline, with black ambient shadows used sparingly on genuinely floating elements (dropdowns, modals). The signature is the mint glow — the one place the system spends a chromatic effect, reserved for the primary action and live data so the glow always means “look here, it’s live.” No glassmorphism heavy enough to muddy the near-black; an optional translucent-blur nav on scroll is the only backdrop-filter in the system.
8. Interaction & Motion
- Easing standard —
cubic-bezier(0.4, 0, 0.2, 1)for most state and color transitions. - Easing out —
cubic-bezier(0.16, 1, 0.3, 1)for entrances (modal, dropdown, toast) — a confident decelerating settle. - Durations — fast 150ms (hover color, focus ring), standard 240ms (panel/modal entrance, tab-underline slide), slow 320ms (large reveals).
- Hover — primary CTA fills toward
#50d2c1and gains the mint glow over 150ms; rows swap bg toward#121622and border to 28% white; links shift to strong teal. No translateY on default cards. - Tab underline — the 1px mint underline slides between active tabs over 240ms on the standard ease.
- Price flash — when a live figure updates, the cell briefly tints
semantic-up-soft(up) orsemantic-down-soft(down) then fades back over ~400ms; the figure itself never reflows becausetnumholds digit width. - Connect / launch CTA — on hover, the mint glow expands subtly; on press, fill drops to
#2FA89A. - Page / route transition — minimal; content cross-fades on the out ease. No heavy page wipes — speed is the brand.
- Reduced motion —
prefers-reduced-motion: reducehonored: price-flash collapses to an instant color set with no fade, entrances become opacity-only, the tab underline jumps rather than slides, and the mint glow becomes static.
9. Accessibility & A11y
- Contrast: Ink (white 92%) on
#04060c= 17.0:1 (AAA at all sizes). Near-black#04060con Mint#97FCE4= 16.8:1 (AAA — this is why CTAs use near-black text on mint, never white). Body (white 78%) on canvas = 12.8:1 (AAA). Muted (white 60%) on canvas ≈ 7.3:1 (AAA at normal text). Subtle (white 45%) on canvas ≈ 4.5:1 — at the AA boundary, so reserved for disabled/placeholder, never primary content. Up-green#3FD68B(≈10:1) and down-red#FF5470(≈4.9:1) both clear AA on canvas. - Mint-text-on-canvas = 16.8:1 — mint links and labels are fully AAA; mint is safe as both fill and foreground.
- Focus indicator: 3px
rgba(151,252,228,0.55)ring on every interactive element — highly visible against near-black, never removed. - ARIA patterns: The order book and positions tables use
role="table"witharia-sorton sortable headers. Live-updating figures sit inaria-live="polite"regions so screen readers announce fills and PnL changes without spamming. Long/short toggles arerole="radiogroup". - Keyboard nav: All controls reachable by tab; order-entry form fully keyboard-operable; Escape closes modals and popovers; arrow keys move between order-book rows.
- Screen reader hints: Color-coded prices carry visually-hidden “+N% up” / “-N% down” text so meaning never depends on red/green alone. The mint “live” indicator pairs with a text label.
- Reduced motion: Honored — see §8.
10. Responsive Behavior
| Breakpoint | Width | Key Changes |
|---|---|---|
| Mobile | < 640 | Top nav → hamburger; terminal panels stack vertically (chart → order entry → book → positions); marketing grid 1-up; section padding tightens to 48px |
| Tablet | 640–1024 | Marketing grid 2-up; app shows chart + order entry, book/positions behind tabs; side-rail collapses to icons |
| Desktop | 1024–1280 | Full marketing grid; app shows the multi-panel terminal grid; persistent side-rail |
| Wide | > 1280 | Container caps at 1280px on marketing; app expands panels to use 4K estate, order book and depth chart side-by-side |
Touch Targets: Primary CTAs and order-entry controls render at minimum 44 × 44px on touch. Order-book rows expand vertically on mobile for tap accuracy. Quick-fill percentage chips are full-radius, ≥ 32px tall on touch.
Collapsing Strategy: Top nav → hamburger sheet with the mint CTA pinned. Terminal grid → single-column stack with sticky chart and a fixed bottom order-entry sheet. Tables → key columns surfaced, secondary data behind tap-to-expand.
Image Behavior: Marketing media uses loading="lazy" and fixed aspect-ratio frames at 16px radius. The trading surface avoids decorative imagery entirely — charts and data render natively.
11. Content & Voice
- Tone — precise, fast, builder-credible. Hyperliquid speaks like an exchange that trusts its users to be traders: “Trade perps. Fully on-chain. On-chain order book.” Short, declarative, technically specific. Confident without hype.
- Microcopy — sentence case, not all-caps (the anti-Blur choice). “Connect”, “Launch app”, “Open position”, “Close”, “Deposit”. Verbs are direct and singular; numbers are exact.
- CTA verbs — “Launch app” (entry), “Connect” (wallet), “Deposit” / “Withdraw”, “Long” / “Short”, “Close position”, “Read docs”. The primary marketing CTA is “Launch app” or “Start trading”.
- Empty states — minimal and informative. “No open positions” / “No open orders” / “Connect a wallet to start” — one line, no illustration, optionally a quiet mint link to the next step.
- Error messages — direct and remediable. “Insufficient margin” / “Order size below minimum” — name the constraint, name the fix. Wallet/RPC errors surface the provider message in a tooltip.
- Number formatting — always
tnum; price precision scales per market; USD and asset-denominated values both available, USD often in a tooltip. Funding rates show sign and basis explicitly. - Brand voice prohibition — no fake urgency, no emoji in product chrome, no exclamatory marketing. The mint glow does the excitement; the words stay flat and exact.
12. Dark Mode & Theming
Hyperliquid is dark-only, by design. The near-black #04060c canvas with mint voltage is the brand — there is no light variant, and the trader-terminal register would break under one (mint glow and price-flash semantics are tuned for a dark surface). The cool blue-shifted ink is intentional and not user-toggleable.
If a hypothetical light variant ever shipped, the predicted token map would be: bg #ffffff, surface-soft #f6f8fa, surface-strong #eef1f4, border ~rgba(4,6,12,0.12), text ~rgba(4,6,12,0.92), with the mint darkened to #2FA89A-class so it clears AA as a foreground on white (the #97FCE4 brand mint is too light to read on a white surface). But the editorial position is that this surface should not exist — Hyperliquid is a dark, fast, screen-native instrument.
13. Lineage & Influences
Hyperliquid’s design language descends from professional trading terminals filtered through modern dark-product minimalism. The near-black canvas, tabular-mono numeric columns, sparse chrome, and “numbers are the content” priority come straight from the exchange-terminal tradition — TradingView, the dYdX trading surface, GMX. But where those lean utilitarian, Hyperliquid borrows the disciplined dark-surface craft of Linear and Vercel: a single near-black canvas, Inter as the human voice, restrained radius, and one signature accent that does all the chromatic work. The result is a terminal that feels engineered like Linear rather than bolted together like a legacy exchange.
The defining choice — mint-teal on near-black — is its own. Most DeFi brands reach for purple, blue, or neon-green; the cool bioluminescent #97FCE4 cyan-green sits in a near-empty part of the category’s color space, which is exactly why it reads as Hyperliquid the instant it appears. It rejects Blur’s pure-black-orange brutalism (Hyperliquid keeps Inter and softer radius), rejects Coinbase’s corporate navy-blue, and rejects the heavy gradients and glassmorphism common to L1 marketing sites. What it keeps from the broader trader canon: long-green / short-red semantics, tnum everywhere, persistent live data, and a dark surface tuned for overnight sessions.
Influences:
- Linear — Single near-black surface, Inter, restrained radius, one disciplined accent doing the chromatic work. https://linear.app
- Vercel — Minimal dark-product craft, confident sans display, content-forward marketing on a dark canvas. https://vercel.com
- TradingView — Terminal-grade charting, tabular numeric columns, long/short color semantics. https://www.tradingview.com
- dYdX — On-chain perps trading surface; order-book + order-entry terminal layout and dark register. https://dydx.exchange
- GMX — Decentralized perps DEX; dense data-forward trading UI on a dark canvas. https://gmx.io
- Inter by Rasmus Andersson — The typeface for every human surface; chosen for legibility, weight range, and tabular figures. https://rsms.me/inter
14. Do’s and Don’ts
Do
- Keep the canvas at near-black
#04060c(rgb 4, 6, 12) — blue-shifted, not pure black, not navy. - Reserve mint
#97FCE4for primary actions, live data, and the brand mark — scarcity is what makes it read as “actionable”. - Use near-black
#04060ctext on mint CTAs (16.8:1) — never white-on-mint (fails AA). - Use Inter for everything human; drop to tabular mono only for aligned numeric columns.
- Render every changeable figure with
tnumso digits never jitter on update. - Use the restrained radius scale (8px CTAs, 12px cards) — modern, never consumer-rounded.
- Express depth through surface tiers and hairlines first; reserve the mint glow for the primary action and live data.
- Keep headlines and buttons in sentence case — the deliberate anti-Blur choice.
- Use long-green
#3FD68B/ short-red#FF5470for trading semantics, with text labels for a11y. - Honor
prefers-reduced-motion— collapse price-flash and entrances to instant/opacity-only.
Don’t
- Don’t use pure black
#000000(that’s Blur) or navy (that’s Coinbase) — the blue-shifted near-black is the brand. - Don’t add a second accent color — info, success-emphasis, and tertiary highlights all reuse mint.
- Don’t put white text on the mint fill — it fails AA; near-black on mint is the only sanctioned pairing.
- Don’t use mono for prose or Inter for an aligned numeric column — keep the two voices separate.
- Don’t all-caps headlines and buttons — Hyperliquid stays sentence case.
- Don’t over-round into consumer-app territory or flatten to brutalist 0px — hold the 2–16px scale.
- Don’t add heavy gradients or glassmorphism that muddy the near-black canvas.
- Don’t spend the mint glow on decoration — it must always mean “live” or “primary action”.
- Don’t reflow numbers on update —
tnumplus a brief color flash, never a layout shift. - Don’t add fake urgency, emoji chrome, or exclamatory hype — the mint carries the energy, the words stay exact.
15. Agent Prompt Guide
Quick Color Reference
- Brand (Mint):
#97FCE4 - Brand strong (hover):
#50d2c1 - Brand deep (pressed):
#2FA89A - Canvas:
#04060c - Surface soft:
#0a0d16 - Surface strong:
#121622 - Ink (text): white at 92% —
rgba(255,255,255,0.92) - Body: white at 78%
- Muted: white at 60%
- Border: white at 16%
- Up green:
#3FD68B - Down red:
#FF5470 - On-brand (text on mint):
#04060c
Example Component Prompts
- “Create a Hyperliquid hero band: near-black
#04060cbackground, 80px Inter weight 700 headline ‘Trade perps. Fully on-chain.’ with -0.03em tracking in white at 92%, body-lg sub at 18px Inter in white 78%, primary CTA mint#97FCE4with near-black#04060ctext weight 600, 8px radius, 10 × 16 padding labeled ‘Launch app’ that gains a mint glow on hover. Beside it a ghost button ‘Read docs’ — transparent bg, white text, 1px 16%-white border.” - “Design a stat panel row: three cards on
#0a0d16bg, 12px radius, 16px padding. Each: a caption-size label in white 60% (‘24h Volume’, ‘Open Interest’, ‘TVL’) above a mono-price figure 16px tabular in mint#97FCE4. Hairline 1px 16%-white borders, no shadow.” - “Build an order-book panel:
#04060cbg, header row in caption uppercase white 60% (‘Price’, ‘Size’, ‘Total’). Ask rows render the price in down-red#FF5470tabular mono, bid rows in up-green#3FD68Btabular mono, size/total in white 78% mono. Row hover swaps bg to#121622. A center spread row shows mark price in mint#97FCE4mono-price.” - “Render a primary mint CTA: background
#97FCE4, text#04060cweight 600 14px sentence case ‘Connect’, 8px radius, 10 × 16 padding. Hover: fill shifts to#50d2c1and add glow0 0 0 1px rgba(151,252,228,0.4), 0 0 24px rgba(151,252,228,0.18). Pressed: fill#2FA89A. Focus: 3px ringrgba(151,252,228,0.55).” - “Compose a positions table:
#0a0d16panel, 12px radius. Columns: market (Inter 13/500 white 92%), side badge (long →rgba(63,214,139,0.14)bg +#3FD68Btext, full radius; short → red equivalents), size and entry in tabular mono white 78%, PnL in up-green or down-red mono. Row hover → bg#121622, border to 28% white. ‘Close’ button as a small ghost variant per row.” - “Make a connect-wallet modal:
#0a0d16bg, 1px 16%-white border, 12px radius, 24px padding, elevated shadow0 12px 32px rgba(0,0,0,0.6)over argba(2,3,7,0.78)scrim. Title h3 24px Inter 600 white 92%, wallet rows as secondary buttons (#121622bg, 8px radius), a mint accent on the recommended option.”
Iteration Guide
- Near-black canvas
#04060conly — confirm it reads cooler than#000and is not navy. The blue-shift is the brand. - Mint
#97FCE4is the single voltage — if a second accent appears, remove it and route the meaning back to mint. - Near-black text on every mint fill — if you see white-on-mint, it fails AA; fix it.
- Inter for human text, tabular mono only for aligned numbers — keep the two voices cleanly separated.
- Hold the restrained radius — 8px on CTAs, 12px on cards. Not 0px (Blur), not 20px+ (consumer).
- Depth is surface-tier + hairline first; spend the mint glow only on the primary action and live data.
- Sentence case everywhere — if a headline or button is all-caps, lowercase it (this is the anti-Blur tell).
- Numbers use
tnumplus a brief up/down color flash on change — never a layout shift, never a reflow.
Drop hyperliquid into your project, then ship the actual sections in an afternoon.
npx @webdesignhot/design-md add hyperliquid npx agentkit init --design hyperliquid