fix(css): restore bottom spacing on content pages in Firefox

apropos/licence/charte use .page-content as a nested scroll container
(overflow-y:auto) inside html/body {height:100%; overflow:hidden} flex.
Firefox drops/clips that container's own padding-bottom (and last-child
margin) from the scrollable area -- scrollHeight came out ~80px short and
the last ~80px of content was unreachable. Chromium honours the padding.

Move the trailing space off the container padding onto a real content
spacer (.page-content > article::after, display:block; height) which both
browsers count as scrollable content. Verified via Playwright (Chromium +
Firefox): delta between article and scrollHeight is now 0 in both on all
three pages, consistent at all breakpoints. not-found unaffected (loads
its own not-found.css). 294 PHPUnit tests pass.
This commit is contained in:
Pontoporeia
2026-09-18 16:26:49 +02:00
parent b1715b210d
commit beff95c784
2 changed files with 21 additions and 4 deletions
+1
View File
@@ -41,6 +41,7 @@
- [x] #docs-cleanup-changes [docs] Update docs for the cleanup-page + GC changes made: admin README cleanup.php entry -> "Cleanup page (Corbeille — restore/delete trashed files)"; deployment.md adds a paragraph explaining abandoned uploads are auto-GC'd hourly and the page (titled Nettoyage) now only shows the Corbeille; added `just cleanup-tmp-uploads` recipe and documented it in development.md alongside cleanup-drafts.
## Completed
- [x] #fix-content-page-bottom-spacing-firefox [!medium] Fix missing bottom spacing at scroll-end on apropos/licence/charte in Firefox. Root cause: `.page-content` is a nested scroll container (overflow-y:auto) inside html/body {height:100%; overflow:hidden} flex; Firefox drops/clips that container's own `padding-bottom` (and last-child margin) from the scrollable area while Chromium honours it — FF scrollHeight came out ~80px SHORTER and the last ~80px of content was unreachable (clipped). Fix: moved trailing space off the container padding (`padding-bottom: 0` at all breakpoints) onto a real content spacer `.page-content > article::after { display:block; height: var(--space-2xl) }` (`var(--space-xl)` below 768px), which both browsers count as scrollable content. VERIFIED via Playwright (Chromium + Firefox): before FF delta=−80 (clipped) vs Chrome 0; after both FF & Chrome delta=0 on licence/apropos and identical on charte; not-found page unaffected (loads its own not-found.min.css). 294 PHPUnit tests pass.
- [x] #cleanup-toc [+admin] Add sidebar TOC to admin cleanup page; drop the "Fichiers temporaires" section level and promote "Téléversements abandonnés" / "Corbeille" from h3 to h2 top-level sections (now TOC entries). Made admin-toc.js rebuild on htmx swap/settle so async-loaded fragment sections enter the TOC.
- [x] #audit-all-docs-and [!high] Audit all docs/ and classify accurate vs stale
- [x] #rewrite-development-md-to-match [!high] Rewrite development.md to match current just dev / app/ layout / PHPUnit