Boxed Lists
A boxed list is Adwaita’s core pattern for settings and detail screens: a set of related rows gathered into a single rounded card. The card is a preferences group; each row is a small, self-contained control — a toggle, a text field, a drop-down, a button.
Every widget below is described independently of any one toolkit, then shown
three ways. Native GJS (real Libadwaita through
@girs/adw-1) is the primary
implementation; the Web (@gjsify/adwaita-web)
and NativeScript (@gjsify/adwaita-nativescript)
ports mirror it. The preview is the real Web component — no screenshot — so it
follows the light/dark toggle just like a native window would.
Preferences Group
Section titled “Preferences Group”The container for a boxed list. It renders its rows as one rounded card and can carry a title, a description, and a header-suffix widget (a button or switch pinned to the trailing edge of the header). Groups stack vertically to build a full preferences page.
Action Row
Section titled “Action Row”The most general row: a title with an optional subtitle, plus prefix and suffix slots for extra widgets (an icon on the leading edge, a button or chevron on the trailing edge). Marking it activatable makes the whole row respond to a click — typically to open a detail page.
Switch Row
Section titled “Switch Row”An action row with a trailing switch that toggles a single boolean setting — the boxed-list equivalent of a labelled on/off control.
Entry Row
Section titled “Entry Row”A row whose title doubles as the label and placeholder for an inline text field. Ideal for short, editable values — a name, a hostname, a nickname. It can show an apply button that commits the change.
Password Entry Row
Section titled “Password Entry Row”An entry row that masks its contents and offers a peek toggle to reveal them. Use it wherever a secret is edited inline in a boxed list.
Combo Row
Section titled “Combo Row”A row with an inline drop-down for choosing one option from a fixed list. The selection is stored as an index into the model.
Spin Row
Section titled “Spin Row”A row with an inline spin button over a numeric range — a value with ± steppers and optional decimal digits, for settings like a font size or a count.
Expander Row
Section titled “Expander Row”A row that discloses nested rows when expanded — a lightweight way to tuck away advanced or grouped settings. It can carry an enable switch that gates the whole section.
Button Row
Section titled “Button Row”A full-width row that behaves like a button — for a boxed-list action such as
Add account or Remove. It takes an optional start icon and an Adwaita
style class (.suggested-action, .destructive-action).
Related
Section titled “Related”- Buttons — standalone buttons and the style classes reused here.
- Layout — the
Clampthat keeps a boxed list at a readable width. - Adwaita Storybook — the same widgets in a live, interactive component browser.