Panel frame and navigation are separate
shell_layout selects classic (default) or inset. Classic uses the ordinary
panel frame. Inset removes the sidebar’s separating edge and places the main
surface inside an inset rounded frame on desktop. Narrow screens use the
compact native layout without the desktop outside gutter.
Both shells work with Sidebar, Topbar, and Sidebar + topbar. Shell choice does
not enable navigation, grant resource access or override navigation(false).
Override panel layout (customize_layout, default false) controls whether
the saved navigation selection replaces the native panel configuration.
The UI-only key
layout_variant is not a portable setting. Configure the real
keys above. Top navigation always requires its topbar.
customize_layout to false to let native topNavigation() / topbar()
choose navigation again. The shell remains an independent preference.
Desktop sidebar
The editor offers these three choices. There is no Auto tile. The stored/PHP
default
sidebar_collapse: 'inherit' remains supported and derives the visible
choice from the native panel flags. It does not mean that Filament always
defaults to icon collapse. Reset Layout restores inheritance.
Saving an explicit mode applies its initial expanded/collapsed state. Normal
subsequent toggle interactions remain native. The choices only apply when the
panel has a desktop sidebar; top navigation hides them. Mobile retains its
native drawer and trigger.
sidebar_groups_collapsible accepts true, false, or null (default: inherit
native collapsibleNavigationGroups()). An individual native group with
collapsible(false) remains fixed. Native sidebar widths and navigation/resource
permissions stay in your application PHP.
Breadcrumbs
breadcrumbs accepts true, false, or null (default: inherit the panel).
Turning it on permits the breadcrumbs each Page supplies; it does not invent a
breadcrumb trail for pages that have none. Native navigation-hierarchy settings
are retained.
Content width
max_content_width accepts inherit (default), lg, xl, 2xl, 3xl, 4xl,
5xl, 6xl, 7xl, or full. It sets the panel’s default content bound.
An explicit width on a particular Page wins over that panel default.
Top chrome and page-header dividers remain full width; bounded body content does
not shrink the entire toolbar. This works in Classic and Inset.
Width::SixExtraLarge for its content. It remains
bounded even if other pages use the panel’s Full width default.
User menu
user_menu_enabled accepts true, false, or null (default: inherit).
user_menu_position accepts inherit (default), topbar, or sidebar.
The position picker appears only when the menu is enabled, and unavailable
locations are disabled. A missing location falls back to the native viable one.
These preferences never re-enable a menu denied by the native panel’s
userMenu(false) or authorization closure.
Sticky topbar and density
The sticky control is shown only when the current/draft layout has a standalone
topbar. Combined sidebar/header layouts keep their own native positioning.
Page spacing and table row height are independent.
stickyTopbar() override locks the editor and takes precedence
over the matching general preference override. Save layout changes before
judging the resulting navigation structure.