Skip to content
shadcn.io

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.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

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.

  • Pro

    No Projects Empty State

    Projects and tasks

    A 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

    A 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

    A 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 analytics

    A 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

    A 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 tasks

    A 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.