9877a1d8e0d90130eb3d5da149eb1a9e9125b06a
Gitea goes first because it is the first Officer surface anyone outside this machine will see. GiteaBits is now a thin adapter over components/Data rather than its own set of styles: it translates Gitea's vocabulary into the five tones and gets out of the way. Export names are unchanged so the ten call sites did not all have to move at once. The one judgement call worth flagging is CLOSED ISSUE -> neutral instead of a colour of its own. Most issues in any list are closed, so giving them a tone paints most of the screen and leaves the open ones no quieter than the rest; neutral is what makes "open" findable, which is the only thing anyone scans an issue list for. A closed PULL request keeps danger — that one was rejected, and rejection is a real outcome. Merged is info, because a merged PR and an open one were previously the same green. Repositories and issues now build on DataRow. Repo rows put the owner prefix in muted and only the name in medium, so one weight per row survives; issue rows truncate rather than wrap so every row keeps one height and the list can be scanned down its left edge. Timestamps are RelativeTime, so "2 months ago" now carries the exact date as a hover title instead of losing it. Swept the whole app for drift: emerald/amber/sky/red palette numbers to success/warning/info/destructive, and every text-[10px] and text-[11px] to text-xs. ring-black/5 and text-black/50 are gone — both were invisible in dark mode. Nothing below 12px remains anywhere in Gitea. Empty states say why they are empty now. "No open issues" on a repo with fifty closed ones was technically true and useless. Typechecks clean. Still not rendered in a browser — needs pm2 restart officer and a hard refresh. text-xs is still 65 uses against 21 text-sm; the remaining pass is per-case judgement about which of those are meta and which are content that should be readable, and it is not a sweep. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
42 MiB
Languages
TypeScript
90.9%
Shell
4.7%
JavaScript
4.1%
CSS
0.2%
HTML
0.1%