PARABELLUM
Parabellum/ design-system
v2.0 — locked 2026-05-08
§ 00Contract

The shapes,
the colors,
the rules.

Every primitive and composite that Parabellum's interface is allowed to be made of. If a page needs something that isn't here, it goes here first.

§01 — Color

Surfaces · ink · brand · signal

Surfaces

bg#08080F
--color-bg
bg-raised#0C0C18
--color-bg-raised
bg-sunken#050509
--color-bg-sunken

Ink

ink#F4F4FB
--color-ink
ink-soft#A8AAC2
--color-ink-soft
ink-faint#5C5E7A
--color-ink-faint

Brand

violet#7B61FF
--color-violet
violet-hi#9B85FF
--color-violet-hi
violet-lo#5A42E0
--color-violet-lo
cyan#5EEAD4
--color-cyan
cyan-hi#7FF5E2
--color-cyan-hi
cyan-lo#3DC9B0
--color-cyan-lo

Signal

signal-green#3DD68C
--color-signal-green
signal-amber#F5A524
--color-signal-amber
signal-red#FF5C5C
--color-signal-red
signal-blue#5CABFF
--color-signal-blue
§02 — Type

Geist Sans · Geist Mono · Instrument Serif

display-xl72 / 1.05 / -0.04em
Discipline that runs at full burn
display-l56 / 1.07 / -0.035em
Built for the people doing the work
display-m40 / 1.10 / -0.03em
Twin learns. You decide.
h132 / 1.18 / -0.025em
The performance ledger
h224 / 1.25 / -0.02em
What's running today
h318 / 1.45 / -0.01em
Cadence — every morning at 06:00
body15 / 1.6
Parabellum tracks the inputs to outputs people care about — sleep, training load, mood, real-world earnings — and shows you the throughline.
body-s13 / 1.54
Updated 4 minutes ago · 12 events queued
caption11 / 1.45 / +0.06em
OPERATING UNDER CONSTRAINT
mono13 mono / 1.54
0.42 ETH · 12,488 PRBL · 99.7% uptime
Sans / Geist

Aa Bb Cc 0123

Default UI face. Variable weight 100→900. Stylistic alts cv11, ss01 enabled.

Mono / Geist Mono

Aa Bb 0.123

Data, metadata, addresses. Tabular numerals enforced via .tabular utility.

Serif / Instrument

Aa Bb Cc 0123

Reserved for pull-quotes and editorial section openers. Italic only.

§03 — Space & radii

8pt grid · 4pt half-step

Space

14px
28px
312px
416px
520px
624px
832px
1040px
1248px
1664px

Radii

rounded-xs4
rounded-sm8
rounded-md12
rounded-lg16
rounded-xl24
§04 — Light & motion

Five elevations · four curves · four durations

soft
elevated
floated
glow-violet
glow-cyan
ease-out-expo
cubic-bezier(.16, 1, .3, 1)
ease-out-quart
cubic-bezier(.25, 1, .5, 1)
ease-in-out-quart
cubic-bezier(.76, 0, .24, 1)
ease-emphasized
cubic-bezier(.2, 0, 0, 1)
duration-instant
80ms
duration-fast
120ms
duration-normal
200ms
duration-medium
360ms
duration-slow
600ms
§05 — Primitives

Eighteen building blocks. shadcn-shaped, retoken'd.

Buttonprimary · secondary · ghost · link · violet · danger
Input · Textarea · Label
Badge
DefaultVioletCyan LivePendingFailingOutlineSolid
Switch · Checkbox
Tabs
Today's entries — 12 events queued, 4 awaiting attestation.
Dialog · Tooltip · Dropdown · Avatar
JPPBAI
Accordion

A locally-hosted twin that observes the inputs you let it see — sleep, calendar, training load, earnings ledger — and runs nightly inference against goals you set. Nothing leaves the machine you authorize.

Progress · Skeleton
Sleep recovery82%
Training load64%
Earnings to goal38%
Card

Daily attestation

Signed at 06:14 · committed to chain at 06:15

You logged 7h 42m of sleep, two training blocks, one journal entry. The engine flagged a 4% recovery uptick.

"On the days I let it lead, the work is better."

— operator note · 03 May

ScrollArea
tx_a1b2c30.10956 ETH
tx_a1b2c40.02461 ETH
tx_a1b2c50.20313 ETH
tx_a1b2c60.10885 ETH
tx_a1b2c70.19913 ETH
tx_a1b2c80.11820 ETH
tx_a1b2c90.02888 ETH
tx_a1b2ca0.17671 ETH
tx_a1b2cb0.12688 ETH
tx_a1b2cc0.03164 ETH
tx_a1b2cd0.09570 ETH
tx_a1b2ce0.11820 ETH
tx_a1b2cf0.03905 ETH
tx_a1b2d00.06065 ETH
tx_a1b2d10.03776 ETH
tx_a1b2d20.12876 ETH
tx_a1b2d30.07482 ETH
tx_a1b2d40.08235 ETH
tx_a1b2d50.03746 ETH
tx_a1b2d60.04521 ETH
tx_a1b2d70.15320 ETH
tx_a1b2d80.19713 ETH
tx_a1b2d90.01700 ETH
tx_a1b2da0.10395 ETH
§06 — Composites

The shapes pages will be made of.

Eyebrow

Operating liveTwin · v0.4.2Kickstarter day 12NO DOT VARIANT

SectionHeader (split)

01 · 04Capability

Discipline as an operating constraint, not a vibe.

Parabellum doesn't grade your day. It measures whether the inputs you committed to actually happened, and shows you when they didn't.

Always-on
02 · 04Loop

Sense → propose → log → settle.

One run per day, one signed attestation. The loop is small on purpose.

StatusDot

live
idle
warning
error
info

MetricCell

Streak
142days
+1 today
Sleep mid
7h 42m
+18m wk
Earnings
0.124ETH
−2.1% wk
Backlog
12
no change

Ledger

TrackCadenceLast runDrift
Morning attestation06:00 daily · violet quorum
06:0006:01:18+1.18s live
Training load digestpost-block · auto
on-event13:42:09queued
Weekly settlementMon 09:00 · Base
weeklyscheduled

KeyValueRow

Operator
juan@parabellum.tech
Twin id
twn_4f12c8a9
Last sync
2026-05-08 13:42:09Z
Settlement
0.124 ETH
Quorum
3 / 5 attesters
Build
v0.4.2
Region
us-east-1
Uptime
99.974%
p95 latency
8.3ms
Cold-start ratio
0.4%

CodeBlock

parabellum.config.tsts
export default defineParabellum({
  twin: {
    id: 'twn_4f12c8a9',
    cadence: 'daily',
    settle: { chain: 'base', mode: 'weekly' },
  },
  attestation: { quorum: 3, signers: 5 },
});

Marquee (live ticker)

△ 142 days streak0.124 ETH settled8.3ms p9512 events queuedviolet quorum reachedbuild v0.4.2▣ 99.974% uptimeoperator juan signed

Timeline

  1. Q4 '25Spec frozen
  2. Mar '26Twin private beta
  3. May '26Kickstarter live
    day 12 of 30
  4. Jul '26Public launch
  5. Q4 '26Settlement v2