DESIGN.md按钮状态：分别定义hover与pressed，检查AI没有覆盖默认按钮

素材身份：作者原创输入/可编辑参考。目标工具未在本轮执行。
先打开 index.html；input.csv 是原始字段，reference.csv 是验收基准，negative.csv 是故意构造的坏样例。
actual-results.csv 保留未测状态，实际执行后再填写。

前置条件：
Node.js与npm已可运行；练习只需本地文本文件和官方@google/design.md CLI，不需要Stitch账号或付费生成。
固定当前CLI版本并保留版本号；DESIGN.md仍为alpha格式，升级前先在练习副本复核。
本课给出作者自制规则文件和预期，不把预期JSON冒充已执行的官方CLI返回。

操作步骤：
1. 画出三状态目标
准备同一只“加入清单”按钮的默认、hover和pressed示例，不改变文字与宽度。
先注明状态差别仅限背景与边框，避免把三张图当三个按钮类型。

2. 创建独立组件条目
在components中分别写button-primary、button-primary-hover和button-primary-pressed。
官方建议状态用相关名称的独立条目，不假定存在任意嵌套states语法。

3. 复用语义色引用
为三个状态连接已定义的primary及状态色，检查每个路径。
不要在一个条目里反复覆盖backgroundColor，导致最终只有最后一值。

4. 读取解析与警告
运行lint，查看组件条目和未知属性提示。
若为状态添加了自定义说明，单独注明那不是标准可消费属性。

5. 在作者页面实现映射
让演示页的:hover和:active读取各自状态token，并用键盘触发按钮。
这部分是消费端实现，不能说单写DESIGN.md就自动完成交互。

6. 确认默认状态可恢复
鼠标离开、按键释放后检查默认色是否回来。
若状态粘住，先查页面事件或CSS映射，不把问题归给颜色生成。

7. 交付状态对照表
打包规则、状态映射和三张真实界面截图，逐项记录交互。
若只制作了静态示意图，必须写示意，不标鼠标键盘测试通过。

验收：
状态在规范里是三个可定位的独立条目。
消费端清楚映射hover/active，释放后回默认。
三状态文字尺寸一致，引用无失效。

官方资料：
https://github.com/google-labs-code/design.md/blob/main/docs/spec.md

图片身份：assets/ 为内置image_gen生成的原创练习输入缩略版，原始文件保留在网站图片来源地址。可编辑SVG为作者原生排版。
