Skip to content

feat(header): readable glass menus, mobile menu fixes and a single h1 - #214

Merged
BIA3IA merged 5 commits into
feat/home-visual-refinementfrom
feat/chrome-visual-refinement
Nov 2, 2026
Merged

BIA3IA merged 5 commits into
feat/home-visual-refinementfrom
feat/chrome-visual-refinement

Conversation

@viganogabriele

@viganogabriele viganogabriele commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #213: feat/guida-matricola-visual-refinement. This is the header part of the shared site chrome. The footer is in #215 and the 404 page and document language are in #216. This PR used to contain all three; it has been split.

Why the glass "didn't work"

The header sat inside the page wrapper in layout.tsx (relative isolate … overflow-clip). In that position Chromium skipped its backdrop, so the glass never blurred anything (the backdrop-filter was set, but nothing was blurred). With the mobile menu or a desktop dropdown open, the page titles read sharp through the links (see the 402 before shot).

I bisected it in the browser: removing isolation alone only helped partly, while rendering the header outside the wrapper fixes it. So <Header /> now renders before the wrapper. The header is fixed, so the layout is unchanged. The glass stays everywhere. The open panels only get a stronger blur (backdrop-blur-xl). An earlier revision of this PR used a solid background instead; that is reverted.

Other changes

  • Mobile menu stays open after navigation: fixed. The menu is tied to the page it was opened on, so following a link closes it. Escape closes it too.
  • Toggle: it now has aria-expanded, aria-controls and an Italian label, and it is a 40 px target with a focus ring.
  • Rows and labels: items are 40 px rows instead of 20 px text, and the group labels lose the blue gradient (style-guide rule: no gradient on small text).
  • Current page: the active item gets aria-current="page" and the underline, and on desktop the trigger of its section stays underlined.
  • External link icon: "Appunti" leaves the site, so it uses ↗ instead of ›.
  • Dead controls removed: the language and theme buttons only ran console.log. There is no i18n, and dark mode is disabled pending design. They can return with those features.
  • Logo: it was an h1 on every page, mobile and desktop copies included. It is now a span, with a decorative alt="" and a focus ring.
  • One h1 per page: the shared ui/hero.tsx title becomes the h1, so every route has exactly one (checked on 17 routes). Same classes, no visual change.
  • Valid list markup: in the desktop dropdown, <ul><Glass><li> becomes <Glass><ul><li>.

Screenshots (before | after, on /storia)

menu 402
menu 768
menu 1024
menu 1440
header 1440
header 402

Verification

  • Behaviour (Playwright): the menu closes after a link and on Escape, aria-expanded toggles, and there is one h1 per route.
  • Overflow: none on the checked routes at 320, 1024 and 1440 px.
  • Checks: pnpm check, pnpm build, pnpm typecheck and the tests (3/3) all pass.

Merge order

#199 → … → #213 → this → #215 → #216. The pr-assets/chrome-visual-refinement branch only holds the screenshots.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7eb1a859-9262-4a7a-ac04-839942ee2c89

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@viganogabriele
viganogabriele force-pushed the feat/chrome-visual-refinement branch from 0217fe3 to ba34370 Compare October 31, 2026 11:13
@viganogabriele viganogabriele changed the title feat(layout): refine the header, footer and 404 page feat(header): readable glass menus, mobile menu fixes and a single h1 Oct 31, 2026
@viganogabriele
viganogabriele marked this pull request as ready for review October 31, 2026 17:54
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from f92325f to b269c65 Compare November 2, 2026 13:53
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch 2 times, most recently from 421a974 to 76d60f2 Compare November 2, 2026 14:06
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch 2 times, most recently from 36f22d9 to 5bde9d0 Compare November 2, 2026 14:20
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch 2 times, most recently from 3f618b9 to 9bf0f7e Compare November 2, 2026 14:32
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 5bde9d0 to 8c86923 Compare November 2, 2026 14:32
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch from 9bf0f7e to cd3cd33 Compare November 2, 2026 14:35
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 468495e to 35e8f73 Compare November 2, 2026 14:56
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch from cd3cd33 to 3c4f49b Compare November 2, 2026 14:56
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 35e8f73 to d8178b0 Compare November 2, 2026 15:00
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch 2 times, most recently from 4689f8c to d4e4e2c Compare November 2, 2026 15:02
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 1b62fea to 805bbd8 Compare November 2, 2026 15:14
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch from d4e4e2c to 91f5fac Compare November 2, 2026 15:14
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 805bbd8 to 624cbf7 Compare November 2, 2026 15:19
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch from 91f5fac to 575ed3f Compare November 2, 2026 15:19
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 624cbf7 to 4c3271d Compare November 2, 2026 15:26
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch from 575ed3f to 3af2924 Compare November 2, 2026 15:26
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 4c3271d to f1758be Compare November 2, 2026 15:28
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch 2 times, most recently from e2e77c2 to 7eec5ce Compare November 2, 2026 16:03
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from f1758be to 65a1d49 Compare November 2, 2026 16:03
viganogabriele and others added 5 commits November 2, 2026 16:05
… layout

The standalone download page kept its own title steps (45px up to 1023px,
then 120px) and 48px side margins. It now uses the fluid display scale and
the shared container gutters, stays centered with padding for short
screens, and its title is the page's h1 (header and footer are hidden here).

CardSplit, used only by this page, tightens its stacked phone layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
It was the third page-title implementation, with its own gradient and
sizes. Hero already fits long words to the width.
Hero wrapped the title onto three lines at 320px and pushed the
download button below a 320x568 screen. This standalone page has no
header, so it keeps its fluid title; a comment now says why.
The header sat inside the page wrapper (isolate + overflow-clip), where
Chromium skipped its backdrop: the glass never blurred, so the page titles
read sharp through the open menus. It now renders outside the wrapper and
the open panels use a stronger blur, keeping the glass.

The mobile menu closes on navigation and on Escape, exposes aria-expanded
and uses 40px rows without the blue gradient labels. The current page and
its section are marked, "Appunti" gets the external arrow, and the
language and theme buttons, which only logged to the console, are
removed. The logo is no longer an h1: the page Hero is, so every route
has exactly one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The menu closes when any link in it is followed, the current page and
  the logo included, when tapping outside it and when focus leaves it.
  Before, Back reopened it and the current-page link left it open.
- Escape returns focus to the toggle instead of dropping it on <body>.
- Menu links get the site's focus ring: the active item was already
  underlined, so focusing it changed nothing. The desktop dropdown links
  get an outline for the same reason.
- The open menu's scroll no longer moves the page underneath.
- Glass forwards a ref.
@BIA3IA
BIA3IA force-pushed the feat/guida-matricola-visual-refinement branch from 65a1d49 to b1de36d Compare November 2, 2026 16:05
@BIA3IA
BIA3IA force-pushed the feat/chrome-visual-refinement branch from 7eec5ce to 5a20d3c Compare November 2, 2026 16:05
Base automatically changed from feat/guida-matricola-visual-refinement to feat/home-visual-refinement November 2, 2026 16:05
@BIA3IA
BIA3IA merged commit 38abe68 into feat/home-visual-refinement Nov 2, 2026
3 checks passed
@BIA3IA
BIA3IA deleted the feat/chrome-visual-refinement branch November 2, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants