shadcn-core-blocks
shadcn ui : Core Blocks
Blocks are shadcn's whole-page distribution surface. They are NOT a separate technology from components : they are multi-file scaffolds copied into the consumer project via the same shadcn add CLI, governed by the same ownership doctrine. ALWAYS treat a block as a starting point for a page, NEVER as an immutable template.
Quick Reference
Block in one sentence
ALWAYS describe a block as : a multi-file composition of shadcn components, copied into the consumer project as owned source code, that delivers a complete page or large UI surface (dashboard, login page, sidebar shell). Components are building bricks ; blocks are pre-stacked walls.
The blocks gallery is its own surface : https://ui.shadcn.com/blocks (distinct from https://ui.shadcn.com/components). Verified verbatim from the gallery : "Clean, modern building blocks. Copy and paste into your apps. Works with all React frameworks. Open Source. Free forever."
Four invariants
- ALWAYS install a block with
pnpm dlx shadcn@latest add <block-id>(ornpx,bunx,yarn dlx). The CLI command is IDENTICAL to component install ; the block-id (e.g.dashboard-01,sidebar-07,login-03) signals the multi-file scaffold. - ALWAYS expect MULTIPLE files to be written when adding a block (page entry + sub-components + data file). NEVER assume a block is a single file like a component.
- ALWAYS run
shadcn add <block-id> --diffbefore re-running on an already-customised block. NEVER--overwriteblind ; the block is your code now. - ALWAYS pick ONE style enum value per project at
inittime and keep it. NEVER mixnew-yorkandseraandlumablocks in the same project ; visual coherence breaks.