Dense dashboard / admin / Bloomberg / Retool / data-heavy internal tools. Locked knobs: CRAFT=7, MOTION=3, DENSITY=9. IBM Plex + mono numbers, semantic palette, 4/8px grid, sparklines, tabular-nums. Trigger on: dashboard, admin panel, data-dense, analytics, Bloomberg-like, Retool-like.
--- name: ui-craft-dense-dashboard description: "Dense dashboard / admin / Bloomberg / Retool / data-heavy internal tools. Locked knobs: CRAFT=7, MOTION=3, DENSITY=9. IBM Plex + mono numbers, semantic palette, 4/8px grid, sparklines, tabular-nums. Trigger on: dashboard, admin panel, data-dense, analytics, Bloomberg-like, Retool-like." argument-hint: "[action: build|review|polish] [target]" --- # UI Craft — Dense Dashboard Pre-committed dense style: data-first, keyboard-first, operator tools. Bloomberg, Retool, Linear issues view, admin panels. Every pixel earns its place. ## Knobs (locked) - **CRAFT_LEVEL = 7** — polished but not precious; operators value speed over sheen. - **MOTION_INTENSITY = 3** — micro-only. Row hover, row active tint, inline confirm. No scroll reveals in table areas. - **VISUAL_DENSITY = 9** — tight 4/8px grid; whitespace earns its place. Do not re-ask these in Discovery. Confirm brand accent + dark/light preference only. ## Style anchors - UI sans + mono pairing. Mono for every ID, hash, timestamp, code. - Semantic palette required: success, warning, danger, info + one brand accent. - `tabular-nums` on every numeric column; mono on identifiers. - Tight 4/8px spacing grid. `px-3 py-2` table cells, `gap-2` toolbars. - Sparklines everywhere; horizontal bars for categorical; area for time-series. No pie. No 3D. - Keyboard shortcuts visible inline (`⌘K`, `J/K`, `E` to edit). - Dense chrome: breadcrumbs + tabs + toolbars + filter chips are welcome. - Micro-motion only. Row hover, row active, inline save. No entrance stagger. ## Base rules (inherited) All rules in `../ui-craft/SKILL.md` apply. This file overrides knob defaults and adds style-specific guidance below. The anti-slop and craft tests still apply in full. ## Style-specific overrides **Typography** - UI: IBM Plex Sans or Inter, 400 / 500. - Mono: IBM Plex Mono or Geist Mono for IDs, hashes, timestamps, code, version numbers, kbd. - Body size: 13-14px default; 12px in dense tables is fine. - `tabular-nums` on every numeric column, metric card, timestamp, duration. - `font-variant-numeric: tabular-nums slashed-zero` for IDs + codes. - Headings: compact. Page title 18-20px, section 14-15px 500. **Color (semantic palette required)** - Brand accent: one — primary actions, active tab, selected row accent tint. - Semantic, subdued OKLCH (lightness 50-60, chroma ≤ 0.15): - success `oklch(60% 0.12 150)` - warning `oklch(72% 0.13 75)` - danger `oklch(58% 0.15 25)` - info `oklch(62% 0.12 240)` - Never saturated hues — dashboards live on screens for 8 hours. - Status dots, badge text, chip text use semantic color; backgrounds stay neutral. **Spacing & layout** - 4/8px spacing scale — never 5, 7, 9, 10. Stick to 4 / 8 / 12 / 16 / 24. - Table cells: `px-3 py-2` default; `px-2 py-1.5` for ultra-dense. - Toolbar rows: `gap-2`, `h-9` controls, `text-sm`. - Sidebar: narrow (200-240px), subtle bg tint, icon + label; never full dark. - Cards: `p-4`, 8px radius; 1px border over shadow. **Data display** - Every number column: `tabular-nums` + right-aligned. - Every ID / hash / commit / timestamp: monospace. - Sparklines inline in rows for trend context. 24-40px tall, single color. - Category charts: horizontal bars. Time-series: area with 15% → 0% fade. No pies. - Deltas: plain text `+12.5%` in semantic color, no pill. - Empty states: one-line hint + keyboard shortcut to create. **Chrome & navigation** - Breadcrumbs + tabs + sub-toolbar together is expected and fine. - Filter chips: outline style, removable `×`, no pill fill. - Global command palette: `⌘K` visible in header search affordance. - Row actions: inline icons on hover; also available via keyboard. - Pagination: text `Page 3 of 42` + `tabular-nums`, plus `J/K` navigation. **Motion** - Row hover: background shift to `oklch(96% 0.002 250)` light / `oklch(20% 0.005 250)` dark, 80ms. - Active/selected row: brand accent tint at ~6% opacity + 2px accent left border. - Inline save / confirm: 150ms fade + check icon swap. - No scroll-triggered reveals in table areas — they stutter long lists. - Sort arrow, filter open, column resize: instant or <100ms. ## Reference files to read first Load these from `../ui-craft/references/`: - `dashboard.md` — primary reference; metric cards, charts, sidebar, tables - `typography.md` — tabular-nums, mono pairing, scale - `motion.md` Rendering Performance — compositor pipeline, layer promotion, scroll-linked motion - `responsive.md` — tablet + laptop breakpoints, toolbar collapse Skip `inspiration.md` (landing-page focused), `sound.md`. ## Anti-patterns for THIS style - Serif fonts anywhere in chrome or data. Editorial is a different variant. - Proportional figures in numeric columns — always `tabular-nums`. - Saturated hues — reads as consumer app, not operator tool. - Colored pills on every delta — plain text in semantic color. - Pie charts, donut charts, 3D charts. Ever. - Vertical bar chart for time-series — use area/line. - Uniform colored top borders on metric cards. - Card grids with heavy whitespace — if it feels airy, wrong variant. - Full-dark sidebar (common AI pattern) — subtle tint only. - Scroll-triggered reveals or stagger animations in table areas. - Hidden keyboard shortcuts — always surface `⌘K`, row shortcuts, help trigger. - Vague loading states — show skeleton rows matching column structure, not generic spinner.
Creator's repository · educlopez/ui-craft