首页
/ Impeccable delight 实战指南:在不打扰功能的前提下,为 AI 生成界面注入恰到好处的产品性格

Impeccable delight 实战指南:在不打扰功能的前提下,为 AI 生成界面注入恰到好处的产品性格

2026-09-07 20:08:50作者:俞予舒Fleming

delight 是 Impeccable 设计技能体系(skill)中负责"为界面加入人性化高光时刻"的命令参考。它解决的核心问题是:如何在保持功能清晰、体感可靠的前提下,让产品在真正值得的时刻表达性格——而非用千篇一律的俏皮元素粉饰所有界面。读完本文,你将掌握 delight 参考的完整方法论:判断何时值得制造"惊喜"、如何用一句话定义唯一的情感论点、如何为成功/等待/首次使用/出错等六类情绪时刻做设计,以及守住哪些红线才能不让魅力变成摩擦。文中还结合仓库源码,说明该命令在 Impeccable 命令表中的调用方式、入口上下文与可验证的实现依据。

什么是 Impeccable 的 delight:先理解它在你工作中的位置

Impeccable 是一个以"单一设计语言源码、多种 AI 编码工具分发"为思路的开源设计技能项目。在 SKILL.md 定义的命令表中,delightanimatecolorizetypesetlayoutoverdrive 同属 Enhance(增强) 类别,命令签名是 delight [target],一句描述为 "Add personality and memorable touches"(加入性格与值得记住的细节),其行为规范落在参考文档 delight.md 中。

你可以从两份配套材料交叉确认它的触发条件与目标:

  • command-metadata.json 中,delight 的元数据写道:"Add moments of joy, personality, and unexpected touches that make interfaces memorable and enjoyable to use. Elevates functional to delightful."(加入愉悦、性格与出人意料的小细节,让界面被记住、更好用;把"能用"提升为"好用"。)并注明了适用信号:当用户提出要"加 polish、加性格、加动画、加微交互、让界面更有趣或更令人难忘"时使用。
  • SKILL.md 的 command 描述与 metadata 一致;同时 routing 规则要求:当请求出现显式或清晰可推断的命令词时,先加载对应参考文档(如本文件),再按其执行。

仓库中存在该参考的多份分发副本:.hermes/skills/impeccable/skill/reference/delight.mdplugin/skills/impeccable/reference/delight.md。按 PRODUCT.md 的说明,作者在 skill/ 维护规范源,构建脚本再产出各 harness 的分发目录,因此这些副本内容同源、适用于不同 AI 编码工具的加载路径。

执行 delight 前需要补足的一个前提:品牌的情绪范围

文档开头用引用块给出了一条 "需要额外上下文"(Additional context needed) 的指令:the brand's emotional range(品牌的情绪范围)。

这非常重要:delight 参考本身并不假定你的产品"应该活泼"。在动手前,如果无法从手头资料推断品牌允许的情绪边界——它能否开玩笑、能表达到多外放、在失去数据或涉及钱/隐私时应该多克制——就必须先向用户询问。这与整个 skill 的"每条命令都先读 PRODUCT.md / DESIGN.md / 对应 surface brief"的 setup 流程一致:性格表达必须锚定在真实产品语境上,而不是一套可以到处套用的模板。

因此,delight 的正确打开方式通常不是"来点动画让界面活起来",而是:先弄清这个产品在情绪上的声音边界,再决定值不值得、在哪个时刻、用什么力度表达。

先对号入座:按 Visitor mode 决定"趣味密度"

Impeccable 用 mode(访客模式) 来命名"这个表面上用户的成功是什么样"。SKILL.md 定义了四种模式:Persuade(说服)、Operate(操作)、Read(阅读)、Experience(体验)。delight 参考在此基础上给出了两种组合策略:

Persuade + Experience(说服/体验类表面):性格可以贯穿 voice、composition、motion、discovery 各层——例如落地页、营销活动、作品集。但有一个硬约束:始终让 artifact(作品/内容)保持焦点,界面只是它的舞台。

Operate + Read(操作/阅读类表面):把 delight 集中在有意义的时刻——首次使用、任务完成、错误恢复、掌握熟练——而"可靠性承担其余一切"。也就是说,日常表格填写、文档阅读不该被打扰。

这在 sibling 文档 operate.md 中被提炼为一个非常干脆的原则:Consistency over surprise(一致性优先于惊喜),"同一套视觉词汇应当贯穿每个屏幕;delight 留给'时刻',而不是留给'页面'"。换句话说:惊喜是事件,不是常态;性格密度必须与该表面的任务严肃程度成反比。

