Communitygithub.com

tasteskill: 反套版前端技能

针对着陆页、作品集和重新设计的反套版前端技能。AI 会阅读需求,推断合适的设计方向,并交付非模板化的界面。适用时可使用真实设计系统,重新设计时优先进行审核,并严格执行预检清单。

tasteskill: 反套版前端技能 是什么?

tasteskill 是一个专为 AI 编码代理(如 Claude Code、Cursor 等)设计的前端技能,旨在解决 LLM 生成套版化、缺乏思考的设计这一核心问题。它提供了一套严格的“设计阅读”流程,要求代理在编写任何代码前,先根据页面类型、用户语感、参考信号、目标受众和现有品牌资产,推断出真正的设计意图。基于此,它会设置三个核心调谐参数:设计变异性、动感强度和视觉密度,并自动映射到最合适的设计系统(如 Fluent UI、Carbon、shadcn/ui 等)或美学方法(如玻璃态、粗野主义)。该技能还内置了针对 LLM 常见默认行为(如滥用 Inter 字体、紫粉渐变、三卡片布局等)的偏见纠正指令,强制代理使用如 Geist、Satoshi 等更现代的字体,并遵循严格的交互隔离和响应式最佳实践。对于重新设计项目,它强制要求先审计现有站点的资产和技术债。tasteskill 的核心价值在于它将一个主观的设计过程转化为可重复、可审核的工程步骤,确保每个项目都基于深入理解而非模板生成。

兼容平台~Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/leonxlnx/taste-skill/tree/main/skills/taste-skill

在你喜欢的 AI 中提问

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

文档

tasteskill: 反套版前端技能 是做什么的?

适用于:着陆页、作品集和重新设计。不适用于:仪表盘、数据表格、多步骤产品 UI。 以下所有规则都是根据上下文的。没有一条会自动触发。首先阅读需求,然后只选取适合的部分。


0. 需求推断(在做任何事之前,先读懂需求)

在接触代码或调整参数之前,推断用户真正想要什么。大多数 LLM 的设计输出都很糟糕,因为模型直接跳到了默认美学,而不是先理解上下文。

0.A 首先阅读这些信号

  1. 页面类型 - 着陆页 (SaaS / 消费者 / 代理 / 活动),作品集 (开发者 / 设计师 / 创意工作室),重新设计 (保留与彻底改版),编辑 / 博客。
  2. 用户使用的语感词 - "极简"、"平静"、"Linear 风格"、"Awwwards"、"粗野主义"、"高端消费者"、"Apple 风格"、"俏皮"、"严肃 B2B"、"编辑风格"、"代理风格"、"玻璃态"、"暗黑科技"。
  3. 参考信号 - 他们分享的 URL、粘贴的截图、提及的产品、他们与之竞争的品牌。
  4. 目标受众 - B2B 采购委员会 vs. 设计敏感型消费者 vs. 浏览作品集的招聘人员。受众决定美学,而不是你的品味。
  5. 已存在的品牌资产 - logo、颜色、字体、摄影。对于重新设计,这些是起点素材,不是可选输入(参见第 11 节)。
  6. 隐性约束 - 无障碍优先的受众、公共部门、受监管行业、信任优先的电商、儿童产品。这些约束覆盖美学偏好。

0.B 在生成之前,输出一行 "设计阅读"

在任何代码之前,用一行陈述: "阅读为:<页面类型> 面向 <受众>,采用 <语感> 语言,倾向于 <设计系统或美学家族>。"

示例阅读:

  • "阅读为:面向技术买家的 B2B SaaS 着陆页,采用 Linear 极简风格语言,倾向于 Tailwind 工具 + Geist + 克制动效。"
  • "阅读为:面向招聘经理的个人设计师作品集,采用编辑/动态字体语言,倾向于原生 CSS + 滚动驱动动画 + 自定义排版。"
  • "阅读为:公共部门服务网站的重新设计,采用信任优先语言,倾向于 GOV.UK Frontend 或 USWDS。"

0.C 如果需求模糊,问一个问题,不要猜测

只问一个澄清问题——永远不要一次性抛出多个问题——并且只在设计阅读确实存在分歧时提出。示例:"这应该更接近 Linear 的简洁风格还是 Awwwards 的实验风格?"

如果你可以根据上下文自信地推断,不要问。直接声明设计阅读并继续。

0.D 反默认纪律

