Communitygithub.com

moulkefta/Claude-Skills

原始的 v1 品味技能,为依赖其精确行为的项目保留。当前默认是 `design-taste-frontend`(v2 实验版),这是一个重大重写。仅当您需要精确的向后兼容性时,才使用此 v1 安装名称。

Claude-Skills 是什么?

这是一个名为 'High-Agency Frontend Skill' 的 AI 代理技能,专为前端开发设计,旨在强制生成高质量、非模版化的 UI 代码。它通过一套严格的“设计工程指令”和“AI 禁忌模式”来引导大语言模型,抵制常见的 AI 设计陈词滥调,如居中布局、过度使用卡片和紫色/蓝色渐变。该技能支持 React 和 Next.js 框架,以 Tailwind CSS 为主要样式工具,并整合了 Framer Motion 进行高级动效设计,同时提供了性能防护措施。开发者可以通过调整三个核心参数(DESIGN_VARIANCE、MOTION_INTENSITY、VISUAL_DENSITY)来控制生成结果的视觉风格、动效强度和内容密度,从而在统一的基线基础上实现高度定制化的输出。此外,技能还规定了严格的技术约定,如禁止表情符号、确保依赖安装、使用动态视口单位(100dvh)避免移动端布局跳跃等。

兼容平台✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/moulkefta/Claude-Skills/tree/HEAD/skills-for-github/skills/design-taste-frontend-v1

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

高自主性前端技能

1. 活动基线配置

  • DESIGN_VARIANCE: 8(1=完美对称,10=艺术混乱)
  • MOTION_INTENSITY: 6(1=静态/无运动,10=电影/魔法物理)
  • VISUAL_DENSITY: 4(1=艺术画廊/空灵,10=飞行员座舱/密集数据)

AI 指令: 所有生成的标准化基线严格设置为这些值 (8, 6, 4)。不要要求用户编辑此文件。否则,始终听从用户:根据他们在聊天提示中明确请求的内容,动态调整这些值。使用这些基线(或用户覆盖的)值作为全局变量,驱动第 3 到第 7 节的具体逻辑。

2. 默认架构与约定

除非用户明确指定不同的技术栈,否则必须遵循以下结构约束以保持一致性:

  • 依赖验证 [强制]: 在导入任何第三方库(例如 framer-motion、lucide-react、zustand)之前,您必须检查 package.json。如果缺少某个包,您必须在提供代码之前输出安装命令(例如 npm install package-name)。切勿假设库已存在。
  • 框架与交互性: React 或 Next.js。默认为服务器组件 (RSC)。
    • RSC 安全性: 全局状态仅在客户端组件中工作。在 Next.js 中,将提供程序包装在带有 "use client" 的组件中。
    • 交互性隔离: 如果第 4 节或第 7 节(运动/液态玻璃)处于激活状态,则特定交互式 UI 组件必须提取为隔离的叶子组件,并在最顶部添加 'use client'。服务器组件必须专门呈现静态布局。
  • 状态管理: 对隔离的 UI 使用局部 useState/useReducer。仅用于避免深层属性传递时使用全局状态。
  • 样式策略: 使用 Tailwind CSS (v3/v4) 处理 90% 的样式。
    • Tailwind 版本锁定: 首先检查 package.json。不要在 v3 项目中使用 v4 语法。
    • T4 配置守卫: 对于 v4,不要在 postcss.config.js 中使用 tailwindcss 插件。使用 @tailwindcss/postcss 或 Vite 插件。
  • 反表情符号策略 [关键]: 切勿在代码、标记、文本内容或替代文本中使用表情符号。用高质量图标(Radix、Phosphor)或干净的 SVG 基元替换符号。禁止使用表情符号。
  • 响应式与间距:
    • 标准化断点 (sm、md、lg、xl)。
    • 使用 max-w-[1400px] mx-auto 或 max-w-7xl 包含页面布局。
    • 视口稳定性 [关键]: 切勿对全高 Hero 部分使用 h-screen。始终使用 min-h-[100dvh] 以防止在移动浏览器(iOS Safari)上发生灾难性的布局跳跃。
    • 网格优于弹性计算: 切勿使用复杂的 Flexbox 百分比数学 (w-[calc(33%-1rem)])。始终使用 CSS 网格 (grid grid-cols-1 md:grid-cols-3 gap-6) 以获得可靠的结构。
  • 图标: 您必须使用确切的 @phosphor-icons/react 或 @radix-ui/react-icons 作为导入路径(检查已安装的版本)。全局标准化 strokeWidth(例如,专门使用 1.5 或 2.0)。

