Give Requests its own colour instead of leaving 4 fastext entries plain
All checks were successful
Deploy / deploy (push) Successful in 21s

Plain ink for Watch/Requests/Activity/Settings read as flat and
unfinished, not deliberate — user feedback: "the new colors are
awful and basically the same color." Requests gets magenta
(--pending) back: not an arbitrary reuse, it's the same colour a
request already carries once approved elsewhere in the app, and
Requests genuinely is "waiting on a human." That's the real ceiling
though — the locked eight teletext colours leave exactly five legible
as text on black (blue fails contrast, black is invisible on black),
so Watch/Activity/Settings still share plain ink rather than a sixth
colour that doesn't exist in this palette.
This commit is contained in:
Barely Removable 2026-08-30 09:17:37 -07:00
parent 59beb9490f
commit 8500fba745
3 changed files with 32 additions and 23 deletions

View file

@ -105,12 +105,16 @@ the user's Unraid home server. Server-side project directory is still named
under the header on every page but the index — those pages carry no
other nav, so it needs no scroll to reach. The index overrides it
with `HOME_FASTEXT`, the original four-entry row, as its own closing
line, since its body already lists every destination once. Only
those original four (Index/Library/Discover/System) carry an `r`/
`g`/`y`/`c` keyboard shortcut and a colour swatch — colour is
semantic everywhere else in this app, so the other four entries
render in plain ink rather than reusing one of the four colours for
a destination it doesn't mean. Whichever entry matches the current
line, since its body already lists every destination once. The
original four (Index/Library/Discover/System) keep their `r`/`g`/
`y`/`c` keyboard shortcut and colour; Requests also gets a colour
(magenta, `--pending`) without a shortcut — a deliberate fit, not
an arbitrary fifth pick, since Requests already is "waiting on a
human" everywhere else magenta appears. That's the ceiling: the
locked eight colours leave exactly five that read as legible text
on black (blue fails contrast there, black is invisible), so Watch/
Activity/Settings share plain ink rather than a sixth colour that
doesn't exist in this palette. Whichever entry matches the current
page renders as a `.fastext-here` span instead of a link — a page
linking to itself did nothing, so it isn't offered as a click.
- **Nothing is clipped, hidden, or sticky.** All seven page numbers and

30
app.py
View file

@ -1304,20 +1304,24 @@ def service_urls():
# Every destination, for the top of every page but the index. Order
# matches nav_items. Colour is semantic everywhere else in this app
# (red = off-air, magenta = needs a decision, ...), so only the four
# that still carry a real teletext keyboard shortcut (r/g/y/c) get a
# colour swatch; the rest render in plain ink rather than borrowing
# one of the four colours for a destination it doesn't mean.
# matches nav_items. The locked eight teletext colours leave exactly
# five that read as text on black without inventing a ninth tone or
# borrowing a colour that already means something else here: 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 fails contrast as text and black is invisible on black, so the
# three destinations left over (Watch/Activity/Settings) share plain
# ink rather than a sixth colour that doesn't exist in this palette.
FULL_FASTEXT = [
("k-red", "r", "100", "Index", "/"),
("", "", "101", "Watch", "/watch"),
("k-green", "g", "102", "Library", "/library"),
("k-yellow", "y", "103", "Discover", "/discover"),
("", "", "104", "Requests", "/requests"),
("k-cyan", "c", "105", "System", "/system"),
("", "", "106", "Activity", "/activity"),
("", "", "900", "Settings", "/settings"),
("k-red", "r", "100", "Index", "/"),
("", "", "101", "Watch", "/watch"),
("k-green", "g", "102", "Library", "/library"),
("k-yellow", "y", "103", "Discover", "/discover"),
("k-magenta", "", "104", "Requests", "/requests"),
("k-cyan", "c", "105", "System", "/system"),
("", "", "106", "Activity", "/activity"),
("", "", "900", "Settings", "/settings"),
]
# The index's own closing row: just the four letter keys, since the

View file

@ -533,10 +533,11 @@ a.tt-row:focus-visible .tt-row-sub { color: var(--tt-black); }
color: var(--ink-dim);
cursor: default;
}
.fastext .k-red { color: var(--alert); }
.fastext .k-green { color: var(--ok); }
.fastext .k-yellow { color: var(--voice); }
.fastext .k-cyan { color: var(--live); }
.fastext .k-red { color: var(--alert); }
.fastext .k-green { color: var(--ok); }
.fastext .k-yellow { color: var(--voice); }
.fastext .k-cyan { color: var(--live); }
.fastext .k-magenta { color: var(--pending); }
.fastext a:hover, .fastext a:focus-visible {
background: currentColor;
outline: none;