COLOR
Five discharge intensities over three warm blacks. Every color decision in the system is a choice of intensity, and intensity means energization: bright is live, faint is inert.
THE PALETTES
A palette is not a theme and not a light/dark pair — it is a specific piece of
hardware, and naming one takes two attributes on the root element:
data-ac-tech is the technology, what is making light at all;
data-ac-emitter is which gas, or which phosphor, inside it. An emitter is only
meaningful within its technology — neon is a gas and exists only under plasma,
p3 is a phosphor and exists only under CRT — so every block is selected by both, and a
mismatched pair selects nothing rather than quietly rendering the wrong hardware. Pick one from
the two display catalogs on the board at the top of the page; the menu bar carries the readout,
not the choice. Both ramps are shown below regardless of which is active, and both are held to
the same contrast gate.
PLASMA / NEON · 24° · THE DEFAULT
A monochrome AC plasma panel. The light is neon emitting directly from the gas — no phosphor anywhere in the stack. The hue is derived, not picked: weight the Ne I visible lines by the CIE 1931 observer and the discharge sits at x=0.631 y=0.369, just outside sRGB. That maps to 19°, which is a DC neon tube; a pulsed sustain enriches the 585.2nm line and walks it up. 19–31° is the defensible band and 24° is its middle.
--ac-ink, --ac-fillCRT / P3 · 38° · THE PHOSPHOR
The classic amber CRT phosphor (P3): a broad
~590nm band with real green content, where neon is a line spectrum with almost none. Historically this is
a different display technology — but it is what most people mean by "amber terminal", it is the
ramp the source design system was drawn against, and it pairs naturally with .ac-crt.
--ac-ink, --ac-fillPLASMA / HELIUM · PALE PINK
Helium has no low manifold to dominate the way the heavier gases do — its visible lines all fall out of n=3 and n=4 decaying to n=2, at comparable energies, so nothing outranks the rest. The strong yellow at 587.6nm carries the luminance while 447.1nm and 667.8nm pull the result off the blackbody locus toward purple. Integrates to x=0.3944 y=0.2986: a near-white with a pink cast, which is what a helium tube is.
--ac-ink, --ac-fillPLASMA / ARGON · PALE VIOLET-LAVENDER
Argon puts most of its power into the 696–772nm array, where the CIE observer scores under 0.01 — which is why argon is dim, and why its 696.5nm peak is the strongest line but not the color. What you see is the 415–475nm group, a hundred times weaker on the meter and a hundred times better placed for the eye. x=0.2163 y=0.1047, desaturated 35% toward D65 to fit sRGB: paler here than in the tube.
--ac-ink, --ac-fillPLASMA / KRYPTON · PALE VIOLET-WHITE
A blue-violet cluster at 427–450nm against the 557.0nm green and the 587.1nm yellow. Spread that wide integrates close to white — x=0.3153 y=0.2551 — which is why the panel reads violet rather than any one of those lines. The strongest visible krypton line is 587.1nm, not the 557.0nm that is often quoted.
--ac-ink, --ac-fillThe ramp is --ac-emit-100 through
--ac-emit-30. It used to be --amber-*, which named a hue rather than a ramp and was
already only historically true — under NEON the color is not amber. With a lavender and a pink in the
file it stopped being defensible at all. --amber-* was removed in 2.0,
not aliased — a custom property that no longer exists resolves to nothing rather than erroring, so
this one fails silently and is worth grepping for. See
DEPRECATED.
Adding an emitter, or a whole technology, means adding one block to colors.css: five
stops, three surfaces, --ac-on-fill, the four --ac-halo-N triples the glow is built
from — and for the gases that block is generated by scripts/derive-gas.mjs, not typed.
The older data-ac-gas="neon" and
data-ac-gas="amber" still work and go in 3.0. The name was the bug: AMBER was never a gas,
it is the P3 CRT phosphor, and calling it one is exactly the confusion the pair above exists to
prevent.
SEMANTIC ALIASES
| TOKEN | MAPS TO | USE |
|---|---|---|
| --ac-ink / --ac-ink-bright | emit-90 / 100 | Body text; bright for live values and hover. |
| --ac-ink-dim / --ac-ink-faint | emit-70 / 50 | Labels and legends; faint for disabled. Neither glows — and neither does inverse video. |
| --ac-fill / --ac-on-fill | emit-90 / per palette | Inverse-video surfaces and the dark text on them. |
| --ac-stroke / --ac-stroke-dim | emit-90 / 50 | All borders, always 2px. Dim for secondary frames. |