3. 设计工程指令(偏差校正)

LLM 具有针对特定 UI 陈词滥调模式的统计偏差。使用这些工程规则主动构建高端界面:

规则 1:确定性排版

  • 展示/标题: 默认为 text-4xl md:text-6xl tracking-tighter leading-none。
    • 反草率: 对于“高级”或“创意”氛围,不推荐使用 Inter。强制使用独特字符,如 Geist、Outfit、Cabinet Grotesk 或 Satoshi。
    • 技术 UI 规则: 对于仪表板/软件 UI,严格禁止使用衬线字体。在这些上下文中,仅使用高端无衬线配对(Geist + Geist Mono 或 Satoshi + JetBrains Mono)。
  • 正文/段落: 默认为 text-base text-gray-600 leading-relaxed max-w-[65ch]。

规则 2:颜色校准

  • 约束: 最多 1 种强调色。饱和度 < 80%。
  • 紫色禁令: 严格禁止使用“AI 紫色/蓝色”美学。不使用紫色按钮发光,不使用霓虹渐变。使用绝对中性基色(Zinc/Slate)搭配高对比度、单一强调色(例如翡翠绿、电光蓝或深玫瑰色)。
  • 颜色一致性: 在整个输出中坚持使用一个调色板。不要在同一项目内在暖灰色和冷灰色之间波动。

规则 3:布局多样化

  • 反居中偏差: 当 DESIGN_VARIANCE > 4 时,严格禁止使用居中的 Hero/H1 部分。强制使用“分屏”(50/50)、“左对齐内容/右对齐资源”或“非对称空白”结构。

规则 4:材质感、阴影和“反卡片过度使用”

  • 仪表板强化: 对于 VISUAL_DENSITY > 7,严格禁止使用通用卡片容器。使用 border-t、divide-y 或纯空白空间进行逻辑分组。数据指标应自由呼吸,除非功能上需要层级(z-index),否则不要被框起来。
  • 执行: 仅当阴影传达了层级关系时才使用卡片。使用阴影时,将其色调与背景色混合。

规则 5:交互式 UI 状态

  • 强制生成: LLM 自然倾向于生成“静态”成功状态。您必须实现完整的交互周期:
    • 加载: 匹配布局大小的骨架加载器(避免通用的圆形旋转器)。
    • 空状态: 精心设计的空状态,指示如何填充数据。
    • 错误状态: 清晰的、内联的错误报告(例如表单)。
    • 触觉反馈: 在 :active 上,使用 -translate-y-[1px] 或 scale-[0.98] 模拟表示成功/操作的物理按压。

规则 6:数据与表单模式

  • 表单: 标签必须位于输入框上方。辅助文本是可选的,但应存在于标记中。错误文本位于输入框下方。输入块使用标准的 gap-2。

4. 创造性主动性(反草率实现)

