{ "$schema": "http://json-schema.org/draft-07/schema", "title": "Chatterino Theme", "description": "Colors and metadata for a Chatterino 2 theme", "definitions": { "qt-color": { "type": "string", "$comment": "https://doc.qt.io/qt-5/qcolor.html#setNamedColor", "anyOf": [ { "title": "#RGB", "pattern": "^#[a-fA-F0-9]{3}$" }, { "title": "#RRGGBB", "pattern": "^#[a-fA-F0-9]{6}$" }, { "title": "#AARRGGBB", "$comment": "Note that this isn't identical to the CSS Color Moudle Level 4 where the alpha value is at the end.", "pattern": "^#[a-fA-F0-9]{8}$" }, { "title": "#RRRGGGBBB", "pattern": "^#[a-fA-F0-9]{9}$" }, { "title": "#RRRRGGGGBBBB", "pattern": "^#[a-fA-F0-9]{12}$" }, { "title": "SVG Color", "description": "This enum is stricter than Qt. You could theoretically put tabs and spaces between characters in a named color and capitalize the color.", "$comment": "https://www.w3.org/TR/SVG11/types.html#ColorKeywords", "enum": [ "aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkgrey", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkslategrey", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dimgrey", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightgrey", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightslategrey", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "slategrey", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen" ] }, { "title": "transparent", "enum": ["transparent"] } ] }, "tab-colors": { "type": "object", "additionalProperties": false, "properties": { "backgrounds": { "type": "object", "additionalProperties": false, "properties": { "hover": { "$ref": "#/definitions/qt-color" }, "regular": { "$ref": "#/definitions/qt-color" }, "unfocused": { "$ref": "#/definitions/qt-color" } }, "required": ["hover", "regular", "unfocused"] }, "line": { "type": "object", "additionalProperties": false, "properties": { "hover": { "$ref": "#/definitions/qt-color" }, "regular": { "$ref": "#/definitions/qt-color" }, "unfocused": { "$ref": "#/definitions/qt-color" } }, "required": ["hover", "regular", "unfocused"] }, "text": { "$ref": "#/definitions/qt-color" } }, "required": ["backgrounds", "line", "text"] } }, "type": "object", "additionalProperties": false, "properties": { "colors": { "type": "object", "additionalProperties": false, "properties": { "accent": { "$ref": "#/definitions/qt-color" }, "messages": { "type": "object", "additionalProperties": false, "properties": { "backgrounds": { "type": "object", "additionalProperties": false, "properties": { "alternate": { "$ref": "#/definitions/qt-color" }, "regular": { "$ref": "#/definitions/qt-color" } }, "required": ["alternate", "regular"] }, "disabled": { "$ref": "#/definitions/qt-color" }, "highlightAnimationEnd": { "$ref": "#/definitions/qt-color" }, "highlightAnimationStart": { "$ref": "#/definitions/qt-color" }, "selection": { "$ref": "#/definitions/qt-color" }, "textColors": { "type": "object", "additionalProperties": false, "properties": { "caret": { "$ref": "#/definitions/qt-color" }, "chatPlaceholder": { "$ref": "#/definitions/qt-color" }, "link": { "$ref": "#/definitions/qt-color" }, "regular": { "$ref": "#/definitions/qt-color" }, "system": { "$ref": "#/definitions/qt-color" } }, "required": [ "caret", "chatPlaceholder", "link", "regular", "system" ] } }, "required": [ "backgrounds", "disabled", "highlightAnimationEnd", "highlightAnimationStart", "selection", "textColors" ] }, "scrollbars": { "type": "object", "additionalProperties": false, "properties": { "background": { "$ref": "#/definitions/qt-color" }, "thumb": { "$ref": "#/definitions/qt-color" }, "thumbSelected": { "$ref": "#/definitions/qt-color" } }, "required": ["background", "thumb", "thumbSelected"] }, "splits": { "type": "object", "additionalProperties": false, "properties": { "background": { "$ref": "#/definitions/qt-color" }, "dropPreview": { "$ref": "#/definitions/qt-color" }, "dropPreviewBorder": { "$ref": "#/definitions/qt-color" }, "dropTargetRect": { "$ref": "#/definitions/qt-color" }, "dropTargetRectBorder": { "$ref": "#/definitions/qt-color" }, "header": { "type": "object", "additionalProperties": false, "properties": { "background": { "$ref": "#/definitions/qt-color" }, "border": { "$ref": "#/definitions/qt-color" }, "focusedBackground": { "$ref": "#/definitions/qt-color" }, "focusedBorder": { "$ref": "#/definitions/qt-color" }, "focusedText": { "$ref": "#/definitions/qt-color" }, "text": { "$ref": "#/definitions/qt-color" } }, "required": [ "background", "border", "focusedBackground", "focusedBorder", "focusedText", "text" ] }, "input": { "type": "object", "additionalProperties": false, "properties": { "background": { "$ref": "#/definitions/qt-color" }, "text": { "$ref": "#/definitions/qt-color" } }, "required": ["background", "text"] }, "messageSeperator": { "$ref": "#/definitions/qt-color" }, "resizeHandle": { "$ref": "#/definitions/qt-color" }, "resizeHandleBackground": { "$ref": "#/definitions/qt-color" } }, "required": [ "background", "dropPreview", "dropPreviewBorder", "dropTargetRect", "dropTargetRectBorder", "header", "input", "messageSeperator", "resizeHandle", "resizeHandleBackground" ] }, "tabs": { "type": "object", "additionalProperties": false, "properties": { "liveIndicator": { "$ref": "#/definitions/qt-color" }, "rerunIndicator": { "$ref": "#/definitions/qt-color" }, "dividerLine": { "$ref": "#/definitions/qt-color" }, "highlighted": { "$ref": "#/definitions/tab-colors" }, "newMessage": { "$ref": "#/definitions/tab-colors" }, "regular": { "$ref": "#/definitions/tab-colors" }, "selected": { "$ref": "#/definitions/tab-colors" } }, "required": [ "dividerLine", "highlighted", "newMessage", "regular", "selected" ] }, "window": { "type": "object", "additionalProperties": false, "properties": { "background": { "$ref": "#/definitions/qt-color" }, "text": { "$ref": "#/definitions/qt-color" } }, "required": ["background", "text"] } }, "required": [ "accent", "messages", "scrollbars", "splits", "tabs", "window" ] }, "metadata": { "type": "object", "additionalProperties": false, "properties": { "iconTheme": { "$comment": "Determines which icons to use. 'dark' will use dark icons (best for a light theme). 'light' will use light icons.", "enum": ["light", "dark"], "default": "light" }, "fallbackTheme": { "$comment": "Determines which built-in Chatterino theme to use as a fallback in case a color isn't configured.", "enum": ["White", "Light", "Dark", "Black"], "default": "Dark" } }, "required": ["iconTheme"] }, "$schema": { "type": "string" } }, "required": ["colors", "metadata"] }