{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://www.designtokens.org/schemas/2025.10/format.json",
  "title": "DTCG Format Schema",
  "description": "JSON Schema for the Design Tokens Community Group (DTCG) Format specification.",
  "type": "object",
  "properties": {
    "$schema": {
      "type": "string",
      "format": "uri-reference",
      "description": "URI reference to this JSON schema.",
      "$comment": "$schema is not part of the official DTCG specification."
    },
    "$type": {
      "$ref": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json"
    },
    "$description": {
      "type": "string",
      "description": "A plain text description of the group"
    },
    "$extensions": {
      "type": "object",
      "description": "Vendor-specific extensions"
    },
    "$extends": {
      "oneOf": [
        {
          "$ref": "#/definitions/curlyBraceReference"
        },
        {
          "$ref": "#/definitions/jsonPointerReference"
        }
      ],
      "description": "Reference to another group to inherit tokens and properties from"
    },
    "$deprecated": {
      "oneOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        }
      ],
      "description": "Whether this group is deprecated"
    },
    "$root": {
      "$ref": "https://www.designtokens.org/schemas/2025.10/format/token.json"
    }
  },
  "patternProperties": {
    "^[^${}.][^{}.]*$": {
      "$ref": "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json"
    }
  },
  "additionalProperties": false,
  "definitions": {
    "tokenOrGroupName": {
      "title": "Token or Group Name",
      "type": "string",
      "pattern": "^[^${}.][^{}.]*$",
      "description": "Valid token/group names: must not start with $ and must not contain {, }, or ."
    },
    "curlyBraceReference": {
      "title": "Curly Brace Reference",
      "type": "string",
      "pattern": "^\\{[^${}.][^{}.]*(\\.[^${}.][^{}.]*)*\\}$",
      "description": "Curly brace reference (e.g., '{tokenName}' or '{group.nested.token}')"
    },
    "jsonPointerReference": {
      "title": "JSON Pointer Reference",
      "type": "string",
      "pattern": "^#/",
      "format": "json-pointer-uri-fragment",
      "description": "JSON Pointer reference (RFC 6901) to a location in the document (e.g., '#/path/to/target')"
    },
    "jsonPointerReferenceObject": {
      "title": "JSON Pointer Reference Object",
      "type": "object",
      "properties": {
        "$ref": {
          "$ref": "#/definitions/jsonPointerReference"
        }
      },
      "required": [
        "$ref"
      ],
      "additionalProperties": false,
      "description": "Object containing a JSON Pointer reference for property-level references"
    },
    "tokenValueReference": {
      "title": "Token Value Reference",
      "oneOf": [
        {
          "$ref": "#/definitions/curlyBraceReference"
        },
        {
          "$ref": "#/definitions/jsonPointerReferenceObject"
        }
      ],
      "description": "A reference to a token value using either curly brace syntax or JSON Pointer syntax"
    },
    "https://www.designtokens.org/schemas/2025.10/format/tokenType.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json",
      "title": "TokenType",
      "description": "A token type in the DTCG specification",
      "type": "string",
      "enum": [
        "color",
        "dimension",
        "fontFamily",
        "fontWeight",
        "duration",
        "cubicBezier",
        "number",
        "strokeStyle",
        "border",
        "transition",
        "shadow",
        "gradient",
        "typography"
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/token.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/token.json",
      "title": "Token",
      "description": "A token in the DTCG specification",
      "type": "object",
      "properties": {
        "$value": {
          "description": "The token's value - can be a direct value or a reference to another token using curly brace syntax (e.g., '{token.name}'). Mutually exclusive with $ref."
        },
        "$type": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json"
        },
        "$ref": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference"
        },
        "$description": {
          "type": "string",
          "description": "A plain text description of the token"
        },
        "$extensions": {
          "type": "object",
          "description": "Vendor-specific extensions"
        },
        "$deprecated": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "description": "Whether this token is deprecated"
        }
      },
      "additionalProperties": false,
      "allOf": [
        {
          "description": "Tokens cannot define both $value and $ref; they must choose exactly one form of reference or direct value.",
          "if": {
            "required": [
              "$value"
            ],
            "properties": {
              "$value": true
            }
          },
          "then": {
            "not": {
              "required": [
                "$ref"
              ],
              "properties": {
                "$ref": true
              }
            }
          },
          "else": {
            "required": [
              "$ref"
            ],
            "properties": {
              "$ref": true
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "color"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "dimension"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "fontFamily"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "fontWeight"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "duration"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "cubicBezier"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "number"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/number.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "strokeStyle"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "border"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/border.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "transition"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/transition.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "shadow"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "gradient"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "required": [
              "$type"
            ],
            "properties": {
              "$type": {
                "const": "typography"
              }
            }
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/typography.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "allOf": [
              {
                "not": {
                  "required": [
                    "$type"
                  ]
                }
              },
              {
                "required": [
                  "$value"
                ]
              },
              {
                "properties": {
                  "$value": {
                    "not": {
                      "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                    }
                  }
                }
              }
            ]
          },
          "then": {
            "properties": {
              "$value": {
                "oneOf": [
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/border.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/transition.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json"
                  },
                  {
                    "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/typography.json"
                  },
                  {
                    "anyOf": [
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/number.json"
                      },
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json"
                      }
                    ]
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/color.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/color.json",
      "title": "Color Value",
      "description": "Value schema for color type tokens. Represents a color in a specific color space.",
      "type": "object",
      "properties": {
        "colorSpace": {
          "description": "The color space or color model used to represent the color",
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "srgb",
                "srgb-linear",
                "hsl",
                "hwb",
                "lab",
                "lch",
                "oklab",
                "oklch",
                "display-p3",
                "a98-rgb",
                "prophoto-rgb",
                "rec2020",
                "xyz-d65",
                "xyz-d50"
              ]
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "components": {
          "description": "Array of color components. The number and meaning of components depend on the color space. Each component can be a number or the 'none' keyword.",
          "oneOf": [
            {
              "type": "array"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "alpha": {
          "description": "The alpha (transparency) value of the color. 0 is fully transparent, 1 is fully opaque. If omitted, defaults to 1.",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "hex": {
          "description": "Optional fallback value in 6-digit CSS hex color notation (e.g., '#ff00ff'). Must be 6 digits to avoid conflicts with the alpha value.",
          "$comment": "Only JSON Pointer references (not curly brace references) are allowed for hex because no string token type exists in the specification that could be referenced with curly braces.",
          "oneOf": [
            {
              "type": "string",
              "pattern": "^#[0-9a-fA-F]{6}$"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      },
      "required": [
        "colorSpace",
        "components"
      ],
      "additionalProperties": false,
      "definitions": {
        "zeroToOneComponent": {
          "title": "Zero to One Component",
          "description": "A color component normalized to the range [0-1] (e.g., RGB values, XYZ values)",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "hueComponent": {
          "title": "Hue Component",
          "description": "Hue angle from 0 up to (but not including) 360 degrees",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "exclusiveMaximum": 360
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "percentageComponent": {
          "title": "Percentage Component",
          "description": "Percentage value from 0 to 100",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 100
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "chromaComponent": {
          "title": "Chroma Component",
          "description": "Chroma value from 0 to infinity",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "unboundedComponent": {
          "title": "Unbounded Component",
          "description": "A color component with no numeric bounds (e.g., A and B in LAB/OKLAB color spaces)",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "const": "none"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "rgbComponents": {
          "title": "RGB Components",
          "description": "Array of RGB color components [Red, Green, Blue], each normalized to the range [0-1]",
          "type": "array",
          "minItems": 3,
          "maxItems": 3,
          "items": [
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            }
          ]
        },
        "xyzComponents": {
          "title": "XYZ Components",
          "description": "Array of XYZ color components [X, Y, Z], each normalized to the range [0-1]",
          "type": "array",
          "minItems": 3,
          "maxItems": 3,
          "items": [
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            },
            {
              "$ref": "#/definitions/zeroToOneComponent"
            }
          ]
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "srgb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "srgb-linear"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "display-p3"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "a98-rgb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "prophoto-rgb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "rec2020"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/rgbComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "xyz-d65"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/xyzComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "xyz-d50"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "$ref": "#/definitions/xyzComponents"
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "hsl"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/hueComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "hwb"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/hueComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/percentageComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "lab"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "lch"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/percentageComponent"
                  },
                  {
                    "$ref": "#/definitions/chromaComponent"
                  },
                  {
                    "$ref": "#/definitions/hueComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "oklab"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/zeroToOneComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  },
                  {
                    "$ref": "#/definitions/unboundedComponent"
                  }
                ]
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "colorSpace": {
                "const": "oklch"
              },
              "components": {
                "type": "array"
              }
            }
          },
          "then": {
            "properties": {
              "components": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                  {
                    "$ref": "#/definitions/zeroToOneComponent"
                  },
                  {
                    "$ref": "#/definitions/chromaComponent"
                  },
                  {
                    "$ref": "#/definitions/hueComponent"
                  }
                ]
              }
            }
          }
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json",
      "title": "Dimension Value",
      "description": "Value schema for dimension type tokens. Represents an amount of distance in a single dimension in the UI, such as a position, width, height, radius, or thickness.",
      "type": "object",
      "properties": {
        "value": {
          "description": "An integer or floating-point value representing the numeric value.",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "unit": {
          "description": "Unit of distance. Supported values: 'px' (idealized pixel, equivalent to dp on Android and pt on iOS), 'rem' (multiple of system's default font size).",
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "px",
                "rem"
              ]
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      },
      "required": [
        "value",
        "unit"
      ],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json",
      "title": "Font Family Value",
      "description": "Value schema for fontFamily type tokens. Represents a font name or an array of font names (ordered from most to least preferred).",
      "oneOf": [
        {
          "type": "string",
          "description": "A single font name",
          "not": {
            "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference"
          }
        },
        {
          "type": "array",
          "description": "An array of font names, ordered from most to least preferred",
          "items": {
            "oneOf": [
              {
                "type": "string",
                "not": {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference"
                }
              },
              {
                "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
              }
            ]
          },
          "minItems": 1
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json",
      "title": "Font Weight Value",
      "description": "Value schema for fontWeight type tokens. Represents a font weight as per the OpenType wght tag specification. Lower numbers represent lighter weights, higher numbers represent thicker weights.",
      "oneOf": [
        {
          "type": "number",
          "description": "Numeric font weight value",
          "minimum": 1,
          "maximum": 1000
        },
        {
          "type": "string",
          "description": "Pre-defined font weight string value",
          "enum": [
            "thin",
            "hairline",
            "extra-light",
            "ultra-light",
            "light",
            "normal",
            "regular",
            "book",
            "medium",
            "semi-bold",
            "demi-bold",
            "bold",
            "extra-bold",
            "ultra-bold",
            "black",
            "heavy",
            "extra-black",
            "ultra-black"
          ]
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/duration.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json",
      "title": "Duration Value",
      "description": "Value schema for duration type tokens. Represents the length of time in milliseconds an animation or animation cycle takes to complete.",
      "type": "object",
      "properties": {
        "value": {
          "description": "An integer or floating-point value representing the numeric value.",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "unit": {
          "description": "Unit of time. Supported values: 'ms' (millisecond), 's' (second).",
          "oneOf": [
            {
              "type": "string",
              "enum": [
                "ms",
                "s"
              ]
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      },
      "required": [
        "value",
        "unit"
      ],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json",
      "title": "Cubic Bezier Value",
      "description": "Value schema for cubicBezier type tokens. Represents how the value of an animated property progresses towards completion over the duration of an animation, effectively creating visual effects such as acceleration, deceleration, and bounce.",
      "type": "array",
      "items": [
        {
          "$ref": "#/definitions/xCoordinate"
        },
        {
          "$ref": "#/definitions/yCoordinate"
        },
        {
          "$ref": "#/definitions/xCoordinate"
        },
        {
          "$ref": "#/definitions/yCoordinate"
        }
      ],
      "additionalItems": false,
      "minItems": 4,
      "maxItems": 4,
      "definitions": {
        "xCoordinate": {
          "title": "X Coordinate",
          "description": "X coordinate of control point (must be between 0 and 1)",
          "oneOf": [
            {
              "type": "number",
              "minimum": 0,
              "maximum": 1
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        },
        "yCoordinate": {
          "title": "Y Coordinate",
          "description": "Y coordinate of control point (can be any real number)",
          "oneOf": [
            {
              "type": "number"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
            }
          ]
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/number.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/number.json",
      "title": "Number Value",
      "description": "Value schema for number type tokens. Numbers can be positive, negative and have fractions. Example uses are gradient stop positions or unitless line heights.",
      "type": "number"
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json",
      "title": "Stroke Style Value",
      "description": "Value schema for strokeStyle type tokens. Represents the style applied to lines or borders.",
      "oneOf": [
        {
          "type": "string",
          "enum": [
            "solid",
            "dashed",
            "dotted",
            "double",
            "groove",
            "ridge",
            "outset",
            "inset"
          ],
          "description": "Pre-defined stroke style values with the same meaning as CSS line style values"
        },
        {
          "type": "object",
          "properties": {
            "dashArray": {
              "description": "Array of dimension values specifying lengths of alternating dashes and gaps",
              "oneOf": [
                {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                      },
                      {
                        "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                      }
                    ]
                  },
                  "minItems": 1
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
                }
              ]
            },
            "lineCap": {
              "description": "Line cap style, same meaning as SVG stroke-linecap attribute",
              "oneOf": [
                {
                  "type": "string",
                  "enum": [
                    "round",
                    "butt",
                    "square"
                  ]
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
                }
              ]
            }
          },
          "required": [
            "dashArray",
            "lineCap"
          ],
          "additionalProperties": false
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/border.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/border.json",
      "title": "Border Value",
      "description": "Value schema for border type tokens. Represents a border style.",
      "type": "object",
      "properties": {
        "color": {
          "description": "The color of the border",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "width": {
          "description": "The width or thickness of the border",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "style": {
          "description": "The border's style",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/strokeStyle.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        }
      },
      "required": [
        "color",
        "width",
        "style"
      ],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/transition.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/transition.json",
      "title": "Transition Value",
      "description": "Value schema for transition type tokens. Represents an animated transition between two states.",
      "type": "object",
      "properties": {
        "duration": {
          "description": "The duration of the transition",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "delay": {
          "description": "The time to wait before the transition begins",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/duration.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "timingFunction": {
          "description": "The timing function of the transition",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/cubicBezier.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        }
      },
      "required": [
        "duration",
        "delay",
        "timingFunction"
      ],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/shadow.json",
      "title": "Shadow Value",
      "description": "Value schema for shadow type tokens. Represents a shadow style.",
      "oneOf": [
        {
          "$ref": "#/definitions/shadowObject"
        },
        {
          "type": "array",
          "description": "Array of shadow objects and/or references to shadow tokens",
          "items": {
            "oneOf": [
              {
                "$ref": "#/definitions/shadowObject"
              },
              {
                "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
              }
            ]
          },
          "minItems": 1
        }
      ],
      "definitions": {
        "shadowObject": {
          "title": "Shadow Object",
          "type": "object",
          "properties": {
            "color": {
              "description": "The color of the shadow",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "offsetX": {
              "description": "The horizontal offset that shadow has from the element it is applied to",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "offsetY": {
              "description": "The vertical offset that shadow has from the element it is applied to",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "blur": {
              "description": "The blur radius that is applied to the shadow",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "spread": {
              "description": "The amount by which to expand or contract the shadow",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "inset": {
              "description": "Whether this shadow is inside the containing shape (inner shadow) rather than a drop shadow (default: false)",
              "oneOf": [
                {
                  "type": "boolean"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReferenceObject"
                }
              ]
            }
          },
          "required": [
            "color",
            "offsetX",
            "offsetY",
            "blur",
            "spread"
          ],
          "additionalProperties": false
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/gradient.json",
      "title": "Gradient Value",
      "description": "Value schema for gradient type tokens. Represents a color gradient.",
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "#/definitions/gradientStop"
          },
          {
            "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
          }
        ]
      },
      "minItems": 1,
      "definitions": {
        "gradientStop": {
          "title": "Gradient Stop",
          "type": "object",
          "properties": {
            "color": {
              "description": "The color value at the stop's position on the gradient",
              "oneOf": [
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/color.json"
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            },
            "position": {
              "description": "The position of the stop along the gradient's axis (range [0, 1]). Values outside this range are clamped.",
              "oneOf": [
                {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                {
                  "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
                }
              ]
            }
          },
          "required": [
            "color",
            "position"
          ],
          "additionalProperties": false
        }
      }
    },
    "https://www.designtokens.org/schemas/2025.10/format/values/typography.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/values/typography.json",
      "title": "Typography Value",
      "description": "Value schema for typography type tokens. Represents a typographic style.",
      "type": "object",
      "properties": {
        "fontFamily": {
          "description": "The typography's font",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontFamily.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "fontSize": {
          "description": "The size of the typography",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "fontWeight": {
          "description": "The weight of the typography",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/fontWeight.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "letterSpacing": {
          "description": "The horizontal spacing between characters",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/dimension.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        },
        "lineHeight": {
          "description": "The vertical spacing between lines of typography (interpreted as a multiplier of fontSize)",
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format/values/number.json"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/tokenValueReference"
            }
          ]
        }
      },
      "required": [
        "fontFamily",
        "fontSize",
        "fontWeight",
        "letterSpacing",
        "lineHeight"
      ],
      "additionalProperties": false
    },
    "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json",
      "title": "Group or Token",
      "description": "A group or a token in the DTCG specification. A token is identified by the presence of a $value property, while a group is any object without a $value property.",
      "oneOf": [
        {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/group.json"
        },
        {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/token.json"
        }
      ]
    },
    "https://www.designtokens.org/schemas/2025.10/format/group.json": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "$id": "https://www.designtokens.org/schemas/2025.10/format/group.json",
      "title": "Group",
      "description": "A group in the DTCG specification",
      "type": "object",
      "properties": {
        "$type": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/tokenType.json"
        },
        "$description": {
          "type": "string",
          "description": "A plain text description of the group"
        },
        "$extensions": {
          "type": "object",
          "description": "Vendor-specific extensions"
        },
        "$extends": {
          "oneOf": [
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/curlyBraceReference"
            },
            {
              "$ref": "https://www.designtokens.org/schemas/2025.10/format.json#/definitions/jsonPointerReference"
            }
          ],
          "description": "Reference to another group to inherit tokens and properties from"
        },
        "$deprecated": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "string"
            }
          ],
          "description": "Whether this group is deprecated"
        },
        "$root": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/token.json"
        }
      },
      "patternProperties": {
        "^[^${}.][^{}.]*$": {
          "$ref": "https://www.designtokens.org/schemas/2025.10/format/groupOrToken.json"
        }
      },
      "additionalProperties": false
    }
  }
}