不要默认使用:AI 紫粉渐变、居中对齐的深色网格背景英雄区域、三个均等的功能卡片、所有内容都套用通用玻璃态、无处不在的无限循环微动效、Inter + slate-900。这些是 LLM 的默认值。必须基于设计阅读有意识地去超越它们。


1. 三个旋钮(核心配置)

在设计阅读之后,设置三个旋钮。以下所有的布局、动效和密度决策都由这些旋钮控制。

  • DESIGN_VARIANCE: 8 - 1 = 完美对称,10 = 艺术混乱
  • MOTION_INTENSITY: 6 - 1 = 静态,10 = 电影感/物理效果
  • VISUAL_DENSITY: 4 - 1 = 艺术画廊/通透,10 = 驾驶舱/数据密集

基线: 8 / 6 / 4。除非设计阅读覆盖了它们,否则使用这些值。不要要求用户编辑此文件——覆盖是通过对话进行的。

1.A 旋钮推断(设计阅读 → 旋钮值)

信号VARIANCEMOTIONDENSITY
"极简/干净/平静/编辑风格/Linear 风格"5-63-42-3
"高端消费者/Apple 风格/奢侈/品牌"7-85-73-4
"俏皮/狂野/Dribbble/Awwwards/实验/代理"9-108-103-4
"着陆页/作品集/营销网站 (默认)"7-96-83-5
"信任优先/公共部门/受监管/无障碍关键"3-42-34-5
"重新设计 - 保留"匹配现有+1匹配现有
"重新设计 - 彻底改版"+2+2匹配现有

1.B 用例预设

用例VARIANCEMOTIONDENSITY
着陆页 (SaaS, 主流)764
着陆页 (代理/创意)983
着陆页 (高端消费者)763
作品集 (设计师/工作室)873
作品集 (开发者)654
编辑/博客643
公共部门服务325
重新设计 - 保留匹配匹配+1匹配
重新设计 - 彻底改版+2+2匹配

1.C 旋钮如何驱动输出

使用这些值(或用户覆盖的值)作为全局变量。本文档中的引用均明确指向这些变量名——永远不要发明类似 LAYOUT_VARIANCE 或 ANIM_LEVEL 的别名。


2. 需求 → 设计系统映射

一旦你有了设计阅读(第 0 节)和旋钮值(第 1 节),选择正确的基础。不要为那些已有官方包的东西发明 CSS。不要把美学潮流当作官方系统。

2.A 何时使用真实的设计系统(使用官方包)

