navigation
Sliding Mega Panel
A stable open menu surface whose internal group content slides directionally as the user browses.
- navigation
- mega-menu
- directional
- panel
Live preview
Quick usage
import { SlidingMegaPanel } from "@pinky-ui/experiences";
<SlidingMegaPanel groups={groups} />Presets
Default
The restrained Pinky production default.
Default behaviour
Quiet
A flatter or lower-intensity treatment for dense pages.
disabled={true}
Install
Add @pinky-ui/experiences as a dependency, or use the CLI to copy this component's source directly into your project — no dependency to manage, fully editable.
npm install @pinky-ui/experiencespnpm add @pinky-ui/experiencesyarn add @pinky-ui/experiencesnpx pinky-ui add sliding-mega-panelPrefer to run the whole repository locally instead?
git clone https://github.com/florash/Pinky-UI.git
cd Pinky-UI
npm install
npm run devProps
| Prop | Type | Default | Description |
|---|---|---|---|
| groups | NavigationGroup[] | — | Ordered groups that share one open panel. |
| className | string | — | Styles the outer composition without changing its behaviour. |
| disabled | boolean | false | Uses the static, readable composition. |
Accessibility
- The group selector exposes the current group and links keep a stable reading order.
- Escape closes and focus returns to the opener.
Performance
- The outer panel remains mounted while only its content changes.
- Transition direction is derived from the selected index, not pointer velocity.
Reduced motion
Directional travel is removed and the next group renders immediately with its current state announced by structure.
When to use
- Large but ordered navigation groups that benefit from a stable frame
When not to use
- Menus with unrelated destinations or a need for simultaneous group comparison
Skill
Purpose
SlidingMegaPanel keeps one mega surface open while its inner group content moves directionally. The stable frame helps users understand that they are browsing related groups rather than opening a new menu each time.
Interaction anatomy
- Stable frame: the outer panel does not disappear between group changes.
- Direction: content enters from the side that matches the group order.
- Group selector: the current group remains explicit and keyboard reachable.
- Destination list: links are refreshed inside the same reading region.
Live example
Open the panel, switch groups in either direction, and inspect the destination list. The frame stays in place while the relationship between groups remains visible.
Usage
import { SlidingMegaPanel } from "@pinky-ui/experiences";
<SlidingMegaPanel groups={groups} aria-label="Browse the archive" />;Tune
- Order groups so direction has a meaningful reading relationship.
- Keep one short description and a focused link set per group.
- Avoid using it for unrelated actions that need a command palette.
Accessibility
Expose the current group with selected state, keep links in logical DOM order, and provide Escape plus focus restoration for the panel trigger.
Reduced motion
Render the next group in place without directional travel. Selection, labels and links must still update immediately.