Colour Watch's fastext label, not just its swatch
All checks were successful
Deploy / deploy (push) Successful in 22s

Swatch-only blue read as unfinished next to the other five fully-
coloured entries. The word now carries the colour like every other
key, same currentColor mechanism as the rest — accepting blue's
~2.4:1 contrast on black as a known, deliberate exception to the
4.5:1 bar everything else here clears.
This commit is contained in:
Barely Removable 2026-08-30 09:27:39 -07:00
parent 5dd49c505c
commit 9fba4f210e
3 changed files with 35 additions and 39 deletions

33
app.py
View file

@ -1304,25 +1304,20 @@ def service_urls():
# Every destination, for the top of every page but the index, each
# with its own distinct treatment. Order matches nav_items. The
# locked eight teletext colours only give five that read as full-
# saturation text on black (blue fails contrast there), so getting all
# eight distinct without inventing a ninth colour takes three
# treatments, not one:
# - Five flat colours, text and swatch both: the four with a real
# keyboard shortcut (r/g/y/c), plus magenta for Requests — not
# arbitrary, it's the same --pending magenta a request already
# shows once approved elsewhere, and Requests IS "waiting on a
# human".
# - Blue as a swatch-only accent (Watch): legible as a small solid
# cell — "the physical coloured button on the remote" — but not as
# the row's own text colour, where it fails contrast.
# - An ordered dither swatch (Activity): the one other legal way to
# get a distinct mark out of this palette per base.css's own first
# discipline, without smuggling in a ninth hue.
# Settings keeps plain ink deliberately — the one purely administrative
# destination with no live status of its own, so it's the one page
# that gets no colour at all rather than an arbitrary last one.
# with its own distinct treatment. Order matches nav_items. Six of the
# eight get a flat colour, text and swatch both: the four with a real
# keyboard shortcut (r/g/y/c), plus magenta for Requests (the same
# --pending magenta a request already shows once approved elsewhere —
# Requests IS "waiting on a human") and blue for Watch. Blue is ~2.4:1
# contrast on black, well under the 4.5:1 every other body text here
# clears — a known, deliberate exception, not an oversight; it's set
# this way because coloured-icon-only for Watch read as unfinished
# next to six fully-coloured neighbours. Activity gets an ordered
# dither swatch instead of a flat colour, the one other legal way to
# get a distinct mark out of this palette without smuggling in a ninth
# hue. Settings alone keeps plain ink — deliberately, as the one page
# with no live status of its own, so it's the one that gets no colour
# rather than an arbitrary leftover.
FULL_FASTEXT = [
("k-red", "r", "100", "Index", "/"),
("k-blue", "", "101", "Watch", "/watch"),