AionA dark theme with a measured contrast floor. Familiar syntax, distinct chrome. Syntax follows the One Dark Pro role map, so muscle memory survives. Identity comes from the base, the gold chrome and the structure. Two things make Aion differentThe editor is the darkest surface. The sidebar, the activity bar and the status bar sit one step above it, and the panel sits between the two. Your code is the deepest thing on the screen. Of the four themes compared below, two put the sidebar under the editor and two use one colour for both. The contrast floor is a gate, not a claim. Every colour is defined in OKLCH and
checked against the surface it sits on. Measured across the same eight syntax roles, against each theme's own editor background, on a plain editor line:
This compares eight syntax roles on one background. It is not a measure of a theme's accessibility or of its usability, and two of the four clear the floor on this test. The values were read from each definition on 2026-09-05, at the revision named. A theme changes: One Dark Pro's comment and Catppuccin's comment both moved between this table and the one before it, which is why the revision is recorded. The palette
Gold is the signature: the cursor, the focus ring, the search hit and the active tab
marker. Violet is a syntax hue. It reaches five interface keys and no others: the two
bracket-cycle steps, the keyword symbol icon that mirrors the syntax colour, What is inside
Matching terminalThe same sixteen ANSI slots ship for Windows Terminal, as a fragment extension that needs no settings edit. See the repository. What the contrast floor coversEvery syntax colour clears 4.5:1 on the editor, the peek editor, a hover or suggest widget, and under a current-line highlight, a selection, a word highlight, or a stack of the two the renderer can draw together. It clears it again with a diff line wash, or a line wash and a word wash, painted on top of a plain line, a current line or a selection. A find match keeps the colour under it: VS Code applies each of its two foreground override keys to the other one's decoration, so the fills carry every syntax colour on their own.
The set is exact rather than approximate. §3.1 of Three kinds of exemption are named rather than hidden:
Colour visionSuccess and error separate by 0.06 in OKLCH lightness as well as by hue, and so do the two diff gutter strips. A test asserts that gap on the pair that can hold it: the strips are opaque, always drawn and never covered. The line washes cannot hold it and do not claim to — both are lighter than the editor and about 0.02 apart, because a green wash dark enough to open a 0.06 gap under a red one is invisible. That is a palette invariant, not a claim of deuteranopia usability: it has not been checked with a simulator or with users. Diff lines and problem markers carry a gutter glyph and an icon as well as a colour, so the meaning does not rest on hue alone. LicenceMIT. |
