Design System

Historical source catalogue. Current DS · Live React components. Specimen code below is reference material, not the current React API.

Brandbook & design system

The comic system
behind Pumpcade

… components, … tokens, … pages, reverse-engineered from the original artwork and cross-checked against the running product, measurement by measurement. Nothing here is estimated from a screenshot.

…components
…tokens
…pages
30source frames

Colour

Current token values match the September 29 handoff. This catalogue preserves historical geometry and CSS specimens; use the React workbench for the current API and states.

Semantic

Primitives alias targets, not for direct use

Type

Three roles, three faces. Don't collapse them, that is the mistake analysis/TYPOGRAPHY.md leads with, and it is the authority here.

Pump it

Display chrome

Futura Condensed PT licensed

Barlow Condensed free fallback

Headlines, nav, section headers, result moments, all brand chrome. Always uppercase, always italic.

Will BTC close above 100K?

Body questions

Futura PT licensed

Inter free fallback

Market questions, body copy, descriptions, form labels. Everything a person reads as a sentence.

$48,120.00

Data values

JetBrains Mono free, no licence needed

ui-monospace system fallback

Prices, wallet addresses, volumes, timestamps, IDs, ledger rows. Values, and nothing else.

No font files ship in this kit, on purpose. Futura PT and Futura Condensed PT are licensed to Pumpcade and that licence does not travel in a zip, each studio buys its own (Adobe Fonts, or Paratype / MyFonts) or uses the fallbacks. A layout built entirely on Barlow Condensed + Inter + JetBrains Mono is on-brand; the Figma library is set that way already. Another geometric sans, Poppins, Montserrat, Century Gothic, is not: it breaks the proportions the system is tuned to.

Setting rules

Display is uppercase italic

That slant matches the wordmark's 12° lean, the single strongest type signal in the system.

Caps track 0.08em or more

Every all-caps label. Caps set without tracking looks broken at small sizes.

Digits that move are tabular

font-variant-numeric: tabular-nums on prices, odds, countdowns, balances anything that can change under you.

Mono is for values only

Body copy set in JetBrains Mono is the most common Pumpcade type mistake. It makes every sentence read as terminal output and flattens the hierarchy.

The scale

Shadow

Hard offset, zero blur, always down-right. The scale comes from code usage frequency, not from the artwork.

Sizing

Motion

Six durations, four easings, one distance, each earned by how often it occurs in the product's own source, not chosen. Three things are deliberately absent and the reasons are in analysis/SPEC_MOTION.md: nothing rotates, nothing springs, and no component animates on mount.

Reduced motion is a standard we raise, not one we inherit. The product respects the preference in under half its CSS and in 2 of its 28 motion modules 7%. On a market that flashes and sweeps on the money path, everything here stops instead.

Layout

The system had … components and no layout layer, no grid, no bands, no spacing rhythm. Everything here is measured from all 30 artwork frames rather than chosen.

The frame

The artwork draws exactly two widths and nothing between them, and the rule it follows is that the stage is the width of the nav bar, confirmed on 15 of 15 desktop frames. 768–1279 is undrawn: the code switches to two columns there, a state nobody drew.

 DesktopMobile
Frame1920478
Stage1820412
Outer margin5032
Top margin4018

Width ladder

No column grid, a ladder of bands. Every page in the product hand-typed its own container instead: eight different max-widths in code, none of them 1820.

TokenpxMeasured from
band/bleed1857TickerMarquee; landing places it x34 to x1891
band/stage1820TopNav, and the stage IS the width of the nav bar, on 15 of 15
band/wide1650ActivityRow; the 3-up card band measures 1641-1647
band/pair1569SummaryBar; profile 2-up = 2x775 + 19
band/body1428PriceChart; single-market body x272 to x1700
band/section1007TableHeader, Masthead, TicketPanel, ErrorPanel, all exactly 1007
band/inline491SearchField = StakeInput = Field
band/stage-mobile412MobileHeader, which replaces TopNav entirely on all 13 mobile frames

Region gaps

A second spacing scale, deliberately. space/1–9 in the Sizing table above is intra-component padding, a generic 4-based scale that was never measured. This one is the gap between regions on a page, and it is. They overlap at 8, 16, 24 and 32; where they differ this one wins for composition, because 40 is the page top margin on 15 of 15 frames and 68 is the grid gutter, and neither exists in the padding scale. 44, 47, 49, 52, 70 and 95 occur once each and are rejected as drift; 30 and 36 are list-row pitches, not region gaps.

8gap-1the ChipRow gap, and the product's own gap-2
16gap-2occurs 5×
24gap-3occurs 3×
32gap-4nav to stage, on 15 of 15 desktop frames; the modal gap
40gap-5page top margin on 15 of 15; the section gap
68gap-6the market grid gutter, 574 pitch minus the 506 card

