interface QListProps extends HTMLAttributes<HTMLElement>
?: string = undefined?: string = undefined?: boolean = false?: boolean = false?: boolean = undefined?: boolean = false?: boolean = false?: boolean = false?: boolean = false?: QListSelection = undefined
?: boolean = false?: Omit<QSeparatorHorizontalProps, "vertical"> = {}
?: string = "div"interface QItemProps extends HTMLAttributes<HTMLElement>
?: boolean = undefined?: string = undefined?: string = undefined?: boolean = false?: boolean = false?: boolean = false?: boolean = undefined?: boolean = false?: string = undefined?: boolean = false?: boolean = false?: boolean = false?: string = "div"?: HTMLAnchorAttributes["target"] = undefined
?: string = undefinedinterface QItemSectionProps extends HTMLAttributes<HTMLElement>
?: boolean = false?: boolean = false?: QItemSectionTypes = "content"
QList contains rows of QItem; each QItemSection holds the content of a row. Start with a single section for a simple
text list, then add icons, supporting text or actions as needed.Lists and items render as div elements by default; this example adds list and listitem roles. Use tag for other HTML
elements, such as ul and li.
segmented adds gaps between
expressive items; dense reduces row height. This preview keeps borders, padding
and separators in baseline mode: turn off Expressive to try them.An individual QItem dense also opts into compact spacing; it cannot undo dense on its list. expressive inherits Quaff.init({ expressive: true }) when omitted; set expressive={false} to use standard styling. Inside QMenu,
lists use menu styling unless expressive is explicitly set.
QItem clickable with an onclick handler. For independent actions, keep the item non-clickable and put action on the content section to render a native button. Its leading snippet includes the avatar in the same target.Last primary action: None. Saved areas: 1.
By default the list has one Tab stop. Arrow keys cycle through available row actions; Tab
leaves the list. Keep a conditional action's entire QItemSection inside the conditional
block so keyboard navigation updates when it is added or removed.
QRadio and QCheckbox use real inputs; preserveTabOrder keeps their keyboard
behavior. Turn off the controls to try selection="single" and selection="multiple" listboxes with clickable options.Booking time: 19:00. Requests selected: 1 of 3.
The selection is kept when switching modes. In listbox mode, arrow keys move focus; Enter
or Space selects an option. The application updates active to reflect its state.
In form mode, radio arrow keys select a time and Space toggles a checkbox. Disabled choices
are skipped. Enable “Click anywhere in the row” to extend the native controls' click targets
to the row edges.
preserveTabOrder to keep normal Tab navigation and text editing. toggle holds a control
without shrinking; side accommodates content at its natural width.draggable enables dragging the whole row and applies its dragged
appearance. dragHandle marks the grip visually; it does not restrict where a native
drag starts. The application handles the order. Drag a task before another or use its button
to move it to first.Current task order.
The keyboard action keeps focus on the moved button and announces its new position. Custom
pointer or touch implementations can set dragged directly.
thumbnail sizes
square images; avatar holds an avatar, as in the preview. The content section
accepts a headline and supporting snippets line1 through line3. trailingText keeps short metadata separate.

Use icon for a leading symbol and trailingIcon for a trailing
symbol. video sizes a video preview to 114 × 64 pixels. The sample photos are
local docs assets; replace their src paths with your own images.
to and href make the whole item a link. Keep the rows consistent
and put the destination in the label. Route links follow the current route's active state;
use active to override it.Give interactive lists a clear accessible name. For static content, use list and list-item
roles or semantic ul/li tags. Hide decorative icons from assistive
technology, and label every icon-only action.
By default, Tab enters and leaves an interactive list; arrow keys move between its
actions. Selection lists use listbox/option semantics and expose active as the selected state. Keep their selection indicators decorative.
For form controls, omit selection and enable preserveTabOrder.
Give checkboxes and radios visible labels, and related radios a shared name.
Keep inputs as the only keyboard targets; do not also make their rows clickable. Provide a keyboard alternative for drag operations, as in the
reordering example.