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.
Installation
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.
Related
- 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
No Files Empty State
Files and docsA 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 searchA 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 integrationsA 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
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
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.