Skip to content

Feature set 181. - #96

Merged
jackfperryjr merged 1 commit into
mainfrom
features-181
Aug 13, 2026
Merged

Feature set 181.#96
jackfperryjr merged 1 commit into
mainfrom
features-181

Conversation

@jackfperryjr

Copy link
Copy Markdown
Owner

Follow-up to #95, which redesigned / and left the rest of the site behind. This carries it into the games hub, the four cabinets, /stats and /dashboard.

The mark is shared now

It was structural CSS sitting in home.css, which is the wrong owner once five other pages want it. assets/mark.css holds .mark, .mark-wrap, the two colour tokens, and FFIV's pair of them — that last part is what makes the wordmark turn gold on any page that loads ff4.css without each page opting in. home.css keeps only what is genuinely its own: the ground tokens and the FFIV hotspot.

One mark, different colours

Page --mark-red Why
/, /games, /stats, /dashboard brand red Site chrome
Kupodle, Triple Triad, Sphere Hunter, Battle Square the cabinet's own --gold Identity is the point
Any page, in FFIV #f8d030 ff4.css owns it

.nav-brand sets --mark-red: var(--gold) rather than a literal, and every cabinet already overrides --gold on body to assert itself — so Kupodle's mark comes out its green and Battle Square's its purple with no per-game rules at all.

ff4.css's .ff-mode .nav-brand had to gain the FFIV pair explicitly: it sets --gold to plain white, which would otherwise have left the wordmark white-on-white with no gold "moogle".

/stats and /dashboard

Moved to the site's dark ground — the same #0d1017 family as the landing page's dark mode, replacing a #25282c palette with a blue accent and a gold text brand.

Dark only, tokens set flat with no data-theme. These are private pages for one signed-in person and a ground toggle there is a control nobody needs. They are named to match home.css so they can become the dark half of a pair later if that changes.

Chrome moved; data did not. --green, --red and --yellow encode state and --accent2 carries figures, so they stay cool and semantic rather than turning into the brand red — a column of red numbers reads as a column of problems.

Stats' Chart.js colours needed the same treatment by hand. The charts paint to a canvas and never see the stylesheet, so its grid, ticks, defaults and series are a second place the ground has to be kept in step — noted in a comment there, because it will not be obvious next time.

The games hub

Gains the light/dark ground, following the same data-theme the landing page sets, with a toggle in its nav so the choice carries between them. The hub was already wearing the silver palette via a second :root in games/style.css; this adds the dark half beside it.

Scoped by living in that file. games.css is shared with the four cabinets, so a dark block there would reach them. And it says :not(.ff-mode) for the same cascade reason home.css does: the selector ties with ff4.css's palette on specificity and loads after it, so without the exclusion dark mode repaints FFIV in ink.

The four cabinets keep their palettes and get no toggle.

Verified

dotnet format --verify-no-changes clean, Release build 0 warnings / 0 errors, 575 tests passing.

Rendered and checked: / light, the hub in both grounds, Kupodle (green mark intact), and /stats + /dashboard. The admin pages are auth-gated and correctly 302 to /signin, so those two were rendered from disk locally rather than by working around the redirect — their data calls 404 in that view, which is expected and not what was under review.

Not verified: the Stats charts with real data in them, since the local render has no session.

🤖 Generated with Claude Code

Carry the redesign into the games hub, the four cabinets, /stats and /dashboard.

The mark moves to assets/mark.css and is shared. It was structural CSS living in
home.css, which is the wrong owner once four other pages want it; mark.css holds
.mark, .mark-wrap, the two colour tokens and FFIV's pair of them. That last part
is what makes the wordmark turn gold on any page loading ff4.css without each
page opting in. home.css keeps only what is genuinely its own: the ground tokens
and the FFIV hotspot.

The wordmark replaces the improvised brands everywhere. The games pages had
moogle.png beside the word "moogleAPI"; /stats and /dashboard had a hexagon
glyph and the word. Both are the mark now.

It is red on the hub, /stats and /dashboard, and each cabinet's own colour on
the four games. .nav-brand sets --mark-red from var(--gold) rather than a
literal, and every cabinet already overrides --gold on body to assert its
identity, so Kupodle's mark comes out its green and Battle Square's its purple
with no per-game rules at all.

/stats and /dashboard move to the site's dark ground — the same #0d1017 family
as the landing page's dark mode. Dark only, and the tokens are set flat with no
data-theme, because these are private pages for one signed-in person and a
ground toggle there is a control nobody needs. They are named to match home.css
so they can become the dark half of a pair later if that changes.

Chrome moved; data did not. --green, --red and --yellow encode state and
--accent2 carries figures, so they stay cool and semantic rather than turning
into the brand red. Stats' Chart.js colours needed the same treatment by hand:
the charts paint to a canvas and never see the stylesheet, so its grid, ticks
and series are a second place the ground has to be kept in step.

The games hub gains the light/dark ground, following the same data-theme the
landing page sets, with a toggle in its nav. It lives in games/style.css rather
than games.css because that file is shared with the four cabinets, and it says
:not(.ff-mode) for the same cascade reason home.css does — the selector ties
with ff4.css's palette and loads after it.

The four cabinets keep their own palettes and get no toggle. Their identity is
the point.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@jackfperryjr
jackfperryjr merged commit 591c24c into main Aug 13, 2026
1 check passed
@jackfperryjr
jackfperryjr deleted the features-181 branch August 13, 2026 05:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant