Kodza

Header Mega

A full site header whose mega menus share one panel: from a link to the next it changes shape and slides instead of closing, a soft pill follows the pointer, and below 900 px the links become a drawer with levels.

Header No dependencies headermega menunavdropdownnavbarmobile menuwp_nav_menu Added Oct 2026
/anim/header-mega/ GitHub Fullscreen

With your AI

Just ask.

Say it to your AI. It gets the exact code below, not its best guess, and knows where it goes.

Add the Kodza Header Mega to my page.

Not plugged in yet?
claude mcp add -t http kodza https://kodza.dev/api/mcp
Also in Codex, Cursor and VS Code.
kodza-header-mega.html
<header class="kodza-header-mega">
  <div class="kodza-header-mega__row">
    <a class="kodza-header-mega__logo" href="#" aria-label="Harbor, home"><svg viewBox="0 0 24 22" width="22" height="20" aria-hidden="true"><path d="M2 11a10 10 0 0 1 20 0z"/><path d="M2.46 14h19.08a10 10 0 0 1-19.08 0z"/></svg><span>harbor</span></a>
    <nav class="kodza-header-mega__menu" aria-label="Main">
      <ul class="kodza-header-mega__links">
        <li class="kodza-header-mega__spot">
          <button class="kodza-header-mega__trigger" type="button" aria-expanded="false">Product<span class="kodza-header-mega__caret" aria-hidden="true"></span></button>
          <div class="kodza-header-mega__pane" hidden>
            <div class="kodza-header-mega__inner">
              <div class="kodza-header-mega__col">
                <p class="kodza-header-mega__label">Ship</p>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Deploys</span><span class="kodza-header-mega__line">Push to main. That's the whole ritual.</span></a>
                <a class="kodza-header-mega__entry" href="#" aria-current="page"><span class="kodza-header-mega__name">Previews</span><span class="kodza-header-mega__line">A live URL for every branch.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Rollbacks</span><span class="kodza-header-mega__line">One click back to the last good build.</span></a>
              </div>
              <div class="kodza-header-mega__col">
                <p class="kodza-header-mega__label">Watch</p>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Logs</span><span class="kodza-header-mega__line">Every request, searchable for 30 days.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Alerts</span><span class="kodza-header-mega__line">We ping. You sleep.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Uptime</span><span class="kodza-header-mega__line">A status page clients can read.</span></a>
              </div>
              <a class="kodza-header-mega__card" href="#">
                <span class="kodza-header-mega__media"><img src="https://kodza.dev/media/kz-float-1400.webp" alt="" width="1400" height="933" loading="lazy"></span>
                <span class="kodza-header-mega__tag">New in v4</span>
                <span class="kodza-header-mega__headline">Previews boot in nine seconds</span>
              </a>
            </div>
          </div>
        </li>
        <li class="kodza-header-mega__spot">
          <button class="kodza-header-mega__trigger" type="button" aria-expanded="false">Solutions<span class="kodza-header-mega__caret" aria-hidden="true"></span></button>
          <div class="kodza-header-mega__pane" hidden>
            <div class="kodza-header-mega__inner">
              <div class="kodza-header-mega__col">
                <p class="kodza-header-mega__label">By team</p>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Agencies</span><span class="kodza-header-mega__line">Forty client sites, one login.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Freelancers</span><span class="kodza-header-mega__line">Bill the work, not the build minutes.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Startups</span><span class="kodza-header-mega__line">From prototype to prod, no rewrite.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Enterprise</span><span class="kodza-header-mega__line">SSO, audit logs and a real SLA.</span></a>
              </div>
              <a class="kodza-header-mega__card" href="#">
                <span class="kodza-header-mega__media"><img src="https://kodza.dev/media/kz-steps-1400.webp" alt="" width="1400" height="933" loading="lazy"></span>
                <span class="kodza-header-mega__tag">Case study</span>
                <span class="kodza-header-mega__headline">A ferry app that ships 30 times a day</span>
              </a>
            </div>
          </div>
        </li>
        <li class="kodza-header-mega__spot">
          <button class="kodza-header-mega__trigger" type="button" aria-expanded="false">Resources<span class="kodza-header-mega__caret" aria-hidden="true"></span></button>
          <div class="kodza-header-mega__pane" hidden>
            <div class="kodza-header-mega__inner">
              <div class="kodza-header-mega__col">
                <p class="kodza-header-mega__label">Learn</p>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Docs</span><span class="kodza-header-mega__line">Written by the people who built it.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Guides</span><span class="kodza-header-mega__line">From zero to prod before lunch.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Changelog</span><span class="kodza-header-mega__line">What shipped. Even on Fridays.</span></a>
              </div>
              <div class="kodza-header-mega__col">
                <p class="kodza-header-mega__label">Talk</p>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Community</span><span class="kodza-header-mega__line">Questions answered by humans.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Support</span><span class="kodza-header-mega__line">A real person reads every ticket.</span></a>
                <a class="kodza-header-mega__entry" href="#"><span class="kodza-header-mega__name">Status</span><span class="kodza-header-mega__line">All green, and we'd say otherwise.</span></a>
              </div>
            </div>
          </div>
        </li>
        <li class="kodza-header-mega__spot"><a class="kodza-header-mega__top" href="#">Pricing</a></li>
        <li class="kodza-header-mega__spot"><a class="kodza-header-mega__top" href="#">Blog</a></li>
      </ul>
    </nav>
    <div class="kodza-header-mega__end">
      <a class="kodza-header-mega__sign" href="#">Sign in</a>
      <a class="kodza-header-mega__cta" href="#">Start free</a>
      <button class="kodza-header-mega__toggle" type="button" aria-haspopup="dialog" aria-expanded="false"><span class="kodza-header-mega__lines" aria-hidden="true"></span>Menu</button>
    </div>
  </div>
  <div class="kodza-header-mega__panel" role="dialog" aria-modal="true" aria-label="Menu" tabindex="-1" hidden>
    <span class="kodza-header-mega__shade" aria-hidden="true"></span>
    <div class="kodza-header-mega__sheet">
      <div class="kodza-header-mega__bar">
        <button class="kodza-header-mega__close" type="button"><span class="kodza-header-mega__cross" aria-hidden="true"></span><span class="kodza-header-mega__say"><span>Close</span></span></button>
      </div>
      <button class="kodza-header-mega__back" type="button" disabled aria-hidden="true"><span class="kodza-header-mega__arrow" aria-hidden="true"></span><span class="kodza-header-mega__title"><span class="kodza-header-mega__heading"><span>Menu</span></span></span></button>
      <nav class="kodza-header-mega__nav" aria-label="Menu">
        <ul></ul>
      </nav>
      <div class="kodza-header-mega__foot">
        <p class="kodza-header-mega__more"><a class="kodza-header-mega__start" href="#">Start free</a><a href="#">Sign in</a></p>
        <p class="kodza-header-mega__small">Free for one project. No card.</p>
      </div>
    </div>
  </div>
