Navigation bar
Bottom navigation for primary destinations.
Navigation_bar Examples
Copy-ready examples with live previews.
Basic usage
Navigation bar with leading and actions slots.
Live preview
Basic
import Navigation_bar from "@/packages/ui/src/_components/navigation_bar/Navigation_bar";
import Icon from "@/packages/ui/src/_components/icon/Icon";
import { Button } from "@/packages/ui/src/_components/buttons_variants/buttons/Button";
export default function Example() {
return (
<Navigation_bar
title={<span>Headline</span>}
subtitle={<span>Subtitle</span>}
leading={
<Button
forceWidth="40px"
forceHeight="40px"
iconContent={<Icon name="arrow_back" />}
variant="transparent"
ripple
variantRadio="sm"
/>
}
actions={
<div style={{ display: "flex", gap: 8 }}>
<Button
forceWidth="40px"
forceHeight="40px"
iconContent={<Icon name="search" />}
variant="transparent"
ripple
variantRadio="sm"
/>
<Button
forceWidth="40px"
forceHeight="40px"
iconContent={<Icon name="more_vert" />}
variant="transparent"
ripple
variantRadio="sm"
/>
</div>
}
/>
);
}Sizes
Small / medium / large presets.
Live preview
size
import Navigation_bar from "@/_components/navigation_bar/Navigation_bar";
export default function Example() {
return (
<>
<Navigation_bar size="small" title="Small" subtitle="Subtitle" />
<Navigation_bar size="medium" title="Medium" subtitle="Subtitle" />
<Navigation_bar size="large" title="Large" subtitle="Subtitle" />
</>
);
}Surface styles
Outlined / elevated and tone presets.
Live preview
outlined + elevated + tone
import Navigation_bar from "@/_components/navigation_bar/Navigation_bar";
export default function Example() {
return (
<>
<Navigation_bar tone="surface" outlined title="Surface outlined" subtitle="Subtitle" />
<Navigation_bar tone="surface" elevated title="Surface elevated" subtitle="Subtitle" />
<Navigation_bar tone="transparent" title="Transparent" subtitle="Subtitle" />
<Navigation_bar tone="inverse" title="Inverse" subtitle="Subtitle" />
</>
);
}Alignment
Use `align` to control the text block ("start" / "center").
Live preview
align
import Navigation_bar from "@/_components/navigation_bar/Navigation_bar";
export default function Example() {
return (
<>
<Navigation_bar align="start" title="Start" subtitle="Subtitle" />
<Navigation_bar align="center" title="Center" subtitle="Subtitle" />
</>
);
}Scroll behavior
Sticky and fixed-top behaviors inside scrollable content.
Live preview
sticky + fixedTop
import Navigation_bar from "@/packages/ui/src/_components/navigation_bar/Navigation_bar";
export default function Example() {
return (
<div style={{ height: 420, overflow: "auto" }}>
<Navigation_bar
title="Headline"
subtitle="Subtitle"
sticky
fixedTop
/>
<div style={{ height: 1200 }} />
</div>
);
}Collapsed
Use `collapsed` to switch layout state (CSS decides the final rendering).
Live preview
collapsed
import Navigation_bar from "@/_components/navigation_bar/Navigation_bar";
export default function Example() {
return (
<Navigation_bar
size="large"
title="Headline"
subtitle="Subtitle"
collapsed
/>
);
}Interactive playground
Quick way to validate combinations within the live view.
Live preview
Playground
import { useState } from "react";
import Navigation_bar from "@/_components/navigation_bar/Navigation_bar";
export default function Example() {
const [size, setSize] = useState<"small" | "medium" | "large">("small");
return (
<Navigation_bar
size={size}
title="Headline"
subtitle="Subtitle"
outlined
elevated
sticky
fixedTop
collapsed={false}
/>
);
}On this page
Navigation_bar Props
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
| title | React.ReactNode | Yes | — | Main text content (rendered in both top and bottom layouts). |
| subtitle | React.ReactNode | No | undefined | Secondary text. When provided, adds `has-subtitle` class. |
| leading | React.ReactNode | No | undefined | Leading slot (left area). Typically an icon button (back/menu). |
| actions | React.ReactNode | No | undefined | Actions slot (right area). Typically 1–3 icon buttons. |
| ariaLabel | string | No | undefined | Applied as `aria-label` on the <header> root. |
| size | "small" | "medium" | "large" | No | "small" | Size modifier class (`cssnt-appbar--size-sm/md/lg`). |
| align | "start" | "center" | No | undefined | Alignment class for the text block (`cssnt-appbar--align-start/center`). |
| tone | "surface" | "inverse" | "transparent" | No | undefined | Tone class (`cssnt-appbar--surface/inverse/transparent`). |
| outlined | boolean | No | false | Adds `is-outlined`. |
| elevated | boolean | No | false | Adds `is-elevated`. |
| sticky | boolean | No | false | Adds `is-sticky` (typically `position: sticky`). |
| fixedTop | boolean | No | false | Adds `is-fixed-top` (typically `position: fixed`). |
| collapsed | boolean | No | false | Adds `is-collapsed`. CSS decides which internal layout is visible. |
| className | string | No | undefined | Extra classes appended to the root. |
| customStyles | React.CSSProperties | No | undefined | Inline styles applied to the <header> root. |