Topbar and breadcrumbs
The topbar holds, from left to right: the menu button (small screens), the breadcrumbs, the global search, the notification bell, the tenant, the theme and the user menu.
Breadcrumbs
Section titled “Breadcrumbs”Breadcrumbs start with the dashboard (house icon) and lead to the current page; the last entry is not a link. They are hidden on very small screens.
| Page | Breadcrumbs |
|---|---|
| dashboard | none |
| a page | ⌂ › title |
| list of a resource | ⌂ › Invoices |
| create | ⌂ › Invoices › New invoice |
| detail / edit | ⌂ › Invoices › INV-2026-0042 (› Edit) |
| create from a relation | ⌂ › Customers › Muster AG › New invoice |
The title of a record comes from recordTitle() of the resource
($recordTitleAttribute, default name), see
Resource properties.
Pages with sub views
Section titled “Pages with sub views”A page that shows a list and the details of one entry (e.g.
?report=<uuid>) adds the levels in breadcrumbs(): URL => label, the last
entry is the page itself.
final class ReportsPage extends Page{ public function title(): string { return $this->selected()?->title ?? 'Reports'; }
public function navigationLabel(): string { return 'Reports'; // the sidebar keeps the short label }
public function breadcrumbs(): array { $report = $this->selected();
if ($report === null) { return parent::breadcrumbs(); // [url() => title()] }
return [ $this->url() => 'Reports', $this->url() . '?report=' . $report->uuid => $report->title, ]; }}Use breadcrumbs instead of own “back” links: the way back is always in the
same place. The workflow settings (⌂ › Workflows › Purchase) work this
way. The labels are escaped; the URLs should be built with
$this->url() and contain only UUIDs.
Global search
Section titled “Global search”The search field appears when at least one resource of the panel names
search columns ($globalSearch) and the user may view it. Ctrl+K / ⌘K
focuses it, the arrow keys move through the results, Enter opens one.
See Global search.
Notifications
Section titled “Notifications”The bell shows the number of unread notifications (refreshed every minute and after reading) and opens the latest ones. See Notifications.
Tenant
Section titled “Tenant”In panels with tenancy the button shows the active tenant. Users with several tenants switch there and mark a favourite (star), which is selected when a session starts, e.g. after the next login. With only one tenant the button is shown but disabled. See Tenancy.
Light, dark, or the setting of the operating system (default). The choice
is stored in the cookie anvil_theme and applied before the page is drawn,
so there is no flash. Colours: Styling.
Title of the browser tab
Section titled “Title of the browser tab”<title> is <page title> · <brand>, e.g. INV-2026-0042 · Back office.
Pages set it with title(); subtitle() appears below the heading of the
page, not in the tab.