Free
Pro

Responsive Nav

<ply-responsive-nav> is a progressive (priority+) navigation bar. Project <ply-responsive-nav-item> children with labels and optional icons. As many items as fit stay visible; the rest spill into a More dropdown from the right as the container shrinks. Leftmost items have the highest priority and remain visible longest.

freepriority+

Live demo — resize the box

Drag the right edge of the preview (or shrink the browser window). Links peel off from the right into the chevron menu.

Hint: grab the southeast corner of the dashed box and drag horizontally.

Icons, router links, and external hrefs

Put any content inside an item — text, icons, or both. Prefer routerLink for in-app routes. Use href (and optional target) for external URLs. When both are set, routerLink wins. Use menuLabel when the overflow menu should show different text than the bar.

When to use

  • Marketing headers and toolbars with more links than a narrow viewport can show.
  • Any horizontal nav that should degrade gracefully without wrapping to a second line.
  • Pair with a mobile drawer or <ply-shell> sidebar under ~991px when you hide the bar entirely on small screens.

Installation

Run the following command to add this component to your project:

bash

npx ply-ui-cli add responsive-nav

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Ply MCP server.

bash

npx -y ply-ui-mcp

Ply provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)

// Install: npx ply-ui-cli add responsive-nav
// Paths are relative to aliases.components (default: src/app/components)
import { ResponsiveNavItemComponent } from './responsive-nav/responsive-nav-item.component';
import { ResponsiveNavConfig } from './responsive-nav/responsive-nav-tokens';
import { ResponsiveNavComponent } from './responsive-nav/responsive-nav.component';

@Component({
  selector: 'app-your-component',
  imports: [
    ResponsiveNavComponent,
    ResponsiveNavItemComponent
  ],
  template: `...`
})
export class YourComponent {}

API for responsive-nav — generated from JSDoc in the library source.

API reference for responsive-nav
APIMemberTypeDefaultDescription
ResponsiveNavConfiglinkClassSignal<string>
ply-responsive-navclassstring''Extra host classes merged via `cn()`.
ply-responsive-navlinkClassunknownRESPONSIVE_NAV_DEFAULT_LINK_CLASSTailwind classes applied to each item link.
ply-responsive-navmoreLabelunknown'More navigation links'Accessible label for the overflow "More" trigger button.
ply-responsive-nav-itemclassstring''Extra classes merged onto the inner link/span.
ply-responsive-nav-itemrouterLinkstring | readonly (string | number)[] | undefinedundefinedIn-app route (`RouterLink`). Wins over `href` when both are set.
ply-responsive-nav-itemhrefstring | undefinedundefinedAbsolute or external URL when not using `routerLink`.
ply-responsive-nav-itemtargetstring | undefinedundefinedOptional `target` for `href` links (e.g. `_blank`).
ply-responsive-nav-itemmenuLabelstring | undefinedundefinedLabel used in the overflow "More" menu. Defaults to the projected text.