Skip to content

Feat/mobile nav#38

Merged
venwork-dev merged 3 commits into
mainfrom
feat/mobile-nav
Feb 24, 2026
Merged

Feat/mobile nav#38
venwork-dev merged 3 commits into
mainfrom
feat/mobile-nav

Conversation

@venwork-dev

Copy link
Copy Markdown
Owner

No description provided.

venwork-dev and others added 3 commits February 23, 2026 22:07
- Hamburger toggle button rendered in header when nav content exists;
  hidden via CSS on desktop (>640px), shown on mobile (≤640px)
- Toggle uses aria-expanded to drive open/closed state entirely through
  CSS — no JS class toggling; sibling selector shows/hides the drawer
- Icon animates three bars → × on open using CSS transform
- Closes on Escape key, outside pointer click, and toggle re-click
- React: useState + useEffect for keyboard/outside handlers
- Web component: _menuOpen on BrandHeaderElement instance; event
  listeners wired in build(), cleaned up on re-render and disconnect
- Vue and Svelte inherit behavior through the web component automatically
- 4 new web component tests (toggle renders, click toggles, Escape
  closes, no toggle when no nav content)
- New stories: Header/MobileHamburger, Shell/MobileHamburger
- prefers-reduced-motion support for hamburger icon animation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Header uses useState/useEffect/useRef/useCallback and must be a Client
Component in Next.js 13+ App Router. "use client" is added to Header.tsx
in source and injected into dist/index.mjs at build time via a rolldown
renderChunk plugin, leaving web.mjs/vue.mjs/svelte.mjs untouched.

The check-pack size regex is updated to also handle MB-unit output from
newer bun versions, converting to KB before comparing against the budget.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@venwork-dev venwork-dev merged commit 1257ac5 into main Feb 24, 2026
14 checks passed
@venwork-dev venwork-dev deleted the feat/mobile-nav branch February 24, 2026 04:55
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.

1 participant