Repository navigation
Restyle the docs UI on design tokens and add a dark theme - #203
Merged
Merged
Conversation
Closed
glebfox
force-pushed
the
feature/ui-restyle
branch
from
October 3, 2026 16:19
b961a4a to
14cf748
Compare
Contributor
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This PR replaces the look of the Antora default UI with our own stylesheet built on design tokens. It also pins the UI bundle and fixes keyboard and forced colors access across the page. It adds a dark theme too, with a menu in the header to choose the color theme.
What changes
ui/ui-bundle.zip(antora-ui-default0e38223a) instead of themastersnapshot, so upstream changes reach the site only when someone takes them.ui/README.mddescribes how to update it.content/supplemental/css/site.cssreplaces the bundle stylesheet. Part 1 is the upstreamsrc/cssof the pinned revision with three kinds of edits: the typeface sections, the removed focus outline resets, and colors replaced with tokens. Part 2 holds the Jmix styles.tokens.csskeeps the tokens in three tiers: palette, semantic roles, components.aria-expandedon the toggles;tools/check-css.mjsrejects color literals outsidetokens.css, and the new.github/workflows/ui-check.ymlruns it on pull requests.tools/ui-audit.mjschecks the built site in Chromium:AGENTS.mdandCONTRIBUTING.mddescribe how the UI is organized.Dark Theme
Fixes: #201
The light theme stays as it is; its only visible changes are the menu and a slightly different green for the thumbs-up of the feedback form.
role=light-background, which puts a white plate behind them;data-themeattribute on<html>and a dark block at the end oftokens.css, so the theme itself needs no component rule changes;tools/check-css.mjsalso checks that the dark block sets every--color-*and--shadow-*token of the light block, and only tokens that the light block declares;tools/ui-audit.mjsruns the focus, contrast and style checks in both themes, and its forced colors check now also covers the theme button's icon and the image plate;themecheck makes sure that the theme is set before the first stylesheet, that it follows the system when storage is blocked, and that it stays light in print;--mask <selector>hides elements in--snapshotand--compare; with the header masked, the light screenshots match the ones taken before this work.node tools/ui-audit.mjswrites more screenshots tobuild/ui-audit/:theme-*.pngfor both themes (the-phoneones at 375px, the others at 1440px) andforced-*.pngfor forced colors.Review notes
docs/superpowers/at 71c3870 and the dark theme's at aa887fb.node --test tools/check-css.test.mjsandnode tools/check-css.mjspass, andnode tools/ui-audit.mjspasses all 9 checks in both themes. Firefox and Safari still need a look.tools/ui-audit.mjsor a Playwright script that blocks external hosts.role=light-backgroundon seven image macros in six pages.themeoption is set in Google Tag Manager, outside this repository.