返回顶部
s

shadcn-uishadcn UI 构建

Build accessible, customizable UIs with shadcn/ui, Radix UI, and Tailwind CSS. Use when setting up shadcn/ui, installing components, building forms with React Hook Form + Zod, customizing themes, or implementing component patterns.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
1,110
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

shadcn-ui

shadcn/ui 组件模式

使用 shadcn/ui 构建可访问、可定制的 UI 组件的专家指南。

安装

OpenClaw / Moltbot / Clawbot

bash
npx clawhub@latest install shadcn-ui

使用场景

  • - 使用 shadcn/ui 搭建新项目
  • 安装或配置单个组件
  • 使用 React Hook Form 和 Zod 验证构建表单
  • 创建可访问的 UI 组件(按钮、对话框、下拉菜单、侧边面板)
  • 使用 Tailwind CSS 自定义组件样式
  • 使用 shadcn/ui 实现设计系统
  • 使用 TypeScript 构建 Next.js 应用

什么是 shadcn/ui?

一个可复用组件的集合,你可以将其复制到项目中——而不是一个 npm 包。代码归你所有。基于 Radix UI(可访问性)和 Tailwind CSS(样式)构建。

快速开始

bash

新建 Next.js 项目


npx create-next-app@latest my-app --typescript --tailwind --eslint --app
cd my-app
npx shadcn@latest init

安装组件

npx shadcn@latest add button input form card dialog select toast npx shadcn@latest add --all # 或安装所有组件

核心概念

cn 工具函数

合并 Tailwind 类名并解决冲突——每个组件中都会用到:

tsx
import { clsx, type ClassValue } from clsx
import { twMerge } from tailwind-merge

export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}

类方差授权(CVA)

管理组件变体——每个 shadcn/ui 组件背后的模式:

tsx
import { cva, type VariantProps } from class-variance-authority

const buttonVariants = cva(
inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors,
{
variants: {
variant: {
default: bg-primary text-primary-foreground hover:bg-primary/90,
destructive: bg-destructive text-destructive-foreground hover:bg-destructive/90,
outline: border border-input bg-background hover:bg-accent,
secondary: bg-secondary text-secondary-foreground hover:bg-secondary/90,
ghost: hover:bg-accent hover:text-accent-foreground,
link: text-primary underline-offset-4 hover:underline,
},
size: {
default: h-10 px-4 py-2,
sm: h-9 rounded-md px-3,
lg: h-11 rounded-md px-8,
icon: h-10 w-10,
},
},
defaultVariants: { variant: default, size: default },
}
)

核心组件

按钮

tsx
import { Button } from @/components/ui/button
import { Loader2 } from lucide-react

// 变体:default | destructive | outline | secondary | ghost | link
// 尺寸:default | sm | lg | icon

// 加载状态

// 作为链接(使用 Radix Slot)

带验证的表单

标准模式:Zod 模式 + React Hook Form + shadcn 表单组件。

bash
npx shadcn@latest add form input select checkbox textarea

tsx
use client

import { zodResolver } from @hookform/resolvers/zod
import { useForm } from react-hook-form
import * as z from zod
import { Button } from @/components/ui/button
import {
Form, FormControl, FormDescription,
FormField, FormItem, FormLabel, FormMessage,
} from @/components/ui/form
import { Input } from @/components/ui/input
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from @/components/ui/select

const formSchema = z.object({
username: z.string().min(2, 用户名至少需要2个字符。),
email: z.string().email(请输入有效的邮箱地址。),
role: z.enum([admin, user, guest]),
})

export function ProfileForm() {
const form = useForm>({
resolver: zodResolver(formSchema),
defaultValues: { username: , email: , role: user },
})

function onSubmit(values: z.infer) {
console.log(values)
}

return (



(

用户名

您的公开显示名称。


)} />

(

邮箱



)} />

(

角色



)} />




)
}

对话框与侧边面板

tsx
import {
Dialog, DialogContent, DialogDescription,
DialogFooter, DialogHeader, DialogTitle, DialogTrigger,
} from @/components/ui/dialog
import {
Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger,
} from @/components/ui/sheet

// 模态对话框





编辑资料
在此处进行修改。完成后点击保存。

{/ 表单字段 /}



// 滑出面板(方向:left | right | top | bottom)



设置
{/ 内容 /}

卡片

tsx
import {
Card, CardContent, CardDescription,
CardFooter, CardHeader, CardTitle,
} from @/components/ui/card



创建项目
一键部署您的新项目。













提示通知

tsx
// 1. 在根布局中添加 Toaster
import { Toaster } from @/components/ui/toaster

export default function RootLayout({ children }) {
return (

{children}

)
}

// 2. 在组件中使用 toast
import {

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 shadcn-1776069781 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 shadcn-1776069781 技能

通过命令行安装

skillhub install shadcn-1776069781

下载

⬇ 下载 shadcn-ui v1.0.0(免费)

文件大小: 13.37 KB | 发布时间: 2026-4-17 16:04

v1.0.0 最新 2026-4-17 16:04
Initial documentation release and reference resources.

- Added comprehensive README covering installation, setup, and usage patterns for shadcn/ui, including forms, dialogs, sheets, and component customization.
- Included reference guides at references/extended-components.md and references/learn.md for further learning and advanced component usage.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部