Dub design specDev Tools

A bright, deliberately plain link-attribution surface (light, not the near-black dev-tool look the category implies): Tailwind-neutral chrome with pure black as the primary button, and a display face that splits from body by family and size rather than weight — Satoshi held at 500 and never below 36px over Inter for everything else. All the colour is data colour, confined to analytics chips, chart markers and demo artwork, and hover lift is a distinctive white-ring halo rather than a drop shadow.

Browse Dub in the interactive gallery

Captured from the live site's computed styles into a prompt-ready DESIGN.md you can paste into Cursor, v0, Lovable, Bolt or Claude Code. Below is a summary of each captured surface.

Marketing site

Source: dub.co (live DOM, computed styles), 2026-07-19. No brand CSS custom properties are published — every value is read from computed styles. Coverage: home / link-attribution landing. Logged-in dashboard not captured (needs login). Note: the site is light, not the near-black dev-tool minimal the category hint suggested.

Visual Theme & Atmosphere

Dub is a bright, Tailwind-neutral SaaS surface: a #fafafa canvas with white cards, the full neutral gray ladder for text and hairlines, and pure black #000000 as the primary button. It reads as deliberately plain chrome — the interest comes from two places. First, type: Satoshi carries every heading at a single weight 500 with 48px display set at a 1.0 line-height, while Inter handles all body copy, so the page has a display/body split without any weight drama. Second, colour is entirely data colour — orange, purple, green and blue appear only as analytics chips, chart dots and radial "glow" markers, plus one conic rainbow used for a QR-code demo. Everything else is gray. Feels: bright, plain-chromed, analytics-forward, utilitarian.

Color Palette & Roles

Neutral ladder (Tailwind neutral)

TokenHexRole / usage
black#000000Primary button fill
ink#0a0a0aCard / control text
ink-2#171717Headings (most common)
text-2#262626Secondary UI text
text-3#404040Tertiary
body#525252Body copy
muted#737373Muted label
faint#a3a3a3Caption / fine print
border-strong#d4d4d4Pill border
border#e5e5e5The standard hairline
fill#f5f5f5Tonal control fill
canvas#fafafaPage background
white#ffffffCards, nav, secondary buttons

Data / analytics colours

TokenHexRole / usage
green#4ade80Chart / status marker
green-bg#dcfce7Positive chip ground
green-ink#166534Positive chip text
blue#3b82f6Chart marker
blue-bg#dbeafeInfo chip ground
blue-link#2563ebLink colour
blue-2#1976d2Secondary link
orange#fb923cChip / marker
orange-ink#7c2d12Text on orange chip
purple#c084fcChip / marker
purple-ink#581c87Text on purple chip
violet#7c3aedStory / editorial link
red#d32f2fError / negative
github#24292eGitHub brand text

Signature gradients

Rules. Chrome is black, white and the neutral ladder only. Every hue on the page is a *data* colour — chips, chart markers and the QR demo — never a button fill or heading colour. Blue #2563eb is the one link colour.

Typography Rules

RoleFamilySize/LineWeightTracking
Hero h1satoshi48/55.2500normal
Section h2satoshi48/48500normal
Section h2 (medium)satoshi40/40500normal
Section h2 (small)satoshi36/40500normal
Card h3Inter16/24500normal (#0a0a0a)
Lead paragraphInter20/28400normal (#525252)
CaptionInter12/16400normal (#a3a3a3)
Button labelInter14-16400-500normal

Patterns: Satoshi never leaves weight 500 and never appears below 36px — the display/body split is by *family and size*, not weight. The larger section headings run at a 1.0 line-height (48/48, 40/40) while the hero relaxes to 55.2. Tracking is normal at every size. Card titles drop to Inter at 16px, so the display face is reserved strictly for section-level type.

Also documented in the full DESIGN.md: Component Stylings, Layout Principles, Depth & Elevation, Motion, Backgrounds, Effects & WebGL, Do's and Don'ts, Responsive Behavior, Agent Prompt Guide.