From 5aeb36b5bd035d71ce5ac4df9171e1c0c117c77d Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Sun, 11 Oct 2026 16:25:01 +0200 Subject: [PATCH] website: fix the phone menu and the footer column - both live defects Reported from a real phone. Both were mine, both shipped in the switch. 1. THE PHONE MENU WAS EMPTY. The drawer slid open correctly but had no items in it. site.css's OLD mobile nav was still reaching the shell's sidebar: under @media (max-width: 900px) it sets .nav-links to position:fixed; right:-100%, which parked the menu off-canvas INSIDE the drawer. Measured at 390px and 860px: position fixed, right -280px. The cause is a hole in my own check. At STOP 1 I diffed the two stylesheets' declaration sets and found "exactly six" leaking declarations - but that diff EXCLUDED @media blocks. Re-run media-aware, the real number is FORTY, and the worst of them only apply below 900px, which is why desktop looked right and a phone did not. A check that silently skips part of its subject is not a check; this one reported a confident, wrong number. Fixed at the source rather than per-property: every selector belonging to the website's OLD chrome (nav, .nav-links*, .mobile-overlay, .hamburger, .logo*, .lang-globe-li - 29 occurrences) is now scoped `body:not(.shell)`. Scoped, not deleted, so a future non-shell page still works. .hamburger-box and .hamburger-line are deliberately left unscoped: the shell's burger uses them. Leaks after the fix: 40 -> 0. 2. THE FOOTER RENDERED AS A SECOND COLUMN at the top right on 16 pages. body is a flex row on a shell page, and my insert only moved the footer inside
when the page ENDED with
; pages with scripts after it fell through and left the footer as a direct child of body, i.e. a flex sibling of the sidebar. Moved inside
on all 16, each move asserted to have landed inside. Both are now gated: gate 3b requires every shell page's footer to be INSIDE
, red-proofed by putting one outside and watching it convict. site.css?v=23 / shell.css?v=23. --- scripts/site_gates.py | 11 +++ website/404.html | 16 ++--- website/adatkezeles.html | 4 +- website/alkalmazasok.html | 16 ++--- website/assets/site.css | 100 ++++++++++---------------- website/biztonsagimentes.html | 16 ++--- website/en/apps.html | 16 ++--- website/en/backups.html | 16 ++--- website/en/contact.html | 16 ++--- website/en/download.html | 16 ++--- website/en/faq.html | 16 ++--- website/en/index.html | 4 +- website/en/technology.html | 16 ++--- website/en/testing.html | 16 ++--- website/feltetelek.html | 4 +- website/gyik.html | 16 ++--- website/index.html | 4 +- website/kapcsolat.html | 16 ++--- website/letoltes.html | 16 ++--- website/szolgaltatasok-nonpublic.html | 16 ++--- website/technologiak.html | 16 ++--- website/teszteles.html | 16 ++--- 22 files changed, 186 insertions(+), 197 deletions(-) diff --git a/scripts/site_gates.py b/scripts/site_gates.py index dbd4c401..38375908 100644 --- a/scripts/site_gates.py +++ b/scripts/site_gates.py @@ -278,6 +278,17 @@ for p in sorted(SHELL): if not f: fail("%s: no
— the legal pages and the operator's e-mail are reachable only from it" % p) continue + # ...and it must sit INSIDE the content column. body is a flex row on a shell page, so a footer + # left outside
becomes a SECOND COLUMN beside the content (seen live on 16 pages, + # 2026-10-11: the footer rendered at the top right of the page). + _main = re.search(r'
.*?
', s, re.DOTALL) + if not _main: + fail("%s: no
— a shell page puts its content in one" % p) + continue + if not (_main.start() < f.start() < _main.end()): + fail("%s:
is outside
— on a shell page body is a flex row, " + "so it renders as a second column beside the content" % p) + continue _shell_by_lang.setdefault(lang_of(p), []).append((p, norm_block(m.group(0)) + norm_block(f.group(0)))) for _lang, _members in sorted(_shell_by_lang.items()): _ref_p, _ref = _members[0] diff --git a/website/404.html b/website/404.html index 80b43a8b..2db16086 100644 --- a/website/404.html +++ b/website/404.html @@ -7,8 +7,8 @@ Az oldal nem található | Felhom.eu - - + + @@ -71,6 +71,12 @@ +
- diff --git a/website/alkalmazasok.html b/website/alkalmazasok.html index 442022c6..59b121fa 100644 --- a/website/alkalmazasok.html +++ b/website/alkalmazasok.html @@ -44,8 +44,8 @@ } - - + + @@ -1286,6 +1286,12 @@ Kapcsolatfelvétel → +
- - - + + @@ -278,6 +278,12 @@ Kapcsolatfelvétel → +
- - - + + @@ -1286,6 +1286,12 @@ Get in touch → +
- - - + + @@ -278,6 +278,12 @@ Get in touch → +
- @@ -201,6 +201,12 @@ + - @@ -111,6 +111,12 @@ + - - - + + @@ -964,6 +964,12 @@ Get in touch → + - - - + + diff --git a/website/en/technology.html b/website/en/technology.html index a04e336c..50f7f063 100644 --- a/website/en/technology.html +++ b/website/en/technology.html @@ -39,8 +39,8 @@ } - - + + @@ -457,6 +457,12 @@ Browse the apps → + - - - + + @@ -237,6 +237,12 @@ + - diff --git a/website/gyik.html b/website/gyik.html index 85ade2da..1a440e7d 100644 --- a/website/gyik.html +++ b/website/gyik.html @@ -364,8 +364,8 @@ } - - + + @@ -964,6 +964,12 @@ Kapcsolatfelvétel → + - - - + + diff --git a/website/kapcsolat.html b/website/kapcsolat.html index 015d5a78..921dfe25 100644 --- a/website/kapcsolat.html +++ b/website/kapcsolat.html @@ -27,8 +27,8 @@ - - + + @@ -201,6 +201,12 @@ + - @@ -111,6 +111,12 @@ + - - - - + + @@ -457,6 +457,12 @@ Alkalmazások böngészése → + - - - + + @@ -228,6 +228,12 @@ + -