{
  "$description": "Brand: Bloomberg (bloomberg@1.0.0)",
  "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."
      }
    }
  },
  "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"
      }
    }
  },
  "$extensions": {
    "com.brand-atoms.rules": [
      {
        "type": "contrastRatio",
        "target": "text-primary",
        "severity": "error",
        "rationale": "Gray 1000 (#1C1C1C) on white gives ~16:1 — past AAA. Bloomberg's editorial surfaces sit alongside dense data tables and chart legends. The AAA contrast target supports both the long-form journalism and the data-density that define the brand.\n",
        "against": "background",
        "minRatio": 7,
        "standard": "WCAG-AAA"
      },
      {
        "type": "colorChoice",
        "target": "roles.colors.accent",
        "severity": "error",
        "rationale": "Bloomberg yellow is the singular brand identity color across the Terminal and consumer surfaces. The opinion blue is reserved for Bloomberg Opinion link affordances, and the subscription violet for subscription product accents — neither stands in for the accent role without breaking the brand's editorial taxonomy.\n",
        "allowed": [
          "yellow-400",
          "yellow-500",
          "yellow-300"
        ],
        "forbidden": [
          "opinion-500",
          "subscription-500",
          "red-500"
        ]
      },
      {
        "type": "contextRestriction",
        "target": "roles.colors.primary",
        "severity": "error",
        "rationale": "Opinion blue (#0064FA) is published in Phoenix tokens as a secondary-opinion color — it carries link semantics for Bloomberg Opinion content. Using it for terminal chrome or subscription marketing would conflict with the Phoenix-defined product hierarchy.\n",
        "allowedContexts": [
          "opinion",
          "default-link",
          "editorial-cta"
        ],
        "forbiddenContexts": [
          "terminal-chrome",
          "ticker-accent",
          "subscription-marketing"
        ]
      },
      {
        "type": "fontPairing",
        "target": "typography.display",
        "severity": "error",
        "rationale": "Bloomberg's editorial pages pair Mecano display headlines with Publico Text body. The display-to-prose hierarchy is part of the editorial voice; a 1.5× minimum ratio preserves it when open-source substitutes (Source Serif 4) stand in for the proprietary primaries.\n",
        "requires": "prose",
        "minSizeRatio": 1.5
      },
      {
        "type": "forbiddenTreatment",
        "target": "logo",
        "severity": "error",
        "rationale": "The Bloomberg wordmark and the Terminal logotype are tightly governed brand assets. Recoloring (especially away from black or yellow), stretching, or applying gradients conflicts with the brand's data-precision voice.\n",
        "treatments": [
          "stretched",
          "rotated",
          "recolored",
          "drop-shadow",
          "gradient-fill",
          "on-busy-photo"
        ]
      },
      {
        "type": "accessibilityRequirement",
        "target": "*",
        "severity": "warning",
        "rationale": "WCAG 2.1 Success Criterion 1.4.6 (Contrast Enhanced) — Level AAA. Bloomberg readers spend long sessions on data tables, chart legends, and dense prose; the enhanced contrast target supports that reading posture.\n",
        "standard": "WCAG-AAA",
        "criterion": "1.4.6"
      },
      {
        "type": "contextRestriction",
        "target": "roles.colors.success",
        "severity": "error",
        "rationale": "In Bloomberg market data, green signals positive movement. Reusing it for failure states would conflict with the established market-color semantics that underpin every financial chart on the Terminal.\n",
        "allowedContexts": [
          "market-up",
          "data-viz-positive",
          "confirmation"
        ],
        "forbiddenContexts": [
          "error-state",
          "destructive-action"
        ]
      },
      {
        "type": "enumMembership",
        "target": "typography.heading.fontWeight",
        "severity": "warning",
        "rationale": "Mecano and Avenir Next on Bloomberg pages cover Regular through Extra-Bold. Heavier weights beyond the licensed cut are not represented in the live stylesheet; the Source Serif 4 / Inter substitutes should mirror the same range.\n",
        "allowed": [
          "400",
          "500",
          "600",
          "700",
          "800"
        ]
      },
      {
        "type": "compositionConstraint",
        "target": "roles.colors.accent",
        "severity": "recommendation",
        "rationale": "Bloomberg yellow reads cleanest against the terminal black or the white canvas. Placing it adjacent to the opinion blue or subscription violet introduces a chromatic collision between identity-yellow and product-accent colors that Phoenix treats as a hierarchy violation.\n",
        "pairsWith": [
          "black",
          "gray-1000",
          "white",
          "gray-100"
        ],
        "doesNotPairWith": [
          "opinion-500",
          "subscription-500",
          "red-500"
        ]
      }
    ],
    "com.brand-atoms.assets": [],
    "com.brand-atoms.provenance": {
      "source": "https://www.bloomberg.com/",
      "license": "Proprietary — All Rights Reserved",
      "attribution": "Bloomberg L.P. — visual identity captured from the deployed Phoenix design-system tokens (--phx-color-*) on assets.bwbx.io, the Next.js asset CDN that serves bloomberg.com. Bloomberg, the Bloomberg Terminal, Mecano, Avenir Next, and Publico Head / Publico Text are property of Bloomberg L.P.\n",
      "importedDate": "2026-05-19",
      "notes": "Derived from live site CSS at https://www.bloomberg.com/ on 2026-05-19; no public brand guide located. The proprietary Bloomberg Mecano (display serif/sans), Avenir Next (sans), and Publico Head / Publico Text (serif) typefaces are declared in the live stylesheet but are not publicly distributed. Open-source substitutes — source-serif-4@1 for the serif role and inter@1 for the sans role — are referenced from this brand atom.\n"
    },
    "com.brand-atoms.references": {
      "palette": "bloomberg@1.0.0",
      "fonts": {
        "heading": "source-serif-4@1.0.0",
        "body": "source-serif-4@1.0.0",
        "sans": "inter@1.0.0",
        "mono": "jetbrainsmono-nerdfont@1.0.0"
      }
    }
  }
}
