fix(ui): warm-cream heading ink + manifest static storage for cache busts#59
Merged
Merged
Conversation
…usts Two related fixes following the near-OLED palette swap. 1. Heading text was still rendering pure white in dark mode. 49 templates use `dark:text-white` which generates a `#ffffff` rule that ignored the warm `#e7e5e0` ink token. Rather than swap all 49 inline, add a single override in dark-mode.css that retargets `.dark\:text-white` to `#e7e5e0`. Same specificity as Tailwind's own rule; dark-mode.css loads after the Tailwind CDN, so source order wins. Headings, scores, and DD values now share the warm cream tone instead of clinical pure white. 2. Switch WhiteNoise to CompressedManifestStaticFilesStorage so static files ship with content-hashed URLs (e.g. dark-mode.bd121d.css). The previous CompressedStaticFilesStorage kept stable URLs across deploys, leaving every client on the prior CSS until they manually hard-refreshed — which is what made the palette rework look like it hadn't deployed. Django 5.2 uses the STORAGES dict (the STATICFILES_STORAGE setting was deprecated in 4.2 and silently ignored under the new resolution path). Verified: collectstatic produces 799 post-processed entries with no missing-reference errors; Django check passes; smoke-rendered /, /login/, /register/, /grade/ all return 200.
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.
Summary
Two related fixes following PR #58's near-OLED palette swap, which appeared not to deploy because of stale browser caches.
1. Heading text was still pure white
49 templates use Tailwind `dark:text-white` which generates a `#ffffff` rule and ignored the warm `#e7e5e0` ink token from PR #58. Rather than touch 49 templates, add a single override in `dark-mode.css` that retargets `.dark:text-white` to `#e7e5e0`. Same specificity as Tailwind's own rule; `dark-mode.css` loads after the Tailwind CDN, so source order wins.
2. Browser caches were holding the old CSS
Whitenoise was using `CompressedStaticFilesStorage` — stable URLs across deploys, no cache invalidation. Switched to `CompressedManifestStaticFilesStorage` so files now ship with content-hashed names (e.g. `dark-mode.bd121d.css`). Each deploy produces fresh URLs, and clients pick up the new CSS on the next page load instead of needing a hard-refresh.
Django 5.2 uses the new `STORAGES` dict — the older `STATICFILES_STORAGE` setting was deprecated in 4.2 and silently ignored under the new resolution path. This was why the initial attempt to set `STATICFILES_STORAGE` to manifest storage left `ConfiguredStorage` resolving to the FileSystem default.
Verification
Test plan