Surface Locked component library — Sprint Consolidate-1
Design System
cobank.ai · v1 · 2026-04-07
v1.0 Back to statement
00 cobank.ai · design system v1

Carbon accounting,
set in type.

One typeface. One color. Generous whitespace. Numbers as nouns. A system built so every screen feels inevitable — not minimal, not decorated. Edited.

Seven rules we don't break.

One
Type is the brand. Hierarchy, weight, and space do all the work.
Two
Whitespace is structural, not decorative. Density is earned.
Three
Show your work. Every number has a traceable source on screen, by default.
Four
Confidence over enthusiasm. We state what is true and what to do next.
Five
Restraint is the moat. Subtraction is what separates us.
Six
The chrome disappears. The data is the hero.
Seven
Functional first, beautiful because of it.

One brand color. Disciplined neutrals.

Deep green is sacred. Amber is functional, only. There are no gradients.

Green
#0F4A28
Green ink
#0A3A1F
Green tint
#EAF3EC
Amber
#D97706
Ink
#0E1A14
Ink 2
#3A4A40
Ink 3
#6B736E
Ink 4
#A4A89E
Paper
#F7F6F3
Card
#FFFFFF
Rule
#E6E4DD
Rule 2
#F0EEE7

Inter does everything.

One family. Three weights (400, 500, 600). Tabular numbers always on.

display-1 · 88
Carbon, set.
display-2 · 64
Line-item by default
display-3 · 48
1,240 kg
h1 · 32
Quarterly emissions
h2 · 24
Scope 1 · stationary combustion
h3 · 18
Vendor breakdown
h4 · 15
Confidence ≥ 0.7
body · 15
Every line item below carries a confidence score and a traceable factor source.
body-sm · 13.5
Diesel, 200 L · DEFRA 2025 · stationary_combustion
caption · 12
Updated 2 minutes ago
eyebrow · 11
Section label

One primary per view.

Forms that never apologize.

As written on the invoice.
Used for reporting boundaries.
Amount is required.

Status, not decoration.

Draft Verified Needs review

Numbers as nouns.

Total kgCO₂e
1.24t
↓ 12% vs prior period
Invoices processed
186
across 12 vendors
Items needing review
7
low confidence or missing factor
Data quality
94%
items with confidence ≥ 0.7

The product is mostly tables.

Recent line items
Sorted by upload date
Vendor Description Method Spend (CHF) kgCO₂e Confidence Status
Migros AG Diesel B7, 200 L Physical 412.00 534 0.92 Verified
SBB Cargo Rail freight, Basel → Lugano Physical 1,240.00 38 0.88 Verified
EWZ Electricity, Swiss market mix Physical 2,180.00 12 0.95 Verified
Office Depot Stationery, mixed Spend 340.00 87 0.54 Needs review
Lufthansa Flight ZRH → BER, economy Physical 218.00 142 0.81 Draft

Three parts. No illustrations.

Review queue is clear.
Every line item has been classified and verified. Upload another invoice to continue.

A Swiss bank, not a launch party.

Calm, precise, slightly formal. Statements, not exclamations. No emojis.

ContextWrongRight
Empty stateNo invoices yet — let's get started!No invoices uploaded.
LoadingHold tight, working on it…Processing.
SuccessGreat job! Your report is ready.Report ready. Download below.
ErrorOops! Something went wrong.Upload failed. The file exceeded 25 MB.
ConfirmAre you sure?Delete this line item? Logged in the audit trail.

Naming what's not in the system.

No gradients. No glassmorphism. No drop shadows on text. No stacked shadows. No emoji as UI. No exclamation marks. No multiple primaries. No rainbow charts. No carousels. No more than one typeface. No more than three weights. No pure black, no pure white.

Tokens

Ink-blue replaces amber as the audit accent. Amber now means danger only. Cool grey is reserved for locked/sealed state.

--audit-blue
#1B3A5B
--audit-blue-ink
#122943
--audit-blue-tint
#EBF0F6
--locked-grey
#5C6670

Status families

info
#2E5AAC
success
#0F4A28
warning
#8A6D2A
danger
#D97706
frozen
#5C6670
draft
#6B736E
neutral
#3A4A40

Stat card

Default, locked (sealed period), and surface-accent variants. Trend pill inside the sub-row.

Total emissions
476tCO₂e
↓ 4.2%vs Q4 2025
Q1 2026 (sealed)
124tCO₂e
±0Closed 2026-04-08
Assertions
32of 42
+8this week

Data card

Baseline-anchored header, divided footer, flex body.

Scope 2 — electricity
kWh grid, location-based
Q1 2026184'220 kWh
Q4 2025192'580 kWh
Q3 2025201'430 kWh

Buttons

Primary · Secondary · Ghost · Danger. btn-danger is outline by default; solid only inside modal actions.

Confirmation modal footer (example)

Form row

Label / control grid with addon slot. Collapses to single column under 820px.

Company name
Legal entity as registered
Default factor
Used when no per-line factor is set
Reporting threshold
Exclude line items below this value
kgCO₂e
Must be ≥ 0
C1.06Table

Evidence table

Selectable, sortable, sticky first + last columns, density variants, evidence-link affordance, frozen-row state. Resize narrow to verify horizontal scroll.

Description Vendor Date Spend kgCO₂e Factor Evidence
HDiesel — fleet Q1 Migrol AG2026-02-14 CHF 4'820 12'480 DEFRA PDF ↗
Electricity — HQ mains EWZ Zürich2026-02-28 CHF 18'440 4'420 BAFU PDF ↗
Natural gas — boiler Erdgas Zürich2026-03-02 CHF 6'210 10'920 BAFU PDF ↗
Business travel — ZRH→LHR Lufthansa2026-03-08 CHF 2'140 930 DEFRA PDF ↗
Electricity — warehouse (Q4 2025) EKZ2025-12-29 CHF 9'110 2'190 sealed PDF
Refrigerant R-410A refill Klima-Service GmbH2026-01-22 CHF 980 3'540 IPCC PDF ↗
Waste — mixed commercial ERZ Entsorgung2026-02-04 CHF 420 180 BAFU PDF ↗
Water — municipal mains WVZ2026-02-19 CHF 310 40 ecoinvent PDF ↗
Packaging — cardboard PAWI Verpackungen2026-03-11 CHF 1'140 220 ecoinvent PDF ↗
Cloud compute — AWS eu-central-1 Amazon Web Services2026-03-31 CHF 3'820 410 EPA PDF ↗
Totals · Q1 2026 35'330 10 line items · 42 in full period

Status pill

Neutral · info · success · warning · danger · frozen · draft. Solid variants for tinted backgrounds.

Neutral Info Validated Review Error Sealed Draft
Info Validated Review Error Sealed

Sidebar nav item

2px active hairline, sub-item indent for Sprint 3 hierarchical nav.

Breadcrumb

Three-level navigation; current step carries aria-current.

Tab bar

Active underline tracks surface accent. Count pill nests inside label.

Content placeholder for the active tab.

Modal

Two sizes. Imperative API; backdrop + ESC close; focus trap; motion-collapse under reduced motion.

Toast

Four semantic variants. 4.5s auto-dismiss. Danger gets role=alert.

Combobox

Tab → Enter opens. Type to filter. ↑/↓ navigate, Enter selects, Esc closes.

Plain (10)
Grouped
Large (240)
Version: Consolidate-1 · 2026-04-14
cobank.ai · design system v1 · maintained by Chat A · this system is a contract