Cardplane Design System

Dark-first, neon-accented design system for a Latin-American card-issuing & payments-infrastructure platform. Documents the marketing site and the production product dashboard. Built on Geist + Tailwind v4 with hot-magenta as the dominant accent and selective deep-purple for AI surfaces.

Colors

Single shared palette across web + app. Neon pink (#ec4899) is the only true brand colour; a deep purple is reserved for AI/secondary surfaces. Greens appear only on positive status pills. Nearly every surface lives on the dark side — light sections are rare and intentional.

Brand

Pink 500
#ec4899
Pink 400 — hover
#f472b6
Pink 300 — soft
#f9a8d4
Purple 400 — AI
#c084fc
Purple 700 — depth
#7e22ce

Backgrounds

Page (web)
#080C21
Page (app)
#0A0F22
Rail (deepest)
#070B1B
Elevated
#12162B
Inverse
#FFFFFF

Text

Primary
#FFFFFF
Tinted
#FFE4FF
Muted
#9CA3AF
Subtle
#5b6371

Status

Approved
#22c55e
Lost (on-brand)
#ec4899
In progress
#9CA3AF

Typography

Geist (Vercel's sans) for everything UI. Geist Mono for code/IDs. Display sizes tighten line-height and letter-spacing aggressively (-3px on the 100px hero) for that compressed, cinematic title feel.

Display 1 · 100/100 · -3px · Geist 600 · #FFFFFF
Smart payments
infrastructure.
H2 · 65/65 · -2px · Geist 600
One technology, endless applications
H3 · 40/48 · Geist 600
A complete platform for issuing your card program.
Lead · 20/28 · Geist 400 · muted
Launch credit, debit and prepaid cards with an API-first platform built to scale.
Body · 16/20.8 · Geist 400 · #9CA3AF
A modular, API-first, cloud-native platform for launching, operating, and managing card businesses across the Americas. Built for fintechs that need to move fast without compromising compliance.
UI · 13/19.5 · Geist 400 — buttons, nav, links
Issuer Processing  ·  BIN Sponsorship  ·  Risk Management  ·  Use Cases
RoleSizeLineWeightLetter-spacing
Display 1 (hero h1)100px100px600-3px
Display 280px80px600-2.5px
H265px65px600-2px
H340px48px6000
H4 / Card title24px32px600-0.5px
Lead20px28px4000
Body16px20.8px4000
Body small / table14px20px4000
UI / nav / chip13px19.5px4000
Label12px16px5000
Micro10px14px5000

Spacing & Layout

Tailwind v4 with a custom rem scale (1rem = 10px on the marketing site, default 16px on the dashboard). Wrapper maxes at 1440px. Sections breathe — vertical rhythm runs from 5.5rem (compact) to 12rem (spacious) on desktop.

TokenPx (default)Use
--space-14pxInline icon gap, dot padding
--space-28pxTight inline gap
--space-312pxCard-internal small gap
--space-416pxDefault inline padding
--space-624pxCard padding, grid gap
--space-832pxComponent padding (feature card)
--space-1248pxSection internal padding
--space-2080pxCompact section gap
--space-32128pxDefault section gap

Layout constants

Wrapper max-width1440px
Container padding (desktop)32px
Container padding (mobile)20px
App icon-rail width64px
App topbar height72px
KPI card min-height168px

Radius & Shadows

Two radii do almost all the work: 50px (pills — every CTA, every chip, every status badge) and 18px (cards). A single drop shadow plus the signature pink glow handle elevation.

Radius scale

TokenValueUse
--radius-xs2pxHairline tags
--radius-sm5pxLanguage switcher, inline controls
--radius-md8pxSmall icons, code blocks
--radius-lg10pxInputs, search bar, logo tile
--radius-xl18pxFeature cards, KPI cards, card art
--radius-2xl32pxHero containers
--radius-pill50pxAll buttons, chips, status pills

Shadows

TokenValueUse
--shadow-card0 25px 50px -12px rgba(0,0,0,0.25)Heavy drop on showcased card art
--shadow-glow-pink0 0 40px rgba(236,72,153,0.45), 0 0 80px rgba(236,72,153,0.18)Brand glow — CTAs on hover, hero card
--shadow-glow-purple0 0 40px rgba(192,132,252,0.35)AI chip / secondary glow

Motion

Restrained — sections fade-in-up on scroll, buttons add a glow on hover, cards lift their border colour. Everything resolves under 350ms.

TokenValueUse
fade-in-upfade-in-up .35s ease-out bothSection reveals on scroll
transition-defaultall 200ms easeButtons, nav links
transition-glowbox-shadow 300ms ease, transform 200ms easeCTA hover
Marketing site

Website Components

Public-facing surfaces — pricing, product pages, about. Every interactive surface is a pill, every section drops onto a glowing dark ground.

Buttons

Primary CTAs are solid pink pills with dark text — the only way to start a flow. Ghost buttons border-only. No square buttons exist anywhere in the system.

Primary
Ghost
/* Primary CTA */
background:    #ec4899;
color:         #080C21;
border-radius: 50px;
padding:       10px 22px;
font:          500 13px/19.5px Geist;

/* Hover lifts a pink halo */
:hover { background: #f472b6; box-shadow: 0 0 24px rgba(236,72,153,0.55); }

Tabs & Pills

Selector pills used heavily in nav and category switchers. Active state inverts to solid pink.

Feature Cards

Soft frost over the elevated background, 18px radius, 32px padding. Hover bumps the border to brand-pink and adds a subtle glow.

Custom programs

Issue credit, debit and prepaid cards with co-branded artwork.

Embedded access

Modular, API-first architecture — drop in only what you need.

Real-time controls

Visibility and control across every transaction at any scale.

3D Card Art

Hero card mockups use a pink→purple linear gradient with a heavy drop shadow plus the brand glow. Always rotated slightly in 3D for depth.

•••• 4242

Navigation

Top nav is a single row of 13px white links with generous vertical padding (30px) and a single language switcher on the right.

Product dashboard

App / Portal Components

Operations dashboard for issuer/processor teams — left icon rail, KPI row, transaction-driven data tables, and a purple AI assistant chip pinned to the top-right.

Shell & Icon Rail

Fixed 64px rail on the left with a logo tile up top, grouped icons in the middle, user avatar at the bottom. Active item gets a 3px pink bar at the left edge.

Rail width64px
Rail background#070B1B
Inactive icon#5b6371
Active icon#FFFFFF + 3px #ec4899 bar
Hovercolor: #ec4899
Logo tile40×40 / radius 10px / pink→purple gradient

KPI Cards

Three-up grid above the transactions table. Frost surface (white @ 2%), 18px radius, 168px min-height. Headline metric in 40px Geist 500 with a tabular-nums treatment so digits don't jiggle.

Average spending
$ 80.53+10%
Tokenization
G
+1
Chargebacks info
1 in progress  –  $ 77.45 2 won  –  $ 50.23 1 lost  –  $ 120.05

Data Table

No striping. Hairline row dividers in white @ 5%. Header in 14px muted, sentence case. Cells in 16px primary white. Date cells get a 12px time sub-line. Amounts are right-aligned and tabular.

DateTypeOriginMerchantAmountState
17/09/202506:12:59 Purchase Domestic New Balance $120.05 Approved
14/09/202515:20:45 Withdrawal Domestic BC Bank $50.10 Approved
01/09/202509:15:30 Reversal Domestic Zara $39.99 Lost

Status & Type Pills

Status pills carry a 6px leading dot. Type pills (Purchase / Withdrawal) are border-only with muted text. Note: lost status uses pink instead of red — staying on-brand.

Approved In progress Won Lost Purchase Withdrawal Reversal

AI Assistant Chip

Pinned top-right of every dashboard view. Purple gradient — the only spot purple is dominant over pink. Always pill-shaped, always with the sparkle glyph.

Cardplane AI

Full Dashboard Mock

A condensed reproduction of the live operations view — icon rail, search topbar, KPI row, transaction table.

📈
$
CN
Cardplane AI
Average spending
$ 80.53+10%
Tokenization
+1
Chargebacks info
● 1 in progress – $ 77.45 ● 2 won – $ 50.23 ● 1 lost – $ 120.05
DateTypeMerchantAmountState
17/09/202506:12 Purchase New Balance $120.05 Approved
15/09/202510:16 Purchase Supermarket $32.70 Approved
14/09/202515:20 Withdrawal BC Bank $50.10 Approved

Tailwind Reference

The paired design-system.json ships a tailwind block with theme extensions and component recipes. Drop it into tailwind.config.ts → theme.extend (or mirror into @theme for v4) and treat the recipes as required source instead of default Tailwind tokens.

theme.extend mappings

ScopeBrandBody FontDefault RadiusGlowWrapper
Websitebrand.pink #ec4899Geistpill (50px)shadow-glowPink1440px
App / Portalbrand.pink #ec4899Geistxl (18px)shadow-glowPurplefluid

Component recipes

ScopeRecipeClass pattern
WebsitebuttonPrimaryinline-flex items-center justify-center rounded-pill bg-brand-pink text-fg-onPink px-5 py-2.5 text-ui font-medium transition-shadow hover:bg-brand-pinkHover hover:shadow-glowPink
WebsitebuttonGhostinline-flex items-center justify-center rounded-pill bg-transparent text-fg-primary border border-border-subtle px-5 py-2.5 text-ui hover:bg-bg-frost
WebsitetabPillrounded-pill border border-border-subtle text-fg-primary text-ui px-3.5 py-1.5 data-[active=true]:bg-brand-pink data-[active=true]:text-fg-onPink
WebsitefeatureCardrounded-xl bg-bg-elevated/60 border border-border-subtle p-8 hover:border-brand-pink/45 hover:shadow-glowPink/30
AppiconRailfixed left-0 top-0 h-screen w-rail bg-bg-rail flex flex-col items-center py-4 gap-8
AppkpiCardrounded-xl bg-white/[0.02] border border-border-card p-6 min-h-[168px] flex flex-col gap-3
AppkpiValuetext-kpiValue text-fg-primary tabular-nums tracking-tight
AppaiChipinline-flex items-center gap-2 rounded-pill bg-aiChip border border-brand-purple/35 text-brand-purple text-sm font-medium px-4 py-2 hover:shadow-glowPurple
AppstatusPillApprovedinline-flex items-center gap-1.5 rounded-pill bg-status-approvedBg border border-status-approvedBorder text-status-approved text-ui px-3 py-1
ApptypePillinline-flex items-center rounded-pill border border-border-input text-fg-muted text-ui px-3.5 py-1
ApptableRowborder-t border-border-table hover:bg-white/[0.03] transition-colors

Downloadable Assets

Pair this page with the matching JSON token files. Use the toolbar at the top of the page to copy the LLM-ready prompt or download HTML/JSON/zip bundles.