Skip to content
bbenewise. Design system

STEP 0 - BRAND

Everything visual keys off this page

Six colour roles, one typeface, one mark. They ship as design tokens, so a final colour pick is a one-line change rather than a re-skin. Every screen in the journey, the member app, the union dashboard and the trustee pages reads from this file.

Theme — colour roles

Purple is reserved for actions: buttons, links, tappable things. Ink anchors. Green means provenance and good news. Gold means check first. Red-orange is reserved for true urgency and emergencies, and never appears in marketing.

#2e1f4d
color.inkInkThe anchor. Logo, chat home, hero surfaces. The darker hue carried throughout.
#6b5ecb
color.actionPurpleActions only. Hero surfaces get the neon glow — a purple drop-shadow on ink.
#f4f3fa / #e9e6f5
color.surfaceLavenderSurfaces and page backgrounds. Never used for meaning.
#2e6b2e on #dff0df
color.provenanceGreenProvenance and good news — "from your pharmacy file", "$0".
#8a6d1a on #faf0d0
color.cautionGoldCaution, to-dos, "check first". Also every as-you-told-us label.
#c0533e
color.emergencyRed-orangeReserved. True urgency and emergencies only, never marketing.

BUILD NOTE

These are declared once in assets/v12/tokens.css. Every legacy variable in the older pages is aliased onto them in the same file, so the four palettes that used to compete across this site now resolve to one.

Logo

The mark and the wordmark are chosen. The four tool icons form one visual family with them, so a feature icon always looks like it came from the same hand as the app icon.

b L1 - the mark Rounded-square ink tile, lowercase b. Friendly, app-icon ready.
benewise.TM L3 - wordmark Full name, purple period — a plain answer, full stop. Best for headers and print.
L5 - compass Guidance moments: empty states, "where should I go?"
L6 - verified answer Chat. A speech bubble with a check — every answer sourced.
L7 - shield Prior auth and appeals. The familiar insurance shape, reclaimed.
L8 - care cross Find Care. Health at a glance, modern rather than clinical.

Type — Archivo

A sturdy grotesque: civic, institutional trust, strong dark-mode headlines. Heavy 800 for headlines, regular for body, monospace strictly for data fields.

benewise.
Good morning, Dana.
Your appeal letter is drafted and waiting.
RxBIN 003858 - RxPCN A4 - RxGRP GH3A
Reading levelPlain language at a fifth-grade level. Jargon is defined inline the first time, every time.
Drug namesGenerics lowercase, brands capitalised, paired on first mention so members recognise the brand they know.
Every claimSays where it came from. No retrievable source means "check first" language, never a confident claim.
MonospaceData fields only — card numbers, codes, dollar figures in tables. Never for prose.

Voice — five answers in shorthand

How Chat sounds when it is working. Short, specific, and always followed by what to do next.

Balance bill

This looks like a balance bill — not your responsibility when the provider or lab is in network. Your plan already negotiated the price for you.

Surprise checkup charge

Your $0 physical turned into a bill because it was coded diagnostic, not preventive. Common, fixable — I will draft the correction request.

Urgent care sticker shock

That $100 is your plan's flat urgent-care copay. Next time: same-day is $0, a video visit is $10.

Wrong card at the pharmacy

Theo's inhaler is covered — $10 — but it bills on the fund's drug card, not the medical card. Show the one ending 3858.

Scary envelope

An explanation of benefits is not a bill. Nothing to pay — the plan is just showing its math, and I have already checked it against your claim.

Components

The pieces every screen is assembled from. All of them read from the tokens above.

Badges

Ink Action Soft Covered As you told us No source

Buttons

Primary action Secondary Ghost

Provenance lines

From your pharmacy file Balance as you told us - tap to update Synthetic demo data

Progress rail

Drafted You review Sent Answered

Navigation — R6, decided

The bar shows everywhere, in one of two forms. Seven buckets, one hub.

FormWhereWhat it carries
Full barHome and every bucket landing — places you choose from All seven doors visible, the current one lit, Home raised in the centre: Advocate · Rx · Care · Home · Benefits · Family · Forecast
Simplified barTask screens — writing a letter, picking a time, sending a receipt One Home button, the profile avatar with its alert count, and the line of reassurance: “You’re in the middle of something. Nothing is lost if you leave.”
No barThe full-screen camera flow only A plain Cancel. A nav bar reads as clutter on a camera screen.

Seven icons under a half-finished task is an invitation to abandon it; one clearly-marked way out is not. Hiding the bar entirely would trap people, so it is never hidden on a task. Home is the only destination on the simplified bar — no bucket jumps mid-task — and the avatar keeps its alert count everywhere, so the badge is never out of reach.

Motion — the four numbers

One rule behind all of it: motion explains where you are and what just changed. It is never decoration. If an animation does not answer “where did this come from?” or “what did my tap do?”, cut it.

TokenValueFor
--t-instant120msTaps, toggles, chips, checkboxes. Fast enough that the member never waits on us to acknowledge them.
--t-standard240msPushing to a new page, opening a sheet, expanding a dropdown. The workhorse.
--t-deliberate400msAnything that changes money or state — a letter sending, a status bar advancing, a scoreboard ticking up. Slow on purpose so it registers.
--ease-incubic-bezier(0.2, 0, 0, 1)Entering. Never linear, never bouncy — this is a health plan, not a game.
--ease-outcubic-bezier(0.4, 0, 1, 1)Leaving.

Rules that override all of the above: respect prefers-reduced-motion — slides become cross-fades, count-ups become the final number, the connector animation shows its end state; never animate a member into waiting; the second time through is faster; nothing loops in the member’s way; and in retiree and large-type mode durations go up about 30% — the same motion, given time to be followed.

Two button weights

“Book cleaning” (free, undoable) must not look identical to “Send my 2 receipts” (goes to the City).

WeightClassRule
Safe & reversible.btnAction purple. Booking, asking, drafting — anything the member can undo or that only sends a request.
Official & irreversible.btn.officialInk with an action-purple ring, and it always carries a confirm line naming who receives it. The line is part of the control, so a later edit cannot drop it.

And one money rule under both: always what you pay. Never the charge, never a bare figure we cannot stand behind. A number we know is exact; a number we estimated says “about”.

The tokens

Change a value here and it propagates everywhere. This is the whole point of the file.

TokenValueUsed for
--color-ink#2e1f4dLogo, chat home, hero surfaces, footer, site rail
--color-action#6b5ecbEvery button, link and tappable thing
--color-surface#f4f3faCards, panels, inset areas
--color-surface-deep#e9e6f5Page background
--color-provenance#2e6b2eSource chips, covered states, $0
--color-caution#8a6d1aTo-dos, deadlines, attested values, build notes
--color-emergency#c0533eThe 911 rule and nothing else
--font-displayArchivo 800Headlines, labels, buttons, nav
--font-bodyArchivo 400All prose
--font-dataArchivo CodeCard numbers, codes, table figures
--glow-action0 6px 18px rgba(107,94,203,.55)The neon glow on hero surfaces and primary buttons