- Accordion
- Action BarUpdated
- Alert Dialog
- Alert
- Announcement
- Aspect Ratio
- Autocomplete
- Avatar
- BadgeUpdated
- Bottom Navigation
- Breadcrumb
- Button Group
- Button
- CalendarUpdated
- CardUpdated
- Carousel
- Chart
- Checkbox
- Circular Progress
- Circular Slider
- Clipboard
- Collapsible
- Color Picker
- Combobox
- Command
- Context MenuUpdated
- Data List
- Date Picker
- DialogUpdated
- DrawerUpdated
- Editable
- FieldUpdated
- File Upload
- Float
- Floating Panel
- Frame
- Hint
- Hover Card
- Image Cropper
- Input Group
- Input OTP
- Input
- Item
- Kbd
- Link Overlay
- Listbox
- MarqueeUpdated
- Menu
- Native Select
- Number InputUpdated
- Pagination
- Popover
- Progress
- Prose
- QR Code
- Radio Group
- Rating
- Resizable
- Scroll Area
- Segment Group
- Select
- Separator
- Sheet
- Sidebar
- Signature Pad
- Skeleton
- Skip Nav
- Slider
- Spinner
- Status
- Steps
- Switch
- TableUpdated
- Tabs
- Textarea
- TimerUpdated
- ToastUpdated
- Toggle Group
- Toggle Tooltip
- Toggle
- Tooltip
- Tour
- Tree View
Next.js
Install Shark UI in a Next.js project.
Use the Shark Preset#
Create Project#
Run the init command with the Shark preset and the Next.js template:
pnpm dlx shadcn@latest init @shark/style -t next
Add Components#
You can add components with the CLI or copy them manually from the component docs:
- CLI: Run
npx shadcn@latest add @shark/<component>(e.g.button,dialog). - Manual: Copy component source from Manual tab in the component docs.
For example, add the Button component to your project:
pnpm dlx shadcn@latest add @shark/button
You can also install every component at once:
pnpm dlx shadcn@latest add @shark/ui
Then import and use components like this:
import { Button } from "@/components/ui/button"; export default function Home() { return ( <div className="flex min-h-svh items-center justify-center"> <Button>Click me</Button> </div> ); }
Use the CLI#
Create Project#
Run the init command to scaffold a new Next.js project and configure Shark UI:
pnpm dlx shadcn@latest init @shark/style -t next
Add Components#
You can add components with the CLI or copy them manually from the component docs:
- CLI: Run
npx shadcn@latest add @shark/<component>(e.g.button,dialog). - Manual: Copy component source from Manual tab in the component docs.
For example, add the Button component to your project:
pnpm dlx shadcn@latest add @shark/button
You can also install every component at once:
pnpm dlx shadcn@latest add @shark/ui
Then import and use components like this:
import { Button } from "@/components/ui/button"; export default function Home() { return ( <div className="flex min-h-svh items-center justify-center"> <Button>Click me</Button> </div> ); }
Existing Project#
Create Project#
If you need a new Next.js project, create one with create-next-app. Otherwise, skip this step.
pnpm dlx create-next-app@latest
Choose the recommended defaults so Tailwind CSS, the App Router, and the default @/* import alias are configured for you.
If you prefer a src/ directory, use --src-dir or choose Yes when prompted:
pnpm dlx create-next-app@latest --src-dir
With --src-dir, Next.js places your app in src/app and configures the @/* alias to point to ./src/*.
Configure Tailwind CSS and Import Aliases#
If you created your project with the recommended create-next-app defaults, you can skip this step.
If you're adding Shark UI to an older or custom Next.js app, make sure Tailwind CSS is installed first. You can follow the official Next.js installation guide.
Then make sure your tsconfig.json includes the @/* import alias:
{ "compilerOptions": { "paths": { "@/*": ["./*"] } } }
If you used --src-dir, point the alias to ./src/* instead.
Run the CLI#
Run the shadcn init command with the Shark preset to set up your project.
pnpm dlx shadcn@latest init @shark/style
Add Components#
You can add components with the CLI or copy them manually from the component docs:
- CLI: Run
npx shadcn@latest add @shark/<component>(e.g.button,dialog). - Manual: Copy component source from Manual tab in the component docs.
For example, add the Button component to your project:
pnpm dlx shadcn@latest add @shark/button
You can also install every component at once:
pnpm dlx shadcn@latest add @shark/ui
Then import and use components like this:
import { Button } from "@/components/ui/button"; export default function Home() { return ( <div className="flex min-h-svh items-center justify-center"> <Button>Click me</Button> </div> ); }
If you used --src-dir, add the component to src/app/page.tsx instead.