{
  "slug": "button",
  "schemaVersion": 2,
  "sourceKind": "structured-spec",
  "confidence": "medium",
  "semanticTypeCandidates": [
    "button",
    "action",
    "cta"
  ],
  "variantDimensions": [
    {
      "axis": "variant",
      "values": [
        "primary",
        "secondary",
        "ghost",
        "danger"
      ]
    },
    {
      "axis": "size",
      "values": [
        "sm",
        "md",
        "lg"
      ]
    },
    {
      "axis": "state",
      "values": [
        "default",
        "hover",
        "press",
        "disabled",
        "focus-visible",
        "loading"
      ]
    }
  ],
  "representativeVariants": [
    "primary-md-default",
    "secondary-md-default",
    "ghost-md-default",
    "danger-md-default"
  ],
  "anatomy": {
    "parts": [
      "label",
      "icon-leading",
      "icon-trailing"
    ],
    "required": [
      "label"
    ]
  },
  "structurePatterns": [
    "All variants share same padding and radius",
    "主按钮：底色 #164EC3（token color.alias.action-bg，亮暗一致），白字 7.21:1；悬停 #336EE8",
    "次级按钮：白底 + 1px 分隔线色描边（#E7E7E7），墨色字；悬停次级底色。基础层与工作台相同（WORKBENCH §8 两层组件对照）",
    "Ghost has no background, only text color on interaction",
    "危险按钮：白底 + 1px 分隔线描边 + 红字（semantic.danger），悬停浅红底；不用红底"
  ],
  "usageHints": [
    "一组只放一个主按钮；主按钮是蓝色唯一允许的整块填充",
    "Default button height = 32px (--layout-btn-height)",
    "Use medium weight (500) for button labels",
    "Radius md (8px) for all buttons"
  ],
  "doNotInvent": [
    "灰底次级按钮：次级按钮一律白底加线",
    "Large fill areas of accent blue — blue is garnish only",
    "Rounded-full/pill buttons — use md radius (8px)",
    "Gradient or shadow on buttons — Aham is flat"
  ],
  "unknowns": [],
  "behavior": {
    "loading": "保留标签与宽度，aria-busy=true；阻止重复操作；完成后播报结果，失败可重试。",
    "iconOnly": "必须有可访问名；尺寸随控件档位，触摸目标至少 44px。",
    "focus": "键盘焦点清晰可见，不用颜色作为唯一反馈。"
  }
}