The grid, live

The Meme Madness pages draw on a fixed 1440 stage with a 40px outer margin (content x40 → x1400, a 12-column rhythm) and a 480 mobile stage on 18px margins (4 columns). Toggle the overlay to see the columns against real page anatomy.

Desktop · 1440 margin 40 · 12 col · gutter 24
Mobile · 480 margin 18 · 4 col · gutter 14

Take the tokens

The same 118 tokens, generated straight from the Figma library, in three formats. The Artwork palette is the default; [data-palette="production"] switches the whole set to what globals.css ships today.

Components

… entries. Grouped by what a thing is, not by an atomic level, the artwork is not built bottom-up, so atoms/molecules/organisms produced 863×621 “atoms” and catalogued the same box twice. Surface is the one that matters most: the drawn plate on its own, ready for your content.

Take the artwork

Every component opens with a Download SVG, a Download shape and a copyable source pane. If you'd rather have the lot in one go, take a zip. Shapes are the silhouettes with every text layer and every clip-path texture stripped out, the frame on its own, ready for your own copy. Reapply the dots with the halftone <pattern> primitives.

Icons

… glyphs, everything the artwork and the Meme Madness pages use, normalised to a 32 grid, recolourable, one file each. Click a tile to copy the SVG markup; use the buttons to download. Icons ship as vectors only.

Pages

Every screen in the source file at full resolution, 17 desktop pages up to 1922 × 2537 and 13 mobile, not thumbnails. Open one and you get the page at its real size with its anatomy mapped on top: the components the system actually accounts for, positioned where they sit in the artwork. Click any of them to jump straight to the component.

State coverage against the running product is tracked in site/data/coverage.json and in analysis/. It answers a planning question, what the product ships that the artwork never drew, so it is not part of what a consumer of this system needs on the page.

Cade, the screens

The current set, one route each, every one desktop 1440 and mobile 480 in the same file, set in the product's own faces (Futura PT Cond, Futura PT, JetBrains Mono) and its production tokens. The Prediction Arcade is the homepage: three market categories, a category rail in the client's SportsTab language, a category glyph in every ribbon, one card for all of it, two colourways from one source. Live markets is the in-app generic view. Football is the first sports game centre: the broadcast field with the play drawn on it from the play-by-play feed, the pick, the drive, the five states, the motion timed in the production numbers, every fill named in pcColor. Profile is the redesign of the screen the client asked about. The Cade Cup board is the NFL playoff bracket with a live game on it. States & flows is the system's own reference sheet. Earlier passes and the Meme Madness campaign pages live in the archive.

The Prediction Arcade · homepage

The Prediction Arcade · homepage

Open ↗
The Prediction Arcade · dark colourway

The Arcade · dark colourway

Open ↗
Live markets · the generic view

Live markets · the generic view

Open ↗
Football · the game centre

Football · the game centre

Open ↗
Profile · redesign

Profile · redesign

Open ↗
Cade Cup · the NFL playoff board

Cade Cup · the NFL playoff board

Open ↗
Cade · states and flows, the reference board

States & flows

Open ↗
Archive · earlier passes and the Meme Madness pages

Archive · earlier passes

Open ↗

Meme Madness components

The 19 components these screens are built from, every one of them lives in the library as a real component, not a screenshot. Click any tile to open it in Components.

Brand kit

The official brand library, pulled from the product's own app/assets/brand/v1, not redrawn from artwork. … files in … families, most of them in five colourways: default, black, white, orange and outline. Click any tile to download the SVG.

Cade, brand kit

The second mark in the family: Cade, the prediction-arcade sub-brand. A single C cut from the same bolt-in-counter logic as the Pumpcade wordmark, plus the profile images and the banner set it ships with. Two colourways throughout, arcade orange and the violet used on the battle field.

The mark

C mark376×661 SVGPNG

The counter is a bolt. It reads as a C at signature size and as a lightning strike at app-icon size, the reason this direction was chosen over the three earlier explorations.

Profile images

Cade PFP · orangePFP · orange1000²SVGPNG
Cade PFP · violetPFP · violet1000²SVGPNG

Banners

Cade V1 · orangeV1 · orange1500×500SVGPNG
Cade V1 · violetV1 · violet1500×500SVGPNG
Cade V2 · darkV2 · dark1500×500SVGPNG
Cade V2 · violetV2 · violet1500×500SVGPNG
Cade V3 · violetV3 · violet1500×500SVGPNG
Cade V3.1 · orangeV3.1 · orange1500×500SVGPNG
Cade V4 · darkV4 · dark1500×500SVGPNG
Cade V4 · orangeV4 · orange1500×500SVGPNG