Ardent Design


A design system for software that people work in all day. Dense where information rewards it, quiet where focus demands it, and exact everywhere.

Version
0.3.0
Surfaces
Web · TUI · GUI
Faces
4
Accents
4, semantic
Base unit
4px
Radius
0
Shadows
0
Motion
0ms
01

Philosophy

8 tenets, in order of precedence

Intentionality over style.

Ardent is neither minimalist nor maximalist. A landing page may be a doorway: quiet, restrained. A dashboard is a workbench: dense, layered. Both are correct when the decision is conscious. The only sin is arbitrariness.

Simple complexity. Ridding the spaces between aesthetics and function.

Rejects

  • Shadows as depth
  • Rounded corners as personality
  • Decorative color
  • Motion without purpose
  • Hidden complexity
  1. 1Intentionality over styleEvery decision has a reason you can state.
  2. 2TransparencyExpose state. Show the system.
  3. 3TimelessnessRight in 1978, right in 2045.
  4. 4PrecisionEngineered, not decorated.
  5. 5Functional densityAs complex as it needs to be. No more, no less.
  6. 6Warmth through craftCare is visible in the details.
  7. 7Performance is designA slow interface cannot be beautiful.
  8. 8Respect for usersCapable adults. Don't infantilize.
02

Typography

4 faces, one job each

Aa
Inter
Structures
Headings, buttons
Aa
Luxi Sans
Reads
Body, forms, tables
Aa
Old Standard TT
Essays
Quotation, colophon
Aa
Go Mono
Signals
Labels, data, code
DisplayInter 700 · 60/66 · −0.025em
Heading 1Inter 700 · 36/40 · −0.025em
Heading 2Inter 700 · 24/30
Heading 3Inter 700 · 20/25
BodyLuxi Sans 400 · 16/22
Body smallLuxi Sans 400 · 14/20
ProseOld Standard 400 · 16/22
LabelGo Mono 700 · 12/17 · +0.05em
CodeGo Mono 400 · 14/20
CaptionGo Mono 400 · 12/17

↑ They do not trade places. Mono never sets a paragraph; serif never sets a table.

03

Color

Monochrome base · 4 accents

White
#FFFFFF · surface
Black
#000000 · ink, borders
Gray
Structure, ink
50
100
200
300
400
500
600
700
800
900
950
Emerald
Success, confirm
50
100
200
300
400
500
600
700
800
900
Goldenrod
Warning, attention
50
100
200
300
400
500
600
700
800
900
Ocean
Link, information
50
100
200
300
400
500
600
700
800
900
Red
Error, destructive
50
100
200
300
400
500
600
700
800
900

↑ Bold step is the signal. Color always means something; it is never wallpaper.

04

Structure

Hairlines · flat · square

Spacing4px base
14px
28px
312px
416px
624px
832px
1248px
1664px
Bordersstructural
Hairline1px black
Strong2px black
Muted1px gray-200
Constantsnon-negotiable
Radius
0
Shadow
none
Motion duration
0ms
Focus ring
2px black
Reading width
678px
Spec width
760px

↑ Hierarchy comes from spacing, scale, weight and rule. Never from elevation.

05

Components

Flat · hairline · square

Buttons

uppercase · no radius

Form controls

mono label · text value

Lowercase, hyphenated.

Must be between 1 and 64.

Status

shape + color + word
RunningDegradedFailedQueuedStopped

Badges

bordered · never filled
v7.3.2PaidPendingOverdueDraft

Meters

capacity · threshold tone
Compute
42%
Storage
78%
Egress
96%

Callouts

code first · one sentence
DEPLOY-OKRevision 7.3.2 is serving all traffic.
QUOTA-80Storage is at 78% of the committed tier.
AUTH-401Deploy key rejected. Rotate it and retry.
MAINT-12Read replicas restart Sunday 02:00Z.

Tabs

inverse marks selection
POST /v1/entries HTTP/1.1
Idempotency-Key: 9f2c-e41a
Content-Type: application/json

{ "account": "1010", "debit": 4820000 }

Card and key-value

gray-50 · hairline

ledger-writer

Appends balanced entries. Single writer per ledger shard.


Owner
payments-core
Tier
Tier 0
On call
r.castellanos
Last deploy
2026-11-12 09:14Z
06

In use

7 exhibits · one component set

A system proves itself under load. These are working screens from the software Ardent is built for: engineering tools and enterprise systems where the data is the interface.

A

Fleet status

Infrastructure

An on-call engineer needs the whole fleet in one glance and the outlier in the next. Every number is on screen; nothing waits behind a hover.

