Components Components
Breadcrumbs
Components breadcrumbs
A breadcrumb trail.
Markup
Drops in as data-pb-block="breadcrumbs".
html
<nav data-pb-block="breadcrumbs" class="pb-breadcrumbs" aria-label="Breadcrumb" style="font-family:inherit;font-size:0.875rem;color:var(--pb-muted,#64748b);">
<ol style="list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin:0;padding:0;">
<li><a href="/" style="color:var(--pb-muted,#64748b);text-decoration:none;">Home</a></li>
<li aria-hidden="true">/</li>
<li><a href="#" style="color:var(--pb-muted,#64748b);text-decoration:none;">Section</a></li>
<li aria-hidden="true">/</li>
<li aria-current="page" style="color:var(--pb-ink,#0f172a);font-weight:600;">Current</li>
</ol>
</nav>Settings
Interactive behaviour is built in; on top of that every block supports:
- Bind to State
- Drive content reactively from a State with declarative Alpine —
x-text,x-showorx-modelover$store.app.<stateKey>. - On event → run a Flow
- Wire an interaction to a Flow: set
data-pb-flow="<slug>"anddata-pb-flow-event="click|submit|hover|change|…". The flow's returned actions update the page. - Link to a page
- Navigate to another published page on click with
data-pb-page="<slug>". - Styles & classes
- Edit spacing, colour and layout visually in the GrapesJS editor. The wrapper carries
data-pb-block="breadcrumbs"so it imports as a labelled, editable component. - Interactive out of the box
- Ships with Alpine state baked in (
x-data,@click,x-show,x-transition) — open/close, tabs and toggles work with no wiring. These owner-authored blocks are trusted and keep their executable directives.