{
  "$description": "Brand: GOV.UK Design System — light mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette govuk@1.0.0",
      "text": {
        "$value": "#0B0C0C",
        "$type": "color",
        "$description": "GOV.UK Black — primary text ink on every page."
      },
      "secondary-text": {
        "$value": "#484949",
        "$type": "color",
        "$description": "Secondary text and hints; quiet metadata."
      },
      "link": {
        "$value": "#1A65A6",
        "$type": "color",
        "$description": "Default link colour on the GOV.UK template background."
      },
      "link-hover": {
        "$value": "#0F385C",
        "$type": "color",
        "$description": "Hover state for links."
      },
      "link-visited": {
        "$value": "#54319F",
        "$type": "color",
        "$description": "Visited link state — sourced from web-palette Purple."
      },
      "link-active": {
        "$value": "#0B0C0C",
        "$type": "color",
        "$description": "Active link state — GOV.UK Black for highest emphasis."
      },
      "border": {
        "$value": "#CECECE",
        "$type": "color",
        "$description": "Default border on quiet dividers and cards."
      },
      "input-border": {
        "$value": "#0B0C0C",
        "$type": "color",
        "$description": "Form-control border — full-strength GOV.UK Black."
      },
      "hover": {
        "$value": "#CECECE",
        "$type": "color",
        "$description": "Hover surface for interactive rows and list items."
      },
      "focus": {
        "$value": "#FFDD00",
        "$type": "color",
        "$description": "GOV.UK Yellow focus indicator — the signature accessibility affordance."
      },
      "focus-text": {
        "$value": "#0B0C0C",
        "$type": "color",
        "$description": "Text ink rendered on the yellow focus background."
      },
      "error": {
        "$value": "#CA3535",
        "$type": "color",
        "$description": "Validation and error messaging colour."
      },
      "success": {
        "$value": "#0F7A52",
        "$type": "color",
        "$description": "Success / confirmation colour."
      },
      "brand": {
        "$value": "#1D70B8",
        "$type": "color",
        "$description": "GOV.UK Blue — the system's brand link / primary blue."
      },
      "body-background": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Default page background — white."
      },
      "template-background": {
        "$value": "#F4F8FB",
        "$type": "color",
        "$description": "The pale-blue GOV.UK template background."
      },
      "surface-background": {
        "$value": "#F4F8FB",
        "$type": "color",
        "$description": "Default surface background for cards and panels."
      },
      "surface-text": {
        "$value": "#0B0C0C",
        "$type": "color",
        "$description": "Default text colour on a surface panel."
      },
      "surface-border": {
        "$value": "#8EB8DC",
        "$type": "color",
        "$description": "Default border colour on a surface panel."
      },
      "web-blue": {
        "$value": "#1D70B8",
        "$type": "color",
        "$description": "Web-palette Blue — identical to brand."
      },
      "web-green": {
        "$value": "#0F7A52",
        "$type": "color",
        "$description": "Web-palette Green — identical to success."
      },
      "web-teal": {
        "$value": "#158187",
        "$type": "color",
        "$description": "Web-palette Teal."
      },
      "web-purple": {
        "$value": "#54319F",
        "$type": "color",
        "$description": "Web-palette Purple — identical to link-visited."
      },
      "web-magenta": {
        "$value": "#CA357C",
        "$type": "color",
        "$description": "Web-palette Magenta."
      },
      "web-red": {
        "$value": "#CA3535",
        "$type": "color",
        "$description": "Web-palette Red — identical to error."
      },
      "web-orange": {
        "$value": "#F47738",
        "$type": "color",
        "$description": "Web-palette Orange."
      },
      "web-yellow": {
        "$value": "#FFDD00",
        "$type": "color",
        "$description": "Web-palette Yellow — identical to focus."
      },
      "web-brown": {
        "$value": "#99704A",
        "$type": "color",
        "$description": "Web-palette Brown."
      },
      "web-black": {
        "$value": "#0B0C0C",
        "$type": "color",
        "$description": "Web-palette Black — identical to text."
      },
      "web-white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Web-palette White — identical to body-background."
      }
    },
    "roles": {
      "$description": "Semantic color roles (light mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.body-background}",
        "$type": "color",
        "$description": "background role → Body Background"
      },
      "surface": {
        "$value": "{color.swatches.template-background}",
        "$type": "color",
        "$description": "surface role → Template Background"
      },
      "surface-elevated": {
        "$value": "{color.swatches.body-background}",
        "$type": "color",
        "$description": "surface-elevated role → Body Background"
      },
      "text-primary": {
        "$value": "{color.swatches.text}",
        "$type": "color",
        "$description": "text-primary role → Text"
      },
      "text-secondary": {
        "$value": "{color.swatches.secondary-text}",
        "$type": "color",
        "$description": "text-secondary role → Secondary Text"
      },
      "text-tertiary": {
        "$value": "{color.swatches.secondary-text}",
        "$type": "color",
        "$description": "text-tertiary role → Secondary Text"
      },
      "primary": {
        "$value": "{color.swatches.brand}",
        "$type": "color",
        "$description": "primary role → Brand"
      },
      "primary-hover": {
        "$value": "{color.swatches.link-hover}",
        "$type": "color",
        "$description": "primary-hover role → Link Hover"
      },
      "accent": {
        "$value": "{color.swatches.focus}",
        "$type": "color",
        "$description": "accent role → Focus"
      },
      "accent-hover": {
        "$value": "{color.swatches.focus}",
        "$type": "color",
        "$description": "accent-hover role → Focus"
      },
      "warning": {
        "$value": "{color.swatches.web-orange}",
        "$type": "color",
        "$description": "warning role → Web Orange"
      },
      "warning-hover": {
        "$value": "{color.swatches.web-orange}",
        "$type": "color",
        "$description": "warning-hover role → Web Orange"
      },
      "error": {
        "$value": "{color.swatches.error}",
        "$type": "color",
        "$description": "error role → Error"
      },
      "success": {
        "$value": "{color.swatches.success}",
        "$type": "color",
        "$description": "success role → Success"
      },
      "border": {
        "$value": "{color.swatches.border}",
        "$type": "color",
        "$description": "border role → Border"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.body-background}",
          "$type": "color",
          "$description": "Brand role identity → Body Background"
        },
        "on-identity": {
          "$value": "{color.swatches.text}",
          "$type": "color",
          "$description": "Brand role on-identity → Text"
        },
        "primary": {
          "$value": "{color.swatches.brand}",
          "$type": "color",
          "$description": "Brand role primary → Brand"
        },
        "primary-hover": {
          "$value": "{color.swatches.link-hover}",
          "$type": "color",
          "$description": "Brand role primary-hover → Link Hover"
        },
        "accent": {
          "$value": "{color.swatches.focus}",
          "$type": "color",
          "$description": "Brand role accent → Focus"
        },
        "accent-hover": {
          "$value": "{color.swatches.focus}",
          "$type": "color",
          "$description": "Brand role accent-hover → Focus"
        },
        "mark": {
          "$value": "{color.swatches.text}",
          "$type": "color",
          "$description": "Brand role mark → Text"
        },
        "success": {
          "$value": "{color.swatches.success}",
          "$type": "color",
          "$description": "Brand role success → Success"
        },
        "warning": {
          "$value": "{color.swatches.web-orange}",
          "$type": "color",
          "$description": "Brand role warning → Web Orange"
        },
        "error": {
          "$value": "{color.swatches.error}",
          "$type": "color",
          "$description": "Brand role error → Error"
        },
        "text-primary-light": {
          "$value": "{color.swatches.text}",
          "$type": "color",
          "$description": "Brand role text-primary-light → Text"
        },
        "text-primary-dark": {
          "$value": "{color.swatches.body-background}",
          "$type": "color",
          "$description": "Brand role text-primary-dark → Body Background"
        },
        "background-light": {
          "$value": "{color.swatches.body-background}",
          "$type": "color",
          "$description": "Brand role background-light → Body Background"
        },
        "background-dark": {
          "$value": "{color.swatches.text}",
          "$type": "color",
          "$description": "Brand role background-dark → Text"
        },
        "surface-light": {
          "$value": "{color.swatches.template-background}",
          "$type": "color",
          "$description": "Brand role surface-light → Template Background"
        },
        "surface-dark": {
          "$value": "{color.swatches.text}",
          "$type": "color",
          "$description": "Brand role surface-dark → Text"
        },
        "text-secondary-light": {
          "$value": "{color.swatches.secondary-text}",
          "$type": "color",
          "$description": "Brand role text-secondary-light → Secondary Text"
        },
        "text-tertiary-light": {
          "$value": "{color.swatches.secondary-text}",
          "$type": "color",
          "$description": "Brand role text-tertiary-light → Secondary Text"
        },
        "border-light": {
          "$value": "{color.swatches.border}",
          "$type": "color",
          "$description": "Brand role border-light → Border"
        }
      }
    }
  },
  "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": [
          "Roboto Mono",
          "SFMono-Regular",
          "Menlo",
          "Consolas",
          "Liberation Mono",
          "Courier New",
          "monospace"
        ],
        "$type": "fontFamily",
        "$description": "mono role → Roboto Mono (roboto-mono@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"
        },
        "$description": "Available font weights"
      }
    }
  }
}
