Basic
Use triggers for destinations that need rich dropdown content and links for direct navigation.
Icons by @ng-icons/tabler-icons
The component library does not provide icons.
Website navigation primitive with dropdown-backed panels, rich links, indicators, viewport styling, direct links, and RTL support.
Preview
TS
import { FrNavigationMenuModule } from '@frame-ui-ng/components/navigation-menu';HTML
<nav frNavigationMenu>
<ul frNavigationMenuList>
<li frNavigationMenuItem>
<button [frNavigationMenuTrigger]="gettingStarted" type="button">
Getting started
<ng-icon name="tablerChevronDown" size="16" />
</button>
<ng-template #gettingStarted="frNavigationMenuContent" frNavigationMenuContent>
<div frNavigationMenuPanel>
<div frNavigationMenuGrid [columns]="2">
<a frNavigationMenuLink frNavigationMenuFeature href="/docs/overview">
<span frNavigationMenuLinkTitle>Angular Components</span>
<span frNavigationMenuLinkDescription>
Token-first primitives built for modern Angular.
</span>
</a>
<div frNavigationMenuGrid>
<a frNavigationMenuLink href="/docs/overview">
<span frNavigationMenuLinkTitle>Introduction</span>
<span frNavigationMenuLinkDescription>
Understand the library and styling foundation.
</span>
</a>
<div frNavigationLinkSeparator></div>
<a frNavigationMenuLink href="/docs/installation">
<span frNavigationMenuLinkTitle>Installation</span>
<span frNavigationMenuLinkDescription>
Add the library and configure shared styles.
</span>
</a>
</div>
</div>
</div>
</ng-template>
</li>
<li frNavigationMenuItem>
<a frNavigationMenuLink href="/docs">Docs</a>
</li>
</ul>
<div frNavigationMenuIndicator></div>
</nav>Use triggers for destinations that need rich dropdown content and links for direct navigation.
Compose `FrNavigationMenuLink` with anchors or router links, and add the trigger class when a direct link should visually match trigger buttons.
Use the indicator primitive when you want a visual bridge from trigger row to panel.
Use the viewport primitive for persistent preview panels or custom layouts that should use the same surface tokens.
Navigation menu inherits direction and supports aligned RTL dropdown panels through the content alignment input.
Override navigation-menu tokens for the top-level trigger row and link cards, and dropdown-menu tokens for opened panel surfaces.
Inspect the navigation shell, triggers, dropdown-backed panel, link cards, indicator, and viewport tokens.
Navigation Menu defines tokens for trigger rows, rich links, feature cards, indicator, and viewport while opened panels reuse the dropdown-menu surface token contract.
SCSS
--frame-navigation-menu-gap: 0.25rem;
--frame-navigation-menu-padding: 0.25rem;
--frame-navigation-menu-radius: var(--frame-radius-md);
--frame-navigation-menu-bg: transparent;
--frame-navigation-menu-color: var(--frame-foreground);
--frame-navigation-menu-trigger-height: 2.25rem;
--frame-navigation-menu-trigger-padding-x: 0.875rem;
--frame-navigation-menu-trigger-gap: 0.375rem;
--frame-navigation-menu-trigger-radius: calc(var(--frame-navigation-menu-radius) - 0.125rem);
--frame-navigation-menu-trigger-font-size: 0.875rem;
--frame-navigation-menu-trigger-font-weight: 500;
--frame-navigation-menu-trigger-bg: transparent;
--frame-navigation-menu-trigger-color: var(--frame-navigation-menu-color);
--frame-navigation-menu-trigger-hover-bg: var(--frame-accent);
--frame-navigation-menu-trigger-hover-color: var(--frame-accent-foreground);
--frame-navigation-menu-trigger-open-bg: var(--frame-accent);
--frame-navigation-menu-trigger-open-color: var(--frame-accent-foreground);
--frame-navigation-menu-content-width: 36rem;
--frame-navigation-menu-content-gap: 0.75rem;
--frame-navigation-menu-link-gap: 0.25rem;
--frame-navigation-menu-link-padding: 0.75rem;
--frame-navigation-menu-link-radius: var(--frame-radius-md);
--frame-navigation-menu-link-hover-bg: var(--frame-accent);
--frame-navigation-menu-link-active-bg: var(--frame-accent);
--frame-navigation-menu-link-separator-color: var(--frame-border);
--frame-navigation-menu-link-separator-margin-y: 0.25rem;
--frame-navigation-menu-feature-bg: linear-gradient(135deg, var(--frame-muted), color-mix(in srgb, var(--frame-primary) 12%, var(--frame-surface)));
--frame-navigation-menu-indicator-size: 0.625rem;
--frame-navigation-menu-viewport-bg: var(--frame-dropdown-menu-panel-bg, var(--frame-surface));