Style guide

The system.

Every page on this site uses the tokens and components below. When in doubt, start here.

Logo

A guardrail motif — one horizontal rail, three posts. The product defense in three strokes. Paired with a Fraunces wordmark.

TraderJoe
Minimum size (screen)16px
Clear space½ mark height on all sides
Color on lightvar(--brand) · #14482E
Color on dark#FFFFFF
Wordmark fontFraunces 400, −0.02em tracking

Color

Warm cream ground, deep forest brand, warm amber accent. Semantic colors for positive / negative / info are used sparingly.

Background#FBF7EF
Surface 2#F3EEE1
Surface#FFFFFF
Ink#0D1614
Ink 2#3A4A44
Ink 3#6B7A72
Brand#14482E
Brand soft#E4EEE6
Accent#D98A2B
Positive#15803D
Negative#B91C1C
Info#1E4F82

Typography

Fraunces for display moments, Inter for everything else, JetBrains Mono for numbers and code. No weight below 400.

.displayTrade with rules.
h1

A second opinion

h2

Most decisions are rejections

h3

Cheap filter, expensive judge

.lead

A lead paragraph sits between the heading and the first body copy and carries the most weight after the title.

p

Body copy defaults to 17px on cream. Line-height 1.6, weight 400. We avoid weight 300; readability matters more than elegance on a long page.

.small

Smaller copy for captions, metadata, and table cells. 15px, still fully readable.

.overlineSection eyebrow

Buttons & chips

One primary, one secondary, ghost for tertiary. Pill-shaped. The .btn-arrow modifier adds a subtle hover animation.

Brand Approved Rejected Info Accent

Cards

Four variants. Default for content, elevated for hero moments, outline for subtle grouping, dark for “this is serious.”

Default card

White surface, hairline border, 20px radius.

Elevated card

Layered shadow, no border. Use sparingly.

Outline card

Transparent background, keeps the cream page tone.

Dark card

For emphasis and trust moments.

Telegram bubbles

Three bubble kinds plus a decision card. Used in hero, features, and onboarding to show the product in its native form.

TraderJoe
bot
System line (centered pill)
Bot message with emphasis. meta line
User message
Claude: APPROVE conf 0.78
Decision card with reasoning and confidence.
Claude: REJECT conf 0.32
Rejection variant uses a red left-rule.

Spacing

Base unit is 4px. Use tokens, not raw pixels. Sections pad vertically with clamp(56px, 9vw, 112px).

--s-1
4px
--s-2
8px
--s-3
12px
--s-4
16px
--s-5
24px
--s-6
32px
--s-7
48px
--s-8
64px
--s-9
96px
--s-10
128px

Stats

Large display numbers in brand color over an uppercase label. Use 2–4 in a row.

+$84
net P&L
62%
win rate
1.8%
max drawdown
8 / 21
approved / seen