Green Dominance · design system · v1 · 1 Nov 2026

the system

One calm world for every page after the landing: the shop, joining, the member dashboard, content and admin. The grammar is The Bloom's: rounded colour sheets, giant tight lowercase heads that end in a full stop, quiet pills, thin rules with tiny mono labels. Green means Shop, burgundy means Member, yellow is the spark.

Each specimen is drawn twice, light and dark, from the same markup and the same data the pages use. Resize to 390 to see the phone layouts. The shells at the bottom run as real pages.

SitemapREADME
01

colour.

brief.md section 8 only, plus lime as the loud green (dark text only). Text on yellow and lime is always dark. Red is for errors alone.

02

type.

Archivo (variable weight and width) for display and UI; IBM Plex Mono 500 for data labels, PV and references, never prices. The display face is one token: --font-display.

03

buttons and pills.

One pill shape. Ink is the default; green for Shop, burgundy for Member, yellow for the single spark action on a page. 44px minimum.

04

forms.

52px fields, 16px type (no zoom on phones), one label above, hint below, error and success said in words with an icon, never colour alone.

05

sponsor and placement.

The sponsor is required and checked live: green with the full name, red if not found. Submitting it empty says the meeting's line. Placement shows only Right; Left lives inside the dropdown so it never draws the eye.

06

tabs and swatches.

Segmented tabs for switching a view, line tabs for page sections, The Bloom's swatch pill for picking a product.

07

products.

Every product stands in the same studio light. Hover turns the bottle to its three-quarter view. Price in Archivo, PV in mono. Cards come from productCard() so every listing matches.

08

the bag.

A drawer from the right on desktop, a sheet from the bottom on phones. The bag lives in localStorage; totals always come from the product data.

09

toasts, modals, confirms.

Toasts confirm in one line. Modals sit centred on desktop and rise as sheets on phones. Sensitive actions (payout approval, compensation, refunds, bank changes) show exactly what changes, ask for the password or a code, and say they are audited.

10

tables.

Mono column labels, numbers right-aligned in tabular figures. Under 720px a .table--stack turns each row into a labelled card, so nothing scrolls sideways.

11

states.

Empty, loading, error and success each say what happened and what to do next, in one line. Notices carry the honest lines and the disclaimer.

12

sheets and heads.

Pages move through the palette one rounded sheet at a time: a dark moment, a loud one, a burgundy one for membership, soft mint and cream, yellow sparks. Components read each sheet's ink and rules. Each sheet resets muted and faint text so both pass AA (4.5:1); the figures are measured live.

13

dashboard pieces.

The dashboard is calm but never grey: figures are giant type, not boxes; the two legs are the one comparison that matters; every earning row links to the order behind it; held money is gold and apart.

14

genealogy.

You, your 2, their 4. Every node shows its left and right PV and how they relate to you; every empty slot offers "+ Add member". Nodes go compact by their own width, so the third row fits a phone.

15

shells.

The member shell (burgundy, a quiet sidebar, a floating tab bar on phones) and the admin shell (deep green-black, denser, grouped). Both run as real pages from data-shell.

Member · 1440 desktop
Member · 390 phone
Admin · 1440 desktop
Admin · 390 phone