Skip to main content

shadcn

Beautifully designed components built with Radix UI and Tailwind CSS.

// Install shadcn components
npx shadcn-ui@latest init

// Add a component
npx shadcn-ui@latest add button

Features

A collection of beautifully designed components that you can copy and paste into your apps.

Copy & Paste

Components are designed to be easily copied and pasted into your applications without any complicated setup.

Themeable

Components are styled using Tailwind CSS and fully customizable to match your brand's color scheme.

Fast Development

Accelerate your development workflow with ready-to-use components that are easy to implement.

Accessible

Components are built with accessibility in mind, using ARIA attributes and keyboard navigation.

Modern UI

Clean, minimal components that follow modern design principles and practices.

Customizable

Easily extend and modify components to fit your specific requirements and design vision.

Components

Beautifully designed and accessible UI components built with Radix UI and Tailwind CSS.

Buttons

// Button component usage
<Button variant="default">Primary</Button>
<Button variant="outline">Secondary</Button>
<Button variant="secondary">Tertiary</Button>

Dialog

Confirm action

Are you sure you want to continue with this action?

// Dialog component usage
<Dialog>
  <DialogTrigger>Open</DialogTrigger>
  <DialogContent>
    <DialogHeader>
      <DialogTitle>Confirm action</DialogTitle>
    </DialogHeader>
    <DialogFooter>
      <Button>Confirm</Button>
    </DialogFooter>
  </DialogContent>
</Dialog>

Form Controls

// Form component usage
<Input placeholder="Email" />
<Select>
  <SelectValue placeholder="Select" />
  <SelectContent>
    <SelectItem value="1">Option 1</SelectItem>
  </SelectContent>
</Select>

Cards

Card Title

This is a card component that can be used to display content in a contained format.

// Card component usage
<Card>
  <CardHeader>
    <CardTitle>Card Title</CardTitle>
  </CardHeader>
  <CardContent>
    Card content goes here
  </CardContent>
  <CardFooter>
    <Button variant="link">Learn more →</Button>
  </CardFooter>
</Card>
View All Components

Over 40+ components available and growing

Installation

Get up and running with shadcn components in just a few simple steps.

1. Create a new project

npx create-next-app@latest my-app --typescript --tailwind --eslint

2. Initialize shadcn components

npx shadcn-ui@latest init

This will add the necessary dependencies and configure your project.

3. Add components to your project

npx shadcn-ui@latest add button
npx shadcn-ui@latest add dropdown-menu
npx shadcn-ui@latest add card

You can add any component you need with the CLI.

4. Use components in your app

import { Button } from "@/components/ui/button"

export default function Home() {
  return (
    <div>
      <Button>Click me</Button>
    </div>
  )
}

Why use shadcn components?

Unlike traditional component libraries, shadcn gives you the actual code. This means you have full control over the components and can customize them to match your design system.

  • No installation of heavy dependencies
  • Complete customization freedom
  • Copy only what you need
  • Component updates via the CLI

Showcase

See how developers are building beautiful interfaces with shadcn components.

Acme Dashboard

A beautifully designed admin dashboard with shadcn components, Next.js and Tailwind CSS.

Next.js Tailwind shadcn

Modular Email Client

A sophisticated email client built with shadcn components featuring dark mode support.

React Tailwind shadcn

TaskFlow App

A minimalist task management application with drag-and-drop functionality using shadcn components.

Vue Tailwind shadcn
Submit Your Project

Join the growing list of projects built with shadcn components

Ready to build?

With shadcn components, you can focus on building your application without worrying about the UI details.

Get Started
npx shadcn-ui@latest init

What Developers Say

Hear from the community of developers who are building beautiful interfaces with shadcn components.

"

shadcn's components have become the foundation of our design system. The elegance and flexibility they provide has improved our development speed by 40%.

TB

Thomas Barnes

CTO at ScaleWorks

+4,000
GitHub Stars

Documentation

Comprehensive guides and resources to help you build beautiful interfaces with shadcn components.

Getting Started
Last updated: 2 weeks ago

Introduction to shadcn components

shadcn offers a collection of reusable components built using Radix UI and Tailwind CSS. These components are not part of a traditional component library, but rather a collection of code that you can copy and paste into your projects.

Unlike most component libraries, shadcn doesn't publish any packages to npm. Instead, you copy and paste the code into your project and have full control over it.

Key Benefits

  • Full control over the code
  • No dependencies on external packages
  • No version conflicts
  • Complete styling freedom with Tailwind CSS
  • Accessible components built on Radix UI primitives

How It Works

shadcn components are designed to be copied directly into your project. You can use the CLI to add components or manually copy the code from the documentation. This approach gives you complete ownership of the code.

# Add components using the CLI
npx shadcn-ui@latest add button
npx shadcn-ui@latest add dialog
npx shadcn-ui@latest add card

Component Architecture

Each component follows a consistent pattern, making it easy to understand and customize:

Variant-based API

Components use class-variance-authority (cva) to define variants, making it easy to create different visual styles for each component.

Composition

Components are designed to be composed together to create complex UIs while maintaining a clean API.

Accessibility

Built on top of Radix UI primitives, ensuring accessibility features like keyboard navigation and ARIA attributes.

Customization

Every component can be customized using your project's Tailwind CSS configuration.

Next Steps

Frequently Asked Questions

No. This is a collection of reusable components that you can copy and paste into your apps. It's not a component library.

Join the Community

Connect with the shadcn community to get help, share your work, and contribute to the ecosystem.

Discord

Join our Discord server to get help, share your projects, and chat with other community members in real-time.

5,000+ members Join Server

GitHub

Star the repository, contribute to the codebase, report issues, or browse the source code on GitHub.

4,000+ stars View Repository

Twitter

Follow @shadcn on Twitter for the latest updates, announcements, and to showcase your work with the community.

Latest updates Follow

Community Showcase

DP

David Peterson

2 days ago

Just launched my portfolio using shadcn components. The design system is so clean and customizable!

JL

Jessica Lin

1 week ago

I created a custom dark mode theme for the components. Check out my GitHub repo for the implementation!

Ready to Contribute?

We welcome contributions from the community. Help us improve shadcn components by contributing code, documentation, or feedback.

Contribute on GitHub

Ways to Contribute

  • Report bugs and suggest features
  • Improve documentation
  • Submit new component ideas
  • Share your creations with the community

Stay Updated

Get notified about new components, features, and updates.