Requests
18.4K/s↑6.2%
p99 latency
412ms↑162
Error rate
0.04%↓0.01
Services OK
5/8↓1
Servicesprod · us-east-1 · 14:32:07Z
StateRevReadyCPU 1h
ledger-writerDegraded7.3.15/687%2,210 Mi412 ms
search-indexerOK1.44.04/452%3,072 Mi188 ms
api-gatewayOK4.18.212/1241%812 Mi118 ms
ledger-readerOK7.3.18/836%1,480 Mi96 ms
notifierDraining3.2.72/39%196 Mi61 ms
authOK2.9.06/618%344 Mi42 ms
edge-cacheOK5.0.316/1623%640 Mi12 ms
billing-cronDown0.18.40/10%——
Deploy log · ledger-writer
$ ardent deploy ledger-writer --rev 7.3.2 --canary 10%
14:31:52Z build    sha256:9f2c…e41a · 31/34 layers cached · 12.4s
14:32:05Z migrate  0043_backfill_entry_group  ok
14:32:07Z canary   1/6 replicas on 7.3.2 · p99 104ms · err 0.00%
14:32:09Z warn     hpa: cpu target 70% exceeded on 2 pods (87%)
14:32:10Z hold     awaiting approval to promote ▌

↑ Sortable columns · tabular numerals · state as shape, color and word


B

Latency investigation

Observability

One scale, one threshold, one story. Ink carries the measurement; red is spent only on the line that was crossed and the requests that crossed it.

ledger-reader · latency, 24 hpeak 336 ms · 4 h over SLO
p99 msp50 msSLO 250 ms
0100200300400
14:00Z20:00Z02:00Z08:00Z
Distributionms, upper bound
102550751001502505001s1s+
INC-2291resolved · 3 h 34 m
  1. 03:41ZBurnp99 budget burning at 6.2× over 1 h window
  2. 04:02ZPageSLO breach. p99 274 ms against 250 ms
  3. 04:09ZAckAcknowledged by r.castellanos
  4. 05:48ZCauseMissing index on entry_group; seq scan under load
  5. 07:15ZFixMigration 0042 applied. p99 back under 250 ms

↑ Single y-axis · threshold drawn, not implied · timeline reads top to bottom


C

General ledger

Finance

Accounting has had a dense, correct visual language for five centuries. Ardent borrows it: right-aligned figures, a double rule over totals, and a balance check that is computed, not asserted.

Cash
4.82M USD↑3.1%
Receivable
1.26M USD↑8.4%
Payable
0.74M USD↓1.7%
Runway
21.4mo→
JournalPeriod 2026-11 · USD · open
DateEntryAccountDebitCredit
11-09JE-4471assets/cash/operating48,200.00
assets/receivable48,200.00
11-10JE-4472expense/cloud/compute31,480.55
liabilities/payable31,480.55
11-10JE-4473assets/receivable96,000.00
liabilities/deferred-revenue96,000.00
11-12JE-4474liabilities/payable12,750.00
assets/cash/operating12,750.00
11-12JE-4475liabilities/deferred-revenue8,000.00
income/subscriptions8,000.00
Balanced5 entries · 10 lines196,430.55196,430.55
Receivables aging1,260,000.00 USD outstanding
Current61 inv.58.9%742,300.00
1–30 d24 inv.25.3%318,900.00
31–60 d9 inv.9.6%121,400.00
61–90 d4 inv.4.2%52,800.00
90+ d3 inv.2.0%24,600.00

↑ Debits equal credits or the footer says so in red · aging shades darken with risk


D

Network operations

Aviation

A control room wall, at desk size. Eight measures with twelve hours of history each, the alerts that explain them, and the board they affect.

Flights today
2,847↑12
On time
94.7%↑1.8
Delayed
142↓23
Cancelled
8↑3
Fleet active
312→
In maintenance
24↑3
Load factor
87.3%↑2.1
Pax today
284K↑8%
OPS-12JFK runway 13L/31R closed. AD 2210 cancelled; later JFK departures held.
WX-142DEN flow control. Expect 30–40 min departure delays.
MX-089N742AD returned to service after A-check.
Departures · SFOlocal time · updated 14:02
FlightToSchedEstGateStatus
AD 328ORD Chicago14:0514:05B7Boarding
AD 1172DEN Denver14:2014:55B12Delayed 35m
AD 2210JFK New York14:30——Cancelled
AD 741SEA Seattle14:4014:40A3On time
AD 1904IAH Houston14:5514:55B9On time
AD 86EWR Newark15:1015:25B4Delayed 15m

↑ Arrow gives direction, color gives judgment: fewer delays is ↓ and green


E

Access review

Enterprise admin

Admin software is where people do careful work quickly. Filters sit above the data they filter, findings are named in the row, and the audit trail is one glance away. Try the filters.

