04

Colors

One scarce green does the accent work while the neutrals stay quiet.

Neutrals

--background paper
#f9f9f9 Page background. The canvas everything sits on.
--foreground ink
#1a1a19 Default text color. Softened v3 (was pure #000000 — harsh on paper).
--card
#ffffff Raised surface: cards, tiles, panels.
--muted mist
#f4f4f4 Low-emphasis fill: subtle backgrounds, hovers.
--accent
#f4f4f4 Hover/active fill for interactive neutrals.
--muted-foreground slate
#8e8a88 Secondary text: captions, hints, metadata. Warm/cool temperature is Vetoable B.
--border line
#e8e7e4 Hairlines, dividers, input borders. Warmed v3 (was #e5e5e5).

The green family

Consolidated to one family. The canonical primary is #00c951, adopted from the green that dominates every high-traffic surface in recruiter-bot. The old shadcn value #00d632 stays only as a deprecated alias. The scattered landing ramp is folded into hover and active.

--primary pulse
#00c951 The one accent per view. Canonical primary, adopted from recruiter-bot's dominant surface green. Scarce by design.
--primary-hover pulse-hover
#00b048 Primary fill on hover.
--primary-active pulse-deep
#009a40 Primary fill while pressed/active. The dark tier of the green family. v4 light fix: in-hue press tier (was #036a56 teal — a hue jump off the green family).
--primary-mint mint
#a6fec3 Mint accent surface: soft green backgrounds, positive chips.
--primary-tint tint
#d4ffe4 Palest green wash: hover tints, selected rows.
--primary-legacy deprecated
#00d632 Old shadcn primary. Kept one minor, then deleted.

Category pill pairs

Five bg/fg pairs, now tokens. They tag filter chips by kind. This is the one place the palette opens up past green, and only inside chips.

Language
#a6fec3 #036a56
Domain
#c4e0ff #005cf0
Job description
#ffebd4 #ef6207
Project
#f7e3f8 #9321be
Location
#d9f3f0 #0d7c72

Contribution ramp

The GitHub contribution motif, all nine steps restored to #062514. Marked decorative. It never carries UI, text, or state.

1
2
3
4
5
6
7
8
9

Semantic hues

Destructive is live. Success, warning, and info are defined but unconsumed, kept as marked scaffolding so they exist when a state needs them.

--destructive
hsl(0 72.2% 50.6%)
--success scaffolding
hsl(142 76% 36%)
--warning scaffolding
hsl(38 92% 50%)
--info scaffolding
#005cf0
Open for the owner

Two calls, shown as options

These stay unresolved on purpose. Each is rendered live, both ways, with the default labeled. Pick one and it becomes a token edit.

A · Dark-mode primary

Stay green default
#22e24a

The light green brightened for dark surfaces. No shipped dark mode yet, so this is a proposal, not observed truth.

Flip near-white #fafafa

recruiter-bot's actual dark treatment flips the primary to near-white with dark text. Higher contrast, loses the green signal.

B · Neutral temperature

Cool (hsl 240) default

recruiter-bot truth: the shipped primitives are cool, hue 240. Owner bias keeps this the default.

background
surface
border
mut-fg
Warm slate

The new-token proposal: a warm gray family led by #8e8a88. Softer, but it drifts from what ships today.

background
surface
border
mut-fg

muted-foreground and border follow whichever temperature wins. The shipped token default stays warm until this is resolved, so the book chrome and specimens render warm today.