{
  "$description": "Brand: DigitalOcean (digitalocean@1.0.0)",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette digitalocean@1.0.0",
      "do-blue": {
        "$value": "#0080FF",
        "$type": "color",
        "$description": "The DigitalOcean signature blue — the fill of the waving- ocean mark and the principal CTA color across digitalocean.com.\n"
      },
      "do-blue-dark": {
        "$value": "#0061C2",
        "$type": "color",
        "$description": "Pressed/active state for the primary CTA."
      },
      "do-blue-light": {
        "$value": "#3FA1FF",
        "$type": "color",
        "$description": "Soft accent used on illustrations and on dark surfaces."
      },
      "do-navy": {
        "$value": "#031B4E",
        "$type": "color",
        "$description": "Dark-mode canvas — the navy used on digitalocean.com dark-theme hero compositions.\n"
      },
      "do-navy-deep": {
        "$value": "#020E2A",
        "$type": "color",
        "$description": "Darkest navy used as the page-level dark canvas."
      },
      "do-ink": {
        "$value": "#031B4E",
        "$type": "color",
        "$description": "Primary text on light surfaces — the same hex as the dark canvas, used as deep ink."
      },
      "do-gray": {
        "$value": "#646F87",
        "$type": "color",
        "$description": "Secondary text and metadata."
      },
      "do-gray-light": {
        "$value": "#8B95A8",
        "$type": "color",
        "$description": "Tertiary text and disabled UI."
      },
      "do-surface": {
        "$value": "#F4F6F8",
        "$type": "color",
        "$description": "Quiet surface — card backgrounds on digitalocean.com."
      },
      "do-border": {
        "$value": "#DDE3EB",
        "$type": "color",
        "$description": "Hairline borders and dividers."
      },
      "do-white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Primary canvas on light surfaces."
      },
      "do-success": {
        "$value": "#1E944A",
        "$type": "color",
        "$description": "Confirmation / healthy-droplet state."
      },
      "do-warning": {
        "$value": "#F2A33A",
        "$type": "color",
        "$description": "Warning / pending state."
      },
      "do-error": {
        "$value": "#D9534F",
        "$type": "color",
        "$description": "Destructive / failed-droplet 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.wave.fill",
        "severity": "error",
        "rationale": "The DigitalOcean waving-ocean mark renders in DigitalOcean Blue (#0080FF) or reversed white. The pressed-state dark blue, the illustration light blue, and the chrome navy are interactive-state and canvas tokens — none are valid mark fills.\n",
        "allowed": [
          "do-blue",
          "do-white"
        ],
        "forbidden": [
          "do-blue-dark",
          "do-blue-light",
          "do-navy"
        ]
      },
      {
        "type": "forbiddenTreatment",
        "target": "logo",
        "severity": "error",
        "rationale": "DigitalOcean's brand guidelines explicitly prohibit altering the proportions, color, or orientation of the waving-ocean mark. The wave must not be detached from the DigitalOcean 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",
          "wave-detached-from-wordmark",
          "gradient-fill"
        ]
      },
      {
        "type": "contrastRatio",
        "target": "text-primary",
        "severity": "error",
        "rationale": "DigitalOcean Ink (#031B4E) on DigitalOcean White gives ~15:1 — well above WCAG 2.1 Level AA. The rule encodes the floor for any new foreground/background pairing on digitalocean.com.\n",
        "against": "background",
        "minRatio": 4.5,
        "standard": "WCAG-AA"
      },
      {
        "type": "contrastRatio",
        "target": "roles.colors.primary",
        "severity": "error",
        "rationale": "DigitalOcean Blue (#0080FF) on DigitalOcean White sits around 4.3:1 — it clears AA for large interactive text and approaches AA for body. The rule enforces the AA-large floor for CTA legibility on the marketing site and the control panel.\n",
        "against": "background",
        "minRatio": 3,
        "standard": "WCAG-AA-large"
      },
      {
        "type": "compositionConstraint",
        "target": "roles.colors.primary",
        "severity": "recommendation",
        "rationale": "DigitalOcean Blue pairs cleanly against the white canvas and the navy chrome. 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": [
          "do-white",
          "do-navy",
          "do-surface"
        ],
        "doesNotPairWith": [
          "do-warning",
          "do-error"
        ]
      },
      {
        "type": "accessibilityRequirement",
        "target": "*",
        "severity": "error",
        "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. The DigitalOcean Community tutorials and the control-panel chrome both target AA as the floor for developer-documentation legibility.\n",
        "standard": "WCAG-AA",
        "criterion": "1.4.3"
      },
      {
        "type": "fontPairing",
        "target": "typography.heading",
        "severity": "recommendation",
        "rationale": "DigitalOcean'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.digitalocean.com/press",
      "license": "Proprietary — All Rights Reserved",
      "attribution": "DigitalOcean and the DigitalOcean logo are trademarks of DigitalOcean, LLC. Brand colors and identity guidance documented here are derived from the DigitalOcean press / brand resources page (digitalocean.com/press) and the visible style values across digitalocean.com and the DigitalOcean control panel.\n",
      "importedDate": "2026-05-18",
      "notes": "Brand-atoms' read of DigitalOcean's publicly available brand surface. This file is not an official DigitalOcean brand- guidelines document. No asset files are bundled here — the waving-ocean mark is trademarked.\n"
    },
    "com.brand-atoms.references": {
      "palette": "digitalocean@1.0.0",
      "fonts": {
        "heading": "inter@1.0.0",
        "body": "inter@1.0.0",
        "mono": "jetbrainsmono-nerdfont@1.0.0"
      }
    }
  }
}
