All Neobrutalism components can be installed using the Shadcn CLI. The general format for installation is:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/[component-name].jsonYou can also use other package managers:
# npm
npx shadcn@latest add https://neobrutalism.dev/r/[component-name].json
# yarn
yarn dlx shadcn@latest add https://neobrutalism.dev/r/[component-name].json
# bun
bun dlx shadcn@latest add https://neobrutalism.dev/r/[component-name].jsonDescription: A vertically stacked set of interactive headings that each reveal a section of content. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/accordion.jsonUsage:
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion"Description: Displays a callout for user attention. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/alert.jsonUsage:
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"Description: A modal dialog that interrupts the user with important content and expects a response. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/alert-dialog.jsonUsage:
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
} from "@/components/ui/alert-dialog"Description: An image element with a fallback for representing the user. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/avatar.jsonUsage:
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'Description: Displays a badge or a component that looks like a badge. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/badge.jsonUsage:
import { Badge } from '@/components/ui/badge'Description: Displays a button or a component that looks like a button. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/button.jsonUsage:
import { Button } from '@/components/ui/button'Description: A date field component that allows users to enter and edit date. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/calendar.jsonUsage:
import { Calendar } from '@/components/ui/calendar'Description: Displays a card with header, content, and footer. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/card.jsonUsage:
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card"Description: A carousel with motion and swipe built using Embla. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/carousel.jsonUsage:
import {
Carousel,
CarouselContent,
CarouselItem,
CarouselNext,
CarouselPrevious,
} from "@/components/ui/carousel"Description: A control that allows the user to toggle between checked and not checked. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/checkbox.jsonUsage:
import { Checkbox } from "@/components/ui/checkbox"Description: An interactive component which expands/collapses content. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/collapsible.jsonUsage:
import {
Collapsible,
CollapsibleContent,
CollapsibleTrigger,
} from "@/components/ui/collapsible"Description: Autocomplete input and command palette with a list of suggestions. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/combobox.jsonUsage:
import {
Command,
CommandEmpty,
CommandGroup,
CommandInput,
CommandItem,
CommandList,
} from "@/components/ui/command"Description: Fast, composable command palette. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/command.jsonUsage:
import {
Command,
CommandDialog,
CommandEmpty,
CommandGroup,
CommandInput,
CommandItem,
CommandList,
CommandSeparator,
CommandShortcut,
} from "@/components/ui/command"Description: Displays a menu to the user at their cursor position. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/context-menu.jsonUsage:
import {
ContextMenu,
ContextMenuContent,
ContextMenuItem,
ContextMenuTrigger,
} from "@/components/ui/context-menu"Description: A date picker component with range and presets. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/date-picker.jsonUsage:
import { Calendar } from "@/components/ui/calendar"Description: Powerful table and datagrids built using TanStack Table. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/data-table.jsonUsage:
import {
Table,
TableBody,
TableCaption,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table"Description: A window overlaid on either the primary window or another dialog window. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/dialog.jsonUsage:
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog"Description: A drawer that slides in from the edge of the screen. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/drawer.jsonUsage:
import {
Drawer,
DrawerClose,
DrawerContent,
DrawerDescription,
DrawerFooter,
DrawerHeader,
DrawerTitle,
DrawerTrigger,
} from "@/components/ui/drawer"Description: Displays a menu to the user when triggered. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/dropdown-menu.jsonUsage:
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"Description: A flexible form component that validates and submits forms. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/form.jsonUsage:
import { useForm } from "react-hook-form"
import { zodResolver } from "@hookform/resolvers/zod"
import * as z from "zod"Description: For sighted users to preview content available behind a link. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/hover-card.jsonUsage:
import {
HoverCard,
HoverCardContent,
HoverCardTrigger,
} from "@/components/ui/hover-card"Description: A card component optimized for image display. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/image-card.jsonUsage:
import { ImageCard } from "@/components/ui/image-card"Description: Displays a form input field. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/input.jsonUsage:
import { Input } from "@/components/ui/input"Description: A one-time password input component. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/input-otp.jsonUsage:
import { InputOTP, InputOTPGroup, InputOTPSlot } from "@/components/ui/input-otp"Description: Renders an accessible label associated with controls. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/label.jsonUsage:
import { Label } from "@/components/ui/label"Description: A scrolling marquee component. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/marquee.jsonUsage:
import { Marquee } from "@/components/ui/marquee"Description: A persistent menu bar at the top of the screen. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/menubar.jsonUsage:
import {
Menubar,
MenubarContent,
MenubarItem,
MenubarMenu,
MenubarSeparator,
MenubarShortcut,
MenubarTrigger,
} from "@/components/ui/menubar"Description: A collection of links for navigating websites. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/navigation-menu.jsonUsage:
import {
NavigationMenu,
NavigationMenuContent,
NavigationMenuItem,
NavigationMenuLink,
NavigationMenuList,
NavigationMenuTrigger,
} from "@/components/ui/navigation-menu"Description: A set of numbered buttons used to navigate a multi-page dataset. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/pagination.jsonUsage:
import {
Pagination,
PaginationContent,
PaginationItem,
PaginationLink,
PaginationNext,
PaginationPrevious,
} from "@/components/ui/pagination"Description: Displays floating content in relation to a target element. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/popover.jsonUsage:
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover"Description: Displays an indicator showing the completion progress of a task. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/progress.jsonUsage:
import { Progress } from "@/components/ui/progress"Description: A set of checkable buttons where only one button can be checked at a time. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/radio-group.jsonUsage:
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"Description: A resizable panel group. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/resizable.jsonUsage:
import {
ResizableHandle,
ResizablePanel,
ResizablePanelGroup,
} from "@/components/ui/resizable"Description: A panel with scrollable content. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/scroll-area.jsonUsage:
import { ScrollArea } from "@/components/ui/scroll-area"Description: Displays a list of options for the user to pick from. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/select.jsonUsage:
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/components/ui/select"Description: A sheet that slides in from the edge of the screen. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/sheet.jsonUsage:
import {
Sheet,
SheetContent,
SheetDescription,
SheetFooter,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"Description: A collapsible sidebar for navigation. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/sidebar.jsonUsage:
import {
Sidebar,
SidebarContent,
SidebarFooter,
SidebarGroup,
SidebarGroupContent,
SidebarGroupLabel,
SidebarHeader,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
SidebarProvider,
SidebarRail,
SidebarTrigger,
} from "@/components/ui/sidebar"Description: A placeholder for content that is still loading. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/skeleton.jsonUsage:
import { Skeleton } from "@/components/ui/skeleton"Description: An input where the user selects a value from within a given range. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/slider.jsonUsage:
import { Slider } from "@/components/ui/slider"Description: A toast component for notifications. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/sonner.jsonUsage:
import { toast } from "sonner"
import { Toaster } from "@/components/ui/sonner"Description: A control that allows the user to toggle between checked and not checked. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/switch.jsonUsage:
import { Switch } from "@/components/ui/switch"Description: A responsive table component. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/table.jsonUsage:
import {
Table,
TableBody,
TableCaption,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table"Description: A set of layered sections of content. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/tabs.jsonUsage:
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"Description: Displays a form textarea. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/textarea.jsonUsage:
import { Textarea } from "@/components/ui/textarea"Description: A popup that displays information related to an element. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/tooltip.jsonUsage:
import {
Tooltip,
TooltipContent,
TooltipProvider,
TooltipTrigger,
} from "@/components/ui/tooltip"Description: Beautiful charts built using Recharts. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/chart.jsonUsage:
import { Chart } from "@/components/ui/chart"Description: A breadcrumb navigation component. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/breadcrumb.jsonUsage:
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator,
} from "@/components/ui/breadcrumb"Description: 40 geometrical shapes (as React components) often used in neobrutalism layouts. Installation:
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/stars.jsonUsage:
import { Star } from "@/components/ui/stars"Props:
color: Star color (string)size: Width and height of star in pixels (number)stroke: Path stroke color (string)strokeWidth: Stroke width (number)pathClassName: Path classname (string)
# Create a script to install all components
#!/bin/bash
components=(
"accordion"
"alert"
"alert-dialog"
"avatar"
"badge"
"breadcrumb"
"button"
"calendar"
"card"
"carousel"
"chart"
"checkbox"
"collapsible"
"combobox"
"command"
"context-menu"
"data-table"
"date-picker"
"dialog"
"drawer"
"dropdown-menu"
"form"
"hover-card"
"image-card"
"input"
"input-otp"
"label"
"marquee"
"menubar"
"navigation-menu"
"pagination"
"popover"
"progress"
"radio-group"
"resizable"
"scroll-area"
"select"
"sheet"
"sidebar"
"skeleton"
"slider"
"sonner"
"switch"
"table"
"tabs"
"textarea"
"tooltip"
"stars"
)
for component in "${components[@]}"; do
echo "Installing $component..."
pnpm dlx shadcn@latest add "https://neobrutalism.dev/r/$component.json"
donepnpm dlx shadcn@latest add https://neobrutalism.dev/r/form.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/input.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/label.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/textarea.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/select.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/checkbox.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/radio-group.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/switch.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/slider.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/input-otp.jsonpnpm dlx shadcn@latest add https://neobrutalism.dev/r/navigation-menu.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/breadcrumb.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/tabs.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/pagination.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/menubar.jsonpnpm dlx shadcn@latest add https://neobrutalism.dev/r/accordion.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/collapsible.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/resizable.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/scroll-area.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/skeleton.jsonpnpm dlx shadcn@latest add https://neobrutalism.dev/r/dialog.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/alert-dialog.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/sonner.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/tooltip.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/popover.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/hover-card.jsonpnpm dlx shadcn@latest add https://neobrutalism.dev/r/avatar.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/badge.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/calendar.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/date-picker.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/data-table.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/table.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/progress.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/carousel.jsonpnpm dlx shadcn@latest add https://neobrutalism.dev/r/command.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/context-menu.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/dropdown-menu.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/drawer.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/sheet.json
pnpm dlx shadcn@latest add https://neobrutalism.dev/r/sidebar.json// Import components
import { Button } from '@/components/ui/button'
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
// Use in your component
export default function MyComponent() {
return (
<Card>
<CardHeader>
<CardTitle>Neobrutalism Form</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<div className="space-y-2">
<Label htmlFor="email">Email</Label>
<Input id="email" placeholder="Enter your email" />
</div>
<Button>Submit</Button>
</CardContent>
</Card>
)
}import { Chart } from '@/components/ui/chart'
export default function MyChart() {
return (
<Chart
type="bar"
data={{
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'],
datasets: [{
label: 'Sales',
data: [12, 19, 3, 5, 2, 3],
}]
}}
/>
)
}import { Star } from '@/components/ui/stars'
export default function MyStars() {
return (
<div>
<Star color="#fbbf24" size={24} stroke="#000" strokeWidth={2} />
<Star color="#34d399" size={32} />
<Star color="#60a5fa" size={16} stroke="#000" />
</div>
)
}pnpm dlx shadcn@latest add https://neobrutalism.dev/r/[component].jsonnpx shadcn@latest add https://neobrutalism.dev/r/[component].jsonyarn dlx shadcn@latest add https://neobrutalism.dev/r/[component].jsonbun dlx shadcn@latest add https://neobrutalism.dev/r/[component].json| Category | Components Count | Examples |
|---|---|---|
| Form Components | 10 | Input, Label, Textarea, Select, Checkbox |
| Navigation Components | 5 | Navigation Menu, Breadcrumb, Tabs, Pagination |
| Layout Components | 6 | Accordion, Card, Collapsible, Resizable |
| Feedback Components | 6 | Dialog, Alert, Toast, Tooltip, Popover |
| Data Display Components | 8 | Avatar, Badge, Calendar, Table, Progress |
| Advanced Components | 8 | Command, Context Menu, Dropdown, Drawer |
| Special Components | 3 | Chart, Stars, Marquee |
| Total Components | 46 |
- Component Dependencies: Some components depend on others. Make sure to install dependencies first.
- Styling: All components use CSS variables for theming. Visit the styling page for customization options.
- TypeScript: Full TypeScript support is included with all components.
- Accessibility: All components follow WAI-ARIA guidelines for accessibility.
- Customization: Components can be customized using Tailwind CSS classes and CSS variables.
This comprehensive reference guide includes all 46 components available in the Neobrutalism components library with their proper installation commands and usage examples.