</header>

Checked

Checked before you paste.

Robots poked at it before you did. Every component goes through the same checks, and again each time it changes.

What ranLast run
Accessibilityaxe-core 4.10.2: the WCAG 2.1 A and AA rules, plus best practices. 0 issues
KeyboardThe Tab key gets there, and the focus ring shows when it does. Passed
Reduced motionTurn on reduced motion and what moved just appears. Nothing loops. Passed
Light and darkThe same checks on both themes, contrast included. Passed
WordPressPasted into Twenty Twenty-Five, Twenty Twenty-One, Astra, Blocksy, GeneratePress, Hello Elementor, Kadence and OceanWP. Nothing to flag. 8 / 8 themes
Robots checked this. A human with VoiceOver hasn't yet.
KeyboardPress them in the preview
In an open menu
  • Next or previous row, up from the first back to its link↓/↑
  • First or last rowHome/End
  • Closes it, focus back on its linkEsc
On a link with a menu
  • Opens or closes its menuEnter/Space
  • Opens its menu, focus on the first row↓
Along the bar
  • Next or previous link, an open menu follows→/←
Anywhere, while a menu is open
  • Closes the menuEsc
On the Menu button, below 900 px
  • Opens the drawer on the current branchEnter/Space
On a row with a level
  • Opens its level, focus on its first row→/Enter/Space
Inside a level
  • Back up one level, focus on the row you came from←/Esc
In the drawer
  • Next or previous row, round and round↓/↑
  • First or last rowHome/End
  • Stays inside the drawer, round and roundTab/⇧Tab
  • Held back, the page behind stays putPage Up/Page Down
  • Closes it from the first level, focus back on MenuEsc

More like this

More in Header