◆ Components · Cards · v1.0
Surfaces with intent
8 variants · 1 anatomy
card · stat · feature · cta · glass · elevated · flat · dense
01ANATOMY · the default card
8 fixed regions
★ OUTBOUND CAMPAIGN

Q4 SaaS leads

Mo will dial 248 prospects, route conversions to Sal.

ACTIVE+12
STARTEDIT
★ EYEBROW
TITLE · h4
BODY
META PILLS
ACTIONS
PAD · 20px
GAP · 14px
RADIUS · 8
▸ SHELL bg #10131A · border #2A2F3B · r-4 · shadow-2
▸ PAD 20px default · 16 dense · 24 large · 32 hero
▸ GAP 14px between regions · 8 within row
▸ EYEBROW mono · 9px · #12FFA0 · uppercase · LS .14
▸ TITLE Sora 700–800 · 15px · -.01em · #fff
▸ BODY DM Sans · 12.5px · #A8B0C0 · 1.5 lh
▸ HOVER +ring lime/15 +shadow-3 +glow-soft
▸ INTERACTIVE entire card clickable when wrapped in <a>
02VARIANTS · 8 named cards
one shape per role
DEFAULT

Standard card

The workhorse. Every panel, list item, dashboard widget.

★ ELEVATED

Active / focus

Lime ring + glow. Selected campaign, featured plan, hover state.

FLAT

Inline panel

Nested in another card. No shadow. Background = parent L1.

GLASS

Chrome surface

Sticky navbar, command palette, overlay tooltips. Never content.

FEATURE

Pricing tile

Soft lime gradient back. Pro plan, marketing feature blocks.

★ POPULAR
★ CTA

Conversion card

Solid gradient. Hero of a section. Used sparingly — 1 per page.

STAT · LIVE CALLS
247
▲ +12.4%  vs 7d
STAT · MRR
$42.8K
▲ +6.1%  vs 30d
STAT · MISSED
14
▼ −2.3%  vs 7d
★ FEATURE · MEDIA HEADER
MEDIA CARD

Blog post · tutorial

Image at top, body below. Edge-to-edge media. Marketing case studies.

MO
Mo · Outbound
+1 415 555 · 03:21
LIVE
DENSE · LIST ROW
ALERT · DANGER

Payment failed

Your card ending 4242 was declined. Update billing to resume calls.

UPDATEDISMISS
03STATES · default · hover · active · loading · disabled · empty
interactive cards only
DEFAULT

Sales pipeline

Standard resting state. Border #2A2F3B, shadow-2.

★ HOVER

Sales pipeline

+lime ring/15, +shadow-3, +glow-soft. transform: translateY(-1px).

ACTIVE / SELECTED

Sales pipeline

+lime ring/30 outer, fill tint. Sticky after click/select.

LOADING
DISABLED

Sales pipeline

opacity .5 · saturate .4 · pointer-events: none.

EMPTY

No campaigns yet

Create your first to get Mo dialing.

+ NEW CAMPAIGN
04LAYOUTS · header · body · footer composition
divider patterns
★ HEADER · BODY · FOOTER

Outbound campaign

ACTIVE

248 leads queued. 31 connected · 12 transferred to a human.

12.5%  CONV $48  CPA 02:14  AVG
Updated 2 min ago
PAUSEDETAILS  →
SPLIT · TWO-PANEL

Live transcription

▸ MO

Hi, this is Mo calling about your inquiry — got a minute?

▸ LEAD

Yeah, sure. What's this about exactly?

05RULES · how cards behave
opinionated · enforced
1

Eyebrow always

Every card opens with a mono eyebrow label. It tells the user what kind of object this is before they read the title. Skip it only on stat cards where the label IS the title.

2

One shadow plane

All cards in a row share the same shadow level. Don't mix shadow-2 and shadow-3 on a grid — the eye picks up the elevated card as more important. Use elevated state for that signal, not asymmetric shadows.

3

Click target = whole card

If the card has a primary action, the whole shell is the target. Wrap in <a>, give the button pointer-events:none, set cursor:pointer on the shell. Don't make users hunt for the button.

06TOKEN REFERENCE
--card-* · component scope
BGdefault#10131A
BORDERdefault#2A2F3B
RADIUScard--r-4 · 8px
★ PADdefault20px
PADdense16px
PADlarge24px
GAPregions14px
SHADOWdefaultshadow-2
SHADOWhovershadow-3
★ HOVER RINGlime0 0 0 1px /.15
HOVER GLOWsoft0 0 32px /.12
EYEBROWcolor#12FFA0
TITLEfontSora 700–800
BODYcolor#A8B0C0
TRANSITIONhover120ms ease-out
LIFTtranslateY-1px
FOCUS RINGtab0 0 0 2px lime/.4
MAX-Wread540px