Sortable
Grip Keyboard Sort
A list whose grip is the keyboard control itself: space picks a row up, arrows carry it, space drops it and Escape restores the order from the moment of pick-up.
What you can change
- the items array, the title and the hint
- the onChange handler
- the gripLabel and the announcements strings — they take {item}, {position} and {total}
A link for your AI agent: preview, code and instructions.
Preview
Use it with AI
- 1. Copy the link.
- 2. Write to your agent in your own words and drop the link into the sentence.
- 3. The agent opens the link and installs the component from the registry.
put this on the home page as the hero:
https://vibeui.ru/c/sortable-002?lang=en&theme=dark
Not sure where to paste it? Step-by-step guide
Show the full instructions
What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.
Loading…
For developers
The install command lives in the “Component source” block below — a signed link that stays valid for 24 hours.
Technical notes
The component is self-contained: one file, no dependencies, its own palette in local variables --vibeui-sortable-002-*. Client-side: "use client" for the sake of the order and the move mode. The grip is a button with aria-pressed handling Space, the up and down arrows and Escape; the order snapshot is taken at the moment of pick-up, so cancelling restores the original view. The mouse path is native HTML5 drag and drop with an insertion line. A role=status live region with aria-live=assertive names the position after every step. The theme comes from the surrounding color-scheme through light-dark(): the component has no surface of its own by default, it sits directly on the page background. Every live-region phrase and grip label is a prop, the Russian values sit in the component as defaults.
Tags
- sortable
- keyboard
- drag
- a11y
Component source
The same file your agent installs. Here in case you would rather copy it by hand.
Loading…