steid

@jamesgill /

steid/plans/ui.md
2.9 KBCode·Blame·Raw
ab7fea9chore: plans setup1mo
1# UI
2
3## Philosophy
4
5A developer tool people use daily to browse code and manage repos. Optimise for:
6
71. **Speed-first** — minimise clicks, maximise information density
82. **Scannable** — find what you need in under a second
93. **Quiet confidence** — premium without flashy; the UI should disappear
104. **Code-centric** — code is the hero, everything else supports it
11
12| Principle | Meaning |
13|---|---|
14| Readable density | Compact without cramped. Maximise info per viewport. |
15| Clear hierarchy | Strong contrast between labels, content, and muted elements |
16| Functional spacing | 8px on items, 12–16px on sections. No wasted space. |
17| Keyboard-first | Every action reachable without a mouse |
18| Dark-mode primary | Developers live in dark mode. Light mode is supported, secondary. |
19
20**Do:** small type (`text-xs` / `text-sm` for most UI), small buttons, monospace for
21paths, SHAs, and branch names, opacity modifiers for text hierarchy, tight spacing.
22
23**Don't:** large type outside page titles, shadows in dark mode (use borders), bright
24backgrounds, hover animations that move or resize things.
25
26## Where the portfolio framing bites
27
28Steid is portfolio-first, not a Gitea clone. The profile page is the product — repos
29are one kind of thing on it, alongside writing and projects. Any layout inherited from
30a GitHub-shaped forge needs checking against that before it's copied.
31
32## Stack
33
34Topcoat bundles assets and ships Tailwind **without Node**, plus htmx and Alpine
35integrations, Fontsource, and Iconify.
36
37That's worth noting: the previous attempt dropped Tailwind purely to avoid an npm
38build step and hand-rolled CSS instead. Topcoat removes that objection, so Tailwind is
39back on the table at no tooling cost.
40
41Suggested, none of it settled until Milestone 5 needs real pages:
42
43| Concern | Candidate |
44|---|---|
45| Styling | Tailwind via Topcoat's bundler |
46| UI font | Inter (Fontsource) |
47| Mono font | IBM Plex Mono |
48| Icons | Iconify |
49| Interactivity | Topcoat signals; htmx where signals fall short |
50
51Topcoat's own client reactivity is early and acknowledged as limited, which is why the
52htmx integration exists. Reach for signals first, fall back without ceremony.
53
54## Prior art
55
56Attempt #1 (`steid-backup/AGENTS/UI.md`) has a complete 643-line design system —
57OKLCH light/dark palettes with concrete token values, a type scale, spacing scale, and
58component markup for sidebar, file tree, commit bar, breadcrumbs, badges, empty
59states. It was written for Tailwind + DaisyUI.
60
61It is worth mining when Milestone 5 arrives, with two caveats: it specifies DaisyUI,
62which is a separate choice from Tailwind and not bundled by Topcoat; and it was
63written for a GitHub-shaped forge rather than a portfolio-first one.
64
65It is also, on its own, longer than every other doc in this directory combined — for
66an app that had about nine pages. Take the palette and the principles. Don't
67re-specify components before there are components.