{
  "id": "icon-button",
  "name": "IconButton",
  "level": "atom",
  "status": "stable",
  "purpose": "An action shown as a single symbol, with a name for screen readers.",
  "description": "Icon-only action with a guaranteed accessible name. `aria-label` is type-required. Composes Button so every Button intent / emphasis / state behaviour propagates; the geometry is IconButton's own (a circle on the control-height scale, sm | md | lg, with a 44 px touch hit-area). The standard icon button is quiet — `intent=\"neutral\"`, `emphasis=\"ghost\"`, the defaults — and keeps its glyph monochrome; tint the glyph only for `danger`, and reserve the solid accent for the one primary action of a surface.",
  "role": "action",
  "import": "@rrios-forge/ui/atoms/icon-button",
  "exports": [
    "IconButton",
    "ICON_BUTTON_EMPHASES",
    "ICON_BUTTON_INTENTS",
    "ICON_BUTTON_SIZE_CLASSES",
    "ICON_BUTTON_SIZES",
    "ICON_BUTTON_VARIANTS"
  ],
  "source": "packages/ui/src/atoms/icon-button",
  "axes": [
    {
      "axis": "size",
      "part": null,
      "values": [
        "sm",
        "md",
        "lg"
      ],
      "default": null,
      "meaning": "Ergonomic scale, in three families (control, text, container)."
    },
    {
      "axis": "intent",
      "part": null,
      "values": [
        "primary",
        "secondary",
        "danger",
        "neutral"
      ],
      "default": null,
      "meaning": "What an action does."
    },
    {
      "axis": "emphasis",
      "part": null,
      "values": [
        "solid",
        "soft",
        "outline",
        "ghost"
      ],
      "default": null,
      "meaning": "How strongly a control or chip asserts itself, quiet to loud."
    }
  ],
  "needs": [
    {
      "need": "Icon-only button",
      "answer": "`IconButton`"
    }
  ],
  "patterns": [],
  "a11yExceptions": [],
  "decisions": [
    {
      "id": "ADR-003",
      "title": "Storybook editorial convention and pattern↔component bidirectionality"
    },
    {
      "id": "ADR-005",
      "title": "Visual operational rules: surfaces, interaction, motion"
    },
    {
      "id": "ADR-013",
      "title": "PageShell: mobile-nav polymorphism"
    },
    {
      "id": "ADR-014",
      "title": "PageShell: Apple Mail / macOS Big Sur visual register"
    },
    {
      "id": "ADR-016",
      "title": "NotificationCenter v2: Popover → Drawer + Provider/Hooks"
    },
    {
      "id": "ADR-017",
      "title": "Actionable components adopt the `asChild` slot pattern for framework-aware routing"
    },
    {
      "id": "ADR-030",
      "title": "Axis vocabulary: one name, one meaning"
    }
  ],
  "stories": [
    {
      "name": "Playground",
      "id": "components-atoms-iconbutton--playground",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-atoms-iconbutton--playground",
      "frame": "/iframe.html?id=components-atoms-iconbutton--playground&viewMode=story"
    },
    {
      "name": "Intents",
      "id": "components-atoms-iconbutton--intents",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-atoms-iconbutton--intents",
      "frame": "/iframe.html?id=components-atoms-iconbutton--intents&viewMode=story"
    },
    {
      "name": "Variants",
      "id": "components-atoms-iconbutton--variants",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-atoms-iconbutton--variants",
      "frame": "/iframe.html?id=components-atoms-iconbutton--variants&viewMode=story"
    },
    {
      "name": "Sizes",
      "id": "components-atoms-iconbutton--sizes",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-atoms-iconbutton--sizes",
      "frame": "/iframe.html?id=components-atoms-iconbutton--sizes&viewMode=story"
    },
    {
      "name": "States",
      "id": "components-atoms-iconbutton--states",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-atoms-iconbutton--states",
      "frame": "/iframe.html?id=components-atoms-iconbutton--states&viewMode=story"
    }
  ],
  "storyFile": "tooling/storybook/stories/components/atoms/icon-button.stories.tsx"
}
