Duna · Tada · REV-528

Shape & color

To discuss — flip the options live

1 · Accepted — black or green?
Accepted Rejected

Accepting is the happy path, so it stays quiet — in finance, black reads as positive ("in the black"). Green is the conventional "good" reading if analysts expect it. Either way, rejected keeps the one loud color. Flipping this re-renders every Accepted mark on the page.

2 · External realm — purple or blue?
Awaiting reply Worth knowing
Awaiting reply — follow-up sent Jul 12
Could you upload a bank statement for the third UBO?

Purple is the current pick — the connection's cool hue, "not the analyst's move." Blue is worth a look: "warm, not blue" governs our side, and the connection's realm sits outside it, so a cool blue there could reinforce "not us." Flip to blue and it recolours every external mark; it's a one-off, not a main token.

3 · Awaiting sign-off — the approver's color?
Awaiting sign-off
Awaiting sign-off — decisions are locked
To make changes, retract the request.

Green is the pick — sign-off is approval, so it leans on the familiar "cleared / go" reading. Sand is the quieter alternative; gray is the neutral holding option.

4 · Recommendation — model or rule, one mark
Rule — UBO threshold met: 3 owners above 25%.
Model — source of funds looks consistent with declared turnover.

A recommendation can come from a deterministic rule or a model — the analyst shouldn't have to care which. Both carry the same Duna asterisk. Shown here just to illustrate the mark; not an either/or to decide.

Principles

Never color aloneEvery status is icon + label; color is the accelerator, not the message.
Every color has meaningNo hue is decorative. Each one is assigned a single job — whose move, how urgent, what was decided — and never reused for anything else. About six carry the whole dashboard.
Accepted is quiet, rejected is loudAccepting is the happy path, so it stays black. The rare rejection earns the one loud color: a faint red badge.

Color & meaning

Every hue earns its place by meaning, not decoration. Our side stays warm; purple is the one cool hue, reserved for the external realm.

Accentsand
The everyday accent — "worth knowing." Gentle emphasis, recommendations, low-risk. The default when something wants a touch of color but isn't a problem.
Needs attentionorange
A gap or problem to look at. Also what an Open review wears (your move), and what marks NOW on a timeline.
Criticalred
Stop. Critical severity and rejected outcomes — one shared color. The single loud, un-muted hue, used rarely and on purpose.
Final passgreen
Approval — the final pass. Green leans on the familiar "cleared / go" reading, so a review parked with an approver looks like it's on its way through.
Externalpurple
The connection's realm — the one cool hue. Anything waiting on the outside (replies, submissions, messages out). Its AI-adjacent feel reinforces "not the analyst's move."

Statuses & outcomes

Statuses

The icon carries the state; color reinforces it. Open ⇅ Awaiting reply with the connection; from Open it goes to sign-off, then finalizes.

Open ⇅ Awaiting reply
→ Awaiting sign-off → Finalized | Canceled
  • Open — saffron: in your hands, ready to work.
  • Awaiting reply — lilac: with the connection; their clock.
  • Awaiting sign-off — green: parked with an approver.
  • Finalized — neutral end-state; no checkmark (it can contain rejections).
  • Canceled — muted: the path ended without a conclusion.
Onboarding statuses
Not started Awaiting submission Open Awaiting reply Finalized Canceled Expired

One shape for the connection's realm: Not started, Awaiting submission, and Awaiting reply all use the purple broken circle — they're all with the connection, not with us. Not started looks the same as Awaiting submission on purpose. Expired stays muted dashed (it withered while waiting) — colorless, because the clock ran out.

Outcomes

Accepted Rejected

Outcomes record what was decided. Accepted is the happy path — a black check on the quiet chip. Rejected is the rare loud case — a faint red badge, mark and label one deep red. A review can hold several at once, which is why a Finalized review shows marks but never wears a checkmark itself.

Severity — four levels

Worth knowing Needs attention Critical Escalated
Worth knowing
This connection had 2 previous reviews.
Needs attention
Bank statement covers only 2 of 3 UBOs.
Critical
Screening returned a sanctions match for the primary UBO.
Escalated
Confirmed sanctions match — the review is blocked and escalated to the MLRO.

Three graded tints — sand → saffron → vermilion — plus one loud block. Escalated inverts the red (solid fill, white text) for the rare "drop everything" case. All AA-checked; the same tints grade risk chips.

The external realm — lilac

One hue for everything that crosses to the connection. It shows three faces in the UI:

1 · Status badges — review and onboarding

Awaiting reply Awaiting submission

2 · The state call-out — on the review Overview

Awaiting reply — follow-up sent to Toscana Cantine Srl · Jul 12
Could you upload a bank statement for the third UBO?
The review reopens when they respond.

3 · The message field — writing to the outside

Message to Connection ⓘ

Recommendation — the Duna mark