为了积极对抗通用的 AI 设计,系统地将这些高端编码概念作为您的基线实现:

  • “液态玻璃”折射: 当需要玻璃拟态时,超越 backdrop-blur。添加 1px 内边框 (border-white/10) 和微妙的内部阴影 (shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]) 以模拟物理边缘折射。
  • 磁性微观物理(如果 MOTION_INTENSITY > 5): 实现略微跟随鼠标光标的按钮。关键: 切勿对磁性悬停或连续动画使用 React useState。请仅使用 React 渲染循环之外的 Framer Motion 的 useMotionValue 和 useTransform,以防止移动设备上的性能崩溃。
  • 永久性微观交互: 当 MOTION_INTENSITY > 5 时,在标准组件(头像、状态点、背景)中嵌入连续、无限的微观动画(脉冲、打字机、浮动、闪烁、轮播)。对所有交互元素应用高级弹簧物理 (type: "spring", stiffness: 100, damping: 20)——不使用线性缓动。
  • 布局过渡: 始终利用 Framer Motion 的 layout 和 layoutId 属性,在状态更改时实现平滑的重新排序、调整大小和共享元素过渡。
  • 交错编排: 不要立即挂载列表或网格。使用 staggerChildren (Framer) 或 CSS 级联 (animation-delay: calc(var(--index) * 100ms)) 创建顺序瀑布式显示。关键: 对于 staggerChildren,父级 (variants) 和子级必须位于相同的客户端组件树中。如果数据是异步获取的,则将数据作为属性传递到一个集中的父 Motion 包装器中。

5. 性能防护措施

  • DOM 成本: 仅将颗粒/噪声滤镜应用于固定、指针事件无响应的伪元素(例如 fixed inset-0 z-50 pointer-events-none),并且绝不应用于滚动容器,以防止连续的 GPU 重绘和移动设备性能下降。
  • 硬件加速: 绝不动画化 top、left、width 或 height。仅通过 transform 和 opacity 进行动画。
  • Z-Index 约束: 不要无故滥用 z-50 或 z-10。仅在系统层级上下文(粘性导航栏、模态框、覆盖层)中使用 z-index。

6. 技术参考(刻度定义)

DESIGN_VARIANCE (级别 1-10)

  • 1-3(可预测): Flexbox justify-center,严格的 12 列对称网格,等内边距。
  • 4-7(偏移): 使用 margin-top: -2rem 重叠,变化的图像宽高比(例如,4:3 旁边是 16:9),左对齐标题位于居中对齐数据之上。
  • 8-10(非对称): 瀑布流布局,使用分数单位的 CSS 网格(例如 grid-template-columns: 2fr 1fr 1fr),大面积的空白区域 (padding-left: 20vw)。
  • 移动端覆盖: 对于级别 4-10,任何在 md: 以上的非对称布局必须在宽度 < 768px 的视口上强制回退到严格的单列布局 (w-full、px-4、py-8),以防止横向滚动和布局损坏。

MOTION_INTENSITY (级别 1-10)

  • 1-3(静态): 无自动动画。仅限 CSS :hover 和 :active 状态。
  • 4-7(流畅 CSS): 使用 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1)。使用 animation-delay 级联系列用于加载动画。严格关注 transform 和 opacity。谨慎使用 will-change: transform。
  • 8-10(高级编排): 复杂的滚动触发揭示或视差。使用 Framer Motion 钩子。切勿使用 window.addEventListener('scroll')。

VISUAL_DENSITY (级别 1-10)

  • 1-3(艺术画廊模式): 大量空白。巨大的段落间距。一切都显得非常昂贵和干净。
  • 4-7(日常应用模式): 标准 Web 应用的常规间距。
  • 8-10(座舱模式): 很小的内边距。无卡片框;仅用 1px 线分隔数据。一切都很紧凑。强制: 所有数字使用等宽字体 (font-mono)。

7. AI 痕迹(禁用模式)

为保证高端、非通用的输出,除非明确要求,否则您必须严格避免这些常见的 AI 设计特征:

视觉与 CSS

  • 无霓虹/外发光: 不要使用默认的 box-shadow 发光或自动发光。使用内边框或微妙的着色阴影。
  • 无纯黑: 切勿使用 #000000。使用非纯黑、Zinc-950 或炭灰色。
  • 无过度饱和的强调色: 降低强调色饱和度,使其优雅地融入中性色。
  • 无过多渐变文本: 不要对大型标题使用文本填充渐变。
  • 无自定义鼠标光标: 它们已过时,且会损害性能/可访问性。

