{
  "id": "ibm",
  "version": "1.0.0",
  "name": "IBM",
  "description": "IBM (International Business Machines) is the company behind the Carbon Design System — the open-source design system that backs IBM's enterprise software surfaces (Cloud, watsonx, Db2, MQ, Power, Z, Storage, the consulting practice, and ibm.com). Carbon is built on a four-theme model: \"White\" and \"g10\" are the light themes, \"g90\" and \"g100\" are the dark themes. The primary interactive color is Blue 60 (#0F62FE) across every theme; semantic tokens map to Red 60 (danger), Green 50 (success), and Yellow 30 (warning). Typography is the proprietary IBM Plex family — Plex Sans, Plex Serif, and Plex Mono — released open-source under the SIL Open Font License and already present in this catalogue.\n",
  "provenance": {
    "source": "https://carbondesignsystem.com/",
    "license": "Proprietary — All Rights Reserved (Carbon tokens Apache-2.0; Plex SIL OFL)",
    "attribution": "The Carbon Design System is published by IBM Corp. under Apache-2.0 (see `carbon-design-system/carbon`). IBM Plex is licensed under the SIL Open Font License. The IBM 8-bar mark, the IBM wordmark, and \"IBM\" are registered trademarks of International Business Machines Corporation.\n",
    "importedDate": "2026-05-19",
    "notes": "This brand atom reuses the existing `carbon@1` palette atom rather than duplicating IBM-specific colors. Carbon is the authoritative published color system for the IBM brand on digital surfaces; the brand atom adds the IBM-specific typography references and the trademark / logo-usage rules Carbon does not itself encode. The g100 theme (dark mode) documented in the Carbon source uses gray-100 as the canvas and Blue 60 as the unchanged interactive color.\n"
  },
  "tags": [
    "ibm",
    "carbon",
    "design-system",
    "enterprise",
    "role-based",
    "dual-mode"
  ],
  "palette": {
    "ref": "carbon@1.0.0",
    "swatches": [
      {
        "id": "black",
        "name": "Black",
        "value": "#000000",
        "aliases": []
      },
      {
        "id": "white",
        "name": "White",
        "value": "#FFFFFF",
        "aliases": []
      },
      {
        "id": "gray-10",
        "name": "Gray 10",
        "value": "#F4F4F4",
        "aliases": []
      },
      {
        "id": "gray-20",
        "name": "Gray 20",
        "value": "#E0E0E0",
        "aliases": []
      },
      {
        "id": "gray-30",
        "name": "Gray 30",
        "value": "#C6C6C6",
        "aliases": []
      },
      {
        "id": "gray-40",
        "name": "Gray 40",
        "value": "#A8A8A8",
        "aliases": []
      },
      {
        "id": "gray-50",
        "name": "Gray 50",
        "value": "#8D8D8D",
        "aliases": []
      },
      {
        "id": "gray-60",
        "name": "Gray 60",
        "value": "#6F6F6F",
        "aliases": []
      },
      {
        "id": "gray-70",
        "name": "Gray 70",
        "value": "#525252",
        "aliases": []
      },
      {
        "id": "gray-80",
        "name": "Gray 80",
        "value": "#393939",
        "aliases": []
      },
      {
        "id": "gray-90",
        "name": "Gray 90",
        "value": "#262626",
        "description": "g90 theme canvas.",
        "aliases": []
      },
      {
        "id": "gray-100",
        "name": "Gray 100",
        "value": "#161616",
        "description": "g100 theme canvas.",
        "aliases": []
      },
      {
        "id": "cool-gray-10",
        "name": "Cool Gray 10",
        "value": "#F2F4F8",
        "aliases": []
      },
      {
        "id": "cool-gray-20",
        "name": "Cool Gray 20",
        "value": "#DDE1E6",
        "aliases": []
      },
      {
        "id": "cool-gray-30",
        "name": "Cool Gray 30",
        "value": "#C1C7CD",
        "aliases": []
      },
      {
        "id": "cool-gray-40",
        "name": "Cool Gray 40",
        "value": "#A2A9B0",
        "aliases": []
      },
      {
        "id": "cool-gray-50",
        "name": "Cool Gray 50",
        "value": "#878D96",
        "aliases": []
      },
      {
        "id": "cool-gray-60",
        "name": "Cool Gray 60",
        "value": "#697077",
        "aliases": []
      },
      {
        "id": "cool-gray-70",
        "name": "Cool Gray 70",
        "value": "#4D5358",
        "aliases": []
      },
      {
        "id": "cool-gray-80",
        "name": "Cool Gray 80",
        "value": "#343A3F",
        "aliases": []
      },
      {
        "id": "cool-gray-90",
        "name": "Cool Gray 90",
        "value": "#21272A",
        "aliases": []
      },
      {
        "id": "cool-gray-100",
        "name": "Cool Gray 100",
        "value": "#121619",
        "aliases": []
      },
      {
        "id": "warm-gray-10",
        "name": "Warm Gray 10",
        "value": "#F7F3F2",
        "aliases": []
      },
      {
        "id": "warm-gray-20",
        "name": "Warm Gray 20",
        "value": "#E5E0DF",
        "aliases": []
      },
      {
        "id": "warm-gray-30",
        "name": "Warm Gray 30",
        "value": "#CAC5C4",
        "aliases": []
      },
      {
        "id": "warm-gray-40",
        "name": "Warm Gray 40",
        "value": "#ADA8A8",
        "aliases": []
      },
      {
        "id": "warm-gray-50",
        "name": "Warm Gray 50",
        "value": "#8F8B8B",
        "aliases": []
      },
      {
        "id": "warm-gray-60",
        "name": "Warm Gray 60",
        "value": "#726E6E",
        "aliases": []
      },
      {
        "id": "warm-gray-70",
        "name": "Warm Gray 70",
        "value": "#565151",
        "aliases": []
      },
      {
        "id": "warm-gray-80",
        "name": "Warm Gray 80",
        "value": "#3C3838",
        "aliases": []
      },
      {
        "id": "warm-gray-90",
        "name": "Warm Gray 90",
        "value": "#272525",
        "aliases": []
      },
      {
        "id": "warm-gray-100",
        "name": "Warm Gray 100",
        "value": "#171414",
        "aliases": []
      },
      {
        "id": "blue-10",
        "name": "Blue 10",
        "value": "#EDF5FF",
        "aliases": []
      },
      {
        "id": "blue-20",
        "name": "Blue 20",
        "value": "#D0E2FF",
        "aliases": []
      },
      {
        "id": "blue-30",
        "name": "Blue 30",
        "value": "#A6C8FF",
        "aliases": []
      },
      {
        "id": "blue-40",
        "name": "Blue 40",
        "value": "#78A9FF",
        "aliases": []
      },
      {
        "id": "blue-50",
        "name": "Blue 50",
        "value": "#4589FF",
        "aliases": []
      },
      {
        "id": "blue-60",
        "name": "Blue 60",
        "value": "#0F62FE",
        "description": "Carbon primary interactive color.",
        "aliases": []
      },
      {
        "id": "blue-70",
        "name": "Blue 70",
        "value": "#0043CE",
        "aliases": []
      },
      {
        "id": "blue-80",
        "name": "Blue 80",
        "value": "#002D9C",
        "aliases": []
      },
      {
        "id": "blue-90",
        "name": "Blue 90",
        "value": "#001D6C",
        "aliases": []
      },
      {
        "id": "blue-100",
        "name": "Blue 100",
        "value": "#001141",
        "aliases": []
      },
      {
        "id": "red-10",
        "name": "Red 10",
        "value": "#FFF1F1",
        "aliases": []
      },
      {
        "id": "red-20",
        "name": "Red 20",
        "value": "#FFD7D9",
        "aliases": []
      },
      {
        "id": "red-30",
        "name": "Red 30",
        "value": "#FFB3B8",
        "aliases": []
      },
      {
        "id": "red-40",
        "name": "Red 40",
        "value": "#FF8389",
        "aliases": []
      },
      {
        "id": "red-50",
        "name": "Red 50",
        "value": "#FA4D56",
        "aliases": []
      },
      {
        "id": "red-60",
        "name": "Red 60",
        "value": "#DA1E28",
        "description": "Danger / error.",
        "aliases": []
      },
      {
        "id": "red-70",
        "name": "Red 70",
        "value": "#A2191F",
        "aliases": []
      },
      {
        "id": "red-80",
        "name": "Red 80",
        "value": "#750E13",
        "aliases": []
      },
      {
        "id": "red-90",
        "name": "Red 90",
        "value": "#520408",
        "aliases": []
      },
      {
        "id": "red-100",
        "name": "Red 100",
        "value": "#2D0709",
        "aliases": []
      },
      {
        "id": "magenta-10",
        "name": "Magenta 10",
        "value": "#FFF0F7",
        "aliases": []
      },
      {
        "id": "magenta-20",
        "name": "Magenta 20",
        "value": "#FFD6E8",
        "aliases": []
      },
      {
        "id": "magenta-30",
        "name": "Magenta 30",
        "value": "#FFAFD2",
        "aliases": []
      },
      {
        "id": "magenta-40",
        "name": "Magenta 40",
        "value": "#FF7EB6",
        "aliases": []
      },
      {
        "id": "magenta-50",
        "name": "Magenta 50",
        "value": "#EE5396",
        "aliases": []
      },
      {
        "id": "magenta-60",
        "name": "Magenta 60",
        "value": "#D02670",
        "aliases": []
      },
      {
        "id": "magenta-70",
        "name": "Magenta 70",
        "value": "#9F1853",
        "aliases": []
      },
      {
        "id": "magenta-80",
        "name": "Magenta 80",
        "value": "#740937",
        "aliases": []
      },
      {
        "id": "magenta-90",
        "name": "Magenta 90",
        "value": "#510224",
        "aliases": []
      },
      {
        "id": "magenta-100",
        "name": "Magenta 100",
        "value": "#2A0A18",
        "aliases": []
      },
      {
        "id": "purple-10",
        "name": "Purple 10",
        "value": "#F6F2FF",
        "aliases": []
      },
      {
        "id": "purple-20",
        "name": "Purple 20",
        "value": "#E8DAFF",
        "aliases": []
      },
      {
        "id": "purple-30",
        "name": "Purple 30",
        "value": "#D4BBFF",
        "aliases": []
      },
      {
        "id": "purple-40",
        "name": "Purple 40",
        "value": "#BE95FF",
        "aliases": []
      },
      {
        "id": "purple-50",
        "name": "Purple 50",
        "value": "#A56EFF",
        "aliases": []
      },
      {
        "id": "purple-60",
        "name": "Purple 60",
        "value": "#8A3FFC",
        "aliases": []
      },
      {
        "id": "purple-70",
        "name": "Purple 70",
        "value": "#6929C4",
        "aliases": []
      },
      {
        "id": "purple-80",
        "name": "Purple 80",
        "value": "#491D8B",
        "aliases": []
      },
      {
        "id": "purple-90",
        "name": "Purple 90",
        "value": "#31135E",
        "aliases": []
      },
      {
        "id": "purple-100",
        "name": "Purple 100",
        "value": "#1C0F30",
        "aliases": []
      },
      {
        "id": "cyan-10",
        "name": "Cyan 10",
        "value": "#E5F6FF",
        "aliases": []
      },
      {
        "id": "cyan-20",
        "name": "Cyan 20",
        "value": "#BAE6FF",
        "aliases": []
      },
      {
        "id": "cyan-30",
        "name": "Cyan 30",
        "value": "#82CFFF",
        "aliases": []
      },
      {
        "id": "cyan-40",
        "name": "Cyan 40",
        "value": "#33B1FF",
        "aliases": []
      },
      {
        "id": "cyan-50",
        "name": "Cyan 50",
        "value": "#1192E8",
        "aliases": []
      },
      {
        "id": "cyan-60",
        "name": "Cyan 60",
        "value": "#0072C3",
        "aliases": []
      },
      {
        "id": "cyan-70",
        "name": "Cyan 70",
        "value": "#00539A",
        "aliases": []
      },
      {
        "id": "cyan-80",
        "name": "Cyan 80",
        "value": "#003A6D",
        "aliases": []
      },
      {
        "id": "cyan-90",
        "name": "Cyan 90",
        "value": "#012749",
        "aliases": []
      },
      {
        "id": "cyan-100",
        "name": "Cyan 100",
        "value": "#061727",
        "aliases": []
      },
      {
        "id": "teal-10",
        "name": "Teal 10",
        "value": "#D9FBFB",
        "aliases": []
      },
      {
        "id": "teal-20",
        "name": "Teal 20",
        "value": "#9EF0F0",
        "aliases": []
      },
      {
        "id": "teal-30",
        "name": "Teal 30",
        "value": "#3DDBD9",
        "aliases": []
      },
      {
        "id": "teal-40",
        "name": "Teal 40",
        "value": "#08BDBA",
        "aliases": []
      },
      {
        "id": "teal-50",
        "name": "Teal 50",
        "value": "#009D9A",
        "aliases": []
      },
      {
        "id": "teal-60",
        "name": "Teal 60",
        "value": "#007D79",
        "aliases": []
      },
      {
        "id": "teal-70",
        "name": "Teal 70",
        "value": "#005D5D",
        "aliases": []
      },
      {
        "id": "teal-80",
        "name": "Teal 80",
        "value": "#004144",
        "aliases": []
      },
      {
        "id": "teal-90",
        "name": "Teal 90",
        "value": "#022B30",
        "aliases": []
      },
      {
        "id": "teal-100",
        "name": "Teal 100",
        "value": "#081A1C",
        "aliases": []
      },
      {
        "id": "green-10",
        "name": "Green 10",
        "value": "#DEFBE6",
        "aliases": []
      },
      {
        "id": "green-20",
        "name": "Green 20",
        "value": "#A7F0BA",
        "aliases": []
      },
      {
        "id": "green-30",
        "name": "Green 30",
        "value": "#6FDC8C",
        "aliases": []
      },
      {
        "id": "green-40",
        "name": "Green 40",
        "value": "#42BE65",
        "aliases": []
      },
      {
        "id": "green-50",
        "name": "Green 50",
        "value": "#24A148",
        "description": "Success.",
        "aliases": []
      },
      {
        "id": "green-60",
        "name": "Green 60",
        "value": "#198038",
        "aliases": []
      },
      {
        "id": "green-70",
        "name": "Green 70",
        "value": "#0E6027",
        "aliases": []
      },
      {
        "id": "green-80",
        "name": "Green 80",
        "value": "#044317",
        "aliases": []
      },
      {
        "id": "green-90",
        "name": "Green 90",
        "value": "#022D0D",
        "aliases": []
      },
      {
        "id": "green-100",
        "name": "Green 100",
        "value": "#071908",
        "aliases": []
      },
      {
        "id": "yellow-10",
        "name": "Yellow 10",
        "value": "#FCF4D6",
        "aliases": []
      },
      {
        "id": "yellow-20",
        "name": "Yellow 20",
        "value": "#FDDC69",
        "aliases": []
      },
      {
        "id": "yellow-30",
        "name": "Yellow 30",
        "value": "#F1C21B",
        "description": "Warning.",
        "aliases": []
      },
      {
        "id": "yellow-40",
        "name": "Yellow 40",
        "value": "#D2A106",
        "aliases": []
      },
      {
        "id": "yellow-50",
        "name": "Yellow 50",
        "value": "#B28600",
        "aliases": []
      },
      {
        "id": "yellow-60",
        "name": "Yellow 60",
        "value": "#8E6A00",
        "aliases": []
      },
      {
        "id": "yellow-70",
        "name": "Yellow 70",
        "value": "#684E00",
        "aliases": []
      },
      {
        "id": "yellow-80",
        "name": "Yellow 80",
        "value": "#483700",
        "aliases": []
      },
      {
        "id": "yellow-90",
        "name": "Yellow 90",
        "value": "#302400",
        "aliases": []
      },
      {
        "id": "yellow-100",
        "name": "Yellow 100",
        "value": "#1C1500",
        "aliases": []
      },
      {
        "id": "orange-10",
        "name": "Orange 10",
        "value": "#FFF2E8",
        "aliases": []
      },
      {
        "id": "orange-20",
        "name": "Orange 20",
        "value": "#FFD9BE",
        "aliases": []
      },
      {
        "id": "orange-30",
        "name": "Orange 30",
        "value": "#FFB784",
        "aliases": []
      },
      {
        "id": "orange-40",
        "name": "Orange 40",
        "value": "#FF832B",
        "aliases": []
      },
      {
        "id": "orange-50",
        "name": "Orange 50",
        "value": "#EB6200",
        "aliases": []
      },
      {
        "id": "orange-60",
        "name": "Orange 60",
        "value": "#BA4E00",
        "aliases": []
      },
      {
        "id": "orange-70",
        "name": "Orange 70",
        "value": "#8A3800",
        "aliases": []
      },
      {
        "id": "orange-80",
        "name": "Orange 80",
        "value": "#5E2900",
        "aliases": []
      },
      {
        "id": "orange-90",
        "name": "Orange 90",
        "value": "#3E1A00",
        "aliases": []
      },
      {
        "id": "orange-100",
        "name": "Orange 100",
        "value": "#231000",
        "aliases": []
      }
    ],
    "modes": {
      "light": {
        "roles": {
          "background": "white",
          "surface": "gray-10",
          "surface-elevated": "white",
          "text-primary": "gray-100",
          "text-secondary": "gray-70",
          "text-tertiary": "gray-60",
          "primary": "blue-60",
          "primary-hover": "blue-70",
          "accent": "purple-60",
          "accent-hover": "purple-70",
          "warning": "yellow-30",
          "warning-hover": "yellow-40",
          "error": "red-60",
          "success": "green-50",
          "border": "gray-30"
        }
      },
      "dark": {
        "roles": {
          "background": "gray-100",
          "surface": "gray-90",
          "surface-elevated": "gray-80",
          "text-primary": "gray-10",
          "text-secondary": "gray-30",
          "text-tertiary": "gray-40",
          "primary": "blue-60",
          "primary-hover": "blue-50",
          "accent": "purple-50",
          "accent-hover": "purple-40",
          "warning": "yellow-30",
          "warning-hover": "yellow-20",
          "error": "red-50",
          "success": "green-40",
          "border": "gray-80"
        }
      }
    }
  },
  "fonts": [
    {
      "role": "heading",
      "ref": "ibm-plex-sans@1.0.0",
      "family": "IBM Plex Sans",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "IBM Plex Sans",
        "url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
      },
      "fallbackStack": [
        "-apple-system",
        "BlinkMacSystemFont",
        "Segoe UI",
        "Roboto",
        "Helvetica Neue",
        "Arial",
        "sans-serif"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        }
      ]
    },
    {
      "role": "body",
      "ref": "ibm-plex-sans@1.0.0",
      "family": "IBM Plex Sans",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "IBM Plex Sans",
        "url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
      },
      "fallbackStack": [
        "-apple-system",
        "BlinkMacSystemFont",
        "Segoe UI",
        "Roboto",
        "Helvetica Neue",
        "Arial",
        "sans-serif"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        }
      ]
    },
    {
      "role": "serif",
      "ref": "ibm-plex-serif@1.0.0",
      "family": "IBM Plex Serif",
      "classification": "serif",
      "source": {
        "kind": "google-fonts",
        "family": "IBM Plex Serif",
        "url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
      },
      "fallbackStack": [
        "Iowan Old Style",
        "Apple Garamond",
        "Baskerville",
        "Times New Roman",
        "serif"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        }
      ]
    },
    {
      "role": "mono",
      "ref": "ibm-plex-mono@1.0.0",
      "family": "IBM Plex Mono",
      "classification": "monospace",
      "source": {
        "kind": "google-fonts",
        "family": "IBM Plex Mono",
        "url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
      },
      "fallbackStack": [
        "ui-monospace",
        "SFMono-Regular",
        "Menlo",
        "Consolas",
        "Liberation Mono",
        "monospace"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        }
      ]
    }
  ],
  "roles": {
    "colors": {
      "identity": "white",
      "on-identity": "gray-100",
      "primary": "blue-60",
      "primary-hover": "blue-70",
      "accent": "blue-60",
      "accent-hover": "blue-70",
      "mark": "blue-60",
      "success": "green-50",
      "warning": "yellow-30",
      "error": "red-60",
      "text-primary-light": "gray-100",
      "text-primary-dark": "gray-10",
      "background-light": "white",
      "background-dark": "gray-100",
      "surface-light": "gray-10",
      "surface-dark": "gray-90",
      "text-secondary-light": "gray-70",
      "text-tertiary-light": "gray-60",
      "border-light": "gray-30"
    },
    "typography": {
      "display": "heading",
      "prose": "body",
      "code": "mono"
    }
  },
  "assets": [],
  "rules": [
    {
      "type": "colorChoice",
      "target": "roles.colors.primary",
      "severity": "error",
      "rationale": "Carbon's `interactive-01` token resolves to Blue 60 (#0F62FE) on the White, g10, g90, and g100 themes; Blue 70 (#0043CE) is the documented active/pressed state on the light themes. The other chromatic 60-stops are reserved for tags, data-viz categories, and notification accents, not for the primary interactive role.\n",
      "allowed": [
        "blue-60",
        "blue-70"
      ],
      "forbidden": [
        "red-60",
        "green-50",
        "purple-60",
        "cyan-60",
        "teal-60"
      ]
    },
    {
      "type": "contrastRatio",
      "target": "text-primary",
      "severity": "error",
      "rationale": "Carbon's published accessibility commitment targets WCAG 2.1 AA at minimum. Gray 100 (#161616) on white clears AA at ~19:1 and Gray 10 (#F4F4F4) on Gray 100 clears AA at ~17:1 — both the light and dark theme primary text/background pairs satisfy the documented floor.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "forbiddenTreatment",
      "target": "logo",
      "severity": "error",
      "rationale": "IBM's brand-experience guidelines prohibit stretching, rotating, recoloring, outlining, or applying decorative treatments to the 8-bar IBM mark and wordmark. The mark renders in solid black or solid white only, on a clear space at least one bar-height on every side.\n",
      "treatments": [
        "stretched",
        "rotated",
        "recolored",
        "drop-shadow",
        "outlined",
        "gradient-fill",
        "on-busy-photo",
        "tilted"
      ]
    },
    {
      "type": "enumMembership",
      "target": "typography.heading.fontWeight",
      "severity": "warning",
      "rationale": "IBM Plex Sans ships in Thin, ExtraLight, Light (300), Regular (400), Text (450), Medium (500), SemiBold (600), and Bold (700). Carbon's documented type ramp anchors at Light, Regular, SemiBold, and Bold — heavier display cuts are not defined in Carbon's expressive heading scale.\n",
      "allowed": [
        "300",
        "400",
        "500",
        "600",
        "700"
      ]
    },
    {
      "type": "contextRestriction",
      "target": "roles.colors.error",
      "severity": "error",
      "rationale": "Carbon's `support-error` token resolves to Red 60 (#DA1E28). Reusing it for confirmation or positive data points inverts the established meaning Carbon-skinned IBM products rely on.\n",
      "allowedContexts": [
        "error-state",
        "destructive-action",
        "validation-failure"
      ],
      "forbiddenContexts": [
        "confirmation",
        "completion",
        "data-viz-positive"
      ]
    },
    {
      "type": "contextRestriction",
      "target": "roles.colors.success",
      "severity": "error",
      "rationale": "Carbon's `support-success` token resolves to Green 50 (#24A148) — the documented success/positive-state color across the White, g10, g90, and g100 themes. Using it for error states is incompatible with Carbon's semantic role contract.\n",
      "allowedContexts": [
        "confirmation",
        "completion",
        "data-viz-positive"
      ],
      "forbiddenContexts": [
        "error-state",
        "destructive-action"
      ]
    },
    {
      "type": "fontPairing",
      "target": "typography.display",
      "severity": "error",
      "rationale": "Carbon's productive and expressive type ramps both maintain at least a 1.5× ratio between heading and body. Plex Sans display at the same size as body destroys the hierarchy Carbon's components rely on for scannability.\n",
      "requires": "prose",
      "minSizeRatio": 1.5
    },
    {
      "type": "accessibilityRequirement",
      "target": "*",
      "severity": "error",
      "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Carbon publishes AA as its baseline conformance target across all four themes; consumers shipping IBM-branded surfaces must meet it.\n",
      "standard": "WCAG-AA",
      "criterion": "1.4.3"
    },
    {
      "type": "compositionConstraint",
      "target": "roles.colors.mark",
      "severity": "recommendation",
      "rationale": "The IBM 8-bar mark is calibrated to read as a solid block on white, near-white (Gray 10), or near-black (Gray 100). Placing Blue 60 — used as the brand-block fill on color treatments — adjacent to red-60, magenta-60, orange-60, or yellow-30 at equal weight produces chromatic vibration that conflicts with the institutional voice.\n",
      "pairsWith": [
        "white",
        "gray-10",
        "gray-100"
      ],
      "doesNotPairWith": [
        "red-60",
        "magenta-60",
        "orange-60",
        "yellow-30"
      ]
    }
  ]
}
