{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "ThemeSet",
  "description": "Represents a theme configuration.",
  "type": "object",
  "properties": {
    "name": {
      "description": "The name of the theme set.",
      "type": "string",
      "default": ""
    },
    "author": {
      "description": "The author of the theme.",
      "type": ["string", "null"],
      "default": null
    },
    "url": {
      "description": "The URL of the theme.",
      "type": ["string", "null"],
      "default": null
    },
    "themes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ThemeConfig"
      },
      "default": []
    }
  },
  "required": ["name", "themes"],
  "$defs": {
    "ThemeConfig": {
      "type": "object",
      "properties": {
        "name": {
          "description": "The name of the theme.",
          "type": "string",
          "default": ""
        },
        "mode": {
          "description": "The mode of the theme, default is light.",
          "$ref": "#/$defs/ThemeMode",
          "default": "light"
        },
        "font.size": {
          "description": "The base font size, default is 16.",
          "type": ["number", "null"],
          "format": "float",
          "default": 16
        },
        "font.family": {
          "description": "The base font family, default is system font: `.SystemUIFont`.",
          "type": ["string", "null"],
          "default": ".SystemUIFont"
        },
        "mono_font.size": {
          "description": "The base monospace font size, default is 13.",
          "type": ["number", "null"],
          "format": "float",
          "default": 13
        },
        "mono_font.family": {
          "description": "The monospace font family, default is platform specific:\nmacOS: `Menlo`\n- Windows: `Consolas`\n- Linux: `DejaVu Sans Mono`",
          "type": ["string", "null"],
          "default": null
        },
        "radius": {
          "description": "The border radius for general elements, default is 6.",
          "type": ["number", "null"],
          "default": 6
        },
        "radius.lg": {
          "description": "The border radius for large elements like Dialogs and Notifications, default is 8.",
          "type": ["number", "null"],
          "default": 8
        },
        "shadow": {
          "description": "Set shadows in the theme, for example the Input and Button, default is true.",
          "type": ["boolean", "null"],
          "default": true
        },
        "colors": {
          "description": "The colors of the theme.",
          "$ref": "#/$defs/ThemeConfigColors",
          "default": {
            "accent.background": null,
            "accent.foreground": null,
            "background": null,
            "border": null,
            "danger.background": null,
            "foreground": null,
            "muted.background": null,
            "muted.foreground": null,
            "primary.background": null,
            "primary.foreground": null,
            "secondary.background": null,
            "secondary.foreground": null,
            "base.blue": null,
            "base.cyan": null,
            "base.green": null,
            "base.magenta": null,
            "base.red": null,
            "base.yellow": null
          }
        },
        "highlight": {
          "description": "The highlight theme, this part is combilbility with `style` section in Zed theme.\n\nhttps://github.com/zed-industries/zed/blob/f50041779dcfd7a76c8aec293361c60c53f02d51/assets/themes/ayu/ayu.json#L9",
          "anyOf": [
            {
              "$ref": "#/$defs/HighlightThemeStyle"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": ["name", "mode", "colors"]
    },
    "ThemeMode": {
      "type": "string",
      "enum": ["light", "dark"]
    },
    "ThemeConfigColors": {
      "type": "object",
      "properties": {
        "accent.background": {
          "description": "Used for accents such as hover background on MenuItem, ListItem, etc.",
          "type": ["string", "null"]
        },
        "accent.foreground": {
          "description": "Used for accent text color.",
          "type": ["string", "null"]
        },
        "accordion.background": {
          "description": "Accordion background color.",
          "type": ["string", "null"]
        },
        "accordion.hover.background": {
          "description": "Accordion hover background color.",
          "type": ["string", "null"]
        },
        "background": {
          "description": "Default background color.",
          "type": ["string", "null"]
        },
        "border": {
          "description": "Default border color",
          "type": ["string", "null"]
        },
        "caret": {
          "description": "Input caret color (Blinking cursor).",
          "type": ["string", "null"]
        },
        "chart.1": {
          "description": "Chart 1 color.",
          "type": ["string", "null"]
        },
        "chart.2": {
          "description": "Chart 2 color.",
          "type": ["string", "null"]
        },
        "chart.3": {
          "description": "Chart 3 color.",
          "type": ["string", "null"]
        },
        "chart.4": {
          "description": "Chart 4 color.",
          "type": ["string", "null"]
        },
        "chart.5": {
          "description": "Chart 5 color.",
          "type": ["string", "null"]
        },
        "danger.background": {
          "description": "Danger background color.",
          "type": ["string", "null"]
        },
        "danger.active.background": {
          "description": "Danger active background color.",
          "type": ["string", "null"]
        },
        "danger.foreground": {
          "description": "Danger text color.",
          "type": ["string", "null"]
        },
        "danger.hover.background": {
          "description": "Danger hover background color.",
          "type": ["string", "null"]
        },
        "description_list.label.background": {
          "description": "Description List label background color.",
          "type": ["string", "null"]
        },
        "description_list.label.foreground": {
          "description": "Description List label foreground color.",
          "type": ["string", "null"]
        },
        "drag.border": {
          "description": "Drag border color.",
          "type": ["string", "null"]
        },
        "drop_target.background": {
          "description": "Drop target background color.",
          "type": ["string", "null"]
        },
        "foreground": {
          "description": "Default text color.",
          "type": ["string", "null"]
        },
        "group_box.background": {
          "description": "Background color for GroupBox.",
          "type": ["string", "null"]
        },
        "group_box.foreground": {
          "description": "Foreground color for GroupBox.",
          "type": ["string", "null"]
        },
        "group_box.title.foreground": {
          "description": "Title text color for GroupBox.",
          "type": ["string", "null"]
        },
        "info.background": {
          "description": "Info background color.",
          "type": ["string", "null"]
        },
        "info.active.background": {
          "description": "Info active background color.",
          "type": ["string", "null"]
        },
        "info.foreground": {
          "description": "Info text color.",
          "type": ["string", "null"]
        },
        "info.hover.background": {
          "description": "Info hover background color.",
          "type": ["string", "null"]
        },
        "input.border": {
          "description": "Border color for inputs such as Input, Select, etc.",
          "type": ["string", "null"]
        },
        "link": {
          "description": "Link text color.",
          "type": ["string", "null"]
        },
        "link.active": {
          "description": "Active link text color.",
          "type": ["string", "null"]
        },
        "link.hover": {
          "description": "Hover link text color.",
          "type": ["string", "null"]
        },
        "list.background": {
          "description": "Background color for List and ListItem.",
          "type": ["string", "null"]
        },
        "list.active.background": {
          "description": "Background color for active ListItem.",
          "type": ["string", "null"]
        },
        "list.active.border": {
          "description": "Border color for active ListItem.",
          "type": ["string", "null"]
        },
        "list.even.background": {
          "description": "Stripe background color for even ListItem.",
          "type": ["string", "null"]
        },
        "list.head.background": {
          "description": "Background color for List header.",
          "type": ["string", "null"]
        },
        "list.hover.background": {
          "description": "Hover background color for ListItem.",
          "type": ["string", "null"]
        },
        "muted.background": {
          "description": "Muted backgrounds such as Skeleton and Switch.",
          "type": ["string", "null"]
        },
        "muted.foreground": {
          "description": "Muted text color, as used in disabled text.",
          "type": ["string", "null"]
        },
        "popover.background": {
          "description": "Background color for Popover.",
          "type": ["string", "null"]
        },
        "popover.foreground": {
          "description": "Text color for Popover.",
          "type": ["string", "null"]
        },
        "primary.background": {
          "description": "Primary background color.",
          "type": ["string", "null"]
        },
        "primary.active.background": {
          "description": "Active primary background color.",
          "type": ["string", "null"]
        },
        "primary.foreground": {
          "description": "Primary text color.",
          "type": ["string", "null"]
        },
        "primary.hover.background": {
          "description": "Hover primary background color.",
          "type": ["string", "null"]
        },
        "progress.bar.background": {
          "description": "Progress bar background color.",
          "type": ["string", "null"]
        },
        "ring": {
          "description": "Used for focus ring.",
          "type": ["string", "null"]
        },
        "scrollbar.background": {
          "description": "Scrollbar background color.",
          "type": ["string", "null"]
        },
        "scrollbar.thumb.background": {
          "description": "Scrollbar thumb background color.",
          "type": ["string", "null"]
        },
        "scrollbar.thumb.hover.background": {
          "description": "Scrollbar thumb hover background color.",
          "type": ["string", "null"]
        },
        "secondary.background": {
          "description": "Secondary background color.",
          "type": ["string", "null"]
        },
        "secondary.active.background": {
          "description": "Active secondary background color.",
          "type": ["string", "null"]
        },
        "secondary.foreground": {
          "description": "Secondary text color, used for secondary Button text color or secondary text.",
          "type": ["string", "null"]
        },
        "secondary.hover.background": {
          "description": "Hover secondary background color.",
          "type": ["string", "null"]
        },
        "selection.background": {
          "description": "Input selection background color.",
          "type": ["string", "null"]
        },
        "sidebar.background": {
          "description": "Sidebar background color.",
          "type": ["string", "null"]
        },
        "sidebar.accent.background": {
          "description": "Sidebar accent background color.",
          "type": ["string", "null"]
        },
        "sidebar.accent.foreground": {
          "description": "Sidebar accent text color.",
          "type": ["string", "null"]
        },
        "sidebar.border": {
          "description": "Sidebar border color.",
          "type": ["string", "null"]
        },
        "sidebar.foreground": {
          "description": "Sidebar text color.",
          "type": ["string", "null"]
        },
        "sidebar.primary.background": {
          "description": "Sidebar primary background color.",
          "type": ["string", "null"]
        },
        "sidebar.primary.foreground": {
          "description": "Sidebar primary text color.",
          "type": ["string", "null"]
        },
        "skeleton.background": {
          "description": "Skeleton background color.",
          "type": ["string", "null"]
        },
        "slider.background": {
          "description": "Slider bar background color.",
          "type": ["string", "null"]
        },
        "slider.thumb.background": {
          "description": "Slider thumb background color.",
          "type": ["string", "null"]
        },
        "success.background": {
          "description": "Success background color.",
          "type": ["string", "null"]
        },
        "success.foreground": {
          "description": "Success text color.",
          "type": ["string", "null"]
        },
        "success.hover.background": {
          "description": "Success hover background color.",
          "type": ["string", "null"]
        },
        "success.active.background": {
          "description": "Success active background color.",
          "type": ["string", "null"]
        },
        "switch.background": {
          "description": "Switch background color.",
          "type": ["string", "null"]
        },
        "switch.thumb.background": {
          "description": "Switch thumb background color.",
          "type": ["string", "null"]
        },
        "tab.background": {
          "description": "Tab background color.",
          "type": ["string", "null"]
        },
        "tab.active.background": {
          "description": "Tab active background color.",
          "type": ["string", "null"]
        },
        "tab.active.foreground": {
          "description": "Tab active text color.",
          "type": ["string", "null"]
        },
        "tab_bar.background": {
          "description": "TabBar background color.",
          "type": ["string", "null"]
        },
        "tab_bar.segmented.background": {
          "description": "TabBar segmented background color.",
          "type": ["string", "null"]
        },
        "tab.foreground": {
          "description": "Tab text color.",
          "type": ["string", "null"]
        },
        "table.background": {
          "description": "Table background color.",
          "type": ["string", "null"]
        },
        "table.active.background": {
          "description": "Table active item background color.",
          "type": ["string", "null"]
        },
        "table.active.border": {
          "description": "Table active item border color.",
          "type": ["string", "null"]
        },
        "table.even.background": {
          "description": "Stripe background color for even TableRow.",
          "type": ["string", "null"]
        },
        "table.head.background": {
          "description": "Table header background color.",
          "type": ["string", "null"]
        },
        "table.head.foreground": {
          "description": "Table header text color.",
          "type": ["string", "null"]
        },
        "table.foot.background": {
          "description": "Table footer background color.",
          "type": ["string", "null"]
        },
        "table.foot.foreground": {
          "description": "Table footer text color.",
          "type": ["string", "null"]
        },
        "table.hover.background": {
          "description": "Table item hover background color.",
          "type": ["string", "null"]
        },
        "table.row.border": {
          "description": "Table row border color.",
          "type": ["string", "null"]
        },
        "title_bar.background": {
          "description": "TitleBar background color, use for Window title bar.",
          "type": ["string", "null"]
        },
        "title_bar.border": {
          "description": "TitleBar border color.",
          "type": ["string", "null"]
        },
        "tiles.background": {
          "description": "Background color for Tiles.",
          "type": ["string", "null"]
        },
        "warning.background": {
          "description": "Warning background color.",
          "type": ["string", "null"]
        },
        "warning.active.background": {
          "description": "Warning active background color.",
          "type": ["string", "null"]
        },
        "warning.hover.background": {
          "description": "Warning hover background color.",
          "type": ["string", "null"]
        },
        "warning.foreground": {
          "description": "Warning foreground color.",
          "type": ["string", "null"]
        },
        "overlay": {
          "description": "Overlay background color.",
          "type": ["string", "null"]
        },
        "window.border": {
          "description": "Window border color.\n\n# Platform specific:\n\nThis is only works on Linux, other platforms we can't change the window border color.",
          "type": ["string", "null"]
        },
        "base.blue": {
          "description": "Base blue color.",
          "type": ["string", "null"]
        },
        "base.blue.light": {
          "description": "Base light blue color.",
          "type": ["string", "null"]
        },
        "base.cyan": {
          "description": "Base cyan color.",
          "type": ["string", "null"]
        },
        "base.cyan.light": {
          "description": "Base light cyan color.",
          "type": ["string", "null"]
        },
        "base.green": {
          "description": "Base green color.",
          "type": ["string", "null"]
        },
        "base.green.light": {
          "description": "Base light green color.",
          "type": ["string", "null"]
        },
        "base.magenta": {
          "description": "Base magenta color.",
          "type": ["string", "null"]
        },
        "base.magenta.light": {
          "type": ["string", "null"]
        },
        "base.red": {
          "description": "Base red color.",
          "type": ["string", "null"]
        },
        "base.red.light": {
          "description": "Base light red color.",
          "type": ["string", "null"]
        },
        "base.yellow": {
          "description": "Base yellow color.",
          "type": ["string", "null"]
        },
        "base.yellow.light": {
          "description": "Base light yellow color.",
          "type": ["string", "null"]
        }
      },
      "required": [
        "accent.background",
        "accent.foreground",
        "background",
        "border",
        "foreground",
        "muted.background",
        "muted.foreground",
        "primary.background",
        "primary.foreground",
        "base.blue",
        "base.cyan",
        "base.green",
        "base.magenta",
        "base.red",
        "base.yellow"
      ]
    },
    "HighlightThemeStyle": {
      "type": "object",
      "properties": {
        "editor.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "editor.foreground": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "editor.active_line.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "editor.line_number": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "editor.active_line_number": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "error": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "error.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "error.border": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "warning": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "warning.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "warning.border": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "info": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "info.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "info.border": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "success": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "success.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "success.border": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "hint": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "hint.background": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "hint.border": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "syntax": {
          "$ref": "#/$defs/SyntaxColors"
        }
      },
      "required": ["syntax"]
    },
    "Rgba": {
      "type": "string",
      "pattern": "^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$"
    },
    "SyntaxColors": {
      "description": "Theme for Tree-sitter Highlight\n\nhttps://docs.rs/tree-sitter-highlight/0.25.4/tree_sitter_highlight/",
      "type": "object",
      "properties": {
        "attribute": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "boolean": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "comment": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "comment_doc": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "constant": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "constructor": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "embedded": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "emphasis": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "emphasis.strong": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "enum": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "function": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "hint": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "keyword": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "label": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "link_text": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "link_uri": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "number": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "operator": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "predictive": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "preproc": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "primary": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "property": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "punctuation": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "punctuation.bracket": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "punctuation.delimiter": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "punctuation.list_marker": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "punctuation.special": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "string": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "string.escape": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "string.regex": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "string.special": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "string.special.symbol": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "tag": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "tag.doctype": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "text.literal": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "title": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "type": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "variable": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "variable.special": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "variant": {
          "anyOf": [
            {
              "$ref": "#/$defs/ThemeStyle"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": []
    },
    "ThemeStyle": {
      "type": "object",
      "properties": {
        "color": {
          "anyOf": [
            {
              "$ref": "#/$defs/Rgba"
            },
            {
              "type": "null"
            }
          ]
        },
        "font_style": {
          "anyOf": [
            {
              "$ref": "#/$defs/FontStyle"
            },
            {
              "type": "null"
            }
          ]
        },
        "font_weight": {
          "anyOf": [
            {
              "$ref": "#/$defs/FontWeightContent"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": []
    },
    "FontStyle": {
      "type": "string",
      "enum": ["normal", "italic", "underline"]
    },
    "FontWeightContent": {
      "type": "number",
      "enum": [100, 200, 300, 400, 500, 600, 700, 800, 900]
    }
  }
}
