{
  "id": "bandcamp",
  "version": "1.0.0",
  "name": "Bandcamp",
  "description": "Bandcamp is an artist-first online music store and audio streaming service where fans buy music and merchandise directly from independent and label-affiliated artists. The brand voice is deliberately understated, catalog-forward, and artist-centric: the platform exists to surface the work, not to decorate it. Visually the identity is the signature Bandcamp Aqua — a muted cadet-blue / ocean-blue accent — applied sparingly against a near-white canvas and deep-ink text. Bandcamp's chrome is famously spare; the aqua reads as the one chromatic note in an otherwise neutral, library-like layout.\n",
  "provenance": {
    "source": "https://bandcamp.com/buttons",
    "license": "Proprietary — All Rights Reserved",
    "attribution": "Bandcamp, the Bandcamp wordmark, and the aqua \"BC\" mark are trademarks of Bandcamp (a subsidiary of Songtradr). This atom captures brand-atoms' read of Bandcamp's publicly observable identity (the marketing site, the public buttons / logos asset page at bandcamp.com/buttons, and the cross-cited brand-color values from third-party aggregators). It is not an official Bandcamp brand-guidelines document.\n",
    "importedDate": "2026-05-19",
    "notes": "Bandcamp publishes button and logo variants at bandcamp.com/buttons but does not publish hex values in the page text. The canonical aqua (#629AA9) is cross-cited by htmlcolors.com and designpieces.com and matches Bandcamp's own filename convention for the aqua wordmark asset. Bandcamp's marketing site uses a system-font stack; this atom substitutes `inter@1` as the open-source rendering fallback for both heading and body roles.\n"
  },
  "tags": [
    "bandcamp",
    "music",
    "indie",
    "marketplace",
    "streaming",
    "light-first",
    "minimal"
  ],
  "palette": {
    "ref": "bandcamp@1.0.0",
    "swatches": [
      {
        "id": "bandcamp-aqua",
        "name": "Bandcamp Aqua",
        "value": "#629AA9",
        "description": "The signature Bandcamp aqua / cadet-blue — wordmark, primary CTA, player accent.",
        "aliases": []
      },
      {
        "id": "bandcamp-aqua-deep",
        "name": "Bandcamp Aqua Deep",
        "value": "#4A7E8C",
        "description": "Pressed / active state for the primary action; deeper teal step from the brand aqua.",
        "aliases": []
      },
      {
        "id": "bandcamp-aqua-light",
        "name": "Bandcamp Aqua Light",
        "value": "#A4C5CE",
        "description": "Hover / soft-fill variant of the brand aqua for tinted surfaces.",
        "aliases": []
      },
      {
        "id": "bandcamp-ink",
        "name": "Bandcamp Ink",
        "value": "#202020",
        "description": "Primary text on the light canvas; deep near-black for body and the wordmark on white.",
        "aliases": []
      },
      {
        "id": "bandcamp-charcoal",
        "name": "Bandcamp Charcoal",
        "value": "#444444",
        "description": "Secondary text and label color on the light canvas.",
        "aliases": []
      },
      {
        "id": "bandcamp-gray",
        "name": "Bandcamp Gray",
        "value": "#888888",
        "description": "Tertiary text, metadata, and the unplayed waveform region.",
        "aliases": []
      },
      {
        "id": "bandcamp-gray-light",
        "name": "Bandcamp Gray Light",
        "value": "#CCCCCC",
        "description": "Divider lines and quiet borders on the light canvas.",
        "aliases": []
      },
      {
        "id": "bandcamp-surface",
        "name": "Bandcamp Surface",
        "value": "#F5F5F5",
        "description": "Subtle elevated surface — row hover, sidebar, footer.",
        "aliases": []
      },
      {
        "id": "bandcamp-white",
        "name": "Bandcamp White",
        "value": "#FFFFFF",
        "description": "Canonical light canvas — the player chrome and marketing default.",
        "aliases": []
      }
    ],
    "modes": {
      "light": {
        "roles": {
          "background": "bandcamp-white",
          "surface": "bandcamp-surface",
          "surface-elevated": "bandcamp-white",
          "text-primary": "bandcamp-ink",
          "text-secondary": "bandcamp-charcoal",
          "text-tertiary": "bandcamp-gray",
          "primary": "bandcamp-aqua",
          "primary-hover": "bandcamp-aqua-deep",
          "accent": "bandcamp-aqua",
          "accent-hover": "bandcamp-aqua-deep",
          "warning": "bandcamp-aqua",
          "warning-hover": "bandcamp-aqua-deep",
          "error": "bandcamp-ink",
          "success": "bandcamp-aqua",
          "border": "bandcamp-gray-light"
        }
      },
      "dark": {
        "roles": {
          "background": "bandcamp-ink",
          "surface": "bandcamp-charcoal",
          "surface-elevated": "bandcamp-gray",
          "text-primary": "bandcamp-white",
          "text-secondary": "bandcamp-gray-light",
          "text-tertiary": "bandcamp-gray",
          "primary": "bandcamp-aqua-light",
          "primary-hover": "bandcamp-aqua",
          "accent": "bandcamp-aqua-light",
          "accent-hover": "bandcamp-aqua",
          "warning": "bandcamp-aqua-light",
          "warning-hover": "bandcamp-aqua",
          "error": "bandcamp-aqua-light",
          "success": "bandcamp-aqua-light",
          "border": "bandcamp-charcoal"
        }
      }
    }
  },
  "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": "bandcamp-white",
      "on-identity": "bandcamp-aqua",
      "background": "bandcamp-white",
      "surface": "bandcamp-surface",
      "surface-elevated": "bandcamp-white",
      "text-primary": "bandcamp-ink",
      "text-secondary": "bandcamp-charcoal",
      "text-tertiary": "bandcamp-gray",
      "primary": "bandcamp-aqua",
      "primary-hover": "bandcamp-aqua-deep",
      "accent": "bandcamp-aqua",
      "accent-hover": "bandcamp-aqua-deep",
      "mark": "bandcamp-aqua",
      "border": "bandcamp-gray-light"
    },
    "typography": {
      "display": "heading",
      "prose": "body",
      "wordmark": "heading",
      "code": "mono"
    }
  },
  "assets": [],
  "rules": [
    {
      "type": "colorChoice",
      "target": "logo.wordmark.fill",
      "severity": "error",
      "rationale": "Bandcamp publishes three wordmark variants — aqua, black (ink), and white — on its public buttons / logos page. The aqua-deep and aqua-light variants exist as interactive-state colors on the primary action, not as wordmark fills, and the neutral grays are reserved for body text and dividers.\n",
      "allowed": [
        "bandcamp-aqua",
        "bandcamp-ink",
        "bandcamp-white"
      ],
      "forbidden": [
        "bandcamp-aqua-deep",
        "bandcamp-aqua-light",
        "bandcamp-gray",
        "bandcamp-gray-light",
        "bandcamp-charcoal"
      ]
    },
    {
      "type": "forbiddenTreatment",
      "target": "logo",
      "severity": "error",
      "rationale": "Bandcamp's wordmark is flat-color by design — applying gradients, shadows, or arbitrary recoloring conflicts with the brand's deliberately understated, catalog-forward voice. The aqua / ink / white variants documented on bandcamp.com/buttons are the only approved fills.\n",
      "treatments": [
        "stretched",
        "rotated",
        "recolored",
        "drop-shadow",
        "on-busy-photo",
        "gradient-fill"
      ]
    },
    {
      "type": "contrastRatio",
      "target": "text-primary",
      "severity": "error",
      "rationale": "Bandcamp Ink (#202020) on Bandcamp White (#FFFFFF) gives ~17:1 — well clear of WCAG 2.1 Level AA. This rule encodes the floor any new foreground / background role pairing must clear on the light canvas.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "contrastRatio",
      "target": "roles.colors.primary",
      "severity": "error",
      "rationale": "Bandcamp Aqua (#629AA9) on white gives ~3.3:1 — just clear of WCAG 2.1 AA-large. The aqua is functional as a primary CTA fill and an accent on white but is too muted for small body text on the same canvas; treat it as an interactive / accent color, not as a text color.\n",
      "against": "background",
      "minRatio": 3,
      "standard": "WCAG-AA-large"
    },
    {
      "type": "contextRestriction",
      "target": "roles.colors.primary",
      "severity": "error",
      "rationale": "Bandcamp Aqua is reserved for the wordmark, the \"Buy Now\" CTA, and the player's accent. Using it for body text collapses its readability margin to below AA, and using it for validation-failure / error states collides with its established positive-action meaning.\n",
      "forbiddenContexts": [
        "body-text",
        "validation-failure"
      ]
    },
    {
      "type": "enumMembership",
      "target": "typography.heading.fontWeight",
      "severity": "recommendation",
      "rationale": "Bandcamp's marketing and player chrome use the system sans-serif stack at Regular (400) and Bold (700) for most chrome, with Medium (500) and Semibold (600) used sparingly. The brand's understated voice argues against the heaviest display weights — let the catalog work carry the visual weight, not the type.\n",
      "allowed": [
        "400",
        "500",
        "600",
        "700"
      ]
    },
    {
      "type": "fontPairing",
      "target": "typography.heading",
      "severity": "recommendation",
      "rationale": "Bandcamp uses a single-family system stack for both headings and body, distinguished by size and weight rather than family change. A 1.3× ratio between heading and body preserves hierarchy without forcing a louder typographic register than the brand voice supports.\n",
      "requires": "body",
      "minSizeRatio": 1.3
    },
    {
      "type": "accessibilityRequirement",
      "target": "*",
      "severity": "error",
      "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. The aqua-on-white pairing sits near the AA-large floor; every new role pairing involving the aqua needs an explicit contrast check.\n",
      "standard": "WCAG-AA",
      "criterion": "1.4.3"
    },
    {
      "type": "compositionConstraint",
      "target": "roles.colors.primary",
      "severity": "recommendation",
      "rationale": "The aqua reads cleanest against the white canvas, against the deep ink, or on the pale surface gray. Pairing it against the lighter aqua tint or the mid-gray collapses the contrast and softens the brand's only chromatic note.\n",
      "pairsWith": [
        "bandcamp-white",
        "bandcamp-ink",
        "bandcamp-surface"
      ],
      "doesNotPairWith": [
        "bandcamp-aqua-light",
        "bandcamp-gray"
      ]
    }
  ]
}
