{
  "$description": "Brand: TypeScript — light mode",
  "color": {
    "swatches": {
      "$description": "Source-of-truth color swatches from palette typescript@1.0.0",
      "ts-blue": {
        "$value": "#3178C6",
        "$type": "color",
        "$description": "Primary brand color — the rounded-square mark fill. The \"TS\" lettermark sits on this blue in white.\n"
      },
      "ts-blue-bright": {
        "$value": "#4F8AD0",
        "$type": "color",
        "$description": "Brighter variant used on dark backgrounds for legibility."
      },
      "ts-blue-dark": {
        "$value": "#235A9E",
        "$type": "color",
        "$description": "Darker variant used for hover states and shadows."
      },
      "ts-black": {
        "$value": "#0E1217",
        "$type": "color",
        "$description": "Dark-mode page canvas."
      },
      "ts-charcoal": {
        "$value": "#1C232C",
        "$type": "color",
        "$description": "Elevated dark surface for cards and panels."
      },
      "ts-gray": {
        "$value": "#5C5C5C",
        "$type": "color",
        "$description": "Mid neutral for body text and dividers."
      },
      "ts-light-gray": {
        "$value": "#D5D5D5",
        "$type": "color",
        "$description": "Hairline borders on light canvas."
      },
      "ts-off-white": {
        "$value": "#F4F4F4",
        "$type": "color",
        "$description": "Subtle layered surface on the light canvas."
      },
      "ts-white": {
        "$value": "#FFFFFF",
        "$type": "color",
        "$description": "Page canvas in light mode; reversed letter color on the mark."
      },
      "ts-success": {
        "$value": "#2EA043",
        "$type": "color",
        "$description": "Status success color."
      },
      "ts-warning": {
        "$value": "#D29922",
        "$type": "color",
        "$description": "Status warning color."
      },
      "ts-error": {
        "$value": "#CF222E",
        "$type": "color",
        "$description": "Status error color."
      }
    },
    "roles": {
      "$description": "Semantic color roles (light mode) mapped to palette swatches",
      "background": {
        "$value": "{color.swatches.ts-white}",
        "$type": "color",
        "$description": "background role → TypeScript White"
      },
      "surface": {
        "$value": "{color.swatches.ts-off-white}",
        "$type": "color",
        "$description": "surface role → TypeScript Off-White"
      },
      "surface-elevated": {
        "$value": "{color.swatches.ts-white}",
        "$type": "color",
        "$description": "surface-elevated role → TypeScript White"
      },
      "text-primary": {
        "$value": "{color.swatches.ts-black}",
        "$type": "color",
        "$description": "text-primary role → TypeScript Black"
      },
      "text-secondary": {
        "$value": "{color.swatches.ts-gray}",
        "$type": "color",
        "$description": "text-secondary role → TypeScript Gray"
      },
      "text-tertiary": {
        "$value": "{color.swatches.ts-blue-dark}",
        "$type": "color",
        "$description": "text-tertiary role → TypeScript Blue Dark"
      },
      "primary": {
        "$value": "{color.swatches.ts-blue}",
        "$type": "color",
        "$description": "primary role → TypeScript Blue"
      },
      "primary-hover": {
        "$value": "{color.swatches.ts-blue-dark}",
        "$type": "color",
        "$description": "primary-hover role → TypeScript Blue Dark"
      },
      "accent": {
        "$value": "{color.swatches.ts-blue-dark}",
        "$type": "color",
        "$description": "accent role → TypeScript Blue Dark"
      },
      "accent-hover": {
        "$value": "{color.swatches.ts-blue}",
        "$type": "color",
        "$description": "accent-hover role → TypeScript Blue"
      },
      "warning": {
        "$value": "{color.swatches.ts-warning}",
        "$type": "color",
        "$description": "warning role → TypeScript Warning"
      },
      "warning-hover": {
        "$value": "{color.swatches.ts-warning}",
        "$type": "color",
        "$description": "warning-hover role → TypeScript Warning"
      },
      "error": {
        "$value": "{color.swatches.ts-error}",
        "$type": "color",
        "$description": "error role → TypeScript Error"
      },
      "success": {
        "$value": "{color.swatches.ts-success}",
        "$type": "color",
        "$description": "success role → TypeScript Success"
      },
      "brand-overrides": {
        "$description": "Brand-level role overrides (take precedence over palette role mappings)",
        "identity": {
          "$value": "{color.swatches.ts-blue}",
          "$type": "color",
          "$description": "Brand role identity → TypeScript Blue"
        },
        "on-identity": {
          "$value": "{color.swatches.ts-white}",
          "$type": "color",
          "$description": "Brand role on-identity → TypeScript White"
        },
        "primary": {
          "$value": "{color.swatches.ts-blue}",
          "$type": "color",
          "$description": "Brand role primary → TypeScript Blue"
        },
        "primary-hover": {
          "$value": "{color.swatches.ts-blue-dark}",
          "$type": "color",
          "$description": "Brand role primary-hover → TypeScript Blue Dark"
        },
        "accent": {
          "$value": "{color.swatches.ts-blue-dark}",
          "$type": "color",
          "$description": "Brand role accent → TypeScript Blue Dark"
        },
        "accent-hover": {
          "$value": "{color.swatches.ts-blue}",
          "$type": "color",
          "$description": "Brand role accent-hover → TypeScript Blue"
        },
        "background": {
          "$value": "{color.swatches.ts-white}",
          "$type": "color",
          "$description": "Brand role background → TypeScript White"
        },
        "surface": {
          "$value": "{color.swatches.ts-off-white}",
          "$type": "color",
          "$description": "Brand role surface → TypeScript Off-White"
        },
        "text-primary": {
          "$value": "{color.swatches.ts-black}",
          "$type": "color",
          "$description": "Brand role text-primary → TypeScript Black"
        },
        "text-secondary": {
          "$value": "{color.swatches.ts-gray}",
          "$type": "color",
          "$description": "Brand role text-secondary → TypeScript Gray"
        }
      }
    }
  },
  "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": [
          "Source Code Pro",
          "ui-monospace",
          "SFMono-Regular",
          "Menlo",
          "Consolas",
          "Liberation Mono",
          "monospace"
        ],
        "$type": "fontFamily",
        "$description": "mono role → Source Code Pro (source-code-pro@1.0.0)"
      },
      "weight": {
        "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"
      }
    }
  }
}