排版

  • 无 Inter 字体: 已禁用。使用 Geist、Outfit、Cabinet Grotesk 或 Satoshi。
  • 无过大的 H1: 第一个标题不应过于醒目。使用字重和颜色控制层级,而不仅仅是巨大的字号。
  • 衬线字体约束: 仅对创意/编辑设计使用衬线字体。绝不在简洁的仪表板上使用衬线字体。

布局与间距

  • 完美对齐与间距: 确保内边距和边距在数学上是完美的。避免带有尴尬间隙的浮动元素。
  • 无三列卡片布局: 禁止使用通用的“三个等宽水平卡片”功能行。改为使用两列之字形布局、非对称网格或横向滚动方法。

内容与数据(“张三”效应)

  • 无通用名称: 禁止使用“张三”、“李四”或“王五”。使用高度创意、听起来真实的名字。
  • 无通用头像: 不要使用标准的 SVG "鸡蛋" 或 Lucide 用户图标作为头像。使用有创意的、可信的照片占位符或特定的样式。
  • 无虚假数字: 避免可预测的输出,如 99.99%、50% 或基本电话号码 (1234567)。使用有机的、杂乱的数据(47.2%、+1 (312) 847-1928)。
  • 无初创企业陈词滥调名称: “智联”、“未来”、“云创”。创造高端、符合上下文的品牌名称。
  • 无填充词: 避免 AI 文案陈词滥调,如“升华”、“无缝”、“释放”或“新一代”。使用具体的动词。

外部资源与组件

  • 无损坏的 Unsplash 链接: 不要使用 Unsplash。使用绝对可靠的占位符,如 https://picsum.photos/seed/{random_string}/800/600 或 SVG UI 头像。
  • shadcn/ui 定制: 您可以使用 shadcn/ui,但绝不使用其通用的默认状态。您必须自定义圆角、颜色和阴影以匹配高端项目的审美。
  • 生产就绪的清洁度: 代码必须非常干净、视觉上引人注目、令人难忘,并在每个细节上都经过精心打磨。

8. 创意武库(高端灵感)

不要默认使用通用 UI。从这些高级概念库中汲取灵感,确保输出在视觉上引人注目且令人难忘。在适当的时候,利用 GSAP (ScrollTrigger/Parallax) 实现复杂的滚动叙事,或使用 ThreeJS/WebGL 实现 3D/Canvas 动画,而不是基本的 CSS 运动。关键: 切勿在同一个组件树中混用 GSAP/ThreeJS 和 Framer Motion。默认为 Framer Motion 处理 UI/Bento 交互。仅将 GSAP/ThreeJS 专门用于隔离的全页滚动叙事或画布背景,并包裹在严格的 useEffect 清理块中。

标准 Hero 范式

  • 停止在深色图像上居中文本。尝试非对称的 Hero 部分:文本干净地左对齐或右对齐。背景应包含一张高质量、相关的图像,并带有微妙的风格化渐变(根据是亮色还是暗色模式,优雅地变暗或变亮到背景色)。

导航与菜单

  • Mac OS Dock 放大: 导航栏位于边缘;图标在悬停时流畅缩放。
  • 磁性按钮: 按钮物理上向鼠标光标拉动。
  • 粘性菜单: 子项像粘稠液体一样从主按钮上分离。
  • 动态岛: 一种药丸形状的 UI 组件,可变形以显示状态/警报。
  • 上下文径向菜单: 一个圆形菜单,恰好从点击坐标处展开。
  • 浮动快速拨号: 一个 FAB,弹出成一条曲线排列的次要操作。
  • 巨型菜单揭示: 全屏下拉菜单,以交错淡入方式显示复杂内容。

布局与网格

  • Bento 网格: 非对称的、基于瓦片的分组(例如 Apple 控制中心)。
  • 瀑布流布局: 没有固定行高的交错网格(例如 Pinterest)。
  • 色度网格: 网格边框或瓦片呈现微妙的、连续的颜色渐变。

[内容已截断以进行翻译]

相关技能