shadcn.io is not affiliated with official shadcn/ui
Roadmap Kanban Columns Features Block for Vue
A public roadmap in three lanes on shared hairlines, where the Considering lane sorts itself by votes as people press a vote toggle and a field takes one new suggestion.
Installation
Overview
A roadmap features section for Vue with Ark UI. Three lanes share their hairlines in one band: Shipped cards say how long ago they went out, Building cards show a progress bar, and the Considering lane is alive. Every idea has a vote toggle, and the cards slide into their new places as the counts change, most votes first, with a short CSS transition. A field at the foot of the lane takes one suggestion, which joins the vote as a new card holding its first vote. There is no dragging: the votes decide the order. Below md a segmented control above the band picks one lane at a time, and the height never changes. It's built from Toggle, Segment Group, Input Group, Badge and Guides, and it follows your theme. For public roadmaps, feedback boards and any list that should be ordered by the people it serves.
FAQ
How do I change the cards?
Edit SHIPPED, BUILDING and IDEAS at the top of the file. Shipped cards take an ago string, Building cards a percent, and ideas the votes from everyone else; the visitor's own vote is added on top. Every lane is sized for five cards (SLOTS), so the lanes stay equally tall. If you add a sixth, raise SLOTS and the lane's height together.
How does the sorting work?
Each idea is placed by its rank: a function sorts the ideas by votes, and a CSS variable on each card sets its slot, so the card slides there with a transition on its translate. The cards stay in the same order in the page's source, so a card you are voting on keeps keyboard focus while it moves. The list is named "Ideas, most votes first", and a polite status line says where a card landed after each vote.
What does the suggestion field do?
It adds one idea to the Considering lane, with your vote already on it, and then leaves: the new card takes its slot, fades in and receives focus on its vote button. The field takes up the lane's fifth slot until it is used, so adding a card changes nothing in the layout. Wire the submit to your own endpoint to keep the suggestion.
How do screen readers and keyboards get on?
Each lane is a named section with a heading and a list. Each vote is a toggle button named "Vote for" and the idea's title, whose pressed state is announced. The progress bars are decorative and their percentage is in the text beside them. Every control has a visible focus ring.