{
  "$description": "Brand: TIDAL (tidal@1.0.0)",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette tidal@1.0.0",
      "tidal-black": {
        "$value": "#000000",
        "$type": "color",
        "$description": "Canonical canvas — the TIDAL consumer surface is solid black."
      },
      "tidal-near-black": {
        "$value": "#0A0A0A",
        "$type": "color",
        "$description": "Elevated surface on the dark canvas — main panel chrome."
      },
      "tidal-surface-elevated": {
        "$value": "#181818",
        "$type": "color",
        "$description": "Cards, hovered rows, and elevated tiles on the dark canvas."
      },
      "tidal-cyan": {
        "$value": "#00FFFF",
        "$type": "color",
        "$description": "The signature TIDAL cyan / oxide-blue accent — the brand's only chromatic note."
      },
      "tidal-cyan-pressed": {
        "$value": "#00CCCC",
        "$type": "color",
        "$description": "Pressed / active state for the primary action — a darker step from the cyan."
      },
      "tidal-cyan-deep": {
        "$value": "#008B94",
        "$type": "color",
        "$description": "Deeper cyan reserved for hover and selected states on the player chrome."
      },
      "tidal-white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Primary text on the dark canvas; reversed wordmark fill on light marketing surfaces."
      },
      "tidal-gray-light": {
        "$value": "#CCCCCC",
        "$type": "color",
        "$description": "Secondary text and divider color on the dark canvas."
      },
      "tidal-gray": {
        "$value": "#737373",
        "$type": "color",
        "$description": "Tertiary text, captions, and metadata in the player UI."
      },
      "tidal-gray-dark": {
        "$value": "#404040",
        "$type": "color",
        "$description": "Quiet dividers, disabled state, and the unplayed seek-bar fill."
      }
    }
  },
  "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.wordmark.fill",
        "severity": "error",
        "rationale": "The TIDAL wordmark renders only in white, black, or the brand cyan. The cyan-pressed and cyan-deep variants are interactive-state colors for the primary action, not wordmark fills, and the neutral grays are reserved for text hierarchy on the dark canvas.\n",
        "allowed": [
          "tidal-white",
          "tidal-black",
          "tidal-cyan"
        ],
        "forbidden": [
          "tidal-cyan-pressed",
          "tidal-cyan-deep",
          "tidal-gray",
          "tidal-gray-light",
          "tidal-gray-dark"
        ]
      },
      {
        "type": "forbiddenTreatment",
        "target": "logo",
        "severity": "error",
        "rationale": "TIDAL's identity is built on minimalism and clarity. Recoloring, stretching, or adding gradient / shadow treatments to the wordmark conflicts with the brand's audiophile-first, no-decoration voice. The cyan wordmark must never appear on a background where it falls below WCAG-AA-large contrast.\n",
        "treatments": [
          "stretched",
          "rotated",
          "recolored",
          "drop-shadow",
          "on-busy-photo",
          "gradient-fill",
          "cyan-on-low-contrast-background"
        ]
      },
      {
        "type": "contrastRatio",
        "target": "text-primary",
        "severity": "error",
        "rationale": "TIDAL White (#FFFFFF) on TIDAL Black (#000000) gives ~21:1 — clears WCAG 2.1 Level AAA decisively. The audiophile / premium positioning argues for an AAA contrast target on the canonical dark canvas rather than the AA floor; the dark canvas dominates the consumer surface and the text must be unequivocally legible.\n",
        "against": "background",
        "minRatio": 7,
        "standard": "WCAG-AAA"
      },
      {
        "type": "contrastRatio",
        "target": "roles.colors.primary",
        "severity": "error",
        "rationale": "TIDAL Cyan (#00FFFF) on TIDAL Black (#000000) gives ~16:1 — well above the AA-large floor. This rule encodes the affordance: the cyan primary action and play button must remain perceptible at all interactive sizes on the dark canvas.\n",
        "against": "background",
        "minRatio": 3,
        "standard": "WCAG-AA-large"
      },
      {
        "type": "contextRestriction",
        "target": "roles.colors.primary",
        "severity": "error",
        "rationale": "TIDAL Cyan is reserved for the brand mark, the play affordance, the primary action, and tightly-scoped hover / selected states. Using it for body text, for validation-failure states, or as a hero background collapses the brand's chromatic restraint and dilutes the high-fidelity affordance the cyan carries.\n",
        "forbiddenContexts": [
          "body-text",
          "secondary-link",
          "validation-failure",
          "hero-background"
        ]
      },
      {
        "type": "enumMembership",
        "target": "typography.heading.fontWeight",
        "severity": "warning",
        "rationale": "TIDAL's headlines use Regular (400) for editorial, Medium (500) for UI emphasis, and Bold (700) for hero typography. The brand's restrained, audio-first voice argues against the heaviest display weights — the visual weight comes from the dark canvas and the generous whitespace, not from typographic shouting.\n",
        "allowed": [
          "400",
          "500",
          "700"
        ]
      },
      {
        "type": "fontPairing",
        "target": "typography.heading",
        "severity": "warning",
        "rationale": "TIDAL's hero / section headers run materially larger than the player UI's body text. A 1.5× floor between display and prose preserves the editorial hierarchy and prevents the minimal palette from being read as flat or undifferentiated.\n",
        "requires": "body",
        "minSizeRatio": 1.5
      },
      {
        "type": "accessibilityRequirement",
        "target": "*",
        "severity": "warning",
        "rationale": "WCAG 2.1 Success Criterion 1.4.6 (Contrast Enhanced) — Level AAA. The TIDAL premium / audiophile positioning and the high-contrast Black / White / Cyan palette already clear AAA on the canonical dark canvas; adopting AAA as the target rather than the AA floor keeps the brand's clarity-first posture explicit.\n",
        "standard": "WCAG-AAA",
        "criterion": "1.4.6"
      },
      {
        "type": "compositionConstraint",
        "target": "roles.colors.primary",
        "severity": "recommendation",
        "rationale": "The brand cyan reads cleanest against the deep black canvas, the near-black surface, or pure white. Pairing it adjacent to its own deeper interactive-state variants or to the pale neutral creates a muddy chromatic adjacency that fights the brand's two-tone restraint.\n",
        "pairsWith": [
          "tidal-black",
          "tidal-near-black",
          "tidal-white"
        ],
        "doesNotPairWith": [
          "tidal-cyan-deep",
          "tidal-cyan-pressed",
          "tidal-gray-light"
        ]
      }
    ],
    "com.brand-atoms.assets": [],
    "com.brand-atoms.provenance": {
      "source": "https://mobbin.com/colors/brand/tidal-music",
      "license": "Proprietary — All Rights Reserved",
      "attribution": "TIDAL, the TIDAL wordmark, and the cyan / black brand mark are trademarks of TIDAL Music AS (a subsidiary of Block, Inc.). This atom captures brand-atoms' read of TIDAL's publicly observable identity (the consumer marketing surfaces and the cross-cited brand-color values from third-party aggregators). It is not an official TIDAL brand-guidelines document.\n",
      "importedDate": "2026-05-19",
      "notes": "TIDAL's public marketing site (tidal.com) returns HTTP 403 to unauthenticated fetches; provenance for this palette falls back to Mobbin's published TIDAL brand-color reference, which documents the canonical three-color Black / White / Cyan identity. TIDAL's marketing site uses a proprietary sans-serif; this atom substitutes `inter@1` as the open-source rendering fallback for both heading and body roles, matching the convention used by other proprietary-typography brand atoms in this catalog.\n"
    },
    "com.brand-atoms.references": {
      "palette": "tidal@1.0.0",
      "fonts": {
        "heading": "inter@1.0.0",
        "body": "inter@1.0.0",
        "mono": "jetbrainsmono-nerdfont@1.0.0"
      }
    }
  }
}
