据 AlphaMoat 统计,截至 2026-09,Tailwind v4 Shadcn 累计下载 3,089 次、获 1 个星标,在全部 5,078 个 AI 技能中排名第 3,668 位,在「开发编程」分类(577 个)中排名第 464 位。
| 平台 | 累计安装 | 累计下载 | 星标 | 评论 |
|---|---|---|---|---|
| ClawHub ↗ | 97 | 2,947 | 1 | - |
| SkillHub ↗ | 102 | 3,089 | 1 | — |
各平台的计数口径不同,统计时间不一致。
它以 CSS 变量主题架构为核心,说明根级颜色变量、@theme inline 映射、基础样式和自动深色模式,并整理从旧版迁移及常见构建错误的处理方式。示例中的安装、删除配置文件等命令会改变项目依赖或文件;执行前应检查现有配置和目标项目规则。
资料发布于 2026-10-29
@apply 相关问题。以下是根据技能文档生成的示例,不代表实际运行结果。
2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。
| 月份 | 累计下载 | 环比 | 星标 |
|---|---|---|---|
| 2026-09 | 3,089 | — | 1 |
| 2026-08 | 2,863 | +3.7% | 1 |
| 2026-07 | 2,761 | +10.0% | 1 |
| 2026-06 | 2,511 | +5.6% | 1 |
| 2026-05 | 2,378 | — | 1 |
| 2026-03 | 1,835 | — | 1 |
以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。
--- name: tailwind-v4-+-shadcn/ui-stack model: fast --- # Tailwind v4 + shadcn/ui Stack Production-tested setup for Tailwind v4 with shadcn/ui. Prevents 8 documented errors through a mandatory four-step architecture. ## WHAT
Complete Tailwind v4 + shadcn/ui configuration: - Four-step theming architecture (mandatory) - CSS variable-based color system - Automatic dark mode switching - Error prevention for 8 common mistakes - Migration guide from v3 - Production-ready templates ## WHEN - Starting a new React/Vite project with Tailwind v4 - Migrating from Tailwind v3 to v4 - Setting up shadcn/ui with Tailwind v4 - Debugging: colors not working, dark mode broken, build failures - Fixing `@theme inline`, `@apply`, or `@layer base` issues ## KEYWORDS tailwind v4, tailwindcss 4, shadcn, shadcn/ui, @theme inline, dark mode, css variables, vite, tw-animate-css, tailwind config, migration **Production verified:** WordPress Auditor (https://wordpress-auditor.webfonts.workers.dev) **Versions:** [email protected], @tailwindcss/[email protected] ## Installation ### OpenClaw / Moltbot / Clawbot ```bash npx clawhub@latest install tailwind-v4-shadcn ``` --- ## Quick Start ```bash # 1. Install dependencies pnpm add tailwindcss @tailwindcss/vite pnpm add -D @types/node tw-animate-css pnpm dlx shadcn@latest init # 2. Delete v3 config (v4 doesn't use it) rm tailwind.config.ts ``` **vite.config.ts:** ```typescript import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import tailwindcss from '@tailwindcss/vite' import path from 'path' export default defineConfig({ plugins: [react(), tailwindcss()], resolve: { alias: { '@': path.resolve(__dirname, './src') } } }) ``` **components.json (CRITICAL):** ```json { "tailwind": { "config": "", "css": "src/index.css", "baseColor": "slate", "cssVariables": true } } ``` --- ## The Four-Step Architecture (MANDATORY) Skipping steps breaks theming. Follow exactly: ### Step 1: Define CSS Variables at Root ```css /* src/index.css */ @import "tailwindcss"; @import "tw-animate-css"; :root { --background: hsl(0 0% 100%); --foreground: hsl(222.2 84% 4.9%); --primary: hsl(221.2 83.2% 53.3%); --primary-foreground: hsl(210 40% 98%); /* ... all light mode colors with hsl() wrapper */ } .dark { --background: hsl(222.2 84% 4.9%); --foreground: hsl(210 40% 98%); --primary: hsl(217.2 91.2% 59.8%); --primary-foreground: hsl(222.2 47.4% 11.2%); /* ... all dark mode colors */ } ``` **Critical:** Define at root level (NOT inside `@layer base`). Use `hsl()` wrapper. ### Step 2: Map Variables to Tailwind ```css @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); /* ... map ALL CSS variables */ } ``` **Why:** Generates utility classes (`bg-background`, `text-primary`). Without this, utilities don't exist. ### Step 3: Apply Base Styles ```css @layer base { body { background-color: var(--background); color: var(--foreground); } } ``` **Critical:** Reference variables directly. Never double-wrap: `hsl(var(--background))`. ### Step 4: Result - Automatic Dark Mode ```tsx <div className="bg-background text-foreground"> {/* Theme switches automatically via .dark class */} </div> ``` No `dark:` variants needed for semantic colors. --- ## Critical Rules ### Always Do 1. Wrap colors with `hsl()` in `:root`/`.dark`: `--bg: hsl(0 0% 100%);` 2. Use `@theme inline` to map all CSS variables 3. Set `"tailwind.config": ""` in components.json 4. Delete `tailwind.config.ts` if exists 5. Use `@tailwindcss/vite` plugin (NOT PostCSS) ### Never Do 1. Put `:root`/`.dark` inside `@layer base` 2. Use `.dark { @theme { } }` (v4 doesn't support nested @theme) 3. Double-wrap: `hsl(var(--background))` 4. Use `tailwind.config.ts` for theme 5. Use `@apply` with `@layer base/components` classes 6. Use `dark:` variants for semantic colors --- ## Common Errors & Solutions ### Error 1: tw-animate-css Import **Error:** `Cannot find module 'tailwindcss-animate'` ```bash # Wrong (v3 package) npm install tailwindcss-animate # Correct (v4 package) pnpm add -D tw-animate-css ``` ```css @import "tailwindcss"; @import "tw-animate-css"; ``` ### Error 2: Colors Not Working **Error:** `bg-primary` doesn't apply styles **Cause:** Missing `@theme inline` mapping ```css @theme inline { --color-primary: var(--primary); /* Map ALL variables */ } ``` ### Error 3: Dark Mode Not Switching **Cause:** Missing ThemeProvider See `templates/theme-provider.tsx` and wrap your app. ### Error 4: Build Fails **Error:** `Unexpected config file` ```bash rm tailwind.config.ts # v4 doesn't use this ``` ### Error 5: @theme inline Breaks Multi-Theme **Cause:** `@theme inline` bakes values at build time Use `@theme` (without inline) for multi-theme systems: ```css /* For multi-theme (not just light/dark) */ @theme { --color-text-primary: var(--color-slate-900); } @layer theme { [data-theme="dark"] { --color-text-primary: var(--color-white); } } ``` ### Error 6: @apply Breaking **Error:** `Cannot apply unknown utility class` v4 changed `@apply` behavior: ```css /* Wrong (v3 pattern) */ @layer components { .custom-button { @apply px-4 py-2; } } /* Correct (v4 pattern) */ @utility custom-button { @apply px-4 py-2; } ``` ### Error 7: @layer base Styles Ignored **Cause:** CSS layer cascade issues ```css /* Better: Don't use @layer base for critical styles */ body { background-color: var(--background); } ``` --- ## Quick Reference | Symptom | Cause | Fix | |---------|-------|-----| | `bg-primary` doesn't work | Missing `@theme inline` | Add mapping | | Colors black/white | Double `hsl()` | Use `var(--color)` not `hsl(var(--color))` | | Dark mode stuck | Missing ThemeProvider | Wrap app | | Build fails | `tailwind.config.ts` exists | Delete file | | Animation errors | Wrong package | Use `tw-animate-css` | --- ## Tailwind v4 New Features ### OKLCH Color Space v4 uses OKLCH for perceptually uniform colors. Automatic sRGB fallbacks generated. ```css @theme { /* Modern approach */ --color-brand: oklch(0.7 0.15 250); /* Legacy (still works) */ --color-brand: hsl(240 80% 60%); } ``` ### Container Queries (Built-in) ```tsx <div className="@container"> <div className="@md:text-lg @lg:grid-cols-2"> Content responds to container width </div> </div> ``` ### Line Clamp (Built-in) ```tsx <p className="line-clamp-3">Truncate to 3 lines...</p> ``` ### Plugins ```css @import "tailwindcss"; @plugin "@tailwindcss/typography"; @plugin "@tailwindcss/forms"; ``` --- ## Migration from v3 ### Key Changes 1. Delete `tailwind.config.ts` 2. Move theme to CSS with `@theme inline` 3. Replace `tailwindcss-animate` → `tw-animate-css` 4. Replace `require()` → `@plugin` 5. `@apply` in `@layer components` → `@utility` ### Color Migration ```tsx // Before: Hardcoded + dark variants <div className="bg-blue-50 dark:bg-blue-950 text-blue-700 dark:text-blue-300"> // After: Semantic + automatic <div className="bg-info/10 text-info"> ``` ### Visual Changes - Ring width default: 3px → 1px (use `ring-3` to match v3) - Heading styles removed from Preflight (add via `@tailwindcss/typography` or custom) --- ## Files - `templates/index.css` - Complete CSS with all variables - `templates/theme-provider.tsx` - Dark mode provider - `templates/vite.config.ts` - Vite configuration - `templates/components.json` - shadcn/ui v4 config - `templates/utils.ts` - `cn()` utility - `references/architecture.md` - Deep dive on four-step pattern - `references/migration-guide.md` - Semantic color migration - `references/dark-mode.md` - Complete dark mode setup --- ## Setup Checklist - [ ] `@tailwindcss/vite` installed - [ ] `vite.config.ts` uses `tailwindcss()` plugin - [ ] `components.json` has `"config": ""` - [ ] NO `tailwind.config.ts` exists - [ ] `src/index.css` follows 4-step pattern - [ ] ThemeProvider wraps app - [ ] Theme toggle works --- ## NEVER - Put `:root` or `.dark` inside `@layer base` - Use `tailwind.config.ts` with v4 (it's ignored) - Double-wrap colors: `hsl(var(--background))` - Use `tailwindcss-animate` (use `tw-animate-css`) - Use `@apply` on `@layer base/components` classes in v4 - Skip the `@theme inline` step
用 gh 命令行工具查看 GitHub 上的 PR 检查、工作流运行与 API 查询的技能。
聚合 16 个搜索引擎、无需 API Key 的检索技能。
用命令行直接列出、配置、授权并调用 MCP 服务与工具。
根据文字描述生成 Mermaid 图表代码。
用受管 OAuth 访问 YouTube Data API,检索视频并管理频道内容。
通过受管的 OAuth 连接访问 GitHub REST API。
覆盖规划、实现、验证与测试的编码工作流技能。
整理 Docker 常用命令与容器工作流的技能。
按维度逐项检查代码质量与安全的评审技能。
e2e-testing-patterns 汇集 Playwright 与 Cypress 的关键用户流程测试模式。
UI Design:提供界面布局、字体、色彩、间距、无障碍和组件设计指导。
给代码质量立规矩的技能。
用 Mermaid 文本语法绘制可版本管理的软件图表。
数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。