{
  "$schema": "https://opensource.adobe.com/spectrum-tokens/schemas/component.json",
  "$id": "https://opensource.adobe.com/spectrum-tokens/schemas/components/action-button.json",
  "title": "Action button",
  "description": "Action buttons allow users to perform an action or mark a selection. They're used for similar, task-based options within a workflow, and are ideal for interfaces where buttons aren't meant to draw a lot of attention.",
  "meta": {
    "category": "actions",
    "documentationUrl": "https://spectrum.adobe.com/page/action-button/"
  },
  "type": "object",
  "properties": {
    "label": {
      "type": "string"
    },
    "hideLabel": {
      "type": "boolean",
      "default": false
    },
    "icon": {
      "$ref": "https://opensource.adobe.com/spectrum-tokens/schemas/types/workflow-icon.json",
      "description": "Icon must be present if the label is not defined."
    },
    "size": {
      "type": "string",
      "enum": ["s", "m", "l", "xl"],
      "default": "m",
      "pattern": "^(x?s|m|x{0,3}l)$"
    },
    "isQuiet": {
      "type": "boolean",
      "default": false
    },
    "isSelected": {
      "type": "boolean",
      "default": false
    },
    "isEmphasized": {
      "type": "boolean",
      "default": false
    },
    "staticColor": {
      "type": "string",
      "enum": ["white", "black"]
    },
    "selectedTextColor": {
      "$ref": "https://opensource.adobe.com/spectrum-tokens/schemas/types/hex-color.json"
    },
    "hasHoldIcon": {
      "type": "boolean",
      "default": false
    },
    "isDisabled": {
      "type": "boolean",
      "default": false
    },
    "state": {
      "type": "string",
      "enum": ["default", "hover", "down", "keyboard focus"],
      "default": "default"
    }
  }
}
