# Leptos ShadCN UI Components
[](https://github.com/leptos-rs/leptos)
[](LICENSE)
A comprehensive collection of beautiful, accessible UI components built for [Leptos](https://github.com/leptos-rs/leptos) **v0.8+**, inspired by [shadcn/ui](https://ui.shadcn.com/).
**⚠️ IMPORTANT: This project requires Leptos v0.8+ and is NOT compatible with earlier versions.**
## 🚨 Version Requirements
**Leptos v0.8+ is MANDATORY for this project.**
- ✅ **Supported**: Leptos v0.8.0, v0.8.1, v0.8.2, v0.8.3, v0.8.4, v0.8.5, v0.8.6, v0.8.7, v0.8.8+
- ❌ **NOT Supported**: Leptos v0.7.x, v0.6.x, or any earlier versions
- 🔄 **Future**: Will continue to support the latest Leptos v0.8.x releases
**Why v0.8+?** This project leverages breaking changes and new features introduced in Leptos v0.8, including improved view macros, better type safety, and enhanced performance.
## 🚀 Features
- **Leptos v0.8+ Required**: Built specifically for Leptos v0.8+ and NOT compatible with earlier versions
- **ShadCN UI Design**: Follows the same design principles and styling as shadcn/ui
- **TypeScript Definitions**: Full TypeScript support for better developer experience
- **Accessibility First**: All components follow accessibility best practices
- **Customizable**: Easy to customize with Tailwind CSS classes
- **Lightweight**: Only includes the components you need
## 📦 Available Components
### ✅ Core Components (Fully Implemented - 52 Packages!)
- **Form Components**: Button, Input, Label, Checkbox, Switch, Radio Group, Select, Textarea, Form
- **Layout Components**: Card, Separator, Skeleton, Tabs, Accordion, Collapsible, Aspect Ratio
- **Navigation**: Breadcrumb, Navigation Menu, Pagination, Tabs
- **Feedback**: Alert, Alert Dialog, Progress, Toast, Skeleton
- **Overlay**: Dialog, Popover, Tooltip, Sheet, Drawer, Hover Card
- **Data Display**: Table, Badge, Calendar, Date Picker
- **Input**: Input OTP, Slider, Toggle, Combobox, Command
- **Utilities**: Utils, Registry, Error Boundary, Lazy Loading
- **Advanced**: Context Menu, Dropdown Menu, Menubar, Scroll Area
**All 52 packages are fully tested and working with Leptos v0.8.8!**
## 🛠️ Installation
### 1. Verify Leptos Version
**CRITICAL**: Ensure your project uses Leptos v0.8+:
```toml
[dependencies]
leptos = "0.8.0" # Must be 0.8.0 or higher
leptos_router = "0.8.0" # Must be 0.8.0 or higher
```
### 2. Add Components to your `Cargo.toml`
```toml
[dependencies]
shadcn-ui-leptos-button = { path = "path/to/leptos-shadcn-ui/packages/leptos/button" }
shadcn-ui-leptos-input = { path = "path/to/leptos-shadcn-ui/packages/leptos/input" }
shadcn-ui-leptos-card = { path = "path/to/leptos-shadcn-ui/packages/leptos/card" }
shadcn-ui-leptos-alert = { path = "path/to/leptos-shadcn-ui/packages/leptos/alert" }
shadcn-ui-leptos-label = { path = "path/to/leptos-shadcn-ui/packages/leptos/label" }
shadcn-ui-leptos-separator = { path = "path/to/leptos-shadcn-ui/packages/leptos/separator" }
```
### 2. Import and use in your Leptos components
```rust
use leptos::*;
use shadcn_ui_leptos_button::{Button, ButtonVariant, ButtonSize};
use shadcn_ui_leptos_input::Input;
use shadcn_ui_leptos_card::{Card, CardHeader, CardTitle, CardContent};
#[component]
pub fn MyComponent() -> impl IntoView {
view! {
"Your content here"
"Leptos version: {leptos::VERSION}"
"Required: 0.8.0+"