Skip to content
Machine BehaviorCTO
Menu

ADR-0042: The site has one light colour scheme

Context

ADR-0025 gave the site one token file with light values and dark values under prefers-color-scheme, so a visitor with a dark system setting saw the public pages dark. Since then Inside took the light intranet theme (ADR-0034, ADR-0035) and the research section and the front page took the light report theme (ADR-0039, ADR-0041), each skipping the dark values. What remained dark under a dark setting were the other public pages (the CTO pages, conformity, the man pages, Topics, AI search, the legal pages) and the map. Every consulting and research publisher read for ADR-0039 serves one light page. On 2026-10-26 Stefan Coetzee decided to drop the dark scheme.

Decision

One scheme. The @media (prefers-color-scheme: dark) block in design/tokens.css is removed, :root declares color-scheme: light, and the intranet and report themes keep their own light values on top. No page changes with the visitor's system setting, and nothing is stored on the device.

The map draws the light palette. map/index.html drew its canvas from a dark or a light set by the system setting and redrew on a change. It now draws the light set only, and the dark colours are removed from its kinds. Replaced by ADR-0043: the canvas behind the graph is dark again; the panel stays light.

Dark stays where it is chrome. The top bar (--mb-bar-*) and the report theme's title band (--mb-band) are dark in every page; they mark the frame and the title, not a scheme.

The dead hero styles go. /style.css held a .hero band with a light and a dark map image for the old front page; no page used it.

One gap. The /conformity/ page is written by the shared gate action (.github/actions/conformity/run.py), whose inline styles carry their own dark block. The action is shared with tychat.io and uncovertechtalent.com and has its own owner, so that block changes in the action, as its own change.

Consequences

A visitor sees the same page whatever their system setting, and every contrast check runs against one set of surfaces. Visitors who prefer dark pages lose that option on this site; a browser's own forced-dark or reader mode still applies. Data colours keep their darker light-mode values, which ADR-0025 introduced so that they hold on a light surface. Until the gate action changes, /conformity/ turns dark under a dark system setting while its chrome stays light.

Built from scripts/docs by build_docs.py.