Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

No Tickets Empty State Block for React

A support desk's empty queue in a fixed-height window: a rail with Queue and Solved, a drawn conveyor of four dashed stations, and a Create ticket dialog whose tickets move one stage at a time along the lane.

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 help desk as a lane that waits for work, with this no tickets empty state for React with Base UI. The window is Deskwren, a support desk, in a frame of fixed height: the Sidebar is the rail with Queue and Solved and their counts (collapsed it is an icon rail with tooltips, and on a phone it opens as a sheet), the top bar names the open page and holds the Shine Button, the only colored control, Create ticket. The page is a drawn conveyor of four stations, New, Assigned, Waiting and Solved, each dashed while nothing sits in it, over the list of open tickets. Create ticket opens a real Dialog with a Field for the subject and a Native Select for the priority, and the ticket lands in New; its Move to button takes it one stage along, a station turns solid while it holds a ticket, and a solved ticket leaves the queue for the Solved page. The frame is ruled by Guides, the conveyor is one SVG whose classes change, and everything moves with CSS only. For the front page of any help desk, inbox or work queue.

FAQ

What stays in the page, and how do I make it real?

The tickets live in the page's state: a reload empties the queue, and Start over empties it without one. Nothing is sent, and the status line under the page says so ("Created DW-101 in New. Not sent."). To wire it for real, post the subject and priority to your help desk where the code says so, add the ticket from the response, and send each move to your API before the station changes.

How does the conveyor work?

Each station shows how many tickets are in its stage. Empty, it is a dashed box; with one ticket it turns solid with a ticket inside, and with two or more a second ticket peeks out behind. The row of labels under the drawing says the same in words ("1 ticket"), because the drawing is hidden from assistive technology. The Solved station fills as tickets are solved, and the same tickets are listed on the Solved page.

What does Create ticket do?

It opens a modal dialog with focus in the subject field. An empty subject says "Type a subject first." and keeps the dialog open with focus on the field. A good one adds the ticket to New with the next number (DW-101, DW-102) and the priority you chose, closes the dialog, and moves focus to the new ticket's Move button. The demo holds four tickets; past that the dialog says so, and Start over clears them.

What do the Move to buttons do?

Each open ticket has one button named for the stage it goes to (Move to Assigned, then Waiting, then Solved), and a ticket in Solved shows the word instead of a button. After a move the focus stays on that ticket's button, or goes to the next open ticket when the moved one has left the queue. Moves are one at a time, in order, and cannot be undone except by Start over.

Is it usable with a keyboard and a screen reader?

Tab runs the rail, the top bar, the list and its buttons. The rail links are named with their counts, such as Queue, 2 tickets, and the current page is marked. A polite status line at the window's foot says each change, and Escape closes the dialog and gives focus back to Create ticket.

How does it look on a phone?

The window keeps its fixed height. The rail becomes a sheet opened from the top bar, the lane scales to the screen's width with its four labels under it, and each Move to button becomes an arrow with the same accessible name. The list scrolls inside the window and nothing scrolls sideways, even at 320 px wide.

  • Pro

    An AI assistant's empty history in a framed window: the sidebar says No chats yet, a drawing of three stacked speech cards and four prompt chips lead to a log and composer with sample replies.

  • Pro

    No Tasks Empty State

    Projects and tasks

    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.

  • Pro

    A mail client in a fixed-height window: mailboxes and labels whose counts follow the mail you file, a searchable message list beside the open message, and Compose for a local draft.

  • Pro

    An incident tracker's quiet log: a calendar of 13 weeks of 7 quiet dots, a 30, 60 or 90 day range that re-slices the grid and the line 0 incidents in 60 days, and a Run a drill button that marks one day with a tooltip.

  • Pro

    Invite Members Dialog

    Share and invite

    A household calendar's Members page with its invite dialog shown open: one email field that knows the household's domain, so an outside address joins as a guest, the people who already have access, and a Send invite button that adds a pending row.

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