关于 tailwind-variants
面向使用 Tailwind Variants 的编码 Agent,涵盖样式配方、插槽、组合、类名合并及主版本迁移,并强调与 Tailwind CSS 版本的兼容性。
主要功能
- 01变体与复合变体指导
- 02插槽与复合插槽
- 03使用 extend 和 VariantProps 组合
- 04类名合并与冲突处理
- 05默认版和 lite 版指导
- 06主版本迁移说明
适用场景
- 01用变体定义组件样式
- 02组合可复用的样式配方
- 03解决实用类名冲突
- 04跨版本迁移 Tailwind Variants
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill tailwind-variants安装后在 Claude Code 中输入/tailwind-variants确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/composition-typescript.mdproduction-migration.mdsetup-core.mdsource-map.mdvariants-slots.md详细介绍
Tailwind Variants
当工作涉及 Tailwind Variants(tv、slots、compound variants、extend、cn/cx/cnMerge、/lite,或跨 TV 主版本迁移)时,使用此技能。
工作流
- 更改代码前,检查本地样式技术栈:
- 软件包:
tailwind-variants版本、Tailwind CSS 主版本(v4还是v3)、是否直接使用tailwind-merge,以及 Prettier Tailwind 插件。 - 导入路径:默认的
tailwind-variants还是tailwind-variants/lite。 - 使用的模式:单元素
tv、slots、extend、共享的createTV/defaultConfig、组件上的VariantProps。
- 软件包:
- 版本不明确,或工作涉及合并配置、lite 构建或主版本升级时,更新文档。请从 source-map.md 开始。
- 安装、默认与 lite 构建、
cn/cnMerge/cx和配置相关内容,请使用 setup-core.md。 variants、布尔/复合 variants、slots 和compoundSlots相关内容,请使用 variants-slots.md。extend、覆盖、TypeScriptVariantProps和 DX 工具相关内容,请使用 composition-typescript.md。- 冲突解决、自定义
twMergeConfig以及 v0/v1/v2/v3 迁移相关内容,请使用 production-migration.md。
实现判断
- TV v3.x 与 Tailwind CSS v4.x 搭配使用。如果项目仍在使用 Tailwind CSS v3,请使用
tailwind-variantsv0.x(或先升级 Tailwind)。 - 设计系统相关工作优先使用默认构建(
import { tv, cn } from 'tailwind-variants')。仅在关注包体积且不需要合并时使用/lite。 - 在 v3.3.0+ 中,默认构建已内置冲突解决功能——不要仅为了 TV 而要求使用
tailwind-merge。只有当应用直接调用tailwind-merge时才保留它。使用 slots 时,请锁定 v3.3.1+(v3.3.0 会在交错调用之间泄漏 slot 状态)。 - 返回字符串的配方不要包含
slots。传入slots: {}会启用 slot 模式(隐式baseslot)——避免意外创建空 slot 对象。 - 类型化组合优先使用
extend,不要将tv的结果拼接到base数组中。 - 使用
class/className属性供使用者覆盖;启用合并时,让合并机制解决冲突。 - 使用
VariantProps<typeof recipe>为 React/Vue 属性添加类型。当默认值不合适时,使用Omit/Required将 variants 设为必填。 - 不要使用已移除的
responsiveVariants。请将响应式前缀(md:、lg:)直接放在类字符串中。 - 优先使用
cx,而不是已弃用的cnBase。合并类名时优先使用cn;仅在需要单次调用的合并配置时使用cnMerge。
验证
优先使用仓库现有的检查。对于重要的 Tailwind Variants 更改,请包含相关的检查子集:
- 对
VariantProps、slot 返回类型和extend合并进行类型检查。 - 对关键 variant/compound 组合的配方输出字符串进行单元断言(尤其是启用和禁用合并时)。
- 对被覆盖的 slots 和组合组件进行视觉/浏览器冒烟测试。
- 在默认构建与
/lite之间切换或添加较重的twMergeConfig时,检查包体积。 - 如果编辑器不再为
tv中的类名提供自动补全,请检查 IntelliSense/tailwindFunctions: ['tv']是否正常。
评论
支持 Markdown