Live demo — this example is server-driven; run the showcase locally for the interactive version.

Sidebar

A two-column layout — a fixed-width panel next to flowing content. Used for filter rails, secondary navigation, and contextual info. Different from Drawer (which slides in/out).

Examples

Basic

Panel beside content.

Panel — filters, secondary nav, or context info.
Main content sits next to the panel. The sidebar component itself doesn't impose a width; control via CSS variables or container size.

Stack

pf-m-stack — the panel sits above the content.

Stacked panel — sits above the content instead of beside it.
Content below the stacked panel (pf-m-stack).

Panel right

pf-m-panel-right moves the panel to the end.

Main content on the left.
Panel on the right — useful for activity, related items, or contextual help.

Panel right with gutter

pf-m-panel-right pf-m-gutter.

Right panel with a gutter between panel and content.
pf-m-panel-right pf-m-gutter combine placement and spacing.

Sticky panel

pf-m-sticky pins the panel while the content scrolls.

Sticky panel — stays pinned while the content scrolls.

Scrollable content row 1

Scrollable content row 2

Scrollable content row 3

Scrollable content row 4

Scrollable content row 5

Scrollable content row 6

Scrollable content row 7

Scrollable content row 8

Scrollable content row 9

Scrollable content row 10

Scrollable content row 11

Scrollable content row 12

Static panel

pf-m-static — the panel scrolls away with the content.

Static panel — scrolls away with the content (pf-m-static).

Scrollable content row 1

Scrollable content row 2

Scrollable content row 3

Scrollable content row 4

Scrollable content row 5

Scrollable content row 6

Scrollable content row 7

Scrollable content row 8

Scrollable content row 9

Scrollable content row 10

Scrollable content row 11

Scrollable content row 12

Responsive panel width

pf-m-width-25 / -33-on-lg / -50-on-xl.

Responsive width — 25% by default, 33% on lg, 50% on xl.
The panel width modifiers take breakpoint suffixes.

Border

pf-m-split draws a divider between the regions.

Split border between panel and content (pf-m-split).
A divider line separates the two regions.

Padding on panel

Only the panel carries pf-m-padding.

Only the panel opts into padding (pf-m-padding).
Content without the padding modifier.

Padding on content

Only the content carries pf-m-padding.

Panel without padding.
Only the content opts into padding (pf-m-padding).

Documentation

Sidebar props

Parameters accepted by {#include components/data-display/sidebar ... /}. Model mode: pass sidebar=<Sidebar> built in Java instead — the Java tab on each example shows the builder.

* required
Name Type Description
* id String DOM id.
panelRight / gutter / stack boolean Layout modifiers — emit matching pf-m-* on the wrapper.
slots panel / content Qute block The fixed-width panel and the flowing content.

Usage

Sidebar vs. Drawer. Sidebar is always visible. Drawer slides in/out — use when the panel is contextual or optional.