Principles
| Principle | Plain statement |
|---|---|
Surface what the backend already knows |
First-class UI for real user jobs; power-user syntax is not a substitute |
Parity of affordances |
If Mentions is a dropdown, Commenter must be too |
GUI / source-of-truth sync |
Settings GUI must reflect reality; jump-to-JSON when needed |
Clear severity and exit codes |
Warnings look like warnings; help is not failure |
No silent failure / lying toasts |
Explain why, offer a fix |
Theme as contract |
Previews and diagrams inherit host theme tokens |
Preview fidelity |
Interactive constructs stay interactive; sync tracks source |
Progressive disclosure |
Budget the first screen; deepen on demand |
Visitor-first repo homepage |
Hide empty owner CTAs; put README before the file tree; disclose addable sidebar sections on demand |
Context-bound settings |
Settings follow activity state as a dependent surface — show only applicable controls beside the here-and-now; keep the global catalog as escape hatch |
Instruction flows for decision-tree docs |
Menu-style paths: one choice at a time, continuations under decisions, shareable URL state |
Pass-through extensions for meta-suffixes |
|
Open-with interrupt for alternate handlers |
Ctrl+double-click or middle-click on a file asks which app opens this launch — default open is not an unstoppable handoff |
ClearType subpixel fidelity |
Tuner UI must not imply per-panel RGB/BGR when GDI orientation is session-global and DirectWrite monitor params are app-opt-in |
Scoped UX architecture |
Many small tools, each with a clear job, under one roof — hard boundaries plus a shared shell |
Processing maps for ordered systems |
If the runtime is a sequence, compose it as one typed pipeline — nest parallelism inside steps |
Share IR, not pixels |
Prototypes split core, headless controller, renderers, and thin host wrappers — do not auto-export full UI |
Unified selection modes |
File and folder in one dialog when the job is "open something" |
Non-frustrating responsiveness |
Hangs are architectural bugs, not user patience tests |
Attention ethics |
Do not spend the user’s brain for engagement metrics |
Labels versus wires |
Pretty names are human labels; systems wire on content identity or explicit pointers — not on the label alone. Public entry is the felt rename/URL breakage; this principle is the diagnosis. |
These principles come from filed issues, discussions, and shipping products — not from abstract style guides.