Colour
One brand green does all the accent work. Everything else is a neutral scale that flips between light and dark. The values below are read from the stylesheet at build time.
Brand green
The green is the single accent. It fills primary buttons, marks the active tab, draws the bar under a page title and rings a focused control. Because it means only those things, a reader learns to read green as “this does something”.
-
--color-greenLight Dark The one accent: primary buttons, active tab, the title bar, focus rings. -
--color-green-darkLight Dark Hover and pressed green on solid buttons. -
--color-green-lightLight Dark A lighter tint, used sparingly. -
--color-green-textLight Dark Green for text and links: readable on light, brand lime on dark. -
--color-green-text-hoverLight Dark Hover green for text and links. -
--color-whiteLight Dark Pure white, mostly for text on solid green.
Lime green is bright, and at body-text size on a white background it does not meet the contrast bar. That is why a separate text green exists: light mode steps the green down for text and links, while dark mode keeps the brand lime. The reason it exists is set out on the accessibility page. Accessibility.
Neutrals & surfaces
The neutral tokens carry two values, one per theme, so a surface is designed in both from the start. Text sits at three weights of emphasis; backgrounds step from the page, to tinted bands, to raised cards.
-
--bg-primaryLight Dark The page background. -
--bg-secondaryLight Dark Tinted bands, specimen stages, code headers. -
--bg-cardLight Dark Cards and sheet surfaces. -
--bg-navLight Dark The blurred nav backdrop. -
--text-primaryLight Dark Headings and high-emphasis text. -
--text-secondaryLight Dark Body copy. -
--text-mutedLight Dark Meta, captions, disabled labels. -
--border-colorLight Dark Hairlines and card borders. -
--badge-bgLight Dark Badge, tag and table-header fill. -
--badge-textLight Dark Badge and tag text. -
--code-bgLight Dark Inline and block code background. -
--timeline-lineLight Dark The work-experience timeline rail. -
--device-edgeLight Dark The outer ring on the phone frame. -
--device-buttonLight Dark The phone frame's side buttons.
Elevation tokens (the themed shadows) are documented on the Shape & elevation page.
Interaction
Links and solid buttons move through the greens on hover. The states are the same everywhere, so a control always tells you what it will do.
| State | Links | Solid buttons |
|---|---|---|
| Default | --color-green-text | --color-green |
| Hover | --color-green-text-hover | --color-green-dark |
| Disabled | Reduced opacity; the colour does not change. | |
Callouts
Long-form articles use four callout colours to flag a trap, an aside, a caution or a neutral note. These are the one place a colour other than green carries meaning.
| Callout | Border | When to reach for it | |
|---|---|---|---|
| Red flag | A mistake or trap worth stopping the reader on. | ||
| Tip | A helpful aside that is not essential. | ||
| Warning | Something to do with care. | ||
| Info | Neutral context or a pointer elsewhere. | ||
Scope: callout colours live in article prose only. They never appear in the interface chrome, where green and the neutrals do all the work.
These docs make one deliberate exception to that rule. The Do and Don’t cards further down use green and red, because a design system documenting itself is the one place those signals belong outside prose.
Illustration colour
The interface holds to one green, but the blog’s hero illustrations carry a palette of their own. It works the same way in miniature: a fixed pool of ten, the brand lime always present, and one soft ground per series. How the heroes are drawn is on the Media page.
The shared palette
The ten, read from the live posts at build time. Each illustration uses only a few of them, which is where the variety between heroes comes from; the pool itself never changes.
- Lime
- Navy
- Coral
- Teal
- Plum
- Amber
- Blush
- Sky
- Charcoal
- Sand
One ground per series
Backgrounds deliberately sit off the palette: soft, near-white tints that read as ground rather than as one of the ten. Each published series keeps its own tint, so a series reads as a set in the feed — its identity lives in that ground. Below, the whole pool sits on each ground: the mix changes per image, the family never does.
- State Management
- RN Module Federation
- RN Foundations
- Hiring
Using colour
Do
Don’t
Do
Don’t
Do
Don’t