{
  "id": "penpot",
  "version": "1.0.0",
  "name": "Penpot",
  "description": "Penpot is the open-source design and prototyping platform — a browser-based design tool with components, libraries, and dev- handoff, built on web standards and licensed under MPL-2.0. The brand voice is open, community-led, and craft-confident. Visually, the identity is the Penpot Mint mark (#31EFB8) — an electric mint green — on a near-black canvas with white display type. Penpot's marketing surface leans dark to put the mint forward.\n",
  "provenance": {
    "source": "https://penpot.app/",
    "license": "MPL-2.0",
    "attribution": "Penpot is © Penpot S.L. and the Penpot community, licensed under the Mozilla Public License 2.0. Penpot publishes its brand assets openly. The primary brand color Penpot Mint (#31EFB8) is documented on Penpot's brand surfaces. brand-atoms catalogues the publicly documented signature color and authored neutrals; downstream use of the Penpot name and mark is governed by Penpot's open-source license and trademark guidance at penpot.app.\n",
    "importedDate": "2026-05-18",
    "notes": "Penpot is the only open-source brand in this batch — its license (Mozilla Public License 2.0) covers both the code and the published brand assets. Penpot's marketing pages render in a neutral humanist sans consistent with Inter; Inter is referenced here as the primary face and is already in the brand-atoms catalog.\n"
  },
  "tags": [
    "open-source",
    "design-tools",
    "penpot",
    "mpl-2-0"
  ],
  "palette": {
    "ref": "penpot@1.0.0",
    "swatches": [
      {
        "id": "penpot-mint",
        "name": "Penpot Mint",
        "value": "#31EFB8",
        "description": "Signature electric mint green. Primary brand color — used on the wordmark, the \"P\" mark, primary CTAs, and key interactive surfaces.\n",
        "aliases": []
      },
      {
        "id": "penpot-white",
        "name": "Penpot White",
        "value": "#FFFFFF",
        "description": "Display type on dark canvas; canvas on light mode.",
        "aliases": []
      },
      {
        "id": "penpot-black",
        "name": "Penpot Black",
        "value": "#18181A",
        "description": "Canonical dark canvas — the brand's preferred surface; also body text on light.",
        "aliases": []
      },
      {
        "id": "penpot-canvas-dark",
        "name": "Penpot Canvas Dark",
        "value": "#18181A",
        "description": "Authored dark-mode canvas — Penpot's preferred marketing surface.",
        "aliases": []
      },
      {
        "id": "penpot-surface-light",
        "name": "Penpot Surface Light",
        "value": "#F5F5F5",
        "description": "Authored panel surface for light mode.",
        "aliases": []
      },
      {
        "id": "penpot-surface-dark",
        "name": "Penpot Surface Dark",
        "value": "#2A2A2D",
        "description": "Authored elevated surface on dark mode.",
        "aliases": []
      },
      {
        "id": "penpot-text-secondary",
        "name": "Penpot Text Secondary",
        "value": "#6E6E76",
        "description": "Authored secondary text — neutral mid-gray on light canvas.",
        "aliases": []
      },
      {
        "id": "penpot-text-tertiary",
        "name": "Penpot Text Tertiary",
        "value": "#A0A0A8",
        "description": "Authored tertiary / muted text.",
        "aliases": []
      },
      {
        "id": "penpot-mint-hover",
        "name": "Penpot Mint Hover",
        "value": "#5EF3C7",
        "description": "Authored softer Penpot Mint for hover / active states.",
        "aliases": []
      }
    ],
    "modes": {
      "light": {
        "roles": {
          "background": "penpot-white",
          "surface": "penpot-surface-light",
          "surface-elevated": "penpot-white",
          "text-primary": "penpot-black",
          "text-secondary": "penpot-text-secondary",
          "text-tertiary": "penpot-text-tertiary",
          "primary": "penpot-mint",
          "primary-hover": "penpot-mint-hover",
          "accent": "penpot-mint",
          "accent-hover": "penpot-mint-hover",
          "warning": "penpot-mint",
          "warning-hover": "penpot-mint-hover",
          "error": "penpot-mint",
          "success": "penpot-mint"
        }
      },
      "dark": {
        "roles": {
          "background": "penpot-canvas-dark",
          "surface": "penpot-surface-dark",
          "surface-elevated": "penpot-surface-dark",
          "text-primary": "penpot-white",
          "text-secondary": "penpot-text-tertiary",
          "text-tertiary": "penpot-text-secondary",
          "primary": "penpot-mint",
          "primary-hover": "penpot-mint-hover",
          "accent": "penpot-mint",
          "accent-hover": "penpot-mint-hover",
          "warning": "penpot-mint",
          "warning-hover": "penpot-mint-hover",
          "error": "penpot-mint",
          "success": "penpot-mint"
        }
      }
    }
  },
  "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": "jetbrainsmono-nerdfont@1.0.0",
      "family": "JetBrainsMono Nerd Font",
      "classification": "monospace",
      "source": {
        "kind": "external",
        "family": "JetBrainsMono Nerd Font",
        "notes": "Nerd-Font-patched build of JetBrains Mono. Not available via Google Fonts. Download woff2/ttf files from the Nerd Fonts GitHub release and self-host, or install system-wide for terminal/IDE use.\n"
      },
      "fallbackStack": [
        "JetBrains Mono",
        "Fira Code",
        "Menlo",
        "Monaco",
        "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"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        }
      ]
    }
  ],
  "roles": {
    "colors": {
      "identity": "penpot-mint",
      "on-identity": "penpot-black",
      "primary": "penpot-mint",
      "primary-hover": "penpot-mint-hover",
      "accent": "penpot-mint",
      "accent-hover": "penpot-mint-hover",
      "success": "penpot-mint",
      "warning": "penpot-mint",
      "error": "penpot-mint",
      "background-light": "penpot-white",
      "background-dark": "penpot-canvas-dark",
      "surface-light": "penpot-surface-light",
      "surface-dark": "penpot-surface-dark",
      "text-primary-light": "penpot-black",
      "text-primary-dark": "penpot-white"
    },
    "typography": {
      "display": "heading",
      "prose": "body",
      "code": "mono"
    }
  },
  "assets": [],
  "rules": [
    {
      "type": "colorChoice",
      "target": "logo.mark",
      "severity": "error",
      "rationale": "The Penpot mark renders in Penpot Mint as the canonical fill, with white and near-black as the only sanctioned monochrome alternates. The MPL-2.0 license covers the code; Penpot's brand guidance restricts recoloring of the mark.\n",
      "allowed": [
        "penpot-mint",
        "penpot-white",
        "penpot-black"
      ],
      "forbidden": [
        "any-non-brand-color"
      ]
    },
    {
      "type": "forbiddenTreatment",
      "target": "logo",
      "severity": "error",
      "rationale": "Penpot's brand surfaces ask consumers not to stretch, rotate, recolor, or apply decorative effects to the mark — open-source distribution does not waive brand-use discipline.\n",
      "treatments": [
        "stretched",
        "rotated",
        "recolored",
        "drop-shadow",
        "on-busy-photo",
        "gradient-fill"
      ]
    },
    {
      "type": "contrastRatio",
      "target": "text-primary",
      "severity": "error",
      "rationale": "WCAG 2.1 Level AA contrast minimum for body text. Penpot White (#FFFFFF) on Penpot Black (#18181A) clears AA at very high contrast — the dark-canvas voice of the brand already satisfies the accessibility floor.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "variantSelection",
      "target": "logo",
      "severity": "error",
      "rationale": "On the canonical dark canvas, use the Penpot Mint mark variant; do not invert the mark into white on dark, as that loses the brand's signature mint identity.\n",
      "when": {
        "backgroundColorScheme": "dark"
      },
      "use": "logo-mint"
    },
    {
      "type": "variantSelection",
      "target": "logo",
      "severity": "recommendation",
      "rationale": "On light surfaces, the Penpot Mint mark may render at low contrast on white; consider a dark-fill monochrome variant for body-text-adjacent placements where contrast matters.\n",
      "when": {
        "backgroundColorScheme": "light"
      },
      "use": "logo-dark"
    },
    {
      "type": "compositionConstraint",
      "target": "roles.colors.identity",
      "severity": "recommendation",
      "rationale": "Penpot Mint is calibrated to read on the near-black canvas Penpot prefers in marketing. Pairing it with another saturated hue at the same weight breaks the focused open- source voice of the brand surface.\n",
      "pairsWith": [
        "penpot-black",
        "penpot-canvas-dark",
        "penpot-white"
      ]
    },
    {
      "type": "enumMembership",
      "target": "typography.heading.fontWeight",
      "severity": "warning",
      "rationale": "Penpot's marketing surfaces render display headings in the 500–700 band against the dark canvas; lighter weights lose contrast on the dark surface.\n",
      "allowed": [
        "500",
        "600",
        "700"
      ]
    },
    {
      "type": "accessibilityRequirement",
      "target": "*",
      "severity": "error",
      "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Penpot-skinned surfaces must clear AA on body text; note that Penpot Mint must not be used as a body-text color on white because it fails AA.\n",
      "standard": "WCAG-AA",
      "criterion": "1.4.3"
    }
  ]
}
