Skip to content
Dash Process / styleguide
Theme

Design system

Direction “The Ledger”. Two surfaces and four display candidates are switchable above so the decision is made by eye. Contrast is measured from the live tokens, not restated from the design doc.

01

Color

Five structural tokens plus a reserved semantic pair. Credit and debit never appear on a border, icon, or hover state — figures only. The band is scoped to tabular rows and never paints the canvas: a striped page is the kitsch failure mode, and the band only means anything where there are rows to hold. The NET row is deliberately unbanded so credit green never sits on the green band.

--page
Canvas
--raised
Statement base / unbanded rows
--band
Greenbar band — row tracking
--ink
Type and interactive accent
--ink-muted
Secondary type
--rule
Hairlines — load-bearing
--credit
RESERVED — net settlement only
--debit
RESERVED — deductions only
02

Contrast audit

Measured live from resolved custom properties. Switch surface and theme above — every scored row must pass in all four combinations. Two rows are reported as INFO rather than scored: hairline rules and the band are decorative separators, not UI components conveying state, so WCAG 1.4.11 does not apply to them. Any border that does convey state — focus, error, selection — must use --ink, which passes comfortably. Band vs raised is tracked here because the NET row's separation depends on it.

PairUsageRatioMinResult
Band vs raised — NET row separationnon-text
Ink on canvastext4.5
Ink on raisedtext4.5
Ink on bandtext4.5
Muted on canvastext4.5
Muted on raisedtext4.5
Muted on bandtext4.5
Credit on raised (NET row)text4.5
Debit on bandtext4.5
Debit on raisedtext4.5
Rule on canvasnon-text
03

Faces at hero size

The display decision is settled — the comparison this section used to run was removed with the candidate list. What renders below is whatever the tokens currently resolve to.

Instrument Sans — display

One platform between your checkout and your bank account.

Net funding — 40px

Tight, slightly condensed. Reads as infrastructure rather than startup.

Instrument Serif — editorial accent

One platform between your checkout and your bank account.

Net funding — 40px

Sibling face. Used italic inside sans headlines and pull quotes only.

04

Type scale

Fine gradation in the small sizes because tabular data needs it; a deliberate leap at display.

88pxNet settlement
64pxNet settlement
40pxNet settlement
28pxNet settlement
21pxNet settlement
17pxNet settlement
15pxNet settlement
13pxNet settlement
12pxNet settlement
05

Figures and the greenbar band

The band is structure, not decoration: it holds the eye on a row across a wide table of figures. Deductions are the only debit-colored figures; the reserve release and net funding are the only credit-colored ones, and the totals row is unbanded and ruled off in ink.

Statement previewFigures withheld — awaiting confirmed rates
Gross volume
Merchant-set, illustrative
$840,000.00
Discount
Tier — pending confirmation
pending
Transaction fee
Per authorization — pending confirmation
pending
Rolling reserve
Rate and term — pending confirmation
pending
Reserve released
From month 1
pending
Net funding
Funding timing — pending confirmation
pending

The statement resolves to net funding after reserve, not net settlement. Reserve released is the only line where a deduction comes back, and it is the line most processors leave off. Volume is the merchant’s own input so it renders; every rate is withheld.

06

Spacing, radius, elevation

Radius and elevation both changed when the token layer moved direction: the scale now runs to 20px and there is a three-tier shadow model alongside the hairline paper edge. docs/design-system.md still describes the previous 6px ceiling and rules-only depth and is out of date — see the note at the top of this section.

4
8
12
16
24
32
48
64
96
128
192
0
4
8
12
20
Paper edge
1px rule + 1px offset. For flat surfaces.
Shadow e1
For surfaces that genuinely lift.
Shadow e2
For surfaces that genuinely lift.
Shadow e3
For surfaces that genuinely lift.
07

Motion tokens

Hover a swatch to run its curve. Springs are declared here but demonstrated live with the statement widget in step 3, when Motion lands — they are not CSS-expressible.

--dur-1 · 140ms
micro — hover, focus, active
--dur-2 · 320ms
element entrance
--dur-3 · 720ms
full orchestrated sequence
--ease-out
entrances
--ease-inout
state change
--ease-rule
rule draw
springFigure = { stiffness: 220, damping: 30, mass: 0.8 }   // number rolls
springDrag   = { stiffness: 400, damping: 40 }              // slider thumb
--stagger: 60ms
08

Controls

Ink is the interactive accent — no brand color on a CTA. Tab through these; focus is a 2px ink outline at 2px offset.

Inline link
09

Certification row — pattern only

BLOCKED. No certification ships until each is confirmed. The pattern below shows the three claim registers so the distinction stays visible in markup; the labels are placeholders, not claims.

Unpopulated — awaiting confirmation
Held by Dash Process
<cert name> — audited <date>
Held by a named partner
Processing on <cert> certified infrastructure, provided by <partner>
In progress
<cert> — audit in progress, no badge
10

Confirmed figures

Only what has been confirmed may appear on the page. Unconfirmed stats are cut, not labelled illustrative.

99.99% uptimeconfirmedGateway provider's figure — must be attributed to the gateway, never implied as ours
T+1 settlementcutStandard-risk qualifier not confirmed
Underwriting turnaroundcutHonest standard not supplied
135+ currenciescutNot confirmed