shadcn.io is not affiliated with official shadcn/ui
No Dashboards Empty State Block for React
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.
Installation
Overview
Turn the empty dashboards page into the first dashboard, with this no dashboards empty state for React with Base UI. A hairline frame with a plus mark on each corner holds a window of fixed height for Cindermesh, a reporting tool: a plain list pane at the start with the product's mark, "Dashboards" and its count, and a dashed New dashboard row; and, beside it, a page with a top bar and the main area. The main area asks for a layout in three cards, each with a drawn thumbnail (a grid of four, a chart with a side list, one wide chart), as one choice group built from native radio buttons. The Shine Button in the top bar, the only colored control, names the choice ("Create a grid dashboard"); pressing it adds the dashboard to the list with its thumbnail and shows its drawn skeleton in the main area. The frame is ruled by Guides, the phone's list is a Native Select, and everything moves with CSS transitions only. For the empty page of any tool where people build their own views.
FAQ
What stays in the page, and how do I make it real?
The dashboards live in the page's state: reload and the list is empty, and Start over empties it without a reload. Nothing is saved, and the skeletons are drawings, not charts. To wire it for real, create the dashboard with your API where the code says so, add its row from the response, and render your own widgets in the main area in place of the drawn skeleton.
Why is it a window, and why is there no sidebar component?
A dashboards page lives inside an app, so the block is the app's own frame: a list pane, a top bar with the page's heading and its one action, and a main area that scrolls on its own. The list pane is plain markup rather than the catalog Sidebar, because it only has to list dashboards: a row for each, a dashed one for a new dashboard. The window keeps its height whatever you do, and only the main area scrolls.
How does the choice work?
The three cards are real radio buttons with the card as their label, so the arrow keys move between them and the button's label follows ("Create a chart dashboard"). A layout that has been made is marked Created and can't be chosen again in this demo; the next free one is preselected. With all three made the button says so and stays in the tab order.
Is it usable with a keyboard and a screen reader?
Tab runs through the list pane (each dashboard, then New dashboard, then Start over), the button in the top bar and the layout cards. The page you are on is marked as the current page in the list, a polite status line says what was created, and the drawings are hidden from screen readers because the names and sentences say the same.
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
No Tasks Empty State
Projects and tasksAn 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
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
Email Client Sidebar
App contentA 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
Invite Members Dialog
Share and inviteA 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 Analytics Empty State
Data and analyticsA web analytics page with no visits counted yet: an empty chart with a dashed baseline that a Preview with sample data switch fills with 14 typed days, a 7 or 14 day range and a legend worked out from the data.