Toggle Sidebar B
AppearanceLight & dark mode D

Swipe Row

List row that swipes open to reveal actions, snaps by flick velocity, and deletes on a full swipe that stretches the action colour across the row.

Default

Drag a row sideways to open the drawer, flick it, or swipe all the way to delete. The keyboard works through a hidden toggle button after the row.

Dark previewReplay previewOpen in new tab
Design review notesEdited 2 min ago9:41
Flight to LisbonGate changes to B12Tue
Invoice #1042Due in 3 days$1,280

Customize

Drawer
Action
Drawer Color
Row
Text
Height64px
Radius16px
Action Width80px
Swipe
Flick Bounce0.2
Resistance0.55
Collapse200ms
Commit At0.6

API Reference

SwipeRow

PropTypeDefaultDescription
actionsSwipeAction[][{ id: 'delete', label: 'Delete' }]The drawer, outermost first. Each has id, label, an optional icon (an Iconify name), an optional color for secondary actions, dismiss to fold the row when pressed, and onSelect. The first is the full-swipe action and always folds the row.
actionColorstring'#e5484d'The full-swipe block that leaps and fills the row.
drawerColorstring'#3f3f46'The drawer base and the secondary actions.
rowColorstring'#27272a'The surface.
textColorstring'#f5f5f5'Row text and the keyboard toggle.
heightnumber64Row height in pixels. The fold closes from it.
radiusnumber16Corner radius of the row and the clipped drawer.
actionWidthnumber80Width of each action in pixels, so the drawer width too.
direction'left' | 'right''left'Which way you swipe. Everything mirrors.
snapBouncenumber0.2Overshoot of the open or close settle after a flick. Slow releases never bounce.
resistancenumber0.55How much of the finger the row keeps past the drawer, and the rubber-band beyond the commit point.
collapseMsnumber200How long a deleted row takes to fold shut.
commitAtnumber0.6Fraction of the row width the surface must uncover for the block to leap and a release to delete.
fullSwipebooleantrueOff, the drawer is the end: no leap, no delete.
disabledbooleanfalseDims the row and ignores input.
openbooleanundefinedControlled open state, usable with v-model:open. Outside changes settle the row.
closeOnActionbooleantrueCloses the drawer after an action is pressed.
hapticbooleantrueA short vibration on touch when the block leaps.
labelstring'List item'Accessible name of the row.
EventDescription
update:openEmitted when a gesture or key opens or closes the drawer.
open-changeSame moment as update:open, carrying the new boolean.
actionEmitted when any action button is pressed, with the action.
commitEmitted after a full swipe or a press on a folding action, once the row has shut. Remove the row here.
SlotDescription
defaultThe row content you drag.

Accessibility

Keyboard shortcuts and ARIA behavior.

Shortcut Description
ArrowLeft + ArrowRightOn the hidden toggle, opens the drawer in the swipe direction and closes it in the other.
Enter + SpaceToggles the drawer.
Delete + BackspaceWith the drawer open, runs the full-swipe action.
EscapeCloses the drawer.
  • The drawer is inert while closed. A live region announces what a release would do.