Design a quiet UI for orbit — monochrome, dots, and Iosevka #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/orbit-design-system"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Orbit's MVP rendered with browser-default
system-uiand a handful ofad-hoc styles. That was fine for getting the data flowing but gave orbit
no aesthetic identity — no sense of what a glance at the project page
should feel like. This PR commits to a coherent visual direction that
scales from atoms to pages without rework.
The guiding principle: orbit should take little space and let the content
it holds — projects, ideas, issues, specs — do the showing off. Every
choice falls out of that.
Palette
Warm near-black background with warm cream text, a single sodium-orange
accent for interaction and active state. Everything else is warm greys.
Dark by default, light theme via
prefers-color-schemeonly — no manualtoggle to clutter the chrome.
Typography
Iosevka carries everything — headings, body, labels, code. One instrument,
one font. Its narrow proportions are the most literal answer to "takes
little space". Self-hosted from
design/fonts/(woff2, weights 400 and700, SIL OFL). Font loading uses
<link rel="preload">plusfont-display: blockto eliminate the flash-of-unstyled-text.Brand
A single sodium-orange dot. No wordmark — the word "Orbit" already
appears in the text whenever orbit introduces itself, so the brand mark
is pure graphic.
Dot vocabulary
Three tones carry a universal status language. Active (sodium) for
flow items that moved within the last 7 days. Stale (warm grey) for
flow items that haven't. Done (muted sage) for every entry in the
History archive. Flow items decay with time; history is terminal and
uniform. The rule is implemented server-side via a single
isActive(t)helper plus an
ActiveWindow = 7 * 24 * time.Hourconstant.Component inventory
.site-header,.section-heading,.project-row,.entry-row,.entry-list,.entry-expand,.meta-strip,.day-divider, plus theexisting
.brand,.dot,.dot-active,.dot-done,.btnatoms. CSSsubgrid keeps entry-row columns aligned across variable label widths.
Project detail page
Flow-based stage model: Ideas → Design → Build → Review → History.
Every item lives in one stage at a time. Empty stages collapse. Raw
ideas and untriaged issues sit in Ideas; developing ideas and in-progress
specs sit in Design; ready-to-ship work sits in Build; open PRs sit in
Review; merged PRs and completed events sit in History.
The spec at
design/specs/2026-04-05-orbit-design-system.mdis thecanonical reference.
Known cuts
This PR ships the styleguide under
design/and page previews only.Porting to
web/static/orbit.cssandweb/templates/*.htmlis adeliberate follow-up so the system can be lived-with-in-isolation first.
feat: orbit design system (modern monochrome, dot vocabulary, iosevka)to Design a quiet UI for orbit — monochrome, dots, and Iosevka