{
  "$description": "Brand: Stripe (stripe@1.0.0)",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette stripe@1.0.0",
      "stripe-purple": {
        "$value": "#635BFF",
        "$type": "color",
        "$description": "The signature brand color. Primary buttons, links, gradient anchors."
      },
      "stripe-purple-pressed": {
        "$value": "#533AFD",
        "$type": "color",
        "$description": "Active / pressed state of the primary purple."
      },
      "stripe-purple-soft": {
        "$value": "#E8E9FF",
        "$type": "color",
        "$description": "Tinted backgrounds, badges, on-brand call-out cards."
      },
      "stripe-slate-100": {
        "$value": "#061B31",
        "$type": "color",
        "$description": "Deepest slate — large headings on light surfaces."
      },
      "stripe-slate-90": {
        "$value": "#0A2540",
        "$type": "color",
        "$description": "Standard heading slate, dark module backgrounds."
      },
      "stripe-slate-70": {
        "$value": "#3C4F69",
        "$type": "color",
        "$description": "Secondary heading / large body text."
      },
      "stripe-slate-50": {
        "$value": "#425466",
        "$type": "color",
        "$description": "Default body-text gray-blue."
      },
      "stripe-slate-30": {
        "$value": "#667691",
        "$type": "color",
        "$description": "Muted text and tertiary labels."
      },
      "stripe-white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Pure white surface."
      },
      "stripe-fog-0": {
        "$value": "#F6F9FC",
        "$type": "color",
        "$description": "Page canvas — the off-white Stripe uses behind content."
      },
      "stripe-fog-1": {
        "$value": "#E5EDF5",
        "$type": "color",
        "$description": "Subtle dividers and elevated-surface tints."
      },
      "stripe-fog-2": {
        "$value": "#CFD7DF",
        "$type": "color",
        "$description": "Border / hairline."
      },
      "stripe-green": {
        "$value": "#2CA25E",
        "$type": "color",
        "$description": "Success / confirmation green."
      },
      "stripe-orange": {
        "$value": "#E17A38",
        "$type": "color",
        "$description": "Warm accent used in gradient surfaces."
      },
      "stripe-magenta": {
        "$value": "#F44BCC",
        "$type": "color",
        "$description": "Hot accent — appears in Stripe's brand gradients."
      },
      "stripe-pink": {
        "$value": "#FF5996",
        "$type": "color",
        "$description": "Light pink accent used in illustration."
      },
      "stripe-red": {
        "$value": "#EA2261",
        "$type": "color",
        "$description": "Error / destructive action."
      }
    }
  },
  "font": {
    "$description": "Typography roles mapped to font atoms",
    "heading": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "heading 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"
      }
    },
    "body": {
      "family": {
        "$value": [
          "Inter",
          "-apple-system",
          "BlinkMacSystemFont",
          "Segoe UI",
          "Roboto",
          "Helvetica Neue",
          "Arial",
          "sans-serif"
        ],
        "$type": "fontFamily",
        "$description": "body 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": "Stripe Slate 90 (#0A2540) on Fog 0 (#F6F9FC) is ~14:1; well above AA. White on Slate 100 (#061B31) is ~15:1. Both directions clear AA with substantial margin.\n",
        "against": "background",
        "minRatio": 4.5,
        "standard": "WCAG-AA"
      },
      {
        "type": "colorChoice",
        "target": "roles.colors.primary",
        "severity": "error",
        "rationale": "Stripe Purple (#635BFF) is the signature brand color and the only token that may carry \"primary action\" semantics. stripe-purple-soft is a tinted-background variant; magenta and pink appear in illustration gradients only and must not be used as primary buttons or links.\n",
        "allowed": [
          "stripe-purple",
          "stripe-purple-pressed"
        ],
        "forbidden": [
          "stripe-purple-soft",
          "stripe-magenta",
          "stripe-pink"
        ]
      },
      {
        "type": "forbiddenTreatment",
        "target": "logo",
        "severity": "error",
        "rationale": "Stripe's Marks Usage Agreement forbids modifying or altering the Stripe word mark \"in any way\" and prohibits use that implies endorsement. Apply the official monochrome variants on appropriate light/dark surfaces; do not derive new treatments.\n",
        "treatments": [
          "stretched",
          "rotated",
          "recolored",
          "drop-shadow",
          "outlined",
          "on-busy-photo"
        ]
      },
      {
        "type": "enumMembership",
        "target": "typography.heading.fontWeight",
        "severity": "warning",
        "rationale": "Stripe's marketing surfaces use Söhne Book / Regular (400), Medium (500), and Semibold (600). Heavier weights appear in brand wordmarks only, not in body or display headings.\n",
        "allowed": [
          "400",
          "500",
          "600"
        ]
      },
      {
        "type": "contextRestriction",
        "target": "roles.colors.accent",
        "severity": "error",
        "rationale": "Stripe Purple is the brand identity color, not an alert color. Destructive states use stripe-red; warnings use stripe-orange. Reusing the brand purple for destruction breaks the established semantic mapping.\n",
        "forbiddenContexts": [
          "error-state",
          "destructive-action"
        ]
      },
      {
        "type": "contrastRatio",
        "target": "roles.colors.primary",
        "severity": "error",
        "rationale": "Stripe Purple (#635BFF) on Fog 0 reaches ~4.6:1 — at the AA threshold for normal text. Buttons using the purple as a fill with white text exceed 6:1; this rule guards link usage so the brand interactive color stays AA-compliant against the canvas.\n",
        "against": "background",
        "minRatio": 4.5,
        "standard": "WCAG-AA"
      },
      {
        "type": "compositionConstraint",
        "target": "roles.colors.primary",
        "severity": "recommendation",
        "rationale": "The brand pairs purple with neutrals (white, fog, slate). Magenta and pink are reserved for illustration / gradient surfaces and clash with the purple in adjacent UI placements.\n",
        "pairsWith": [
          "stripe-white",
          "stripe-fog-0",
          "stripe-slate-100"
        ],
        "doesNotPairWith": [
          "stripe-magenta",
          "stripe-pink"
        ]
      }
    ],
    "com.brand-atoms.assets": [],
    "com.brand-atoms.provenance": {
      "source": "https://stripe.com/newsroom/brand-assets",
      "license": "Proprietary — All Rights Reserved",
      "attribution": "Stripe, Inc. — visual identity captured from the deployed stylesheet on stripe.com and the Stripe Newsroom brand assets page. All Stripe marks, logos, and brand elements are subject to Stripe's Marks Usage Agreement at stripe.com/marks/legal.\n",
      "importedDate": "2026-05-17",
      "notes": "Stripe's brand font is Söhne (sohne-var on stripe.com), licensed from Klim Type Foundry — not \"Stripe Sans\" as sometimes reported by third-party trackers. Söhne is a commercial proprietary face; this atom references Inter@1 as the open-source rendering substitute and notes the proprietary primary in this provenance block.\n"
    },
    "com.brand-atoms.references": {
      "palette": "stripe@1.0.0",
      "fonts": {
        "heading": "inter@1.0.0",
        "body": "inter@1.0.0",
        "mono": "jetbrainsmono-nerdfont@1.0.0"
      }
    }
  }
}
