{
  "$description": "Brand: Docker (docker@1.0.0)",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette docker@1.0.0",
      "docker-blue": {
        "$value": "#2496ED",
        "$type": "color",
        "$description": "Primary Docker brand blue — the fill of the Moby whale and the principal CTA color across docker.com and Docker Desktop.\n"
      },
      "docker-blue-bright": {
        "$value": "#0DB7ED",
        "$type": "color",
        "$description": "Brighter cyan-blue used in Docker marketing illustrations and on dark-canvas hero compositions.\n"
      },
      "docker-navy": {
        "$value": "#0A1F44",
        "$type": "color",
        "$description": "Deep navy used in dark-mode marketing surfaces and as the chrome canvas for Docker Hub on dark theme.\n"
      },
      "docker-navy-deep": {
        "$value": "#06122A",
        "$type": "color",
        "$description": "Darkest navy used on dark-mode page canvas."
      },
      "docker-blue-dark": {
        "$value": "#1769A6",
        "$type": "color",
        "$description": "Pressed/active state for the primary CTA on light surfaces."
      },
      "docker-ink": {
        "$value": "#17191E",
        "$type": "color",
        "$description": "Primary text on light surfaces."
      },
      "docker-gray": {
        "$value": "#677285",
        "$type": "color",
        "$description": "Secondary text and metadata."
      },
      "docker-gray-light": {
        "$value": "#8993A5",
        "$type": "color",
        "$description": "Tertiary text and disabled UI."
      },
      "docker-surface": {
        "$value": "#F4F6F9",
        "$type": "color",
        "$description": "Quiet surface — card backgrounds on docker.com."
      },
      "docker-border": {
        "$value": "#E1E2E6",
        "$type": "color",
        "$description": "Hairline borders and dividers."
      },
      "docker-white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Primary canvas on light surfaces."
      },
      "docker-success": {
        "$value": "#1CB97A",
        "$type": "color",
        "$description": "Confirmation / healthy-container state."
      },
      "docker-warning": {
        "$value": "#F2A33A",
        "$type": "color",
        "$description": "Caution state on Docker Desktop chrome."
      },
      "docker-error": {
        "$value": "#E2574C",
        "$type": "color",
        "$description": "Destructive / unhealthy-container state."
      }
    }
  },
  "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": "colorChoice",
        "target": "logo.whale.fill",
        "severity": "error",
        "rationale": "The Moby whale renders in Docker Blue (#2496ED) or reversed white. The hover Docker Blue Dark, the marketing-illustration bright cyan, and the Docker Navy chrome are interactive-state and canvas tokens — none are valid mark fills.\n",
        "allowed": [
          "docker-blue",
          "docker-white"
        ],
        "forbidden": [
          "docker-blue-bright",
          "docker-blue-dark",
          "docker-navy"
        ]
      },
      {
        "type": "forbiddenTreatment",
        "target": "logo",
        "severity": "error",
        "rationale": "Docker's brand guidelines explicitly prohibit altering the proportions, color, or orientation of the Moby whale mark. The whale must not be detached from the Docker wordmark on shared lockups, and gradient fills are not part of the published brand system.\n",
        "treatments": [
          "stretched",
          "rotated",
          "recolored",
          "drop-shadow",
          "on-busy-photo",
          "whale-detached-from-wordmark",
          "gradient-fill"
        ]
      },
      {
        "type": "contrastRatio",
        "target": "text-primary",
        "severity": "error",
        "rationale": "Docker Ink (#17191E) on Docker White gives ~17:1 — well above WCAG 2.1 Level AA. The rule encodes the floor for any new foreground/background pairing on docker.com surfaces.\n",
        "against": "background",
        "minRatio": 4.5,
        "standard": "WCAG-AA"
      },
      {
        "type": "contrastRatio",
        "target": "roles.colors.primary",
        "severity": "warning",
        "rationale": "Docker Blue on Docker White sits around 3.6:1 — it clears AA-large for headlines and large interactive text but falls short of AA for body-sized text. Use Docker Blue as a CTA / heading color, not for body copy on white.\n",
        "against": "background",
        "minRatio": 3,
        "standard": "WCAG-AA-large"
      },
      {
        "type": "compositionConstraint",
        "target": "roles.colors.primary",
        "severity": "recommendation",
        "rationale": "Docker Blue pairs cleanly against the navy chrome and the white canvas. Pairing the brand blue directly with the warning amber or error red on the same surface creates a status-color conflict that competes with the brand voice.\n",
        "pairsWith": [
          "docker-navy",
          "docker-white",
          "docker-surface"
        ],
        "doesNotPairWith": [
          "docker-warning",
          "docker-error"
        ]
      },
      {
        "type": "accessibilityRequirement",
        "target": "*",
        "severity": "error",
        "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Docker Desktop and the docker.com marketing surfaces both target AA as the floor for accessibility across developer tooling.\n",
        "standard": "WCAG-AA",
        "criterion": "1.4.3"
      },
      {
        "type": "fontPairing",
        "target": "typography.heading",
        "severity": "recommendation",
        "rationale": "Docker's marketing surfaces use Inter for both heading and body. Keep headings at least 1.5× body to preserve hierarchy when one family does both jobs.\n",
        "requires": "body",
        "minSizeRatio": 1.5
      }
    ],
    "com.brand-atoms.assets": [],
    "com.brand-atoms.provenance": {
      "source": "https://www.docker.com/company/newsroom/media-resources/",
      "license": "Proprietary — All Rights Reserved",
      "attribution": "Docker, the Docker logo, the Moby whale, Docker Desktop, and Docker Hub are trademarks of Docker, Inc. Brand colors and identity guidance documented here are derived from Docker's media-resources page (docker.com/company/newsroom/media- resources/) and the visible style values across docker.com and Docker Desktop.\n",
      "importedDate": "2026-05-18",
      "notes": "Brand-atoms' read of Docker's publicly available brand-resources page. This file is not an official Docker brand-guidelines document. The Moby whale is one of the most-protected open-source-adjacent marks in developer tooling; no asset files are bundled here.\n"
    },
    "com.brand-atoms.references": {
      "palette": "docker@1.0.0",
      "fonts": {
        "heading": "inter@1.0.0",
        "body": "inter@1.0.0",
        "mono": "jetbrainsmono-nerdfont@1.0.0"
      }
    }
  }
}
