SuperCat Design System · Primitives · iPad-grade
.kdtA framework-agnostic data table that reads like editorial typography. Hairlines, tabular numerals, restraint. Default density sits at 52 px — premium and iPad-friendly. Hover and selected both lift the row a half-step toward paper. Selection is signaled by the checked chip in the first column. No row ever turns pink, no crimson chrome anywhere.
Direct replacement for the current Orders screen. Order # is body text, not a link — that's an in-cell affordance, not a brand moment. Customer names hold a single line; addresses fall back to a whispered em-dash when empty (no orphan commas). Timestamps are tabular mono so the column scans without jitter.
| Order # | Source | Internal ID | Submitted | Customer | Address | Status | Total | ||
|---|---|---|---|---|---|---|---|---|---|
| 136131-112625-10 | iPad | 1586036 | 2025-11-26 · 14:39 | Brent Sanders | Greensboro, NC | Confirmed | $12,480.00 | ||
| 136131-112625-9 | iPad | 1586021 | 2025-11-26 · 14:30 | Lina Park | High Point, NC | Confirmed | $8,940.50 | ||
| 136131-112625-8 | Web | 1586016 | 2025-11-26 · 14:22 | Howard & Co. | — | Pending | $3,612.00 | ||
| 136131-112625-7 | iPad | 1586015 | 2025-11-26 · 14:22 | Marigold Living | Asheville, NC | Shipped | $21,005.75 | ||
| 136131-112625-6 | iPad | 1586012 | 2025-11-26 · 14:17 | Ferro Furniture | Hickory, NC | Confirmed | $6,180.00 | ||
| 136131-112625-5 | iPad | 1586005 | 2025-11-26 · 14:04 | Bennett & Hall | Raleigh, NC | Confirmed | $9,440.00 | ||
| 136131-112625-4 | iPad | 1586003 | 2025-11-26 · 13:59 | Saltbox Studio | Charlotte, NC | Draft | $2,180.00 | ||
| 136131-112625-3 | iPad | 1586002 | 2025-11-26 · 13:50 | Northcoast Trading | Wilmington, NC | Returned | $540.00 | ||
| 136131-112625-2 | iPad | 1585995 | 2025-11-26 · 13:46 | Hawthorn House | Charlotte, NC | Shipped | $18,720.00 | ||
| 136131-112625-1 | Web | 1585983 | 2025-11-26 · 13:31 | Brent Sanders | Greensboro, NC | Confirmed | $4,250.00 |
Default is iPad-grade-plus (52 px rows). Compact is power-user dense. Cozy is for tablets in landscape and forms-adjacent contexts.
| Product | SKU | Vendor | Qty | Price |
|---|---|---|---|---|
| Ridgeline armchair | RD-1042 | Caldera Mills | 12 | $1,240.00 |
| Mantle dining table | MN-2210 | Caldera Mills | 3 | $3,180.00 |
| Linen runner · oat | LR-0418 | Atlas Linens | 48 | $96.00 |
| Cane side table | CS-7732 | Wovenway Co. | 7 | $420.00 |
| Product | SKU | Vendor | Qty | Price |
|---|---|---|---|---|
| Ridgeline armchair | RD-1042 | Caldera Mills | 12 | $1,240.00 |
| Mantle dining table | MN-2210 | Caldera Mills | 3 | $3,180.00 |
| Linen runner · oat | LR-0418 | Atlas Linens | 48 | $96.00 |
| Cane side table | CS-7732 | Wovenway Co. | 7 | $420.00 |
| Product | SKU | Vendor | Qty | Price |
|---|---|---|---|---|
| Ridgeline armchair | RD-1042 | Caldera Mills | 12 | $1,240.00 |
| Mantle dining table | MN-2210 | Caldera Mills | 3 | $3,180.00 |
| Linen runner · oat | LR-0418 | Atlas Linens | 48 | $96.00 |
.kdt-flat is the default — hairline row dividers,
transparent rows. .kdt-zebra alternates a faint
cream tint, good for scanning long columns of numbers.
.kdt-card lives on the wrapper and frames the
whole grid in a rounded, hairline-bordered container.
| Item | SKU | Q1 | Q2 | Q3 | Q4 | YTD |
|---|---|---|---|---|---|---|
| Ridgeline armchair | RD-1042 | 142 | 218 | 181 | 240 | 781 |
| Mantle dining table | MN-2210 | 38 | 52 | 47 | 61 | 198 |
| Linen runner | LR-0418 | 412 | 605 | 588 | 730 | 2,335 |
| Cane side table | CS-7732 | 71 | 88 | 102 | 95 | 356 |
| Field bench | FB-3304 | 14 | 22 | 31 | 28 | 95 |
| Vendor | Region | Orders | Returns | Net |
|---|---|---|---|---|
| Caldera Mills | Southeast | 312 | 4 | 308 |
| Atlas Linens | National | 1,204 | 12 | 1,192 |
| Wovenway Co. | West | 88 | 1 | 87 |
| Birch & Boucle | Northeast | 540 | 7 | 533 |
Built into table.css so the primitive ships
zero-dependency. When the standalone Tag primitive
.kt-* lands, these will alias to it — same markup,
no migration in pages.
| Status | Token mapping | Use when |
|---|---|---|
| Confirmed | --status-success | Order placed, payment cleared, ready to fulfill. |
| Pending | --color-gold | Awaiting action — review, approval, payment. |
| Shipped | --status-info | Neutral progression state — in motion, not blocking. |
| Returned | --status-danger | Destructive / regression. Use sparingly. |
| Draft | --text-muted | Default / not-yet-classified. Quiet. |
Add .kdt-sticky-head to the wrapper for a sticky
thead during vertical scroll. Add .kdt-sticky-first
to keep the first column anchored during horizontal scroll. Scroll the
box below to see both.
| Vendor | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | YTD |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Caldera Mills | 42 | 61 | 58 | 71 | 88 | 94 | 62 | 58 | 71 | 85 | 102 | 112 | 904 |
| Atlas Linens | 181 | 204 | 221 | 198 | 240 | 260 | 252 | 268 | 280 | 295 | 310 | 322 | 3,031 |
| Wovenway Co. | 14 | 18 | 21 | 24 | 29 | 32 | 31 | 28 | 26 | 24 | 22 | 21 | 290 |
| Birch & Boucle | 82 | 94 | 88 | 101 | 112 | 120 | 118 | 124 | 130 | 128 | 132 | 142 | 1,371 |
| Field & Frame | 12 | 14 | 18 | 21 | 28 | 34 | 38 | 42 | 45 | 48 | 52 | 56 | 408 |
| Northcoast | 28 | 32 | 34 | 38 | 44 | 48 | 52 | 58 | 62 | 66 | 71 | 74 | 607 |
| Marigold | 94 | 102 | 112 | 118 | 124 | 128 | 130 | 135 | 140 | 144 | 150 | 158 | 1,535 |
| Saltbox | 8 | 11 | 14 | 18 | 22 | 26 | 28 | 31 | 34 | 36 | 38 | 42 | 308 |
The sortable header is a <button class="kdt-sort">
inside the <th> — proper keyboard target,
proper screen-reader semantics via aria-sort.
Active sort tints the indicator crimson; the chevron flips for descending.
| Cane side table | CS-7732 | 412 | $24,720.00 |
| Field bench | FB-3304 | 298 | $17,880.00 |
| Linen runner | LR-0418 | 181 | $362.00 |
| Mantle dining table | MN-2210 | 142 | $150,520.00 |
| Ridgeline armchair | RD-1042 | 88 | $109,120.00 |
Selected rows get a single 3 px crimson left edge and a one-step
paper lift — no pink, no tint. The bulk-actions strip is ink-dark with
.kb kb-sm buttons inverted to read on near-black.
Toggle the master checkbox or any row to see it slide in.
| Order # | Customer | Status | Total | ||
|---|---|---|---|---|---|
| 112625-10 | Brent Sanders | Confirmed | $12,480.00 | ||
| 112625-9 | Lina Park | Confirmed | $8,940.50 | ||
| 112625-8 | Howard & Co. | Pending | $3,612.00 | ||
| 112625-7 | Marigold Living | Shipped | $21,005.75 | ||
| 112625-6 | Ferro Furniture | Confirmed | $6,180.00 |
Two flavors: an inline empty row (a single mono caption) for filtered results, and a full empty board for first-run / never-had-any moments. Both consume only semantic tokens — neutral, never accusatory.
| Order # | Customer | Status | Total |
|---|---|---|---|
| — No orders match the current filters | |||
| Order # | Customer | Status | Total |
|---|
When sales reps submit orders from iPad or the web portal, they'll appear here. You can also import historical orders from a CSV.
Set aria-busy="true" on the
<tbody> and render N
.kdt-skel rows. Bar widths vary per column via
style="--w: 60%" so the skeleton reads as
plausible content rather than a uniform stripe.
| Order # | Customer | Submitted | Status | Total | |
|---|---|---|---|---|---|
Below 640 px the same markup re-flows into per-row cards with
label-value pairs. Add .kdt-stack to the wrapper
and data-label to each
<td>. Resize this window narrower than
640 px to see it. iPad-split-view friendly.
| Order # | Customer | Submitted | Status | Total | |
|---|---|---|---|---|---|
| 136131-112625-10 | Brent Sanders | 2025-11-26 · 14:39 | Confirmed | $12,480.00 | |
| 136131-112625-9 | Lina Park | 2025-11-26 · 14:30 | Confirmed | $8,940.50 | |
| 136131-112625-8 | Howard & Co. | 2025-11-26 · 14:22 | Pending | $3,612.00 |
Next · .kb button · .kf forms · .ki icon · Card (next)