Provides a unified admin page header component with optional back button, title, subtitle, and action slots.
Replaces the 7+ different header patterns previously used across admin templates, providing a consistent inline flex layout with responsive behavior.
Summary
Functions
Renders an admin page header with title, subtitle, and optional actions.
Functions
Renders an admin page header with title, subtitle, and optional actions.
For simple headers, use title and subtitle attributes. For complex headers
with rich content (badges, metadata), use inner_block to provide custom title
markup that replaces the default title/subtitle rendering.
Attributes
title- Page title as a string attributesubtitle- Page subtitle as a string attributeback- Path to navigate to when the back arrow is clicked. Must already be resolved (e.g. viaRoutes.path/1/PhoenixKit.Utils.Routes.path/1) — this renders a plain<.link navigate>, it does NOT re-apply the PhoenixKit URL prefix the way<.pk_link>would. When set, renders a compact ghost back-affordance (arrow icon, optionally labeled) above the title.back_label- Optional text shown next to the back arrow. When omitted the button is icon-only (still gets an accessible label).back_click- Deprecated, no-op. Retained so existing callers compile.
Slots
:inner_block- Custom title/subtitle markup (overridestitle/subtitleattrs):actions- Action buttons rendered on the right side
Examples
<%!-- Basic --%>
<.admin_page_header title="User Management" />
<%!-- With subtitle --%>
<.admin_page_header title="Settings" subtitle="Configure system" />
<%!-- With a back affordance --%>
<.admin_page_header
back={Routes.path("/admin/settings/email-sending")}
back_label="Email Sending"
title="Send Profiles"
/>
<%!-- With actions --%>
<.admin_page_header title="Posts">
<:actions>
<button class="btn btn-primary btn-sm">New Post</button>
</:actions>
</.admin_page_header>
<%!-- Rich title content --%>
<.admin_page_header>
<h1 class="text-xl sm:text-2xl lg:text-3xl font-bold text-base-content">Invoice #123</h1>
<p class="text-sm text-base-content/60 mt-0.5">Created 2 days ago</p>
</.admin_page_header>Attributes
back(:string) - Defaults tonil.back_label(:string) - Defaults tonil.back_click(:string) - Defaults tonil.title(:string) - Defaults tonil.subtitle(:string) - Defaults tonil.class(:string) - Replaces the header's default bottom margin ("mb-3 sm:mb-6") when set — pass e.g."mb-0"when the page layout controls spacing itself (a flex gap), so margins don't compound.Defaults to
nil.
Slots
inner_blockactions