找对发力点:不主动生产庆祝,先寻找值得的时刻

原文档强调,在动手前要检查 target、DESIGN.md、产品 voice、用户重复使用频率和情绪场景,然后从以下六类"可被点亮的机会"中寻找发力点:

  • 值得被承认的努力(effort worth acknowledging);
  • 可以被"变得有信息量"的等待(waiting that can become informative);
  • 能够起到导向作用的空状态或首次使用状态(an empty or first-use state that can orient);
  • 需要同理心的错误或恢复时刻(an error or recovery moment that needs empathy);
  • 一次交互的物理或文字回应可以表达品牌性格(an interaction whose physical or verbal response could express the brand);
  • 人们会乐于发现的实用能力(a useful capability people might enjoy discovering)。

同时,文档给出了一条清晰的反例禁令Do not manufacture a celebration for an ordinary click.(不要为一次普通点击制造庆祝。)只有当无法从品牌情绪范围或利害关系推断时才去提问,其余情况应自己判断。

这也决定了 delight 和它相邻命令的分工:animate(运动)负责"用动效解释状态与关系,或制造一个表面挣得的主创时刻";delight 的视野更宽——文字、发现奖励、声音/触感/环境细节都属于它,运动只是可选载体之一。如果情绪已经足够、只是缺流畅的动效,那就该转向 animate.md,而不是在 delight 里硬塞动画。

先定义"一条 delight 论点":最小系统原则

这是本参考最核心的收敛动作:

  1. 用一句话写清楚:希望用户感受到什么,以及为什么这种感受属于这个产品(属于产品机制和视觉世界,而不是一个可以贴在任何产品上的通用俏皮元素)。
  2. 再选择能承载它的最小系统(the smallest system),候选集是:
    • 对某个有意义动作给出有辨识度的回应;
    • 有产品专属味道、同时把话说清楚的文案;
    • 一段有"可识别材质行为"的交互或转场;
    • 植根于产品世界的插图、声音、触感或环境细节;
    • 一个会揭示真实用途的"探索奖励"。

关键约束再次出现:Derive the treatment from product mechanism and visual world, not a stock catalog.(处理方式必须从产品机制与视觉世界中推导,而不是取自"素材目录")。这条约束在仓库其它规范里反复被强化——例如 animate.md 同样要求 "The focal moment must come from this product and surface concept. A generic fade-and-rise, hover lift, parallax layer, or scroll reveal is not a thesis."(焦点时刻必须出自该产品与表面概念;通用的淡入上浮、悬停抬升、视差层或滚动显现都不是论点。)

为情绪时刻而设计:六类场景的处理准则

找到论点之后,把设计落到具体时刻。原文档按情绪场景给出逐条准则:

成功(Success):回应要与付出的努力和后果相称。重大里程碑可以充分展开(major milestones can expand);而例行的"保存成功"只需让人感到确定——不能把日常操作做得像庆典。

等待(Waiting):展示真实的进度、有用的上下文或产品专属的活动。严禁假装工作或人为拖慢完成流程来配合表演(Never fake work or delay completion to stage a flourish)——等待可以被设计成有信息量的时间,但前提是诚实。

空状态与首次使用(Empty and first use):先让下一步动作清晰,再考虑加性格。引导优先、个性其次。

错误与恢复(Error and recovery):先呈现问题本身与恢复路径;温暖可以缓解压力,但玩笑绝不能把损失、金钱、隐私或受阻的工作变成轻飘飘的段子(jokes must not trivialize loss, money, privacy, or blocked work)。

重复交互(Repeated interaction):第 100 次使用时回应依然令人满足。变体只有在保持连贯、可预测、值得信任时才有用——否则就会变成不可控的噪音。

发现(Discovery):奖励好奇心,但不能把必需功能藏起来只为了制造彩蛋。

贯穿所有场景的文案准则:Copy must use the product's language.(文案必须使用产品自己的语言。)文档的结论句非常直白:Generic whimsy is worse than neutral clarity(泛泛的俏皮还不如中性的清楚)。

守住体验红线:delight 的禁止清单

"保护体验"小节是判定边界的关键,它列出了 delight 不能做的事:

  • 不得延误、阻塞或遮蔽主任务;
  • 不得覆盖平台惯例或可访问性要求;
  • 不得添加用户未要求的事实性声明;
  • 未经同意不得发声、不得无视静音设置;
  • 不得变成强制、不可跳过或在重复中让人疲惫的东西;
  • 不得引入与该时刻不相称的依赖或资源开销。

