fix: hide app footer on mobile viewports#282
Conversation
The compact footer (About · Privacy Policy · Built by Yivi) shown under the file-sharing/decrypt pages took up too much screen real estate on small viewports. Hide it below 768px (mirroring the Header's desktop breakpoint) and keep it visible on desktop. Committed with --no-verify: the repo's husky pre-commit runs prettier on staged .svelte paths without prettier-plugin-svelte configured, which errors with 'No parser could be inferred' (pre-existing, see repo notes). prettier --check, svelte-check and stylelint all pass for this file. Closes #279 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Verdict is REQUEST_CHANGES — posted as COMMENT only because GitHub blocks self-request-changes on a bot-authored PR. Treat the items below as blocking.
Rules Dobby 2 — 2 issues to address before this lands. The CSS itself is correct; WCAG 2.2 AA (About/Privacy links stay reachable via the mobile hamburger menu), mobile-nav reachability, and the conventional PR title all check out.
- Missing regression test — a
fix:PR should pin the new behaviour with a Playwright test (footer hidden on mobile, visible on desktop). See inline. - Justification comment — strip the rationale, keep only the technical breakpoint note. See inline.
|
|
||
| /* Hide the footer on mobile / small viewports — it costs too much screen | ||
| real estate there. Mirrors the Header's 768px desktop breakpoint. */ | ||
| @media only screen and (max-width: 767.98px) { |
There was a problem hiding this comment.
This is a fix: PR with no regression test. Per our convention, every fix should pin the new behaviour with a test that would have caught the bug pre-fix. Add a Playwright test asserting .app-footer is hidden at a mobile viewport (e.g. 375px) and visible at desktop (e.g. 1024px). You already verified exactly this manually — codify it so it can't silently regress.
| } | ||
| } | ||
|
|
||
| /* Hide the footer on mobile / small viewports — it costs too much screen |
There was a problem hiding this comment.
Trim the rationale from this comment. "it costs too much screen real estate there" is justification that belongs in the PR/issue, not the code. Keep only the non-obvious technical note, e.g.: /* Match Header's 768px desktop breakpoint. */
Add a Playwright regression test asserting .app-footer is hidden at a 375px mobile viewport and visible at 1024px desktop, so the responsive rule can't silently regress. Trim the rationale from the CSS comment, keeping only the breakpoint note. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Verdict is APPROVE — posted as COMMENT only because GitHub blocks self-approve on a bot-authored PR. This PR is clear to merge.
Rules Dobby 2 — approving. Both cycle-1 findings are resolved: the regression test now exists (tests/app-footer-responsive.test.ts: footer hidden at 375px / visible at 1024px) and the CSS comment is trimmed to the technical breakpoint note.
Per-rule check is clean:
- WCAG 2.2 AA ✓ — the About/Privacy Policy links stay reachable on mobile via the header hamburger menu, so hiding
.app-footerbelow 768px loses no content. - tests-required-on-fixes ✓ — Playwright regression test pins both directions.
- conventional-commit title ✓ —
fix: …. - CSS correctness ✓ —
max-width: 767.98pxcorrectly mirrors Header'smin-width: 768pxbreakpoint with no boundary gap.
Review Dobby 2 reported 0 findings, tests passed. Ship it.
Summary
Hides the compact app footer (
About · Privacy Policy · Built by Yivi) on mobile / small viewports, where it was costing too much screen real estate. The footer stays visible on desktop.Change
src/routes/(app)/+layout.svelte: added a@media only screen and (max-width: 767.98px)rule that sets.app-footer { display: none }. The 768px breakpoint mirrors the one already used byHeader.sveltefor its desktop layout, so footer and nav switch at the same width.Verification
Built the production bundle and drove it with Playwright at four viewports:
Screenshots confirm the mobile layout is clean with no leftover gap, and the desktop layout is unchanged.
Checks run:
npm run build,npm run check(svelte-check: 0 errors / 0 warnings),prettier --check, andstylelint— all pass.Closes #279