Visual Theme & Atmosphere
Binance reads like a financial trading platform that wants to feel both authoritative and energetic. The base atmosphere is deep near-black canvas ({colors.canvas-dark} — #0b0e11) holding white type and a single, ubiquitous accent: Binance Yellow ({colors.primary} — #FCD535). That yellow does almost all of the brand's heavy lifting — it carries every primary CTA, every value-claim headline ("FUNDS ARE SAFU"), every "Sign Up" pill, every featured tier indicator, and the wordmark itself. There is no secondary brand color. The system trusts the yellow voltage to do the brand work, and it carries it.
Type runs Binance's custom BinanceNova (display + body) and BinancePlex (numerical / financial display) stack. BinanceNova carries display headlines, section titles, and body copy. BinancePlex appears on price tickers, large stat numbers (transaction volumes, user counts, prize pools) — anywhere a number wants to feel "tabular and reliable." Both run at modest weights — display sizes use weight 600-700 (bolder than typical marketing because trading platforms need numbers to read at a glance), body stays at 400.
...
Key Characteristics:
- Single accent color:
{colors.primary}(#FCD535) does all brand voltage — primary CTAs, hero headlines, brand mark, badges. Used scarcely on dark for emphasis, ubiquitously on transactional dialogs. - ...
Live Visual Theme Representation:
Color Palette & Roles
Brand & Accent
- Binance Yellow (
{colors.primary}— #FCD535): The single brand color. Used for primary CTA backgrounds, the wordmark, brand-claim headlines ("FUNDS ARE SAFU"), trust badges ("No.1 Trading Volume"), large stat numbers in{component.stat-callout-card}, and inline links. - Binance Yellow Active (
{colors.primary-active}— #f0b90b): The press / hover-darker variant. Slightly more saturated yellow. - ...
Surface
The system has two canvas modes that map to product context:
Dark mode (marketing default):
- Canvas Dark (
{colors.canvas-dark}— #0b0e11): The primary page floor. Near-black with a slight warm tint — never pure black. - ...
- Canvas Light (
{colors.canvas-light}— #ffffff): The page floor on transactional pages (buy crypto, deposit forms, account dialogs). - ...
Hairlines & Borders
- Hairline on Light (
{colors.hairline-on-light}— #eaecef): The 1px border tone on light surfaces. Dembrandt's frequency analysis confirms this as the highest-count token (1022 occurrences) — Binance uses hairlines liberally. - Hairline on Dark (
{colors.hairline-on-dark}— #2b3139): The 1px border tone on dark surfaces. Same hex as{colors.surface-elevated-dark}— borders feel like surface steps, not ink lines. - ...
Text
- Ink (
{colors.ink}— #181a20): The strongest text on light surfaces. Display headlines on transactional pages. - Body on Dark (
{colors.body}— #eaecef): Default running-text on dark canvas — deliberately not pure white, slightly cooler. - ...
Trading Semantics
- Trading Up (
{colors.trading-up}— #0ecb81): Price-up green, used as text color in tables, charts, and inline ticker arrows. Never as a button background. - Trading Down (
{colors.trading-down}— #f6465d): Price-down red. Same usage rules as trading-up.
Info / Focus
- Info (
{colors.info}— #3b82f6): Inline info badges and the focus-ring base. The Tailwind--tw-ring-colortoken surfaced by dembrandt — used on input focus.
Typography Rules
Font Family
The system runs BinanceNova for display and body, and BinancePlex for numerical / financial data. Both are licensed Binance custom typefaces. The fallback stack walks-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif.
The split is functional, not decorative:
- BinanceNova → editorial type (headlines, paragraphs, button labels, nav)
- BinancePlex → tabular numerical type (prices, volumes, percentages, stat counters, prize pools)
Hierarchy
| Token | Size | Weight | Line Height | Letter Spacing | Use |
|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... |
Principles
Note on Font Substitutes
Layout Principles
Spacing System
- Base unit: 4px.
- Tokens:
{spacing.xxs}4px ·{spacing.xs}8px ·{spacing.sm}12px ·{spacing.md}16px ·{spacing.lg}24px ·{spacing.xl}32px ·{spacing.xxl}48px ·{spacing.section}80px. - ...
Grid & Container
- Max content width: ~1280px centered on marketing pages; ~1440px on product surfaces (markets, smart-money tables) where horizontal density matters.
- Editorial body: Single 12-column grid; product pages often use 8/4 split (main panel + side rail).
- ...
Whitespace Philosophy
Binance is denser than typical marketing sites — long-scroll pages mix hero bands with markets tables, FAQ accordions, and feature grids without much breathing room between them. The system trusts contrast (yellow vs. dark canvas, green vs. red price cells) to do the visual separation work, not whitespace. Where whitespace appears, it's always uniform —{spacing.section} between every major band.
Grid Layout Wireframe Mockup:
Depth & Elevation
| Level | Treatment | Use |
|---|---|---|
| ... | ... | ... |
{colors.canvas-dark} and {colors.surface-card-dark} (a 12-step lightness jump that reads as a clear elevation boundary).
Decorative Depth
- Yellow → dark vertical gradient backdrop on the Futures Arena hero:
{colors.primary}fading down to{colors.canvas-dark}. This is a single-page treatment used for product-launch / event hero surfaces, not a system-wide signature. - Coin-stack illustrations flanking large stat blocks (3D rendered crypto coins, trophy icons). These are illustrations, not tokens — treat as content rather than design system surface.
Elevation Level Showcase:
Binance utilizes deep box shadows (`rgba(0,0,0,0.5)`) to layer trading tool boxes on void black.
Used for background layers, sidebar headers, or baseline borders.
Used for floating product elements, cards, and hover states.
Used for modals, select menus, code editor tooltips, and overlay headers.
Border Radius & Shape Scale:
Component Stylings
Border Radius Scale
| Token | Value | Use |
|---|---|---|
| ... | ... | ... |
Photography & Iconography
- Coin icons render as 24×24 or 32×32 rounded glyphs (often 50% radius on circular outline + the coin's brand color inside).
- 3D rendered coin stacks and trophy illustrations are full-color illustrations with a slight floor shadow — not flat icons.
- ...
Top Navigation
top-nav-dark — The marketing top nav on dark canvas. 64px tall, {colors.canvas-dark} background. Carries the yellow Binance wordmark at left, primary horizontal menu (Buy Crypto, Markets, Trade, Futures, Earn, Square, Smart Money, Campaigns), right-side cluster with language selector, light/dark toggle, "Log In" text link, "Sign Up" {component.button-primary}. The wordmark uses {colors.primary} for "BINANCE" type.
top-nav-light — The transactional top nav on light canvas (buy crypto, deposit pages). Same layout but {colors.canvas-light} background and {colors.ink} menu items.
Buttons
button-primary — The signature primary CTA. Background {colors.primary}, text {colors.on-primary} (black on yellow — the system's iconic combination), type {typography.button}, padding 12px × 24px, height 40px, rounded {rounded.md} (6px). Press state: button-primary-active darkens to {colors.primary-active} (#f0b90b). Disabled state: button-primary-disabled desaturates to {colors.primary-disabled}.
button-primary-pill — A larger pill variant of the primary CTA used for top-of-page sign-up moments and product-launch heroes (Futures Arena "Join Now"). Same yellow + black combination, padding 14px × 32px, rounded {rounded.pill} (9999px). Use sparingly — the pill is a "this is THE action" signal.
button-secondary-on-dark — Used over {colors.canvas-dark} for less-emphasized actions. Background {colors.surface-card-dark}, text {colors.on-dark}, rounded {rounded.md}.
button-secondary-on-light — Light-canvas equivalent. Background {colors.canvas-light} with {colors.hairline-on-light} 1px border, text {colors.ink}.
button-tertiary-text — Inline text button with no background. Used for "Log In" in the top nav and inline "Read More" links.
button-trading-up — A solid green button used on price-up signals (Buy / Long actions). Background {colors.trading-up}, text {colors.on-dark}, rounded {rounded.sm} (4px), padding 8px × 20px. Smaller and tighter than {component.button-primary} because it appears in dense trading interfaces.
button-trading-down — Symmetric red variant for Sell / Short actions. Same shape, background {colors.trading-down}.
button-subscribe — Compact yellow CTA used in the Smart Money traders table to subscribe to a top trader. Smaller height (28px) and tighter padding than the primary CTA — fits inside dense table rows. Same yellow + black combination.
text-link — Inline body links in {colors.primary} (yellow on dark, also yellow on light). No underline by default. Type inherits {typography.body-md}.
Cards & Containers
hero-band-dark — Full-width dark band carrying the homepage h1 + sub-headline + dual CTA pair. Background {colors.canvas-dark}, padding {spacing.section} (80px). The h1 ("316,258,026 USERS TRUST US") uses {typography.hero-display} at 64px / 700 — the system's largest type role.
stat-callout-card — Inline yellow stat numbers (15,000 BTC, 7,488,223, $429,423,449). Transparent background, text {colors.primary}, type {typography.number-display} in BinancePlex. Used as a flat layout block, not a card with surface — the yellow text alone carries the visual weight.
trust-badge — Small dark cards holding "No.1 Customer Service" / "No.1 Trading Volume" claims. Background {colors.surface-card-dark}, rounded {rounded.lg} (8px), padding 16px × 20px. Yellow numeric or word badge ("No.1") sits next to a short label.
markets-table-card — The right-side markets table on the homepage. Background {colors.surface-card-dark}, rounded {rounded.xl} (12px), padding {spacing.lg} (24px). Carries a tab row (Popular / New listing / Top gainers), then a 5-column row of coin pairs with last price, 24h change %, action button. Each row uses {component.markets-row}.
markets-row — A single row inside the markets table. Transparent background, 12px vertical padding, hairline divider between rows. Coin icon (32×32) + symbol on left; last price in {typography.number-md} (BinancePlex); 24h change cell colored by direction ({component.price-up-cell} or {component.price-down-cell}); right-aligned chevron icon for "view detail."
price-up-cell / price-down-cell — Colored text cells for price changes. Transparent background, text {colors.trading-up} or {colors.trading-down}, type {typography.number-md} in BinancePlex. Always paired with a small triangle arrow indicating direction.
feature-photo-card — The "Trade on the go" section's photo strip — 3 lifestyle photos showing people using the Binance app. Background {colors.surface-card-dark}, rounded {rounded.xl}. Photos crop edge-to-edge, no internal padding around the image.
qr-promo-card — The "Trade on the go. Anywhere, anytime." card with QR code. Background {colors.surface-card-dark}, rounded {rounded.xl}, padding {spacing.xl} (32px). Contains an h2 in {typography.title-md}, a body paragraph, app store badges (iOS / Android), and a centered QR code.
funds-safu-band — The yellow-headlined "FUNDS ARE SAFU" band. Background stays {colors.canvas-dark}, but the headline uses {colors.primary} at {typography.display-lg}. Below the headline, three large {component.stat-callout-card} numbers anchor the band: total BTC reserves, users helped, funds recovered.
faq-row — A single FAQ accordion row. Transparent background, padding 20px vertical, hairline divider between rows. Closed state: question in {typography.title-sm} + chevron icon at right. Open state: question + answer body in {typography.body-md}.
cta-band-dark — The "Secure, Low-Fee Trading on Binance" pre-footer CTA band. Background {colors.surface-card-dark} (one step elevated from canvas), rounded {rounded.xl}, padding {spacing.xxl} (48px). Carries an h2 in {typography.display-sm} and a {component.button-primary} aligned right.
Light-Mode Transactional Components
buy-crypto-amount-card — The right-rail card on the Buy BTC page. Background {colors.canvas-light}, rounded {rounded.lg} (8px), padding {spacing.lg} (24px). Carries an editable amount input in {typography.number-display} (BinancePlex), a currency selector, and a yellow {component.button-primary} for "Continue" / "Confirm Order."
steps-card — The "How to Buy Crypto" 3-up cards (Enter Amount → Confirm Order → Receive Crypto). Background {colors.canvas-light}, rounded {rounded.lg}, padding {spacing.lg}. Each card has a small numbered icon, a {typography.title-sm} step name, and a body description.
price-chart-card — The "Bitcoin Markets" card carrying the BTC price chart. Background {colors.canvas-light}, rounded {rounded.lg}. Top row carries pair selector ($79,065.04, +0.45%); main area is a candlestick / line chart in {colors.trading-up} and {colors.trading-down}; bottom row carries timeframe selector (24H / 1W / 1M / 3M / 1Y / ALL).
conversion-cell — A single row in the BTC ↔ USD conversion table. Transparent background, text {colors.body-on-light}, type {typography.body-md}. Pair label on left (BTC, USDT, etc.); USD equivalent on right.
Inputs & Forms
search-input-on-dark — The "Search currencies" input on the homepage hero. Background {colors.surface-card-dark}, text {colors.on-dark}, rounded {rounded.lg} (8px), padding 10px × 16px, height 40px. Carries a yellow {component.button-primary-pill} on the right side ("Sign Up").
text-input-on-light — Standard input on transactional pages. Background {colors.canvas-light}, 1px {colors.hairline-on-light} border, rounded {rounded.md} (6px), padding 10px × 16px, height 40px. Focus state inherits the focus-ring shadow.
cookie-consent-card — The cookie banner card visible on the homepage. Background {colors.canvas-light}, rounded {rounded.lg}, padding {spacing.md} (16px). Body text in {typography.body-sm} (13px / 400) with three stacked button options (Accept Cookies & Continue / Reject Additional Cookies / Manage Cookies).
Smart Money Sub-System
trader-row — A single row in the top-traders table on /smart-money. Transparent background, padding 12px vertical, hairline divider between rows. Avatar + trader name + private/public badge on left; ROI %, AUM, mint date columns; yellow {component.button-subscribe} on right.
Signature Components
arena-hero-gradient — The Futures Arena product-launch hero. A vertical gradient from {colors.primary} at top to {colors.canvas-dark} at bottom, with the prize-pool headline (4,000,000 USDT) in {typography.display-lg} centered. A {component.button-primary-pill} ("Join Now") sits below the headline. Used only on product-launch event surfaces — do not generalize to other heroes.
Footer
footer-light — The light-gray footer that closes every page (including dark-canvas pages). Background {colors.surface-soft-light} (#fafafa), text {colors.body-on-light}. 6-column link list at desktop covering Community / About Us / Products / Business / Service / Learn columns. Vertical padding 64px. The deliberate light footer on a dark page is one of Binance's most distinctive layout choices — it visually closes the page with a "marketing reset" surface.
Interactive Component Demonstrations:
Do's and Don'ts
Do
- Reserve
{colors.primary}(Binance Yellow) for primary actions, brand-claim headlines, and the wordmark. Never use it for secondary or decorative purposes — yellow's scarcity is what makes it powerful. - Keep
{component.button-primary}(yellow with black text) as the universal primary CTA across both dark and light modes. The same button appears identically on{colors.canvas-dark}and{colors.canvas-light}. - Use
{component.button-trading-up}(green) and{component.button-trading-down}(red) only for explicit Buy/Sell or Long/Short actions. Never use them for general "confirm" or "cancel" because they carry semantic price-direction meaning. - Use BinancePlex for every number. Prices, volumes, percentages, stat counters — all BinancePlex. Mixing BinanceNova into a number ticker breaks the trading-platform character.
- Choose canvas mode by surface intent: dark for marketing / product showcase / trading dashboards; light for transactional dialogs (buy / deposit / withdraw / form submission).
- Anchor every editorial band with
{spacing.section}(80px). Binance is denser than airy marketing sites — 80px is the right rhythm.
Don't
- Don't introduce a second brand color. The system has exactly one accent (
{colors.primary}) and any expansion dilutes the brand identity. The turquoise on Smart Money is a single-product experiment, not a system token. - Don't use yellow for body text or large surface fills. It is for focal-point CTAs and headlines only.
- Don't use
{colors.trading-up}/{colors.trading-down}as background fills on cards. They are price-direction signals, expressed as text color or small badge fill — never as a card surface. - Don't soften display weight.
{typography.hero-display}and{typography.display-lg}are intentionally weight 700 — going to 400 reads as design-portfolio, not trading platform. - Don't add atmospheric gradients to the canvas (mesh, aurora, glow effects). Binance trusts color-block contrast — adding atmospheric depth muddies the trading-platform feel.
- Don't invert
{component.button-primary}'s text color. Black on yellow is the system's signature — white text on yellow loses contrast and brand recognition.
- Reserve
{colors.primary}(Binance Yellow) for primary actions, brand-claim headlines, and the wordmark. Never use it for secondary or decorative purposes — yellow's scarcity is what makes it powerful. - Keep
{component.button-primary}(yellow with black text) as the universal primary CTA across both dark and light modes. The same button appears identically on{colors.canvas-dark}and{colors.canvas-light}. - Use
{component.button-trading-up}(green) and{component.button-trading-down}(red) only for explicit Buy/Sell or Long/Short actions. Never use them for general "confirm" or "cancel" because they carry semantic price-direction meaning. - Use BinancePlex for every number. Prices, volumes, percentages, stat counters — all BinancePlex. Mixing BinanceNova into a number ticker breaks the trading-platform character.
- Choose canvas mode by surface intent: dark for marketing / product showcase / trading dashboards; light for transactional dialogs (buy / deposit / withdraw / form submission).
- Anchor every editorial band with
{spacing.section}(80px). Binance is denser than airy marketing sites — 80px is the right rhythm.
- Don't introduce a second brand color. The system has exactly one accent (
{colors.primary}) and any expansion dilutes the brand identity. The turquoise on Smart Money is a single-product experiment, not a system token. - Don't use yellow for body text or large surface fills. It is for focal-point CTAs and headlines only.
- Don't use
{colors.trading-up}/{colors.trading-down}as background fills on cards. They are price-direction signals, expressed as text color or small badge fill — never as a card surface. - Don't soften display weight.
{typography.hero-display}and{typography.display-lg}are intentionally weight 700 — going to 400 reads as design-portfolio, not trading platform. - Don't add atmospheric gradients to the canvas (mesh, aurora, glow effects). Binance trusts color-block contrast — adding atmospheric depth muddies the trading-platform feel.
- Don't invert
{component.button-primary}'s text color. Black on yellow is the system's signature — white text on yellow loses contrast and brand recognition.
Responsive Behavior
Breakpoints
| Name | Width | Key Changes |
|---|---|---|
| ... | ... | ... |
Touch Targets
- Primary CTAs render at minimum 40 × 40px (
{component.button-primary}height + padding) — meets WCAG AAA's 44 × 44 with surrounding spacing. - Subscribe / inline action buttons are 28 × 28 — denser than ideal but matches industry trading platform norms.
- ...
Collapsing Strategy
- Top nav collapses to hamburger at < 768px; the menu opens as a full-screen sheet with the same yellow accent CTAs anchored to the bottom of the sheet.
- Markets table reflows to a horizontally-scrollable single card per coin pair on mobile.
- ...
Image Behavior
- Coin icons stay at fixed 24/32px sizes regardless of breakpoint.
- Lifestyle photos in the "Trade on the go" section crop responsively — wider at desktop, taller (vertical) at mobile.
- ...
Responsive Adaptation Note:
Agent Prompt Guide
1. Focus on ONE component at a time. Reference its YAML key directly ({component.button-primary}, {component.markets-row}).
2. When adding a new component, decide first whether it lives in dark mode (marketing / product) or light mode (transactional). The same component appears in both with surface tone flipped.
- ...
Copyable Agent Integration Prompt:
"Generate a trading table: void black backdrop (#0b0e11), bright yellow accents (#fcd535), and red/green stat indicators."
Full System Design Tokens
The parsed design tokens extracted from the core stylesheet of this design system:
| Design Token | Hex Value | System Palette Role |
|---|---|---|
| --primary | #fcd535 | System color representation for primary |
| --primary-active | #f0b90b | System color representation for primary-active |
| --primary-disabled | #3a3a1f | System color representation for primary-disabled |
| --ink | #181a20 | System color representation for ink |
| --body | #eaecef | System color representation for body |
| --body-on-light | #181a20 | System color representation for body-on-light |
| --muted | #707a8a | System color representation for muted |
| --muted-strong | #929aa5 | System color representation for muted-strong |
| --hairline-on-light | #eaecef | System color representation for hairline-on-light |
| --hairline-on-dark | #2b3139 | System color representation for hairline-on-dark |
| --border-strong | #cdd1d6 | System color representation for border-strong |
| --canvas-light | #ffffff | System color representation for canvas-light |
| --canvas-dark | #0b0e11 | System color representation for canvas-dark |
| --surface-card-dark | #1e2329 | System color representation for surface-card-dark |
| --surface-elevated-dark | #2b3139 | System color representation for surface-elevated-dark |
| --surface-soft-light | #fafafa | System color representation for surface-soft-light |
| --surface-strong-light | #f5f5f5 | System color representation for surface-strong-light |
| --on-primary | #181a20 | System color representation for on-primary |
| --on-dark | #ffffff | System color representation for on-dark |
| --trading-up | #0ecb81 | System color representation for trading-up |
| --trading-down | #f6465d | System color representation for trading-down |
| --accent-turquoise | #2dbdb6 | System color representation for accent-turquoise |
| --info | #3b82f6 | System color representation for info |
| --info-ring | #3b82f6 | System color representation for info-ring |