{
  "$description": "Brand: Bloomberg — light mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette bloomberg@1.0.0",
      "black": {
        "$value": "#000000",
        "$type": "color",
        "$description": "phx-color-core-black — terminal-black canvas in dark mode."
      },
      "gray-1000": {
        "$value": "#1C1C1C",
        "$type": "color",
        "$description": "phx-color-core-gray-1000 — deepest gray ink."
      },
      "gray-900": {
        "$value": "#262626",
        "$type": "color",
        "$description": "phx-color-core-gray-900 — primary body text on light."
      },
      "gray-800": {
        "$value": "#3C3C3C",
        "$type": "color",
        "$description": "phx-color-core-gray-800 — secondary heading text."
      },
      "gray-700": {
        "$value": "#545454",
        "$type": "color",
        "$description": "phx-color-core-gray-700 — secondary body text."
      },
      "gray-600": {
        "$value": "#767676",
        "$type": "color",
        "$description": "phx-color-core-gray-600 — tertiary meta text."
      },
      "gray-500": {
        "$value": "#999999",
        "$type": "color",
        "$description": "phx-color-core-gray-500 — disabled text on light."
      },
      "gray-400": {
        "$value": "#B3B3B3",
        "$type": "color",
        "$description": "phx-color-core-gray-400 — border weight."
      },
      "gray-300": {
        "$value": "#CCCCCC",
        "$type": "color",
        "$description": "phx-color-core-gray-300 — quiet divider."
      },
      "gray-200": {
        "$value": "#EFEFEF",
        "$type": "color",
        "$description": "phx-color-core-gray-200 — quiet inset surface."
      },
      "gray-100": {
        "$value": "#F8F8F8",
        "$type": "color",
        "$description": "phx-color-core-gray-100 — lightest surface tint."
      },
      "white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "phx-color-core-white — page canvas."
      },
      "yellow-400": {
        "$value": "#FFCD1E",
        "$type": "color",
        "$description": "phx-color-core-yellow-400 — signature Bloomberg yellow; ticker accent."
      },
      "yellow-300": {
        "$value": "#FFDA5D",
        "$type": "color",
        "$description": "phx-color-core-yellow-300 — lighter yellow accent."
      },
      "yellow-500": {
        "$value": "#E6B120",
        "$type": "color",
        "$description": "phx-color-core-yellow-500 — pressed yellow."
      },
      "yellow-600": {
        "$value": "#C48600",
        "$type": "color",
        "$description": "phx-color-core-yellow-600 — deepest emphasis yellow."
      },
      "red-500": {
        "$value": "#E51503",
        "$type": "color",
        "$description": "phx-color-core-red-500 — alert / breaking-news red."
      },
      "red-400": {
        "$value": "#F05143",
        "$type": "color",
        "$description": "phx-color-core-red-400 — quiet alert state."
      },
      "red-600": {
        "$value": "#B20E01",
        "$type": "color",
        "$description": "phx-color-core-red-600 — pressed alert."
      },
      "green-500": {
        "$value": "#338736",
        "$type": "color",
        "$description": "phx-color-core-green-500 — market-up signal."
      },
      "green-400": {
        "$value": "#4DB250",
        "$type": "color",
        "$description": "phx-color-core-green-400 — quiet positive."
      },
      "green-600": {
        "$value": "#146917",
        "$type": "color",
        "$description": "phx-color-core-green-600 — pressed positive."
      },
      "opinion-500": {
        "$value": "#0064FA",
        "$type": "color",
        "$description": "phx-color-secondary-opinion-500 — Bloomberg Opinion link blue."
      },
      "opinion-600": {
        "$value": "#004EC4",
        "$type": "color",
        "$description": "phx-color-secondary-opinion-600 — pressed Opinion link."
      },
      "opinion-200": {
        "$value": "#D4E5FF",
        "$type": "color",
        "$description": "phx-color-secondary-opinion-200 — quiet Opinion surface tint."
      },
      "subscription-500": {
        "$value": "#4F4FFF",
        "$type": "color",
        "$description": "phx-color-secondary-subscription-500 — Bloomberg subscription-product accent."
      },
      "subscription-700": {
        "$value": "#2800D7",
        "$type": "color",
        "$description": "phx-color-secondary-subscription-700 — deep subscription accent."
      }
    },
    "roles": {
      "$description": "Semantic color roles (light mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.white}",
        "$type": "color",
        "$description": "background role → White"
      },
      "surface": {
        "$value": "{color.swatches.gray-100}",
        "$type": "color",
        "$description": "surface role → Gray 100"
      },
      "surface-elevated": {
        "$value": "{color.swatches.white}",
        "$type": "color",
        "$description": "surface-elevated role → White"
      },
      "text-primary": {
        "$value": "{color.swatches.gray-1000}",
        "$type": "color",
        "$description": "text-primary role → Gray 1000"
      },
      "text-secondary": {
        "$value": "{color.swatches.gray-700}",
        "$type": "color",
        "$description": "text-secondary role → Gray 700"
      },
      "text-tertiary": {
        "$value": "{color.swatches.gray-600}",
        "$type": "color",
        "$description": "text-tertiary role → Gray 600"
      },
      "primary": {
        "$value": "{color.swatches.opinion-500}",
        "$type": "color",
        "$description": "primary role → Opinion Blue 500"
      },
      "primary-hover": {
        "$value": "{color.swatches.opinion-600}",
        "$type": "color",
        "$description": "primary-hover role → Opinion Blue 600"
      },
      "accent": {
        "$value": "{color.swatches.yellow-400}",
        "$type": "color",
        "$description": "accent role → Bloomberg Yellow 400"
      },
      "accent-hover": {
        "$value": "{color.swatches.yellow-500}",
        "$type": "color",
        "$description": "accent-hover role → Yellow 500"
      },
      "warning": {
        "$value": "{color.swatches.yellow-600}",
        "$type": "color",
        "$description": "warning role → Yellow 600"
      },
      "error": {
        "$value": "{color.swatches.red-500}",
        "$type": "color",
        "$description": "error role → Red 500"
      },
      "success": {
        "$value": "{color.swatches.green-500}",
        "$type": "color",
        "$description": "success role → Green 500"
      },
      "border": {
        "$value": "{color.swatches.gray-300}",
        "$type": "color",
        "$description": "border role → Gray 300"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.black}",
          "$type": "color",
          "$description": "Brand role identity → Black"
        },
        "on-identity": {
          "$value": "{color.swatches.yellow-400}",
          "$type": "color",
          "$description": "Brand role on-identity → Bloomberg Yellow 400"
        },
        "primary": {
          "$value": "{color.swatches.opinion-500}",
          "$type": "color",
          "$description": "Brand role primary → Opinion Blue 500"
        },
        "primary-hover": {
          "$value": "{color.swatches.opinion-600}",
          "$type": "color",
          "$description": "Brand role primary-hover → Opinion Blue 600"
        },
        "accent": {
          "$value": "{color.swatches.yellow-400}",
          "$type": "color",
          "$description": "Brand role accent → Bloomberg Yellow 400"
        },
        "accent-hover": {
          "$value": "{color.swatches.yellow-500}",
          "$type": "color",
          "$description": "Brand role accent-hover → Yellow 500"
        },
        "mark": {
          "$value": "{color.swatches.yellow-400}",
          "$type": "color",
          "$description": "Brand role mark → Bloomberg Yellow 400"
        },
        "success": {
          "$value": "{color.swatches.green-500}",
          "$type": "color",
          "$description": "Brand role success → Green 500"
        },
        "warning": {
          "$value": "{color.swatches.yellow-600}",
          "$type": "color",
          "$description": "Brand role warning → Yellow 600"
        },
        "error": {
          "$value": "{color.swatches.red-500}",
          "$type": "color",
          "$description": "Brand role error → Red 500"
        },
        "text-primary-light": {
          "$value": "{color.swatches.gray-1000}",
          "$type": "color",
          "$description": "Brand role text-primary-light → Gray 1000"
        },
        "text-primary-dark": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role text-primary-dark → White"
        },
        "background-light": {
          "$value": "{color.swatches.white}",
          "$type": "color",
          "$description": "Brand role background-light → White"
        },
        "background-dark": {
          "$value": "{color.swatches.black}",
          "$type": "color",
          "$description": "Brand role background-dark → Black"
        },
        "surface-light": {
          "$value": "{color.swatches.gray-100}",
          "$type": "color",
          "$description": "Brand role surface-light → Gray 100"
        },
        "surface-dark": {
          "$value": "{color.swatches.gray-1000}",
          "$type": "color",
          "$description": "Brand role surface-dark → Gray 1000"
        },
        "text-secondary-light": {
          "$value": "{color.swatches.gray-700}",
          "$type": "color",
          "$description": "Brand role text-secondary-light → Gray 700"
        },
        "text-tertiary-light": {
          "$value": "{color.swatches.gray-600}",
          "$type": "color",
          "$description": "Brand role text-tertiary-light → Gray 600"
        },
        "border-light": {
          "$value": "{color.swatches.gray-300}",
          "$type": "color",
          "$description": "Brand role border-light → Gray 300"
        }
      }
    }
  },
  "font": {
    "$description": "Typography roles mapped to font atoms",
    "heading": {
      "family": {
        "$value": [
          "Source Serif 4",
          "Iowan Old Style",
          "Apple Garamond",
          "Baskerville",
          "Times New Roman",
          "serif"
        ],
        "$type": "fontFamily",
        "$description": "heading role → Source Serif 4 (source-serif-4@1.0.0)"
      },
      "weight": {
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "body": {
      "family": {
        "$value": [
          "Source Serif 4",
          "Iowan Old Style",
          "Apple Garamond",
          "Baskerville",
          "Times New Roman",
          "serif"
        ],
        "$type": "fontFamily",
        "$description": "body role → Source Serif 4 (source-serif-4@1.0.0)"
      },
      "weight": {
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "sans": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "sans role → Inter (inter@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "900": {
          "$value": 900,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    },
    "mono": {
      "family": {
        "$value": [
          "JetBrainsMono Nerd Font",
          "JetBrains Mono",
          "Fira Code",
          "Menlo",
          "Monaco",
          "Consolas",
          "Liberation Mono",
          "monospace"
        ],
        "$type": "fontFamily",
        "$description": "mono role → JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)"
      },
      "weight": {
        "100": {
          "$value": 100,
          "$type": "fontWeight"
        },
        "200": {
          "$value": 200,
          "$type": "fontWeight"
        },
        "300": {
          "$value": 300,
          "$type": "fontWeight"
        },
        "400": {
          "$value": 400,
          "$type": "fontWeight"
        },
        "500": {
          "$value": 500,
          "$type": "fontWeight"
        },
        "600": {
          "$value": 600,
          "$type": "fontWeight"
        },
        "700": {
          "$value": 700,
          "$type": "fontWeight"
        },
        "800": {
          "$value": 800,
          "$type": "fontWeight"
        },
        "$description": "Available font weights"
      }
    }
  }
}
