mcpField
S
shadcn-setup

shadcn-setup

github.com/shipshitdev设计与 UI38191 次安装2 天前更新
代码仓库

关于 shadcn-setup

shadcn-setup 为 Next.js 项目配置 shadcn/ui,采用 Tailwind v4 的 CSS 优先方式。它可创建核心配置和工具文件、安装依赖,并添加指定组件。

主要功能

  1. 01配置 Tailwind v4 CSS 优先模式
  2. 02生成 shadcn 主题令牌
  3. 03创建 components.json 和 cn() 工具
  4. 04安装核心依赖
  5. 05添加选定的 shadcn 组件

适用场景

  1. 01在 Next.js 项目中初始化 shadcn/ui
  2. 02为现有项目添加 shadcn/ui
  3. 03从 Tailwind v3 迁移到 v4
  4. 04修复损坏的 shadcn 配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shipshitdev/skills --skill shadcn-setup

安装后在 Claude Code 中输入/shadcn-setup确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

plugin.json
references/
examples.md
shadcn-theme-tokens.md
scripts/
setup.py

详细介绍

shadcn/ui 设置

使用现代的 CSS 优先 Tailwind v4 设置来配置 shadcn/ui,而不是已弃用的 v3 方案。

授权范围

仅在用户的请求和现有授权范围内操作;加载此技能不会授予新的权限。仅要求报告时,只提供报告;遵守调用方对目标、主机、提供商和费用的限制;扩展范围前先询问,并将这些限制转告受委派方。

契约

输入:

  • 项目根目录(默认为当前工作目录)。
  • 可选:主题名称(zinc、slate、stone 等)、组件列表、路由器类型(app-router 或 pages-router)。

输出:

  • globals.css,包含 @import "tailwindcss" 和完整的 @theme 令牌块。
  • components.json,使用 CSS 优先的 shadcn 配置。
  • src/lib/utils.ts,包含 cn() 辅助函数。
  • 已安装的软件包:class-variance-authority、clsx、tailwind-merge、lucide-react、tailwindcss、@tailwindcss/postcss。

创建/修改:

  • src/app/globals.css(创建或覆盖)。
  • components.json(创建或覆盖)。
  • src/lib/utils.ts(创建)。
  • package.json(通过 bun add 更新依赖)。
  • postcss.config.mjs(如果不存在则创建)。

外部副作用:

  • 运行 bun add 安装软件包。
  • 对指定的组件运行 bunx shadcn@latest add。

需要确认:

  • 仅应用明确请求的设置或迁移。仅调用此技能并不意味着有权替换现有样式或配置。
  • 覆盖文件或安装超出该范围的组件前,先确认。

委派给:

  • 使用 bunx shadcn@latest add 安装单个组件。

用途

重要:shadcn/ui CLI 和 AI 助手经常默认生成 Tailwind v3 配置。此技能可确保:

  • 使用 Tailwind v4 的 CSS 优先配置
  • 包含正确的 @theme 块和 shadcn 颜色令牌
  • 不包含已弃用的 tailwind.config.js 文件
  • 使用正确的依赖版本

适用场景

  • 使用 shadcn/ui 设置新的 Next.js 项目
  • 在现有项目中添加 shadcn/ui
  • 从 shadcn + Tailwind v3 迁移到 v4
  • 重置损坏的 shadcn 配置

快速开始

# Install core dependencies
bun add class-variance-authority clsx tailwind-merge lucide-react
bun add -D tailwindcss @tailwindcss/postcss

# Initialize shadcn (CSS-first, no tailwind.config)
bunx shadcn@latest init

# Install specific components
bunx shadcn@latest add button card input dialog

# Or install an essential starter set
bunx shadcn@latest add button card input label dialog dropdown-menu toast

安装内容

依赖项

完整的依赖项配置块请参见 references/examples.md(§ 依赖版本示例)。

文件结构

完整的目录树请参见 references/examples.md(§ 生成的文件结构)。

Tailwind v4 + shadcn CSS 配置

此技能使用 @import "tailwindcss" 和 @theme 块生成 CSS 优先配置,其中包含所有 shadcn 颜色令牌和圆角半径变量。

完整的令牌块请参见 ${CLAUDE_SKILL_DIR}/references/shadcn-theme-tokens.md(构建 globals.css 文件时加载)。

可用主题

主题描述
defaultshadcn 默认主题(中性灰)
zinc基于锌色的中性色
slate基于石板色的冷中性色
stone基于石色的暖中性色
gray纯灰色
neutral真正的中性色
red红色主色
rose玫瑰色主色
orange橙色主色
green绿色主色
blue蓝色主色
yellow黄色主色
violet紫色主色

常用组件

安装常用组件:

# Essential set
bunx shadcn@latest add button card input label dialog dropdown-menu toast

# Form-focused
bunx shadcn@latest add form input label select checkbox radio-group switch textarea

# Dashboard
bunx shadcn@latest add card table tabs badge avatar dropdown-menu sheet sidebar

components.json 配置

完整配置请参见 references/examples.md(§ components.json 完整示例)。由于设置使用 v4 的 CSS 优先配置,tailwind.config 字段保持为空。

Utils 文件

// src/lib/utils.ts
import { clsx, type ClassValue } from 'clsx';
import { twMerge } from 'tailwind-merge';

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

设置后的用法

添加组件
# Using bunx (recommended with bun)
bunx shadcn@latest add button

# Multiple components
bunx shadcn@latest add card dialog dropdown-menu
使用组件

组合示例请参见 references/examples.md(§ 使用组件示例)。

深色模式支持

默认情况下,CSS 使用 prefers-color-scheme。如需手动切换,请参见 references/examples.md(§ 深色模式 — 手动切换提供方),了解提供方组件和基于类的 CSS 覆盖。

故障排除

“shadcn CLI 创建了 tailwind.config.js”

删除该文件。CLI 有时会生成 v3 配置。运行:

rm tailwind.config.js tailwind.config.ts
组件样式不正确
  1. 检查是否在布局文件中导入了 globals.css
  2. 确认 @import "tailwindcss" 位于顶部
  3. 确保 @theme 块包含所有必需的变量
组件类型错误

运行:

bun add -D @types/react @types/react-dom
未找到 cn() 工具

创建 src/lib/utils.ts:

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

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

验证

设置完成后,验证没有引入 v3 模式:

# Should return nothing (no v3 tailwind.config files)
find . -name "tailwind.config.*" -not -path "*/node_modules/*"

# Should return nothing (no @apply directives)
grep -r "@apply" src/ --include="*.css" 2>/dev/null

# Verify the @import directive is present
grep "@import \"tailwindcss\"" src/app/globals.css

评论

支持 Markdown