阅读为…使用原因
Microsoft / 企业 SaaS / 仪表盘@fluentui/react-components 或 @fluentui/web-components官方 Fluent UI,Microsoft 令牌,无障碍已完成
Google 风格 UI,Material 风格产品@material/web + Material 3 令牌官方,可通过 Material Theming 主题化
IBM 风格 B2B / 企业分析@carbon/react + @carbon/styles官方 Carbon,成熟的数据密度模式
Shopify 应用界面polaris.js web components / Polaris ReactShopify 管理 UI 需要
Atlassian / Jira 风格产品@atlaskit/* + @atlaskit/tokens官方 Atlassian DS
GitHub 风格开发者工具/社区页面@primer/css 或 @primer/react-brand官方 Primer;营销页面使用 Brand 变体
英国公共部门服务govuk-frontend法律/法规要求
美国公共部门 / 信任优先uswds同上
快速本地企业/代理 MVPBootstrap 5.3无聊、快速、有效
现代无障碍 React 基础@radix-ui/themes原语 + 精致主题
现代 SaaS,你自己拥有组件shadcn/ui (npx shadcn@latest add ...)你拥有代码,易于定制;永远不要以默认状态发布
Tailwind 基础的现代 SaaS / AI 营销Tailwind v4 工具 + dark: 变体独立开发者和小团队构建的默认选择

诚实规则: 如果需求读起来符合上述系统之一,则安装并使用官方包。不要手动重新创建其 CSS。不要导入一个系统的令牌又覆盖掉 90%。

每个项目只用一个系统。 不要在同一个组件树中混用 Fluent React 和 Carbon。不要将 shadcn/ui 组件导入 Material 3 应用。

2.B 当需求是一种美学,而非一个系统时

对于这些方向,没有单一的官方包。使用原生 CSS + Tailwind + 一个维护良好的组件库来构建。在代码注释中诚实地说明哪些是借用灵感,哪些是官方素材。

美学诚实的实现方式
玻璃态 / "毛玻璃"backdrop-filter,分层边框,高亮叠加。为 prefers-reduced-transparency 提供纯色填充回退。
Bento (Apple 风格瓷砖网格)使用混合单元格尺寸的 CSS Grid。没有单一的库拥有这个。
粗野主义原生 CSS,等宽字体,原始边框。没有库。
编辑风格 / 杂志衬线字体,非对称网格,充足留白。没有库。
暗黑科技 / 黑客等宽 + 霓虹强调色,终端主题。没有库。
Aurora / 网格渐变SVG 或层叠径向渐变。没有库。
动态排版原生 CSS 动画,滚动驱动动画,GSAP 用于接管。没有库。
Apple Liquid GlassApple 仅为其 Apple 平台记录了此效果。没有官方的 liquid-glass.css。 Web 实现是使用 backdrop-filter + 分层边框 + 高亮的近似。在标签中明确标注为近似。

3. 默认架构与约定

除非设计阅读选择了真实的设计系统(第 2.A 节),否则使用以下默认值:

3.A 技术栈

  • 框架: React 或 Next.js。默认为服务器组件 (RSC)。
    • RSC 安全: 全局状态仅在客户端组件中有效。在 Next.js 中,将 providers 包装在 "use client" 组件中。
    • 交互隔离: 任何使用 Motion、滚动监听或指针物理效果的组件必须是一个独立的叶子组件,并在顶部使用 'use client'。服务器组件仅渲染静态布局。
  • 样式: Tailwind v4 (默认)。仅在现有项目要求时才使用 Tailwind v3。
    • 对于 v4:不要在 postcss.config.js 中使用 tailwindcss 插件。使用 @tailwindcss/postcss 或 Vite 插件。
  • 动画: Motion (以前称为 Framer Motion 的库)。从 motion/react 导入 (import { motion } from "motion/react")。framer-motion 包仍然可以作为遗留别名工作——在新代码中优先使用 motion/react。
  • 字体: 始终使用 next/font (Next.js) 或通过 @font-face + font-display: swap 自托管。在生产环境中,永远不要通过 <link> 链接 Google Fonts。

3.B 状态

  • 对于孤立的 UI,使用本地 useState / useReducer。
  • 仅用于避免深层 prop 穿透时使用全局状态——Zustand、Jotai 或 React context。
  • 永远不要使用 useState 来跟踪由用户输入驱动的连续值(鼠标位置、滚动进度、指针物理效果、磁性悬停)。使用 Motion 的 useMotionValue / useTransform / useScroll。useState 会在每次变化时重新渲染 React 树,并且在移动端上会卡住。

3.C 图标

  • 允许的库 (优先级顺序): @phosphor-icons/react、hugeicons-react、@radix-ui/react-icons、@tabler/icons-react。
  • 不推荐: lucide-react。仅当用户明确要求或项目已依赖它时才可接受。
  • 永远不要手动编写 SVG 图标。 如果缺少某个字形,安装第二个库或从原语组合——不要从头开始绘制图标路径。
  • 每个项目只用一个图标族。 不要在同一个组件树中混用 Phosphor 和 Lucide。
  • 全局统一下 strokeWidth (例如 1.5 或 2.0)。

3.D Emoji 政策

默认情况下在代码、标记和可见文本中不鼓励使用。用图标库字形替换符号。覆盖: 仅在用户明确要求俏皮/聊天风格/社交原生氛围时允许使用表情符号——即使如此,也要有意图地、克制地使用。

3.E 响应式与布局机制

  • 统一下断点 (sm 640, md 768, lg 1024, xl 1280, 2xl 1536)。
  • 使用 max-w-[1400px] mx-auto 或 max-w-7xl 约束页面布局。
  • 视口稳定性: 永远不要对全高英雄区域使用 h-screen。始终使用 min-h-[100dvh] 以防止在移动端 (iOS Safari 地址栏) 上布局跳跃。
  • 优先使用 Grid 而非 Flex 计算: 永远不要使用复杂的 flexbox 百分比计算 (w-[calc(33%-1rem)])。始终使用 CSS Grid (grid grid-cols-1 md:grid-cols-3 gap-6)。

3.F 依赖项验证 (强制)

在导入任何第三方库之前,检查 package.json。如果缺少该包,先输出安装命令。永远不要假设某个库存在。


4. 设计工程指令 (纠正偏见)

LLM 默认使用陈词滥调。主动覆盖这些默认值。每条规则都有一个上下文感知的覆盖路径。

4.1 排版

  • 显示/标题: 默认 text-4xl md:text-6xl tracking-tighter leading-none。

  • 正文/段落: 默认 text-base text-gray-600 leading-relaxed max-w-[65ch]。

  • 无衬线字体选择:

    • 不推荐作为默认值: Inter。优先选择 Geist、Outfit、Cabinet Grotesk、Satoshi 或适合品牌的衬线字体。
    • 覆盖: 当用户明确要求中性/标准/Linear 风格,或需求是针对公共部门/无障碍优先网站时,Inter 是可以接受的。
  • 需要了解的字体搭配: Geist + Geist Mono、Satoshi + JetBrains Mono、Cabinet Grotesk + Inter Tight、GT America + IBM Plex Mono。

  • 衬线字体纪律 (非常不鼓励作为默认值):

    • 非常不鼓励在任何项目中默认使用衬线字体. “感觉有创意/高端/编辑风格” 不是使用衬线字体的理由。代理的默认心理模型认为“创意需求 = 衬线字体”,这是经过生产轮测试的单一最明显的 AI 标志。
    • 仅当以下条件之一明确为真时,才可以使用衬线字体:
      • 品牌需求中明确提到了某种衬线字体,或者
      • 美学家族确实是编辑/奢侈/出版/手稿/遗产/复古风格,并且你能阐明为什么这种特定的衬线字体适合这个特定的品牌
    • 对于其他所有情况(创意代理、设计工作室、现代品牌、高端消费者、作品集、生活方式),默认使用无衬线显示字体 (Geist Display, ABC Diatype, Söhne Breit, Cabinet Grotesk Display, Migra Sans, GT Walsheim, Inter Display, PP Neue Montreal)。无衬线显示字体并非“无聊”——它们是默认选择,原因和时尚界默认使用黑色一样。
    • 强调规则 (相关): 当你想在标题中强调某个词时(例如“及 空间 设计”这种动感手法),使用同一字体的斜体或粗体。不要在无衬线标题中插入一个随机的衬线词(反之亦然),仅仅为了增加视觉趣味。混合字体族的强调是业余之举。在同一个字体族内使用斜体/粗体强调是正确的做法。
    • 特别禁止作为默认值: Fraunces 和 Instrument_Serif (两种 LLM 最喜欢的显示衬线字体)。
    • 如果使用衬线字体是合理的 (罕见,根据上述规则),请从以下库中选择,不要在连续的项目中重复使用相同的衬线字体:PP Editorial New, GT Sectra Display, Cardinal Grotesque, Reckless Neue, Tiempos Headline, Recoleta, Cormorant Garamond, Playfair Display, EB Garamond, IvyPresto, Migra, Editorial Old, Saol Display, Söhne Breit Kursiv, Domaine Display, Canela, Schnyder, Tobias, NB Architekt, I

…

[已截断用于翻译]

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

leonxlnx/design-taste-frontend

Senior UI/UX Engineer. Architect digital interfaces overriding default LLM biases. Enforces metric-based rules, strict component architecture, CSS hardware acceleration, and balanced design engineering.

leonxlnx/design-taste-frontend-v1

The original v1 taste-skill, preserved for projects depending on its exact behavior. The current default is `design-taste-frontend` (v2 experimental), which is a substantial rewrite. Use this v1 install name only if you need exact backward compatibility.

leonxlnx/full-output-enforcement

Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.

leonxlnx/gpt-taste

Elite UX/UI & Advanced GSAP Motion Engineer. Enforces Python-driven true randomization for layout variance, strict AIDA page structure, wide editorial typography (bans 6-line wraps), gapless bento grids, strict GSAP ScrollTriggers (pinning, stacking, scrubbing), inline micro-images, and massive section spacing.

leonxlnx/high-end-visual-design

Teaches the AI to design like a high-end agency. Defines the exact fonts, spacing, shadows, card structures, and animations that make a website feel expensive. Blocks all the common defaults that make AI designs look cheap or generic.

leonxlnx/image-taste-frontend

Elite website image-to-code skill for Codex. For visually important web tasks, it must first generate the design image(s) itself, deeply analyze them, then implement the website to match them as closely as possible. In Codex, it must prefer large, readable, section-specific images instead of tiny compressed boards, generate fresh standalone images for sections or detail views instead of cropping old ones, avoid lazy under-generation, avoid cards-inside-cards-inside-cards UI, and keep the hero clean, spacious, readable, and visible on a small laptop.

leonxlnx/image-to-code

Elite website image-to-code skill for Codex. For visually important web tasks, it must first generate the design image(s) itself, deeply analyze them, then implement the website to match them as closely as possible. In Codex, it must prefer large, readable, section-specific images instead of tiny compressed boards, generate fresh standalone images for sections or detail views instead of cropping old ones, avoid lazy under-generation, avoid cards-inside-cards-inside-cards UI, and keep the hero clean, spacious, readable, and visible on a small laptop.

leonxlnx/industrial-brutalist-ui

Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.

leonxlnx/minimalist-ui

Clean editorial-style interfaces. Warm monochrome palette, typographic contrast, flat bento grids, muted pastels. No gradients, no heavy shadows.

leonxlnx/redesign-existing-projects

Upgrades existing websites and apps to premium quality. Audits current design, identifies generic AI patterns, and applies high-end design standards without breaking functionality. Works with any CSS framework or vanilla CSS.

leonxlnx/stitch-design-taste

Semantic Design System Skill for Google Stitch. Generates agent-friendly DESIGN.md files that enforce premium, anti-generic UI standards — strict typography, calibrated color, asymmetric layouts, perpetual micro-motion, and hardware-accelerated performance.

leonxlnx/taste-skill

Premium brand-kit image generation skill for creating high-end brand-guidelines boards, logo systems, identity decks, and visual-world presentations. Trained for minimalist, cinematic, editorial, dark-tech, luxury, cultural, security, gaming, developer-tool, and consumer-app brand systems. Optimized for intentional logo concepting, refined composition, sparse typography, strong symbolic meaning, premium mockups, art-directed imagery, and flexible grid layouts.

leonxlnx/taste-skill

The original v1 taste-skill, preserved for projects depending on its exact behavior. The current default is `design-taste-frontend` (v2 experimental), which is a substantial rewrite. Use this v1 install name only if you need exact backward compatibility.

leonxlnx/taste-skill

Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.

leonxlnx/taste-skill

Elite UX/UI & Advanced GSAP Motion Engineer. Enforces Python-driven true randomization for layout variance, strict AIDA page structure, wide editorial typography (bans 6-line wraps), gapless bento grids, strict GSAP ScrollTriggers (pinning, stacking, scrubbing), inline micro-images, and massive section spacing.

leonxlnx/taste-skill

Elite mobile app image-generation skill for creating premium, app-native screen concepts and flows. Designed for iOS, Android, and cross-platform mobile products. Prioritizes clean hierarchy, comfortably readable text, strong multi-screen consistency, controlled color palettes, non-generic creative direction, textured surfaces, image-led composition, tasteful custom iconography, and clean phone mockup framing. By default, screens should be shown inside a subtle premium iPhone or similar phone mockup with a visible frame, while the main focus stays on the app content itself. This skill generates images only. It does not write code.

leonxlnx/taste-skill

Elite frontend image-direction skill for generating premium, conversion-aware website design references. CRITICAL OUTPUT RULE — generate ONE separate horizontal image FOR EVERY section. A landing page with 8 sections produces 8 images. Never compress multiple sections into one image. Enforces composition variety (not always left-text / right-image), background-image freedom, varied CTAs, varied hero scales (giant / mid / mini minimalist), narrative concept spine, second-read moments, and a single consistent palette across all images. Optimized for landing pages, marketing sites, and product comps that developers or coding models can accurately recreate.

leonxlnx/taste-skill

Elite website image-to-code skill for Codex. For visually important web tasks, it must first generate the design image(s) itself, deeply analyze them, then implement the website to match them as closely as possible. In Codex, it must prefer large, readable, section-specific images instead of tiny compressed boards, generate fresh standalone images for sections or detail views instead of cropping old ones, avoid lazy under-generation, avoid cards-inside-cards-inside-cards UI, and keep the hero clean, spacious, readable, and visible on a small laptop.

leonxlnx/taste-skill

Clean editorial-style interfaces. Warm monochrome palette, typographic contrast, flat bento grids, muted pastels. No gradients, no heavy shadows.

leonxlnx/taste-skill

Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.

相关技能