A theming system, a faster first paint, and a sixth game
Random AI Prompt spends 2.35.2 through 2.38.1 rebuilding its styling from a monolith into a modular, tokenized theming framework — System/Dark/Light with accent presets and importable custom themes — then makes the online build paint faster by prerendering to static HTML, and drives its SonarCloud tech-debt to zero. Fairy Fox Games adds a sixth game, Skyline, a stack-and-slice tower builder.
A day of foundations rather than new surface. Random AI
Prompt moved from 2.35.2 to 2.38.1, spending most of
it on how the app is styled, how fast it paints, and how clean its code reads. Fairy
Fox Games added its sixth game and grew one of the others.
A styling monolith becomes a theming framework
The headline was a floor-up CSS overhaul and theming framework, built in eight
phases (2.35.4 through 2.37.0). A single ~4,600-line styles.css was split into a
modular styles/ tree — foundation tokens and per-component files — sitting on a
two-tier token system and organized with explicit cascade layers so overrides stop
fighting each other. On top of that scaffold came a real theme engine: a System /
Dark / Light base, nine accent presets, and an Appearance picker in the
header. The built-in themes were then restructured so that each theme is simply a small
JSON file in a folder — the file is the theme — read by isomorphic loaders shared
between the app and the build step. The final phase opened it up entirely: you can now
import a theme file to add or override a theme, and export the current one to
share it, with strict validation (known fields and hex colours only, no arbitrary CSS)
and imported themes stored on your device like the rest of your settings.
A faster first paint online
Two changes went after the online build’s mobile performance, which profiling had
pinned on the first paint rather than bundle size. First (2.37.1), the ~430 KB prompt
corpus was moved off the first-paint path — code-split into its own chunk fetched after
paint, with the building-block palette rendering immediately from path strings while the
content fills in behind it. Then (2.38.0) the online build began prerendering its
first paint to static HTML at build time and hydrating in the browser, so the palette —
the largest contentful element — is painted from markup before any JavaScript runs.
Together they roughly halve the measured load times on throttled mobile (Lighthouse
Performance climbing from the mid-50s into the 80s) while Accessibility, Best-Practices,
and SEO stay at 100. A returning visitor’s saved settings survive the two-pass hydration
intact, and a new Node-environment guard test fails the build if the initial render path
ever reaches for a browser API.
Tech-debt to zero
The rest of the day was code health. A tech-debt sweep (2.38.1) cleared all 70
open SonarCloud code smells across the active engine as a behavior-preserving cleanup —
mechanical modernizations, seven cognitive-complexity refactors, and seven regex rewrites
that also close a real super-linear-backtracking (ReDoS) class in the prompt-language
parser — verified rule-by-rule against the same SonarJS implementations, with the full
test suite green throughout. Follow-ups resolved the last bug and two vulnerabilities as
documented, confirmed-safe suppressions and fixed the quality-gate’s coverage
measurement, taking the board to a clean zero. Earlier in the day a full dependency
upgrade (2.35.2) brought everything to latest and a stylelint gate (2.35.3)
cleared the CSS lint backlog, and a process fix made the release flow back-merge main
into dev with a CI guard so the two branches can’t silently drift.
A sixth game
Fairy Fox Games went from 0.5.1 to 0.6.0 with a
mechanically-distinct sixth game, Skyline — a stack-and-slice tower builder. A slab
slides above your tower; you drop it with one control, and only its overlap with the slab
below survives, so every sloppy drop narrows the next target. A flush drop keeps the full
width and pays double, which makes precision the only way to keep climbing, and the slide
speeds up with height. Like the rest, the whole simulation is a pure, tested core — and
notably there is no timer-driven death: a slab only resolves on an explicit drop. The
same release grew Polarity with clutch saves (a match landed by a last-moment flip,
tallied and surfaced on the game-over card) and backfilled a missing footer link. The
collection’s test count reached 133.