{
  "id": "postman",
  "version": "1.0.0",
  "name": "Postman",
  "description": "Postman is the API platform — request builder, collection runner, workspace collaboration, and API governance. The brand voice is developer-direct, warm, and tooling-confident: a saturated orange (#FF6C37) anchors the identity, a clean light canvas carries the marketing surface, and a deep \"Postman Plum\" inverts the product chrome for hero modules. Typography on the marketing site is the proprietary \"degular\" display sans paired with IBM Plex Mono for code; the brand is light-first.\n",
  "provenance": {
    "source": "https://www.postman.com/",
    "license": "Proprietary — All Rights Reserved",
    "attribution": "Postman and the Postman mark are trademarks of Postman, Inc. Visual identity captured from the deployed stylesheet on postman.com (--demo-brand, --demo-content-*, --demo-bg-*, --demo-font, --demo-font-code token families).\n",
    "importedDate": "2026-05-19",
    "notes": "Derived from live site CSS at https://www.postman.com/ on 2026-05-19; no public brand guide located. The brand-guidelines URL at postman.com/company/brand-guidelines returned HTTP 404, so the live site is the authoritative source. The proprietary \"degular\" display sans is declared via @font-face on postman.com but is not publicly distributed; Plus Jakarta Sans is the closest open-source rendering substitute. IBM Plex Mono is the code face declared on the live site and is open-source.\n"
  },
  "tags": [
    "postman",
    "api",
    "developer-tools",
    "orange",
    "light-first"
  ],
  "palette": {
    "ref": "postman@1.0.0",
    "swatches": [
      {
        "id": "postman-orange",
        "name": "Postman Orange",
        "value": "#FF6C37",
        "description": "Postman's signature brand orange — the primary action color.",
        "aliases": []
      },
      {
        "id": "postman-orange-pressed",
        "name": "Postman Orange Pressed",
        "value": "#E0531F",
        "description": "Pressed / active variant of postman orange used on hover surfaces.",
        "aliases": []
      },
      {
        "id": "postman-orange-deep",
        "name": "Postman Orange Deep",
        "value": "#D23F0E",
        "description": "Deep brand orange used for text-on-light brand accents.",
        "aliases": []
      },
      {
        "id": "postman-orange-tint",
        "name": "Postman Orange Tint",
        "value": "#FFF1EB",
        "description": "Pale orange wash for brand-tinted surfaces (badges, notices).",
        "aliases": []
      },
      {
        "id": "postman-canvas",
        "name": "Postman Canvas",
        "value": "#FFFFFF",
        "description": "Page canvas — the bright neutral surface postman.com reads against.",
        "aliases": []
      },
      {
        "id": "postman-surface",
        "name": "Postman Surface",
        "value": "#F9F9F9",
        "description": "Subtle elevated surface; one step warmer than canvas.",
        "aliases": []
      },
      {
        "id": "postman-surface-elevated",
        "name": "Postman Surface Elevated",
        "value": "#F2F2F2",
        "description": "Card / panel surface elevated above postman-surface.",
        "aliases": []
      },
      {
        "id": "postman-border-subdued",
        "name": "Postman Border Subdued",
        "value": "#F2F2F2",
        "description": "Quietest divider; near-canvas border.",
        "aliases": []
      },
      {
        "id": "postman-border",
        "name": "Postman Border",
        "value": "#EDEDED",
        "description": "Default divider on the postman canvas.",
        "aliases": []
      },
      {
        "id": "postman-border-strong",
        "name": "Postman Border Strong",
        "value": "#E6E6E6",
        "description": "Strong divider for elevated cards and form fields.",
        "aliases": []
      },
      {
        "id": "postman-ink",
        "name": "Postman Ink",
        "value": "#212121",
        "description": "Primary text on postman canvas — deep near-black.",
        "aliases": []
      },
      {
        "id": "postman-ink-secondary",
        "name": "Postman Ink Secondary",
        "value": "#6B6B6B",
        "description": "Secondary text; mid-gray body copy de-emphasis.",
        "aliases": []
      },
      {
        "id": "postman-ink-tertiary",
        "name": "Postman Ink Tertiary",
        "value": "#A6A6A6",
        "description": "Tertiary text / caption tone — placeholder ink.",
        "aliases": []
      },
      {
        "id": "postman-plum",
        "name": "Postman Plum",
        "value": "#140B1E",
        "description": "Dark canvas — the deep plum used on hero modules and product chrome.",
        "aliases": []
      },
      {
        "id": "postman-success",
        "name": "Postman Success",
        "value": "#007F31",
        "description": "Confirmation / success state green.",
        "aliases": []
      },
      {
        "id": "postman-success-active",
        "name": "Postman Success Active",
        "value": "#0CBB52",
        "description": "Brighter active-green used for \"running\" / \"connected\" status pips.",
        "aliases": []
      },
      {
        "id": "postman-warning",
        "name": "Postman Warning",
        "value": "#AD7A03",
        "description": "Warning / caution state amber.",
        "aliases": []
      },
      {
        "id": "postman-error",
        "name": "Postman Error",
        "value": "#8E1A10",
        "description": "Error / destructive state red.",
        "aliases": []
      },
      {
        "id": "postman-purple",
        "name": "Postman Purple",
        "value": "#4C207D",
        "description": "Supporting purple — used for category badges and chrome accents.",
        "aliases": []
      }
    ],
    "modes": {
      "light": {
        "roles": {
          "background": "postman-canvas",
          "surface": "postman-surface",
          "surface-elevated": "postman-surface-elevated",
          "text-primary": "postman-ink",
          "text-secondary": "postman-ink-secondary",
          "text-tertiary": "postman-ink-tertiary",
          "primary": "postman-orange",
          "primary-hover": "postman-orange-pressed",
          "accent": "postman-orange",
          "accent-hover": "postman-orange-pressed",
          "success": "postman-success",
          "warning": "postman-warning",
          "error": "postman-error",
          "border": "postman-border"
        }
      },
      "dark": {
        "roles": {
          "background": "postman-plum",
          "surface": "postman-ink",
          "surface-elevated": "postman-ink-secondary",
          "text-primary": "postman-canvas",
          "text-secondary": "postman-surface-elevated",
          "text-tertiary": "postman-ink-tertiary",
          "primary": "postman-orange",
          "primary-hover": "postman-orange-pressed",
          "accent": "postman-orange",
          "accent-hover": "postman-orange-pressed",
          "success": "postman-success-active",
          "warning": "postman-warning",
          "error": "postman-error",
          "border": "postman-ink-secondary"
        }
      }
    }
  },
  "fonts": [
    {
      "role": "heading",
      "ref": "plus-jakarta-sans@1.0.0",
      "family": "Plus Jakarta Sans",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "Plus Jakarta Sans",
        "url": "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap"
      },
      "fallbackStack": [
        "-apple-system",
        "BlinkMacSystemFont",
        "Segoe UI",
        "Roboto",
        "Helvetica Neue",
        "Arial",
        "sans-serif"
      ],
      "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"
        }
      ]
    },
    {
      "role": "body",
      "ref": "plus-jakarta-sans@1.0.0",
      "family": "Plus Jakarta Sans",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "Plus Jakarta Sans",
        "url": "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap"
      },
      "fallbackStack": [
        "-apple-system",
        "BlinkMacSystemFont",
        "Segoe UI",
        "Roboto",
        "Helvetica Neue",
        "Arial",
        "sans-serif"
      ],
      "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"
        }
      ]
    },
    {
      "role": "mono",
      "ref": "ibm-plex-mono@1.0.0",
      "family": "IBM Plex Mono",
      "classification": "monospace",
      "source": {
        "kind": "google-fonts",
        "family": "IBM Plex Mono",
        "url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap"
      },
      "fallbackStack": [
        "ui-monospace",
        "SFMono-Regular",
        "Menlo",
        "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"
        }
      ]
    }
  ],
  "roles": {
    "colors": {
      "identity": "postman-orange",
      "on-identity": "postman-canvas",
      "primary": "postman-orange",
      "primary-hover": "postman-orange-pressed",
      "accent": "postman-orange",
      "accent-hover": "postman-orange-pressed",
      "mark": "postman-orange",
      "success": "postman-success",
      "warning": "postman-warning",
      "error": "postman-error",
      "text-primary-light": "postman-ink",
      "text-primary-dark": "postman-canvas",
      "background-light": "postman-canvas",
      "background-dark": "postman-plum",
      "surface-light": "postman-surface",
      "surface-dark": "postman-ink",
      "text-secondary-light": "postman-ink-secondary",
      "text-tertiary-light": "postman-ink-tertiary",
      "border-light": "postman-border"
    },
    "typography": {
      "display": "heading",
      "prose": "body",
      "code": "mono"
    }
  },
  "assets": [],
  "rules": [
    {
      "type": "colorChoice",
      "target": "roles.colors.primary",
      "severity": "error",
      "rationale": "Postman Orange (#FF6C37) is the brand's single signature primary — exposed on the live site as --demo-brand and reinforced through every CTA, mark fill, and brand surface. The purple is a category accent; the greens / reds are state semantics; the ink is text. None of those may stand in for the brand primary.\n",
      "allowed": [
        "postman-orange",
        "postman-orange-pressed",
        "postman-orange-deep"
      ],
      "forbidden": [
        "postman-purple",
        "postman-success",
        "postman-error",
        "postman-ink"
      ]
    },
    {
      "type": "colorChoice",
      "target": "roles.colors.mark",
      "severity": "error",
      "rationale": "The Postman wordmark and the satellite-mark render in the signature Postman Orange on light surfaces, in Postman Ink monochrome on light surfaces, or in Postman Canvas (white) monochrome on dark surfaces. Pressed orange is a state, not a mark fill.\n",
      "allowed": [
        "postman-orange",
        "postman-ink",
        "postman-canvas"
      ],
      "forbidden": [
        "postman-orange-pressed",
        "postman-purple",
        "postman-success",
        "postman-error"
      ]
    },
    {
      "type": "forbiddenTreatment",
      "target": "logo",
      "severity": "error",
      "rationale": "Postman's mark is a calibrated wordmark + satellite glyph. Stretching, rotating, gradient-filling, or recoloring breaks the developer-direct, tooling-confident voice the live brand surface establishes.\n",
      "treatments": [
        "stretched",
        "rotated",
        "recolored",
        "drop-shadow",
        "gradient-fill",
        "on-busy-photo"
      ]
    },
    {
      "type": "contrastRatio",
      "target": "text-primary",
      "severity": "error",
      "rationale": "Postman Ink (#212121) on Postman Canvas (#FFFFFF) reads at ~16:1 — well above WCAG AA. The brand's documentation-heavy surface depends on holding that floor cleanly.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "contextRestriction",
      "target": "roles.colors.warning",
      "severity": "error",
      "rationale": "Postman Warning (#AD7A03) is the amber caution tone — it must not stand in for the error red or the brand orange primary. Reusing the warning amber for destructive actions conflicts with the established state semantics on the live product UI.\n",
      "allowedContexts": [
        "caution",
        "rate-limit-warning",
        "draft-state"
      ],
      "forbiddenContexts": [
        "error-state",
        "destructive-action",
        "call-to-action"
      ]
    },
    {
      "type": "enumMembership",
      "target": "typography.heading.fontWeight",
      "severity": "warning",
      "rationale": "The live postman.com surface renders display headings at the 400–700 weight band on the proprietary degular face. The substitute Plus Jakarta Sans family carries the same range; heavier weights are not part of the published display set.\n",
      "allowed": [
        "400",
        "500",
        "600",
        "700"
      ]
    },
    {
      "type": "compositionConstraint",
      "target": "roles.colors.primary",
      "severity": "recommendation",
      "rationale": "Postman Orange reads cleanest on the bright canvas, against deep ink text, on the plum dark canvas, or against its own pale tint. Pairing it adjacent to the warning amber, error red, or category purple introduces a chromatic conflict that breaks the calibrated one-accent voice of the brand.\n",
      "pairsWith": [
        "postman-canvas",
        "postman-ink",
        "postman-plum",
        "postman-orange-tint"
      ],
      "doesNotPairWith": [
        "postman-error",
        "postman-warning",
        "postman-purple"
      ]
    },
    {
      "type": "accessibilityRequirement",
      "target": "*",
      "severity": "error",
      "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Postman's canvas / ink combination starts well above AA; consumers must hold that floor when adapting the palette.\n",
      "standard": "WCAG-AA",
      "criterion": "1.4.3"
    },
    {
      "type": "fontPairing",
      "target": "typography.code",
      "severity": "recommendation",
      "rationale": "Postman pairs degular display with IBM Plex Mono on the live marketing site (--demo-font + --demo-font-code). The mono reads cleanest at ~0.875× of the body size, preserving the developer-direct rhythm of inline-code-in-prose blocks.\n",
      "requires": "prose",
      "minSizeRatio": 0.875
    }
  ]
}
