{
  "id": "python",
  "version": "1.0.0",
  "name": "Python",
  "description": "Python is a high-level, general-purpose, dynamically-typed programming language that emphasizes readability and the Zen of Python (\"explicit is better than implicit; readability counts\"). The brand voice is welcoming, pedagogical, and community-first — Python's growth has been carried by tutorials, scientific computing, and an inclusive Python Software Foundation (PSF) governance model. Visually, the brand pairs Python Blue (#3776AB) with Python Yellow (#FFD43B) in the two-snake logo, the equal-weight pairing being load-bearing.\n",
  "provenance": {
    "source": "https://www.python.org/community/logos/",
    "license": "Proprietary — All Rights Reserved",
    "attribution": "The Python logo and word mark are trademarks of the Python Software Foundation. Per the PSF Trademark Usage Policy, the logo may be used to indicate that a project or product works with Python; derived versions require advance PSF approval. This atom is brand-atoms' machine-readable encoding of the PSF logo's published color values; no logos are bundled.\n",
    "importedDate": "2026-05-18",
    "notes": "Python's brand-color hex values are not published as a formal palette page on python.org; the canonical values (#3776AB and #FFD43B) are the resolved fill colors in the official PSF logo SVG distributed at python.org/community/logos and are matched by the simple-icons project. The brand voice paragraph above draws from PSF's Diversity Statement and the community pages at python.org/community/.\n"
  },
  "tags": [
    "python",
    "programming-language",
    "psf",
    "open-source",
    "brand",
    "education"
  ],
  "palette": {
    "ref": "python@1.0.0",
    "swatches": [
      {
        "id": "python-blue",
        "name": "Python Blue",
        "value": "#3776AB",
        "description": "Primary brand color — the upper snake of the two-snake mark. Used as the dominant identity color across python.org.\n",
        "aliases": []
      },
      {
        "id": "python-yellow",
        "name": "Python Yellow",
        "value": "#FFD43B",
        "description": "Secondary brand color — the lower snake of the two-snake mark and the high-energy accent for callouts and CTAs.\n",
        "aliases": []
      },
      {
        "id": "python-dark-blue",
        "name": "Python Dark Blue",
        "value": "#1E415E",
        "description": "Deeper navy used for hover states and the dark-mode canvas.\n",
        "aliases": []
      },
      {
        "id": "python-dark-yellow",
        "name": "Python Dark Yellow",
        "value": "#FFC331",
        "description": "Deeper amber used for hover states on the yellow accent.\n",
        "aliases": []
      },
      {
        "id": "python-black",
        "name": "Python Black",
        "value": "#0E1217",
        "description": "Dark-mode page canvas.",
        "aliases": []
      },
      {
        "id": "python-charcoal",
        "name": "Python Charcoal",
        "value": "#1C232C",
        "description": "Elevated dark surface.",
        "aliases": []
      },
      {
        "id": "python-gray",
        "name": "Python Gray",
        "value": "#646464",
        "description": "Mid neutral for body text and dividers.",
        "aliases": []
      },
      {
        "id": "python-light-gray",
        "name": "Python Light Gray",
        "value": "#D5D5D5",
        "description": "Hairline borders on light canvas.",
        "aliases": []
      },
      {
        "id": "python-off-white",
        "name": "Python Off-White",
        "value": "#F4F4F4",
        "description": "Subtle layered surface on light canvas.",
        "aliases": []
      },
      {
        "id": "python-white",
        "name": "Python White",
        "value": "#FFFFFF",
        "description": "Page canvas in light mode.",
        "aliases": []
      },
      {
        "id": "python-success",
        "name": "Python Success Green",
        "value": "#3F924B",
        "description": "Status success color — used in PEP/issue badges.",
        "aliases": []
      }
    ],
    "modes": {
      "light": {
        "roles": {
          "background": "python-white",
          "surface": "python-off-white",
          "surface-elevated": "python-white",
          "text-primary": "python-dark-blue",
          "text-secondary": "python-gray",
          "text-tertiary": "python-blue",
          "primary": "python-blue",
          "primary-hover": "python-dark-blue",
          "accent": "python-yellow",
          "accent-hover": "python-dark-yellow",
          "warning": "python-yellow",
          "warning-hover": "python-dark-yellow",
          "error": "python-dark-yellow",
          "success": "python-success"
        }
      },
      "dark": {
        "roles": {
          "background": "python-black",
          "surface": "python-charcoal",
          "surface-elevated": "python-charcoal",
          "text-primary": "python-white",
          "text-secondary": "python-light-gray",
          "text-tertiary": "python-yellow",
          "primary": "python-yellow",
          "primary-hover": "python-dark-yellow",
          "accent": "python-blue",
          "accent-hover": "python-dark-blue",
          "warning": "python-yellow",
          "warning-hover": "python-dark-yellow",
          "error": "python-dark-yellow",
          "success": "python-success"
        }
      }
    }
  },
  "fonts": [
    {
      "role": "heading",
      "ref": "inter@1.0.0",
      "family": "Inter",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "Inter",
        "url": "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&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"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        },
        {
          "weight": 900,
          "style": "normal"
        },
        {
          "weight": 900,
          "style": "italic"
        }
      ]
    },
    {
      "role": "body",
      "ref": "inter@1.0.0",
      "family": "Inter",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "Inter",
        "url": "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&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"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        },
        {
          "weight": 900,
          "style": "normal"
        },
        {
          "weight": 900,
          "style": "italic"
        }
      ]
    },
    {
      "role": "mono",
      "ref": "source-code-pro@1.0.0",
      "family": "Source Code Pro",
      "classification": "monospace",
      "source": {
        "kind": "google-fonts",
        "family": "Source Code Pro",
        "url": "https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&display=swap"
      },
      "fallbackStack": [
        "ui-monospace",
        "SFMono-Regular",
        "Menlo",
        "Consolas",
        "Liberation Mono",
        "monospace"
      ],
      "availableStyles": [
        {
          "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"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        },
        {
          "weight": 900,
          "style": "normal"
        },
        {
          "weight": 900,
          "style": "italic"
        }
      ]
    }
  ],
  "roles": {
    "colors": {
      "identity": "python-blue",
      "on-identity": "python-white",
      "primary": "python-blue",
      "primary-hover": "python-dark-blue",
      "accent": "python-yellow",
      "accent-hover": "python-dark-yellow",
      "background": "python-white",
      "surface": "python-off-white",
      "text-primary": "python-dark-blue",
      "text-secondary": "python-gray"
    },
    "typography": {
      "display": "heading",
      "prose": "body",
      "code": "mono"
    }
  },
  "assets": [],
  "rules": [
    {
      "type": "compositionConstraint",
      "target": "logo",
      "severity": "error",
      "rationale": "The PSF two-snake logo is defined by the equal-weight pairing of Python Blue and Python Yellow. Reproducing only one snake or substituting other hues breaks the Foundation's mark identity.\n",
      "pairsWith": [
        "python-blue",
        "python-yellow"
      ]
    },
    {
      "type": "forbiddenTreatment",
      "target": "logo",
      "severity": "error",
      "rationale": "The PSF Trademark Usage Policy requires that the Python logo be reproduced \"with the right colors and fonts\" and that derived versions require PSF approval before use. Recoloring, rotating, or otherwise altering the mark violates the policy.\n",
      "treatments": [
        "recolored",
        "rotated",
        "skewed",
        "stretched",
        "derived-without-approval",
        "drop-shadow"
      ]
    },
    {
      "type": "colorChoice",
      "target": "roles.colors.identity",
      "severity": "error",
      "rationale": "Python Blue and Python Yellow are the two canonical identity colors. Other neutrals in this palette are supporting tones only.\n",
      "allowed": [
        "python-blue",
        "python-yellow"
      ]
    },
    {
      "type": "contrastRatio",
      "target": "text-primary",
      "severity": "error",
      "rationale": "Python Dark Blue (#1E415E) on Python White exceeds 9:1 — well above the WCAG AA threshold for body text.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "contrastRatio",
      "target": "roles.colors.primary",
      "severity": "warning",
      "rationale": "Python Blue (#3776AB) on White sits around 5.4:1 — clears AA for body text. Python Yellow (#FFD43B) on White does NOT clear AA; reserve yellow for large surfaces or pair with a dark canvas for legibility.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "fontPairing",
      "target": "typography.heading",
      "severity": "recommendation",
      "rationale": "Python.org and PSF surfaces use a single humanist sans for heading and body. Maintain at least a 1.5× heading-to-body ratio to preserve hierarchy.\n",
      "requires": "body",
      "minSizeRatio": 1.5
    },
    {
      "type": "contextRestriction",
      "target": "trademark.use",
      "severity": "error",
      "rationale": "The PSF Trademark Usage Policy requires permission before selling Python-branded merchandise and prohibits uses that imply official PSF endorsement.\n",
      "forbiddenContexts": [
        "implied-endorsement",
        "paid-merchandise-without-approval"
      ]
    },
    {
      "type": "accessibilityRequirement",
      "target": "*",
      "severity": "error",
      "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. The Python brand uses Blue as its AA-compliant interactive color; Yellow is reserved for large display and accent use only.\n",
      "standard": "WCAG-AA",
      "criterion": "1.4.3"
    }
  ]
}
