Skip to main content
Pricing

Sortable List

Pro

A reorderable list where items can be dragged to new positions or reordered via keyboard. Each item displays a drag handle, content, and optional actions. Announces position changes to screen readers via a live region. Essential for priority lists, kanban columns, and custom sort interfaces.

4 variants

1. Design system audit
2. Component inventory
3. Token migration
4. Documentation update

Variants

VariantDescriptionWhen to use
DefaultSortable list with drag handles and smooth reorder animations.Use for priority lists, playlist ordering, or any user-defined sequence.
With Handles

Usage Guidelines

Do

Provide a visible drag handle — do not make the entire row the drag target.

Don't

Rely on drag-and-drop as the only reordering method — keyboard support is required.

Do

Announce reorder results to screen readers: "Item moved to position 3 of 5".

Don't

Allow reordering of items that have a fixed, system-defined order.

Do

Support keyboard reordering as the primary accessible interaction.

Don't

Use sortable lists for fewer than 3 items — manual move-up/move-down buttons are simpler.

Code

This component is included in Lexicon Pro

From €149 — one-time purchase, lifetime access

View pricing

Design Tokens

This component is included in Lexicon Pro

From €149 — one-time purchase, lifetime access

View pricing

Accessibility

  • Each item uses aria-grabbed to indicate grab state: "false" at rest, "true" when grabbed.
  • Use aria-dropeffect="move" on potential drop targets during a drag operation.
  • A live region (aria-live="assertive") announces position changes: "Task moved to position 2 of 5".
  • Drag handles must be a <button> with aria-label="Reorder" and aria-roledescription="drag handle".
  • Keyboard reordering must be fully functional without any pointer input.

Keyboard Interactions

SpacePicks up or drops the focused item (enters/exits drag mode).
ArrowUp/ArrowDownMoves the grabbed item up or down in the list.
EscapeCancels the current drag and returns the item to its original position.
TabMoves focus between items and their drag handles when not in drag mode.