About this set
A studio-style header whose Menu button opens a full-screen dark overlay with four large links (Work, Studio, Journal, Contact) and a row of social and email links underneath. The overlay does not slide in: it wipes open as a clip-path circle that grows from the Menu button, then the links rise and fade in one after another, each with its own delay from a –i custom property. The header text turns white while the menu is open, so the logo and button stay visible on top. Use it for portfolio, agency or editorial sites with a handful of top-level pages. The Menu button has aria-expanded and aria-controls. While the overlay is open, Tab cycles through the header and overlay links only, Esc closes it and returns focus to the button, and choosing a link closes it too. Once the wipe has closed, the overlay is visibility:hidden, so its links are out of the tab order. Under prefers-reduced-motion the wipe and the stagger become instant. The Bootstrap version runs the same wipe on a full-height .offcanvas, whose plugin supplies the focus trap and Esc handling.
What’s included
- Clip-path circle wipe that grows from the Menu button
- Staggered link entrance from one custom property per item
- Focus held inside the open menu; Esc closes it and refocuses the button
- Closed overlay removed from the tab order
- Bootstrap version uses .offcanvas with the Offcanvas plugin
Accessibility
The toggle is a button with aria-expanded and aria-controls pointing at a nav labelled Main, and the current page link has aria-current="page". While the menu is open, keyboard focus stays in the header and overlay, and Esc closes it and returns focus to the button; closed links cannot be reached with Tab. Focus outlines switch to light indigo on the dark overlay, and motion is cut to near zero under prefers-reduced-motion.
Customise it
Change --fs-bg, --fs-hover, --fs-muted and --fs-focus on .fs, and --fs-origin to move the centre of the wipe if the button sits elsewhere. The link size is the clamp() on .fs-links a. In Tailwind edit the clip-path circle positions and the delay-[…] on each link.



















