diff --git a/apps/www/content/docs/primitives/avatar.mdx b/apps/www/content/docs/components/avatar.mdx
similarity index 78%
rename from apps/www/content/docs/primitives/avatar.mdx
rename to apps/www/content/docs/components/avatar.mdx
index 2c218d9688..3223d47be9 100644
--- a/apps/www/content/docs/primitives/avatar.mdx
+++ b/apps/www/content/docs/components/avatar.mdx
@@ -13,6 +13,15 @@ radix:
## Installation
+```bash
+npx shadcn-ui add avatar
+```
+
+
+
+ Manual Installation
+
+
1. Install the `@radix-ui/react-avatar` component from radix-ui:
```bash
@@ -29,6 +38,11 @@ This is the `` primitive. You can place it in a file at `components/ui
+
+
+
+
+
## Usage
```tsx
diff --git a/apps/www/content/docs/components/badge.mdx b/apps/www/content/docs/components/badge.mdx
new file mode 100644
index 0000000000..63a4ea2d86
--- /dev/null
+++ b/apps/www/content/docs/components/badge.mdx
@@ -0,0 +1,88 @@
+---
+title: Badge
+description: Displays a badge or a component that looks like a badge.
+component: true
+---
+
+
+
+
+
+## Installation
+
+```bash
+npx shadcn-ui add badge
+```
+
+
+
+ Manual Installation
+
+
+1. Copy and paste the following code into your project.
+
+
+
+
+ This is the `` primitive. You can place it in a file at
+ `components/ui/badge.tsx`.
+
+
+
+
+
+
+
+## Usage
+
+```tsx
+import { Badge } from "@/components/ui/badge"
+```
+
+```tsx
+
Badge
+```
+
+### Link
+
+You can use the `badgeVariants` helper to create a link that looks like a badge.
+
+```tsx
+import { badgeVariants } from "@/components/ui/badge"
+```
+
+```tsx
+
Badge
+```
+
+## Examples
+
+### Default
+
+
+
+
+
+---
+
+### Secondary
+
+
+
+
+
+---
+
+### Outline
+
+
+
+
+
+---
+
+### Destructive
+
+
+
+
diff --git a/apps/www/content/docs/primitives/button.mdx b/apps/www/content/docs/components/button.mdx
similarity index 70%
rename from apps/www/content/docs/primitives/button.mdx
rename to apps/www/content/docs/components/button.mdx
index 865edba125..c8837523b7 100644
--- a/apps/www/content/docs/primitives/button.mdx
+++ b/apps/www/content/docs/components/button.mdx
@@ -11,6 +11,15 @@ component: true
## Installation
+```bash
+npx shadcn-ui add button
+```
+
+
+
+ Manual Installation
+
+
1. Copy and paste the following code into your project.
@@ -20,6 +29,11 @@ component: true
`components/ui/button.tsx`.
+
+
+
+
+
## Usage
```tsx
@@ -30,9 +44,21 @@ import { Button } from "@/components/ui/button"
```
+### Link
+
+You can use the `buttonVariants` helper to create a link that looks like a button.
+
+```tsx
+import { buttonVariants } from "@/components/ui/button"
+```
+
+```tsx
+
Click here
+```
+
## Examples
-### Default
+### Primary
@@ -40,6 +66,14 @@ import { Button } from "@/components/ui/button"
---
+### Secondary
+
+
+
+
+
+---
+
### Destructive
@@ -56,14 +90,6 @@ import { Button } from "@/components/ui/button"
---
-### Subtle
-
-
-
-
-
----
-
### Ghost
@@ -72,8 +98,6 @@ import { Button } from "@/components/ui/button"
---
----
-
### Link
diff --git a/apps/www/content/docs/components/calendar.mdx b/apps/www/content/docs/components/calendar.mdx
new file mode 100644
index 0000000000..53b42a5cc8
--- /dev/null
+++ b/apps/www/content/docs/components/calendar.mdx
@@ -0,0 +1,85 @@
+---
+title: Calendar
+description: A date field component that allows users to enter and edit date.
+component: true
+---
+
+
+
+
+
+## About
+
+The `Calendar` component is built on top of [React DayPicker](https://react-day-picker.js.org).
+
+## Installation
+
+```bash
+npx shadcn-ui add calendar
+```
+
+
+
+ Manual Installation
+
+
+1. Install the `react-day-picker` and `date-fns` packages:
+
+```bash
+npm install react-day-picker date-fns
+```
+
+2. Copy and paste the following code into your project.
+
+
+
+
+ This is the `` primitive. You can place it in a file at
+ `components/ui/calendar.tsx`.
+
+
+
+
+
+
+
+## Usage
+
+```tsx
+import { Calendar } from "@/components/ui/calendar"
+```
+
+```tsx
+const [date, setDate] = React.useState(new Date())
+
+return (
+
+)
+```
+
+See the [React DayPicker](https://react-day-picker.js.org) documentation for more information.
+
+## Examples
+
+### Date Picker
+
+
+
+
+
+### Date Range Picker
+
+
+
+
+
+## With Presets
+
+
+
+
diff --git a/apps/www/content/docs/components/card.mdx b/apps/www/content/docs/components/card.mdx
new file mode 100644
index 0000000000..abb50965d9
--- /dev/null
+++ b/apps/www/content/docs/components/card.mdx
@@ -0,0 +1,68 @@
+---
+title: Card
+description: Displays a card with header, content, and footer.
+component: true
+---
+
+
+
+
+
+## Installation
+
+```bash
+npx shadcn-ui add card
+```
+
+
+
+ Manual Installation
+
+
+1. Copy and paste the following code into your project.
+
+
+
+
+ This is the `` primitive. You can place it in a file at
+ `components/ui/card.tsx`.
+
+
+
+
+
+
+
+## Usage
+
+```tsx
+import {
+ Card,
+ CardContent,
+ CardDescription,
+ CardFooter,
+ CardHeader,
+ CardTitle,
+} from "@/components/ui/card"
+```
+
+```tsx
+
+
+ Card Title
+ Card Description
+
+
+ Card Content
+
+
+ Card Footer
+
+
+```
+
+## Examples
+
+
+
+
diff --git a/apps/www/content/docs/primitives/checkbox.mdx b/apps/www/content/docs/components/checkbox.mdx
similarity index 80%
rename from apps/www/content/docs/primitives/checkbox.mdx
rename to apps/www/content/docs/components/checkbox.mdx
index 75cd455606..261474ed08 100644
--- a/apps/www/content/docs/primitives/checkbox.mdx
+++ b/apps/www/content/docs/components/checkbox.mdx
@@ -13,6 +13,15 @@ radix:
## Installation
+```bash
+npx shadcn-ui add checkbox
+```
+
+
+
+ Manual Installation
+
+
1. Install the `@radix-ui/react-checkbox` component from radix-ui:
```bash
@@ -28,6 +37,11 @@ npm install @radix-ui/react-checkbox
`components/ui/checkbox.tsx`.
+
+
+
+
+
## Usage
```tsx
diff --git a/apps/www/content/docs/primitives/collapsible.mdx b/apps/www/content/docs/components/collapsible.mdx
similarity index 81%
rename from apps/www/content/docs/primitives/collapsible.mdx
rename to apps/www/content/docs/components/collapsible.mdx
index 764c7601bb..626c38858d 100644
--- a/apps/www/content/docs/primitives/collapsible.mdx
+++ b/apps/www/content/docs/components/collapsible.mdx
@@ -14,6 +14,15 @@ radix:
## Installation
+```bash
+npx shadcn-ui add collapsible
+```
+
+
+
+ Manual Installation
+
+
1. Install the `@radix-ui/react-collapsible` component from radix-ui:
```bash
@@ -30,6 +39,11 @@ This is the `` primitive. You can place it in a file at `componen
+
+
+
+
+
## Usage
```tsx
diff --git a/apps/www/content/docs/primitives/command.mdx b/apps/www/content/docs/components/command.mdx
similarity index 87%
rename from apps/www/content/docs/primitives/command.mdx
rename to apps/www/content/docs/components/command.mdx
index 6711f827e7..d634fd5175 100644
--- a/apps/www/content/docs/primitives/command.mdx
+++ b/apps/www/content/docs/components/command.mdx
@@ -4,20 +4,25 @@ description: Fast, composable, unstyled command menu for React.
component: true
---
-
-
-The `` component is built using [`cmdk`](https://cmdk.paco.me) by
-[pacocoursey](https://twitter.com/pacocoursey) and
-[raunofreiberg](https://twitter.com/raunofreiberg). Check out https://cmdk.paco.me.
-
-
-
+## About
+
+The `` component uses the [`cmdk`](https://cmdk.paco.me) component by [pacocoursey](https://twitter.com/pacocoursey).
+
## Installation
+```bash
+npx shadcn-ui add command
+```
+
+
+
+ Manual Installation
+
+
1. Install the `cmdk` package:
```bash
@@ -35,6 +40,11 @@ npm install cmdk
`components/ui/command.tsx`.
+
+
+
+
+
## Usage
```tsx
diff --git a/apps/www/content/docs/primitives/context-menu.mdx b/apps/www/content/docs/components/context-menu.mdx
similarity index 82%
rename from apps/www/content/docs/primitives/context-menu.mdx
rename to apps/www/content/docs/components/context-menu.mdx
index 165826ecaa..5de5a282e4 100644
--- a/apps/www/content/docs/primitives/context-menu.mdx
+++ b/apps/www/content/docs/components/context-menu.mdx
@@ -13,6 +13,15 @@ radix:
## Installation
+```bash
+npx shadcn-ui add context-menu
+```
+
+
+
+ Manual Installation
+
+
1. Install the `@radix-ui/react-context-menu` component from radix-ui:
```bash
@@ -28,6 +37,11 @@ npm install @radix-ui/react-context-menu
`components/ui/context-menu.tsx`.
+
+
+
+
+
## Usage
```tsx
diff --git a/apps/www/content/docs/primitives/dialog.mdx b/apps/www/content/docs/components/dialog.mdx
similarity index 79%
rename from apps/www/content/docs/primitives/dialog.mdx
rename to apps/www/content/docs/components/dialog.mdx
index 19036a4aed..4982d2bf3c 100644
--- a/apps/www/content/docs/primitives/dialog.mdx
+++ b/apps/www/content/docs/components/dialog.mdx
@@ -14,6 +14,15 @@ radix:
## Installation
+```bash
+npx shadcn-ui add dialog
+```
+
+
+
+ Manual Installation
+
+
1. Install the `@radix-ui/react-dialog` component from radix-ui:
```bash
@@ -30,6 +39,11 @@ This is the `` primitive. You can place it in a file at `components/ui
+
+
+
+
+
## Usage
```tsx
@@ -60,10 +74,10 @@ import {
## Notes
-To activate the Dialog component from within a Context Menu or Dropdown Menu, you must encase the Context Menu or
-Dropdown Menu component in the Dialog component. For more information, refer to the linked issue [here](https://github.com/radix-ui/primitives/issues/1836).
+To activate the `Dialog` component from within a `Context Menu` or `Dropdown Menu`, you must encase the `Context Menu` or
+`Dropdown Menu` component in the `Dialog` component. For more information, refer to the linked issue [here](https://github.com/radix-ui/primitives/issues/1836).
-```tsx
+```tsx {14-25}
-## Subtle
+## Muted
-
+
diff --git a/apps/www/content/docs/index.mdx b/apps/www/content/docs/index.mdx
index c0d0c030e6..3ca60ec52d 100644
--- a/apps/www/content/docs/index.mdx
+++ b/apps/www/content/docs/index.mdx
@@ -1,84 +1,67 @@
---
-title: "shadcn/ui"
+title: Introduction
description: Re-usable components built using Radix UI and Tailwind CSS.
---
-
+This is **NOT** a component library. It's a collection of re-usable components that you can copy and paste into your apps.
-This site is a work in progress. You can follow updates on Twitter [@shadcn](https://twitter.com/shadcn).
+**What do you mean by not a component library?**
-
-
-This is **NOT** a component library.
-
-It's a collection of re-usable components built using [Radix UI](https://radix-ui.com/) and [Tailwind CSS](https://tailwindcss.com/). It's a work in progress and I'm adding components as I need them.
-
-**All components are compatible with Next.js 13 (Client & Server Components).**
-
-## FAQs
-
-### What do you mean by not a component library?
-
-I mean you do not install it as a dependency.
+I mean you do not install it as a dependency. It is not available or distributed via npm. I have no plans to publish it as an npm package (for now).
Pick the components you need. Copy and paste the code into your project and customize to your needs. The code is yours.
-**Use this as a reference to build your own component libraries.**
+_Use this as a reference to build your own component libraries._
-### What is this based on?
+## FAQ
-The primitives are from [Radix UI](https://radix-ui.com/). I use [Tailwind CSS](https://tailwindcss.com/) for styling.
+
-Go say hi to the Radix team. They're awesome.
+
+
+ Why copy/paste and not packaged as a dependency?
+
+
+The idea behind this is to give you ownership and control over the code, allowing you to decide how the components are built and styled.
-### Why did you build this?
+Start with some sensible defaults, then customize the components to your needs.
-I'm working on several open source products. I needed components that maintain a unified design style across all my products.
+One of the drawback of packaging the components in an npm package is that the style is coupled with the implementation. _The design of your components should be separate from their implementation._
-### Is it available as an npm package?
+
-No. I have no plans to publish it as an npm package (right now).
+
-If you want to publish it to npm, you're free to do so. The code is open source.
+
+
+Which frameworks are supported?
+
+
-### Why copy/paste and not install as a dependency?
+You can use any framwork that supports React. Next.js, Astro, Remix, Gatsby etc.
-The idea behind this is to give you ownership and control over the code, allowing you to decide how the components are constructed and styled.
-
-We start with some sensible defaults, but you can customize the components to your needs.
-
-One of the drawback of packaging the components in an npm package is that the style is coupled with the implementation.
-
-_The design of your components should be separate from their implementation._
-
-### The design looks great. Did you design this yourself?
-
-I did. But I'm not really a designer. Most of what you see here, I learned by looking at other component libraries and "copying" them.
-
-### Is it ready for production?
-
-Yes. You can use it in your production apps.
-
-### How do I customize the colors?
-
-I use slate for everything. But you can customize the colors by editing the `tailwind.config.js` file.
-
-See the [Tailwind CSS documentation](https://tailwindcss.com/docs/customizing-colors) for more information.
-
-### Can I contribute?
-
-Of course. You can open an issue or submit a pull request on [GitHub](https://github.com/shadcn/ui).
-
-### Can I use this in my project?
+
+
+
+
+ Can I use this in my project?
+
+
Yes. Free to use for personal and commercial projects. No attribution required.
But hey, let me know if you do. I'd love to see what you build.
+
+
+
+
+
+
## Credits
- [Radix UI](https://radix-ui.com) - For the primitives.
- [Vercel](https://vercel.com) - Where I host all my projects.
-- [Shu Ding](https://shud.in) - The typography styles is adapted from his work on Nextra.
+- [Shu Ding](https://shud.in) - The typography style is adapted from his work on Nextra.
- [Cal](https://cal.com) - Where I copied the styles for the first component: the `Button`.
- [cmdk](https://cmdk.paco.me) - For the `` component.
diff --git a/apps/www/content/docs/installation.mdx b/apps/www/content/docs/installation.mdx
index d2608fe433..05b4a5d3be 100644
--- a/apps/www/content/docs/installation.mdx
+++ b/apps/www/content/docs/installation.mdx
@@ -3,6 +3,17 @@ title: Installation
description: How to install dependencies and structure your app.
---
+
+
+
+ **Prerequisites**: Components are styled using [Tailwind
+ CSS](https://tailwindcss.com). You need to install Tailwind CSS in your
+ project. Follow the [Tailwind CSS installation instructions](https://tailwindcss.com/docs/installation) to get started.
+
+
+
+
+
## New Project
Run the following command to create a new Next.js project using the `next-template` template:
@@ -11,31 +22,53 @@ Run the following command to create a new Next.js project using the `next-templa
npx create-next-app -e https://github.com/shadcn/next-template
```
-## Existing Project
+This creates a new Next.js 13 project with the following features:
-The first step is to install Tailwind CSS. You can do this by running the following command:
+- [Next.js App directory](https://nextjs.org)
+- [Tailwind CSS](https://tailwindcss.com)
+- [TypeScript](https://www.typescriptlang.org)
+- [ESLint](https://eslint.org)
+- [Prettier](https://prettier.io)
+
+## create-next-app
+
+If you have created a project using `create-next-app`, you can use the `shadcn-ui` CLI to initialize the project.
+
+
+
+### Create a new project
```bash
-npm install -D tailwindcss postcss autoprefixer
+npx create-next-app my-app
```
-Follow the official guide to [install Tailwind CSS](https://tailwindcss.com/docs/installation) in your project.
+### Run the CLI
+
+```bash
+npx shadcn-ui init
+```
+
+This will install dependencies, setup Tailwind CSS, and configure the `cn` utils for you.
+
+
+
+## Manual Installation
+
+
### Add dependencies
-Next add the following dependencies:
+Add the following dependencies to your project:
```bash
npm install tailwindcss-animate class-variance-authority clsx tailwind-merge lucide-react
```
-See this [tweet](https://twitter.com/shadcn/status/1614692419039105024) to learn more about how I use Tailwind CSS with Next.js.
-
### Path Aliases
I use the `@` alias to make it easier to import components. This is how I configure it in `tsconfig.json`:
-```json
+```json title="tsconfig.json"
{
"compilerOptions": {
"baseUrl": ".",
@@ -46,19 +79,68 @@ I use the `@` alias to make it easier to import components. This is how I config
}
```
+If you use a different alias such as `~`, you'll need to update `import` statements when adding components.
+
### Configure tailwind.config.js
Here's what my `tailwind.config.js` file looks like:
-```js
+```js title="tailwind.config.js"
const { fontFamily } = require("tailwindcss/defaultTheme")
/** @type {import('tailwindcss').Config} */
module.exports = {
- darkMode: ["class", '[data-theme="dark"]'],
+ darkMode: ["class"],
content: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}"],
theme: {
+ container: {
+ center: true,
+ padding: "2rem",
+ screens: {
+ "2xl": "1400px",
+ },
+ },
extend: {
+ colors: {
+ border: "hsl(var(--border))",
+ input: "hsl(var(--input))",
+ ring: "hsl(var(--ring))",
+ background: "hsl(var(--background))",
+ foreground: "hsl(var(--foreground))",
+ primary: {
+ DEFAULT: "hsl(var(--primary))",
+ foreground: "hsl(var(--primary-foreground))",
+ },
+ secondary: {
+ DEFAULT: "hsl(var(--secondary))",
+ foreground: "hsl(var(--secondary-foreground))",
+ },
+ destructive: {
+ DEFAULT: "hsl(var(--destructive))",
+ foreground: "hsl(var(--destructive-foreground))",
+ },
+ muted: {
+ DEFAULT: "hsl(var(--muted))",
+ foreground: "hsl(var(--muted-foreground))",
+ },
+ accent: {
+ DEFAULT: "hsl(var(--accent))",
+ foreground: "hsl(var(--accent-foreground))",
+ },
+ popover: {
+ DEFAULT: "hsl(var(--popover))",
+ foreground: "hsl(var(--popover-foreground))",
+ },
+ card: {
+ DEFAULT: "hsl(var(--card))",
+ foreground: "hsl(var(--card-foreground))",
+ },
+ },
+ borderRadius: {
+ lg: `var(--radius)`,
+ md: `calc(var(--radius) - 2px)`,
+ sm: "calc(var(--radius) - 4px)",
+ },
fontFamily: {
sans: ["var(--font-sans)", ...fontFamily.sans],
},
@@ -82,15 +164,99 @@ module.exports = {
}
```
-### Icons
+### Configure styles
-I use icons from [Lucide](https://lucide.dev). You can use any icon library you want.
+Add the following to your `styles/globals.css` file. You can learn more about using CSS variables for theming in the [theming section](/docs/theming).
+
+```css title="styles/globals.css"
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ :root {
+ --background: 0 0% 100%;
+ --foreground: 222.2 47.4% 11.2%;
+
+ --muted: 210 40% 96.1%;
+ --muted-foreground: 215.4 16.3% 46.9%;
+
+ --popover: 0 0% 100%;
+ --popover-foreground: 222.2 47.4% 11.2%;
+
+ --card: 0 0% 100%;
+ --card-foreground: 222.2 47.4% 11.2%;
+
+ --border: 214.3 31.8% 91.4%;
+ --input: 214.3 31.8% 91.4%;
+
+ --primary: 222.2 47.4% 11.2%;
+ --primary-foreground: 210 40% 98%;
+
+ --secondary: 210 40% 96.1%;
+ --secondary-foreground: 222.2 47.4% 11.2%;
+
+ --accent: 210 40% 96.1%;
+ --accent-foreground: 222.2 47.4% 11.2%;
+
+ --destructive: 0 100% 50%;
+ --destructive-foreground: 210 40% 98%;
+
+ --ring: 215 20.2% 65.1%;
+
+ --radius: 0.5rem;
+ }
+
+ .dark {
+ --background: 224 71% 4%;
+ --foreground: 213 31% 91%;
+
+ --muted: 223 47% 11%;
+ --muted-foreground: 215.4 16.3% 56.9%;
+
+ --popover: 224 71% 4%;
+ --popover-foreground: 215 20.2% 65.1%;
+
+ --card: 0 0% 100%;
+ --card-foreground: 222.2 47.4% 11.2%;
+
+ --border: 216 34% 17%;
+ --input: 216 34% 17%;
+
+ --primary: 210 40% 98%;
+ --primary-foreground: 222.2 47.4% 1.2%;
+
+ --secondary: 222.2 47.4% 11.2%;
+ --secondary-foreground: 210 40% 98%;
+
+ --accent: 216 34% 17%;
+ --accent-foreground: 210 40% 98%;
+
+ --destructive: 0 63% 31%;
+ --destructive-foreground: 210 40% 98%;
+
+ --ring: 216 34% 17%;
+
+ --radius: 0.5rem;
+ }
+}
+
+@layer base {
+ * {
+ @apply border-border;
+ }
+ body {
+ @apply bg-background text-foreground;
+ font-feature-settings: "rlig" 1, "calt" 1;
+ }
+}
+```
### Add a cn helper
I use a `cn` helper to make it easier to conditionally add Tailwind CSS classes. Here's how I define it in `lib/utils.ts`:
-```ts
+```ts title="lib/utils.ts"
import { ClassValue, clsx } from "clsx"
import { twMerge } from "tailwind-merge"
@@ -99,13 +265,17 @@ export function cn(...inputs: ClassValue[]) {
}
```
-That's it. You can now copy and paste components into `components/ui`. Then use them into your project.
+
+
+## Icons
+
+I use icons from [Lucide](https://lucide.dev). You can use any icon library.
## App structure
-And here's how I structure my app. I use Next.js, but this is not required.
+Here's how I structure my app. I use Next.js, but this is not required.
-```txt showLineNumbers {6-10,15-16}
+```txt {6-10,14-15}
.
├── app
│ ├── layout.tsx
@@ -119,10 +289,8 @@ And here's how I structure my app. I use Next.js, but this is not required.
│ ├── main-nav.tsx
│ ├── page-header.tsx
│ └── ...
-├── hooks
├── lib
│ └── utils.ts
-├── pages
├── styles
│ └── globals.css
├── next.config.js
@@ -136,3 +304,5 @@ And here's how I structure my app. I use Next.js, but this is not required.
- The rest of the components such as `` and `` are placed in the `components` folder.
- The `lib` folder contains all the utility functions. I have a `utils.ts` where I define the `cn` helper.
- The `styles` folder contains the global CSS.
+
+That's it. You can now start adding components to your project.
diff --git a/apps/www/content/docs/theming.mdx b/apps/www/content/docs/theming.mdx
new file mode 100644
index 0000000000..71e453a239
--- /dev/null
+++ b/apps/www/content/docs/theming.mdx
@@ -0,0 +1,179 @@
+---
+title: Theming
+description: Use CSS Variables to customize the look and feel of your application.
+---
+
+We use CSS variables for styling. This allows you to easily change the colors of components without having to update class names.
+
+**CSS variables must be defined without color space function**. See the [Tailwind CSS documentation](https://tailwindcss.com/docs/customizing-colors#using-css-variables) for more information.
+
+## Convention
+
+We use a simple `background` and `foreground` convention for colors. The `background` variable is used for the background color of the component and the `foreground` variable is used for the text color.
+
+
+
+The `background` suffix can be omitted if the variable is used for the background color of the component.
+
+
+
+Given the following CSS variables:
+
+```css
+--primary: 222.2 47.4% 11.2%;
+--primary-foreground: 210 40% 98%;
+```
+
+The `background` color of the following component will be `hsl(var(--primary))` and the `foreground` color will be `hsl(var(--primary-foreground))`.
+
+```tsx
+Hello
+```
+
+## CSS Variables
+
+Here's the list of variables available for customization:
+
+```css title="Default background color of ...etc"
+--background: 0 0% 100%;
+--foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Muted backgrounds such as , and "
+--muted: 210 40% 96.1%;
+--muted-foreground: 215.4 16.3% 46.9%;
+```
+
+```css title="Background color for "
+--card: 0 0% 100%;
+--card-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Background color for popovers such as , , "
+--popover: 0 0% 100%;
+--popover-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Default border color"
+--border: 214.3 31.8% 91.4%;
+```
+
+```css title="Border color for inputs such as , , "
+--input: 214.3 31.8% 91.4%;
+```
+
+```css title="Primary colors for "
+--primary: 222.2 47.4% 11.2%;
+--primary-foreground: 210 40% 98%;
+```
+
+```css title="Secondary colors for "
+--secondary: 210 40% 96.1%;
+--secondary-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Used for accents such as hover effects on , ...etc"
+--accent: 210 40% 96.1%;
+--accent-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Used for destructive actions such as