Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

No Inventory Empty State Block for React

A stock manager's empty stock room as a framed window: a rail with Products and Locations, a top bar with one Track stock button, three isometric crates that turn solid, and a table where each product has a Track stock switch that reveals a quantity and a reorder point.

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

Turn an empty stock list into counted stock, with this no inventory empty state for React with Base UI. A framed window of a fixed height holds the stock room of Binwheel, a stock manager. The Sidebar lists the two places, Products and Locations, each with a count; collapsed it is an icon rail with tooltips, and on a phone it is a sheet from the top bar. The top bar's one Shine Button, the only colored control, is Track stock. In Products a band draws three stacked isometric crates, one for each product, that are only dashed until the product is tracked, over a native table of three products. Each has a Switch named for it: switching it on turns its crate solid and shows two small Input fields, its quantity and its reorder point, and a word for where it stands, In stock or Reorder when the quantity is at or under the point. Track stock switches all three on, and Locations adds up what is tracked on each shelf. The window is framed and ruled by Guides, and everything moves with CSS only. For the first screen of any stock, warehouse or shop inventory tool.

FAQ

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

Everything. The three products, their starting quantities and reorder points and the two shelves are typed in the file, and the switches, the numbers and the crates are state in the page: nothing is counted, saved or synced, and the status line says what changed. To wire it for real, start tracking in your stock system where the code says so, read the quantity and the reorder point from it, and list the products your catalog returns.

How does a row decide to say Reorder?

From the two numbers you can edit: a row says Reorder when its quantity is at or under its reorder point (the mug starts at 6 against a point of 12), In stock when it is above, and Check when a field holds something that is not a whole number up to five digits. The word has a dot and a weight as well, filled and bold for Reorder, hollow for In stock, so it never depends on color. The same words feed the Locations page, which says how many products on a shelf are to reorder.

Why are the quantity fields plain text boxes, and what do they accept?

Because the word beside them has to follow each keystroke on every library, and a text box with a numeric keyboard does that everywhere. They take whole numbers up to five digits, in any digits your keyboard types (an Arabic-Indic digit is read as an ordinary one), and anything else shows Check. Each is named by its product and its role, for example "Enamel mug, reorder at".

Does the window change height?

No. It is a fixed height, and only the table scrolls inside it. A row is the same height with the switch off (a dash where the numbers will be) and on (two fields), so switching never moves anything, and the drawn crates keep one SVG whose classes change. On a phone each product is a card with its switch beside its name and the two numbers under it, and the table's Location column moves into the line under the name.

How does the rail work, and what happens on a phone?

It is the catalog Sidebar used the way every window in this set uses it: Products and Locations are links to local state, the current one is marked, and each name carries its count (for example "Products, 2 tracked"). Collapsed it shows icons with tooltips; below the medium breakpoint it is a sheet opened by the button in the top bar, and choosing a place closes it and returns focus to that button.

Is it usable with a keyboard and a screen reader?

Tab runs through the rail, Track stock, the table (each row's switch, then its two fields once it is on) and Start over. A switch is named for its product, and the word beside the numbers is tied to the switch and both fields, so it is read with them. One polite status message says each change in a short sentence, and Start over returns focus to Track stock.

  • 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

    No Files Empty State

    Files and docs

    A file manager's empty All files page in a framed window: the catalog sidebar with its counts, a large dashed drop zone with a drawn filing drawer, and a table that lists the files you choose or drop.

  • Pro

    Sortable Members Table

    Sort and search

    A members table whose column heads are buttons: press one to sort, again to reverse, a third time for the original order, with aria-sort on the active head, ties settled by name and a spoken line for each result.

  • Pro

    Connect Tools Empty State

    Apps and integrations

    A full-height first-run screen for an integration hub: six tool cards with checkboxes at the end, and at the start a drawn hub whose spokes turn from dashed to solid, and whose sockets take a lettermark, as each tool is ticked.

  • 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

    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.