此外还有一组执行层硬性要求:

  • 如果要做有作者设计感的运动,去加载 animate.md(也就是遵循其中的时长表、缓动曲线、prefers-reduced-motion 降级路径等);
  • 尊重屏幕阅读器、键盘使用、触控、本地化与文化语境;
  • 无关紧要的循环动效在页面隐藏时必须停止(Nonessential loops stop when hidden);
  • 庆祝强度要与频率和后果成正比(Make celebration intensity proportional to frequency and consequence)。

这些要求可以在 sibling 文档与产品承诺中找到系统级呼应:animate.md 要求所有 Web 动画都要有 prefers-reduced-motion 且有意的替代方案;而 PRODUCT.md 的项目承诺中明确基线是 WCAG 2.1 AA、所有动效尊重 prefers-reduced-motion。也就是说,delight 不是脱离全局标准的特例,它必须在同一套可访问性承诺内工作。

验证清单:如何判断性格"挣到了位置"

设计完成后的验收不是看"好不好看",而是逐条过检查表:

  • 可替代性检验:这个时刻具体到邻家产品无法原样照搬("A neighboring product could not use it unchanged");
  • 价值检验:它确实改善了理解、信心、动机或情绪恢复(comprehension, confidence, motivation, or emotional recovery);
  • 可退化检验:去掉这个花活后,界面依然快速、意图明确(The interface remains fast and obvious without the flourish);
  • 疲劳检验:重复使用不会把魅力变成摩擦(Repetition does not turn charm into friction);
  • 通道检验:静音、键盘、触控、本地化路径都正常(Muted, keyboard, touch, and localized paths work);
  • 世界一致性检验:最终观感属于"所选中的那个世界",而不是一套通用的"delight 处理"(not a generic "delight" treatment)。

当性格显得名副其实(the personality feels earned)之后,文档给出的收尾动作是:交接给 /impeccable polish 做最终打磨

这也和整套技能的工作流吻合:polish.md 开宗明义"打磨是精修,绝非暗中重设计",负责在发布前做对齐、一致性、状态完备性与动效协调的最终检查;而 audit.mdcritique.md 也会在评估产出建议时,把 /impeccable delight 列入候选修复命令——整个链条是"评估发现问题 → 用对应命令修复 → polish 收尾"的闭环。

补充:delight 与相邻命令、live 模式的关系

  • live.md 的 live 变体模式中,delight 被描述为一种可生成的"性格口味":微交互、排版惊喜、插画点缀、声音或触感、彩蛋(micro-interaction / typographic surprise / illustrated accent / sonic-or-haptic / easter egg)。这与 delight 参考中"distinctive response、product-specific language、recognizable material behavior、grounded illustration/sound/haptic、discovery reward"五个最小系统一一对应,说明 live 变体面板与命令行参考共享同一套 delight 世界观。
  • animate 的分工已在前面说明:animate 只管运动本身且自带性能与可访问性约束,delight 决定"该不该有一个情绪时刻、它是什么"。
  • onboard(首屏流程/空状态/激活时刻设计,见 SKILL.md)有交集但视角不同:onboard 负责让首次体验走到价值点,delight 负责在其中注入品牌性格——两者重合于"first use"时刻,onboard 偏结构性引导、delight 偏情绪性表达。

结语:delight 的本质是判断力,不是装饰术

综合全文可以概括出 delight 参考的方法论闭环:先补足品牌情绪范围 → 按 mode 决定性格密度 → 在六类机会里找"值得"的时刻 → 用一句话论点收敛 → 挑最小系统实现 → 用禁止清单保护功能与可访问性 → 按六条标准验证 → 交给 polish 收尾。

它最想纠正的坏习惯,是"把界面做得可爱"这个宽泛目标本身:没有产品专属论点的俏皮,被明确定性为比中性清晰更差的方案。delight 参考给出的是纪律——惊喜是稀缺品,只有当它来自产品机制、说产品自己的语言、并且经得起第一百次重复使用时,才配得上它占据的那一帧界面。想继续深入,可以对照阅读 skill 入口 SKILL.md 了解命令路由,或阅读 animate.mdpolish.md 理解它与相邻 pass 的完整协作方式。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.74 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.81 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
595
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
920
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.63 K
1.02 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
518
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
547
389