# Motion Icon Morph

Header menu button whose three bars cross into a close mark while the navigation panel opens, named Open menu or Close menu.

- id: `motion-icon-morph`
- Page: https://agentic-ui-kit.com/components/motion-icon-morph
- Live preview: https://agentic-ui-kit.com/live/component/motion-icon-morph

## Install

```bash
agentic-ui add motion-icon-morph
npx shadcn@4.17.0 add @agentic-ui/motion-icon-morph
```

## Metadata

- **Level:** block
- **Category:** motion
- **Installable in:** Radix UI (registry variant new-york), Base UI (registry variant base-vega)
- **Capabilities:** seven-original-icon-pairs, transform-opacity-morph, interruptible-reversible-morph, label-or-aria-pressed-state, instant-swap-fallback, offscreen-instant-swap, reduced-motion-fallback, informative-state-preservation
- **Intents:** navigate, configure, explore-detail
- **Suits domains:** saas, devtools, operations, ai-workspace, ecommerce, media
- **Interaction:** click, keyboard-navigation
- **Screen role:** management
- **Density:** compact
- **Dark mode:** yes
- **Use it for:** Header menu button whose three bars cross into a close mark while the navigation panel opens, named Open menu or Close menu, Theme switch in an app bar where the sun retracts its rays and becomes a crescent moon, exposed as Dark theme with aria-pressed, Password field reveal button whose eye gets a slash when the password is shown
- **Avoid when:** On/off settings that read better as a switch with a visible track (use motion-toggle-spring), Copy actions that need clipboard handling and result feedback out of the box (use motion-copy-success), Icons that must stay meaningful on their own without a labelled parent control
- **Preserve when adapting:** icon-aria-hidden, state-on-parent-label-or-aria-pressed, transform-opacity-only, instant-swap-when-motion-is-off
- **Replace when adapting:** labels, pair, size, duration
- **Adaptation effort:** low
- **Coupling:** low
- **Quality breakdown:** visual 9/10, responsive 9/10, accessibility 9/10, code 9/10
- **Uses primitives:** button, toggle
- **npm dependencies:** @agentic-ui/motion, @agentic-ui/tokens, react
- **Motion:** profile subtle, library css, reduced-motion fallback yes, target 60 fps
- **Registry dependencies:** lib-motion
