ZEROlobby
22/22 strict⌘Kvisitor
skip to main
ADR-020
skin
——:——:——zcovenant · audit
data· chapter 27 · ADR-020

six primitives · one tabular grammar · zero ad-hoc tables

the cockpit can finally ship a real orders table. the league can paginate operators. the journal can tree-view nested decisions. the studio can mark settlement Thursdays. every empty surface gets a calm zero-state. every loading surface gets a breath-driven skeleton. the seven-state cell grammar from the form pack carries through tables so the covenant detector reads one set of selectors.

data-table · live

36 rows of paper trades · sort by any column · filter by side · free-text search by asset or receipt hash · dial density and page size · simulate a fetch to see the breath-driven loading state · the seven-state cell grammar carries through every row.

data-table · live· 36 rows · sort · filter · paginate · density · the operator drives the grammar36 / 36cozypage 1 / 3
side
density
rows · 12
paper-trade ledger · 36 match · sorted ts desc
receipt
18:43:28btc-perplong15.59-190.30#6172cf
18:00:03tia-perplong3.53-197.80#16173c
17:43:10tia-perpshort15.90-190.10#636823
17:28:16btc-perplong3.22-198.00#14218c
17:01:07arb-perplong7.06-195.60#2c2e79
17:00:22eth-perpshort6.75-195.80#2a38e8
16:14:12eth-perpshort10.60-193.40#4245c2
16:10:26tia-perplong19.12-188.10#7789ae
15:26:09arb-perplong19.43-187.90#797f12
15:03:15btc-perpshort14.13-191.20#585cf3
14:42:28btc-perplong13.82-191.40#56674e
14:01:18btc-perplong10.28-193.60#404fad
trade receipt
rows visible
12 (page 1 / 3)
matched
36 of 36
sort
ts · desc
side filter
all
long · short · refused
12 · 7 · 5
density
cozy
state
idle

02 data-table · cozy density

tabular numerals throughout · sortable columns · refused row renders the strikethrough cell variant · receipt hash uses the monospace family.

paper trade ledger · 2026-05-10
timeassetsidesizep/lreceipt
14:22:08sol-perplong12.40+82.30#7af3·9
14:24:51eth-perpshort4.10-14.10#a18b·2
14:31:02sol-perprefused0.00[refused]#3c2a·1
14:39:17btc-perplong0.21+41.40#9f44·6
14:42:30jup-perpshort320.00+8.10#1d77·4
14:48:09eth-perplong6.00+19.80#bb02·8

03 compact

timeassetsidesize
14:22:08sol-perplong12.40
14:24:51eth-perpshort4.10
14:31:02sol-perprefused0.00
14:39:17btc-perplong0.21

04 comfortable

timeassetsidesize
14:22:08sol-perplong12.40
14:24:51eth-perpshort4.10
14:31:02sol-perprefused0.00

05 pagination

server-renderable when hrefFor is given (the buttons render as <a>). active page is amber-tinted, never solid amber — the chrome budget rule from ADR-007.

06 tree · nested decision history

built on native <details>/<summary> so expand and keyboard work without JS. chevron rotates on [open] via CSS only.

  • decision · sol-perp long 12.4014:22:08
    • oracle · funding skew within 0.7σ14:22:08
    • oracle · spread 0.04bps14:22:08
    • settlement · paper credit +82.3014:22:31
  • decision · sol-perp refused14:31:02
    • reason · funding skew exceeded ceiling14:31:02

07 calendar · settlement thursdays

event dots in five tones; today is amber-tinted; out-of-month days are dimmed.

may 2026 · settlement schedule
27282930123456789101112131415161718192021222324252627282930311234567

08 empty-state

no decisions yetthe journal will populate as the operator decides or refuses. paper trades count.

09 skeleton · breath-driven

10 data-table · loading

timeassetsidesize

11 data-table · empty

timeassetsidesize
no rows yetthe table will populate once the operator opens a position.

12 the six

numprimitivewhy it ships
61DataTablesortable · density grammar · sticky header · seven cell-states reused from forms
62Paginationnumeric pages + prev/next/first/last · server-renderable via hrefFor · tabular nums
63Treecollapsible hierarchy on native <details>/<summary> · keyboard for free
64Calendarstandalone month grid · event dots in five tones · today amber-tinted
65EmptyStatecalm zero-state · icon + title + body + optional action · no exclamation marks
66Skeletonbreath-driven placeholder · text · block · circle · reduced-motion safe