RULE: Mega menu hover delay 500ms before show, 100ms reveal. Mobile uses accordion / sequential, not the same mega menu.
Created 2026-05-22
Rule: Mega menu implementation on Candid client sites follows NN/g's timing protocol:
- Hover the nav item for 500ms before showing the mega menu
- Once triggered, the mega menu appears within 100ms (feels responsive, not laggy)
- Cancel the show timer on
mouseleaveof the nav item - Touch users get immediate response on tap (no hover state)
- On large screens, the mega menu does not cover the entire screen — cap at content max-width, leave the page below visible
- On mobile, use accordion or sequential menu, NOT the same mega menu pattern, and NOT split buttons (fat-finger conflicts)
Why:
- NN/g mega-menu hover protocol: wait 0.5s before showing, then display within 0.1s for the 500/100ms protocol
- NN/g: "On large screens, don't cover the entire screen when megamenus are open" (Apr 30 2023) for the size constraint
- NN/g: split buttons unreliable on touch (fat-finger conflicts) — use sequential menus or accordions on mobile for mobile patterns
How to apply:
- Use a battle-tested mega menu library or hand-roll with
setTimeout/clearTimeoutagainstmouseenter/mouseleave - Test on touch devices: tap-to-open with explicit close affordance, not hover-to-open
- The desktop and mobile nav are different patterns triggered by viewport breakpoint, not a single responsive component
Depends on
- reference NN/g mega-menu hover protocol: wait 0.5s before showing, then display within 0.1s
- reference NN/g: "On large screens, don't cover the entire screen when megamenus are open" (Apr 30 2023)
- reference NN/g: split buttons unreliable on touch (fat-finger conflicts) — use sequential menus or accordions on mobile