shadcn.io is not affiliated with official shadcn/ui
No Tasks Empty State Block for React
An empty three-column task board: dashed slots in To do, Doing and Done, an Add task in each column that opens an inline field, a select on each card to move it, and a message band with a drawn field of slots and one button.
Installation
Overview
Show an empty board as the board it is about to become, with this no tasks empty state for React with Base UI. A hairline frame with a plus mark on each corner holds Ferncard's task board: three columns on shared hairlines (To do, Doing, Done), each with three dashed slots and an Add task that opens an inline Input in that column. Enter drops a card into the next slot, with a drawn checkbox that ticks in Done and a Native Select that moves the card to another column, with no dragging. A message band closes the frame with a drawn field of dashed slots and a sticky card leaning on it, one slot turning solid for each task, over the Shine Button, the only colored control: Add the first task opens the field in To do. The frame is ruled by Guides, the band is the catalog's Empty, and everything moves with CSS transitions only. For the empty state of any board, list of columns or card view.
FAQ
What stays in the page, and how do I make it real?
The cards live in the page's state: reload and the board is empty, and Start over empties it without a reload. Nothing is saved or sent. To wire it for real, create the task with your API where the code says so and add the card from the response, with its column and a stable id; the select that moves a card should update the task's column the same way.
Why does the board never change height?
Each column always has three rows: its cards, then dashed slots for what is left, and its Add task and the inline field share one grid cell. That is also why a column holds three cards in this demo: a full column says so and its Add task stays in the tab order with the reason in the status line. With a real board, let the column grow and keep the dashed slots for the empty state.
How do I move a card without dragging?
Every card has a select with the three columns; choosing one puts the card at the end of that column and keeps focus on its select, so the move can be repeated from the keyboard. A column that is full shows as unavailable in the list. Dragging is a different feature, with its own pointer handling, and belongs in a full kanban block.
Is it usable with a keyboard and a screen reader?
Tab visits each column's Add task and each card's select. Add task opens the field and moves focus into it; Enter adds and keeps the field open for the next task, and Escape closes it and returns focus to Add task. Each Add task button says which column it is for, each card's select says which card it moves, and every change is written to a polite status line ("Added Order paper samples to To do").
How does it look on a phone?
The three columns scroll sideways inside the board with snapping, the first one filling most of the width with the next one showing, so nothing makes the page scroll sideways. The message band and its button come under the board.
What does the drawing do?
It is one inline SVG of six dashed slots with a sticky card leaning on them, hidden from screen readers. For each task, up to six, one slot gets a solid copy that fades in over it; reduced motion switches the fade off. The words are the heading and the status line next to it.
Related
- Pro
No Projects Empty State
Projects and tasksA projects table with nothing in it yet: a dashed, editable first row where you type a name and press Enter, three drawn ghost rows fading into the card, and a message band with one Create project button.
- Pro
Getting Started Empty State
First runA getting-started card for an empty dashboard: four setup steps as real checkboxes, a headline that counts down with a progress bar, and a drawn trail up a hill with a flag that stands at the done count.
- Pro
First Project Empty State
First runA full-height first-run screen for a weekly planner: a name field and one Create project button at the start, and at the end a drawn drafting table whose blank sheet is only dashed until the project exists.
- Pro
No Dashboards Empty State
Data and analyticsA reporting tool's dashboards page before the first one: a framed window with a list pane and a dashed New dashboard row, and a page that asks for a layout from three drawn thumbnails before it creates the dashboard.
- Pro
Notification Preferences Settings
NotificationsA notification settings panel: a channel strip with all-or-nothing checkboxes, a matrix of switches by activity and channel with a locked security email, quiet hours, and a save bar that counts unsaved changes.
- Pro
No Bug Reports Empty State
Projects and tasksA QA tracker's page with zero open reports: a report form (a title, a severity and the steps), an empty glass jar whose dashed beetle turns solid, four severity counters and a small table that grows with each report.