PrincipalsQ4 review · due 2026-11-30
PrincipalRoleScope2FALast seenFinding
m.okaforOwnerorg/*Enforced2 min ago
j.lindqvistAdminbilling/*Enforced1 h ago
svc-deployServiceprod/deployKey only14 s ago
r.castellanosEngineerprod/readEnforced40 min ago
t.nakamuraEngineerstaging/*Missing9 d agoNo 2FA
p.oyelaranAuditoraudit/readEnforced5 h ago
a.haddadAnalystreports/readEnforced41 d agoDormant
svc-legacy-etlServicewarehouse/writeKey only96 d agoDormant

8 of 8 principals

Audit trailtoday · UTC
  1. 14:02:11ZGRANTr.castellanos → prod/read
  2. 13:47:50ZDENYt.nakamura → prod/deploy (no second factor)
  3. 11:20:04ZROTATEdeploy key 7f3a → c91e
  4. 09:15:32ZREVOKEcontractor-17 → billing/read

↑ Live filtering · empty state says what to do · count always visible


F

Pipeline runs

Data engineering

144 runs in one frame. Success is the quiet default, so the failure at 02:00Z and the two downstream jobs it starved read as a single shape.

Hourly runs, last 24 holdest → newest
ingest.orders100%4m 12s
ingest.payments100%6m 48s
normalize.ledger92%11m 03s
build.fact_revenue100%18m 27s
build.dim_customer100%2m 40s
export.warehouse100%9m 15s
On time~Late×Failed·Skipped, upstream failedsuccess · median run

↑ Exceptions carry a glyph as well as a color · the cascade is visible, not described


G

The same fleet, in a terminal

TUI surface

One vocabulary across surfaces. Exhibit A rendered again as a 3270-style operator panel: protected labels recede to gray, values carry the light, accents become the ANSI palette, and the data does not change.

ardent top · 3270 session
 ARDTOP01 ──────────────────── FLEET MONITOR · PROD · US-EAST-1 ───────────── 3 NEED ATTENTION 
 Command ===> █_______________________________________________________________  Scroll ===> CSR
                                                                                               
 Region . . . us-east-1  Env . . . .  prod       Interval . . 5s         Clock . . .  14:32:07Z
 Services . . 8          Ready . . .  53/56      Attention .  3          Sort . . . . state    
                                                                                               
 Cmd Service         State     Rev      Ready  CPU                                 Mem      P99
 ─── ─────────────── ───────── ──────── ─────  ───────────────────────────── ───────── ────────
  _  api-gateway     OK        4.18.2   12/12  ██████████░░░░░░░░░░░░░░  41%     812Mi    118ms
  _  auth            OK        2.9.0      6/6  ████░░░░░░░░░░░░░░░░░░░░  18%     344Mi     42ms
  _  ledger-writer   DEGRADED  7.3.1      5/6  █████████████████████░░░  87%    2210Mi    412ms
  _  ledger-reader   OK        7.3.1      8/8  █████████░░░░░░░░░░░░░░░  36%    1480Mi     96ms
  _  search-indexer  OK        1.44.0     4/4  ████████████░░░░░░░░░░░░  52%    3072Mi    188ms
  _  notifier        DRAINING  3.2.7      2/3  ██░░░░░░░░░░░░░░░░░░░░░░   9%     196Mi     61ms
  _  billing-cron    DOWN      0.18.4     0/1  ░░░░░░░░░░░░░░░░░░░░░░░░   0%         —        —
  _  edge-cache      OK        5.0.3    16/16  ██████░░░░░░░░░░░░░░░░░░  23%     640Mi     12ms
                                                                                               
 Events ─────────────────────────────────────────────────────────────────────────────── 5 of 5 
 14:32:01 ledger-writer   WARN  p99 412ms over the 250ms objective for 6 min                   
 14:31:44 ledger-writer   WARN  replica 6 of 6 not ready: readiness probe timed out            
 14:30:11 notifier        INFO  draining for 3.2.8 rollout, 2 of 3 replicas serving            
 14:28:40 billing-cron    ERR   CrashLoopBackOff · exit 137 OOMKilled · restart 9              
 14:12:05 edge-cache      INFO  scaled 12 → 16 replicas on request rate                        
                                                                                               
  F1=Help  F3=Exit  F5=Refresh  F7=Up  F8=Down  F10=Logs  F12=Cancel                           

↑ Every line is generated from the fleet data and is exactly 95 cells · dot leaders and F-keys after ISPF


Set in Inter, Luxi Sans, Old Standard TT and Go Mono.

Ardent Design 0.3.0 · Dhison Padma · 2026