Toolbar
Application toolbar for top-level navigation. Like Angular Material's mat-toolbar, it uses content projection with named slots for brand, navigation links, and actions.
| Input | Type | Default | Description |
|---|---|---|---|
color | 'default' | 'primary' | 'accent' | 'default' | Bar color variant |
dense | boolean | false | Compact height |
fixed | boolean | true | Fix to viewport top |
| Slot | Description |
|---|---|
[toolbarStart] | Left-aligned content (logo, brand, hamburger) |
| default | Center / free-form content (nav links, search) |
[toolbarEnd] | Right-aligned content (user menu, theme toggle, actions) |
Import
typescript
import { NgOatToolbar, NgOatToolbarRow } from '@letsprogram/ng-oat';
@Component({
imports: [NgOatToolbar, NgOatToolbarRow],
template: `
<ng-oat-toolbar>
<strong toolbarStart>🌾 Brand</strong>
<nav>Links</nav>
<button toolbarEnd>Actions</button>
</ng-oat-toolbar>
`,
})
export class MyComponent {}Basic Toolbar
html
<ng-oat-toolbar>
<strong toolbarStart>🌾 MyApp</strong>
<nav class="hstack gap-3">
<a routerLink="/home">Home</a>
<a routerLink="/about">About</a>
<a routerLink="/contact">Contact</a>
</nav>
<span toolbarEnd class="hstack gap-2">
<ng-oat-theme-selector />
<button class="ghost">👤</button>
</span>
</ng-oat-toolbar>With User Menu
html
<ng-oat-toolbar>
<strong toolbarStart>🚀 Dashboard</strong>
<nav class="hstack gap-3">
<a routerLink="/projects">Projects</a>
<a routerLink="/analytics">Analytics</a>
</nav>
<ng-oat-dropdown toolbarEnd>
<button trigger class="ghost">👤 Jane ▾</button>
<a role="menuitem">Profile</a>
<a role="menuitem">Settings</a>
<hr />
<a role="menuitem">Log out</a>
</ng-oat-dropdown>
</ng-oat-toolbar>Primary Color
html
<ng-oat-toolbar color="primary">
<strong toolbarStart>🎨 Themed</strong>
<span>Primary toolbar with accent background</span>
<button toolbarEnd class="ghost">Actions</button>
</ng-oat-toolbar>Dense
html
<ng-oat-toolbar [dense]="true">
<strong toolbarStart>📐 Compact</strong>
<span>A shorter, denser toolbar</span>
</ng-oat-toolbar>