Skip to content

v1.7.9

Choose a tag to compare

@kieranmansfield kieranmansfield released this 05 Jun 12:18
· 81 commits to main since this release

Bug Fixes

  • Fix header hydration mismatch: Removed resolveComponent('MastHeader') guard from ui/layouts/default.vue. Nuxt 4 registers components at compile time, not via app.component(), so resolveComponent always returns a string at runtime — the header rendered on the server but was removed after hydration, shifting content up by the header height. Layout now renders MastHeader / MastFooter unconditionally.
  • Fix ~85px layout shift from announcers inside CSS grid: NuxtAnnouncer and NuxtRouteAnnouncer were direct children of the mastmain CSS grid. Before their position: absolute CSS loaded, they auto-placed as grid rows, pushing basesection down ~85px then back up. Removed both components (unneeded boilerplate).
  • Fix ThemePickerMenu hidden behind header: Raised z-[60] so it sits above the header's z-50.
  • Fix ThemePickerMenu pop-in delay: Added #fallback slot with a matching icon placeholder so the button is visible immediately during SSR/hydration.

Docs

  • Added docs/layout-shift-causes.md — catalogue of all 10 CLS root causes found and fixed, with rules for avoiding them going forward.