TacidOS
DevelopersGitHub

Design

Phosphor

Quiet, dense, precise. Dim phosphor rather than neon.

A shared token file defines colour, typography, spacing, and motion. This website and the terminal palette use it today; the graphical shell and other planned surfaces follow the same design contract. Both light and dark modes are built from these values.

The mark: a stem at the base, one trunk, two pathways branching to open nodes. The filled node is the only process that runs as root. It is a nervous system, and it is also a generation tree, which is the same picture twice.

The palette

One accent and a neutral scale. Web text colours are derived from the canonical tokens, adjusted toward body text until they meet at least 5.5:1 on the canvas, panels, and raised surfaces.

dark

background#0d1013The page, the terminal, the shell.1.0:1 on background
surface#141a1fA panel that sits on the background.1.1:1 on background
raised#1c242bA row, a header, a control on a panel.1.2:1 on background
border#2a343dOne pixel, where a step in the scale is not enough.1.5:1 on background
muted#8e9ba4Secondary text. Required to reach 4.5:1.6.7:1 on background
text#c3ced6Body text. Required to reach 7:1.11.9:1 on background
bright#e8eef2Headings and the value your eye should land on.16.3:1 on background
accent#4fd6a8One accent. Required to reach 4.5:1.10.5:1 on background
warning#c09146Something needs a person.6.7:1 on background
danger#da8176Something cannot be undone.6.7:1 on background
success#4fd6a8It worked, and it can be undone.10.5:1 on background
info#5aa1ccNeutral emphasis, never decoration.6.7:1 on background

light

background#f7f8f9The page, the terminal, the shell.1.0:1 on background
surface#eef1f3A panel that sits on the background.1.1:1 on background
raised#e4e8ebA row, a header, a control on a panel.1.2:1 on background
border#cfd6dbOne pixel, where a step in the scale is not enough.1.4:1 on background
muted#4f5c67Secondary text. Required to reach 4.5:1.6.5:1 on background
text#28323aBody text. Required to reach 7:1.12.3:1 on background
bright#0d1013Headings and the value your eye should land on.17.9:1 on background
accent#065f43One accent. Required to reach 4.5:1.7.2:1 on background
warning#72571aSomething needs a person.6.4:1 on background
danger#973f32Something cannot be undone.6.4:1 on background
success#065f43It worked, and it can be undone.7.2:1 on background
info#205f8bNeutral emphasis, never decoration.6.4:1 on background

Contrast is a test, not an intention

Every colour is chosen against a measured requirement, and those requirements are tests intacid-design. The numbers below are recomputed here, on this page, from the same token file — so if the palette ever regresses, the website says so before anyone files an issue.

ModeRequirementNeedsMeasuredResult
darkBody text on the background7:111.9:1pass
darkMuted text on the background4.5:16.7:1pass
darkThe accent on the background4.5:110.5:1pass
darkDanger on the background4.5:16.7:1pass
darkWarning on the background4.5:16.7:1pass
lightBody text on the background7:112.3:1pass
lightMuted text on the background4.5:16.5:1pass
lightThe accent on the background4.5:17.2:1pass
lightDanger on the background4.5:16.4:1pass
lightWarning on the background4.5:16.4:1pass

There is a further requirement the table cannot show: enough luminance between the accent and the semantic colours that a red–green confusion does not make two opposite meanings look the same. It is why success and the accent share a hue but danger does not sit beside them at the same lightness.

The sixteen colours a terminal needs, named rather than numbered

dark

black#141a1f
red#da8176
green#4fd6a8
yellow#c9902f
blue#5aa1cc
magenta#b48ce0
cyan#4fc4d6
white#c3ced6
bright black#5c6b78
bright red#f08b7c
bright green#6fe6bf
bright yellow#f0c961
bright blue#7cc0f0
bright magenta#c9a8f0
bright cyan#6fdcec
bright white#e8eef2

light

black#28323a
red#973f32
green#0e674d
yellow#72571a
blue#205f8b
magenta#6b3fa0
cyan#146472
white#545c63
bright black#6b7883
bright red#8f453d
bright green#216556
bright yellow#6c5927
bright blue#295f85
bright magenta#6a4a9a
bright cyan#1e6370
bright white#535c62

Type, space, radius, motion

A fourth-root scale

Small enough steps to build hierarchy without shouting. The interface stops at 33px; this website continues the scale at its own average ratio for the three display sizes a page read at arm's length needs, rather than inventing them by eye.

  • 12An operating system with agency
  • 14An operating system with agency
  • 16An operating system with agency
  • 19An operating system with agency
  • 23An operating system with agency
  • 27An operating system with agency
  • 33An operating system with agency
  • 39An operating system with agency
  • 46An operating system with agency
  • 54An operating system with agency
  • 64An operating system with agency

Space

A 4-pixel grid. Everything lands on it.

0
4
8
12
16
24
32
48
64

Radius

small · 4px
medium · 8px
large · 12px

Motion

Only when it explains a state change, and never longer than it takes to notice.

  • instant0ms
  • quick120ms
  • considered240ms

The badges are part of the system, not afterthoughts

On a machine each one states something true right now, and a person can trust them because the design system owns them rather than each surface drawing its own.

NETAIRGAPSOVEREIGNMICSELF-BUILT

Which is why this website's status line carries only two of its own, and neither of them is borrowed: this site is static and it calls nobody.

The rules

  • One accent. A machine you work in all day should recede.
  • Dark and light are equals, not a theme and its afterthought.
  • Motion only when it explains a state change, and never longer than it takes to notice.
  • Depth from the neutral scale, so borders are a last resort rather than a habit.
  • No neon, no glass, no gradients, no sci-fi noise, no gamer styling.
  • Semantic colours are used only when they mean something.
  • Inter for interface text, JetBrains Mono for code. No font soup, no patched icon fonts.
  • Themes are token files. A contribution cannot introduce a hard-coded colour.

The decision record that settled this →