System suggestions (model-generated or deterministic — the analyst shouldn't have to care) carry the Duna asterisk on the quiet sand treatment. Marker still open for discussion; asterisk shown as the current favorite.

Duna suggests
Mark "Verify ownership structure" as complete — registry extract and shareholder ledger match.
Based on 2 documents · always shows its evidence

Shape language

Circles are statuses. The circle is the case's container; what's done to it — empty, broken, filling, solid, struck-through — says where the case sits. Read like a battery.

Bare marks are outcomes. A verdict isn't a position, so Accepted and Rejected go unenclosed. Circle = status, no circle = outcome. The Duna asterisk sits outside both.

Circle family · statuses

OpenEmpty circle — nothing concluded yet.
ConnectionBroken outline — the case is with the connection; their clock. Purple in use.
Awaiting sign-offNearly filled — one act remains.
FinalizedSolid disc — an end-state, not an approval.
CanceledCircled ✕ — ended without a conclusion (bare cross = Rejected).

Bare marks · outcomes & system

AcceptedThe decision "yes" — a bare check, in black.
RejectedThe decision "no" — red, the loudest outcome.
RecommendationThe Duna asterisk — model or rule, one mark.

Dashboard preview

Not the actual product design — these are demo mock-ups, only here to give a sense of how the tokens read in a real dashboard UI.

Overview — awaiting reply (reviewer's view)

Toscana Cantine Srl
Review
Overview›››Decide
Awaiting reply
Awaiting reply — follow-up sent Jul 12: "Could you upload a bank statement for the third UBO?" The review reopens when Toscana Cantine responds.
Food production company in Italy. Mid-sized operation. Active for 27 years.
✳ Generated by Duna, may contain errors
Key risk signals
Bank statement covers 2 of 3 UBOs 2 previous reviews
Access
Maintain access to Payments processing Approved
Maintain access to Business banking Approved

Review queue

Review queue · 95 results — demo data
Connection
Progress
Status
Decision(s)
Priority
Last activity
Assignee
TToscana Cantine Srl
Finalized
2
High
April 30
Bas
MMilano Tessuti Srl
Awaiting reply
Pending
Medium
April 30
Joost
BBarcelona Tech Studios SL
Open
Pending
Medium
April 30
Unassigned
SSevilla Aceite SL
Finalized
2
Medium
April 30
Joost
BBayern Bio Lebensmittel GmbH
Awaiting sign-off
1
High
April 29
Mara
FFrankfurt Finanzberatung GmbH
Finalized
1
High
April 29
Me
EEdinburgh Whisky Casks Ltd
Open
Pending
Medium
April 29
Joost
JJutland Smoked Fish ApS
Finalized
11
Medium
April 29
Avital

Decide — awaiting sign-off (approver's view)

Bayern Bio Lebensmittel GmbH
Review
Overview›››Decide
Awaiting sign-off
Awaiting sign-off — Decisions are locked while awaiting sign-off. To make changes, retract the request.
Lending
Accepted Ownership chain verified — remaining source-of-funds question is covered in the note to the approver.
Sign-off
Requested by Mara Jansen · Jun 30, 14:20
Check source of funds — bank statement covers only 2 of 3 UBOs.
Waiting for an approver to sign offNOW
If approved, the review is finalized. If returned, it goes back to the reviewer.

The lock banner and header badge stay in the sign-off sand (deeper tint — sign-off state information); the risk chip grades on the severity tones; the outcome marks (black check, red cross) appear only where a judgement lives. The decision area itself stays skeletal — that design is TBD.

Primitives & tokens

Five semantic colors, each a full scale (50–950). Every color exposes four tokens — --{color}-background, --{color} (main), --{color}-foreground, --{color}-foreground-muted (muted text on the tint) — mapped to scale steps and redefined per theme. Use the light/dark switch (top-right) to see both; text-on-background is AA in both modes.

background L·D
main
foreground
muted
accent
sand — worth knowing · recommendation
100 · 900
500 · 500
800 · 300
700 · 400
attention
orange — needs attention · open · now
100 · 900
500 · 500
800 · 300
700 · 400
critical
red — critical severity · rejected · high risk
100 · 900
600 · 600
800 · 300
700 · 400
signoff
green — approval / sign-off
100 · 900
500 · 500
800 · 300
700 · 400
external
purple — the connection’s realm
100 · 900
500 · 500
800 · 300
700 · 400

The underlying scales — --{color}-50 … 950. Semantic mapping: light background=100, main=500 (critical 600), foreground=800, muted=700; dark background=900, foreground=300, muted=400, and main uses the same steps as light for AA contrast.

accent sand — worth knowing · recommendation
50
100
200
300
400
500
600
700
800
900
950
attention orange — needs attention · open · now
50
100
200
300
400
500
600
700
800
900
950
critical red — critical severity · rejected · high risk
50
100
200
300
400
500
600
700
800
900
950
signoff green — approval / sign-off
50
100
200
300
400
500
600
700
800
900
950
external purple — the connection’s realm
50
100
200
300
400
500
600
700
800
900
950

Clay stays the neutral foundation (unchanged). These five carry all meaning; retired hues (marigold, ember, teal, rose, and the imported Tada red) are gone. Legacy family variables (--sand-*, --saffron-*, …) still resolve — they now alias the semantic tokens, so old and new markup stay in sync across light and dark.