Shadcn UI CLI
Install and manage Shadcn UI components using the CLI.
Add new shadcn/ui components to MakerKit by running pnpm dlx shadcn@latest add <component> from the packages/ui directory. After installation, replace TSconfig path aliases with internal imports (#components/...) due to monorepo limitations.
This guide is part of the UI Components documentation.
The Shadcn CLI is a command-line tool that installs pre-built React components from the shadcn/ui library into your project as source code, allowing full customization.
Installation Directory
Components are installed in the packages/ui package. Always run Shadcn CLI commands from within this directory:
cd packages/uiAdding Components
Use the Shadcn CLI to add components:
pnpm dlx shadcn@latest add <component-name>For example, to add a calendar component:
pnpm dlx shadcn@latest add calendarComponents will be placed in packages/ui/src/shadcn.
Switching Shadcn UI theme
To switch to a supported Shadcn UI theme, edit the packages/ui/components.json configuration file with the theme you wish to use, for example base-vega:
{ "$schema": "https://ui.shadcn.com/schema.json", "style": "base-vega", ...}Run the command:
Move to the folder packages/ui:
cd packages/uiAnd re-add all the Shadcn UI components using the new theme:
pnpm exec shadcn add --all --yesFormat files from the root folder to ensure these files use the same format as the rest of the codebase:
cd ../../pnpm format:fixCommon Commands
# Add a single componentpnpm dlx shadcn@latest add button# Add multiple componentspnpm dlx shadcn@latest add button card dialog# List available componentspnpm dlx shadcn@latest add# Update existing componentspnpm dlx shadcn@latest add button --overwriteAfter Installation
After adding a new component, you can import it in your application:
import { Calendar } from '@kit/ui/calendar';The @kit/ui package re-exports components for consistent imports across the monorepo.
Common Pitfalls
- Running CLI from wrong directory: Always
cd packages/uibefore running shadcn commands. Running from root installs to wrong location. - Overwriting customized components: Using
--overwriteflag removes your customizations. Back up changes before updating. - Missing dependencies: Some components require additional packages. Check the shadcn docs for peer dependencies like
date-fnsfor Calendar. - Forgetting to export: New components need to be re-exported from
@kit/ui. Add export in the package's index file.
Next: Forms & Inputs →