Release 4.8.0
22 Oct 2026 · pinned package [email protected]
- Text reads at 4.5:1 in every light theme (WCAG AA; plan 2026-10-22, track H4). axe failed 50 to 155 contrast checks on every site's home in each of the 12 light themes, through three tokens:
--accent-lightwas a pale tint used as link and eyebrow text (snow's#38bdf8on white is 2.1:1);--text-mutedsat at 4.1 to 4.4 on the secondary surfaces;--accentsat just under the floor in a few light themes.
builtin-themes.js deriveTokens now moves a text token below 4.5:1 on any of the theme's surfaces (--bg-primary, -secondary, -tertiary, -card, -input, -hover) toward black, just far enough, measured on the rounded hex.
- Light themes:
--text-secondary,--text-muted,--accentand--accent-light. - Dark themes: the two text tokens only; their accents are the theme's brand colour and already read, so Vibe's
#3b82f6is unchanged. - A token that already reads is left exactly as set.
theme-loader.js is regenerated. readableText, TEXT_TOKENS and SURFACES are exported. Measured on production pages with the new values applied: snow on openvibe.network went from 50 failures to 0 apart from site-specific colours, Food from 14 to 0.
- "Recently shipped" (
shipped.js): the site chip's label uses--text-primaryon its accent tint (the tint cost--accent-lightabout 0.4 of contrast).
Rules92 The menu's places: Here, Feed, Chat, Vibe, You; Vibe holds Chat and Agents.94 A site's name opens its pages, and a way to every site.