{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://gitea.jbrumond.me/minimal/docs/raw/branch/master/json-schema/color-theme/v1.json",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the color theme as it is displayed in web UI. Must match the file name of the theme file, e.g. a theme called \"example-theme\" should be located in a file called \"example-theme.theme.json\"\n"
},
"colors": {
"type": "object",
"description": "Contains the values that will be used to populate the CSS variables controlling the UI theme",
"properties": {
"sun": {
"$ref": "#/definitions/css_color",
"description": "The color of the sun icon used to indicate that the light color theme is active. Must have good contrast against bg_main\n"
},
"moon": {
"$ref": "#/definitions/css_color",
"description": "The color of the moon icon used to indicate that the dark color theme is active. Must have good contrast against bg_main\n"
},
"bg_main": {
"$ref": "#/definitions/css_color",
"description": "The primary background color applied to the page as a whole. Must have good contrast against the main copy text colors text_heading, text_body, text_light, text_link, text_link_active, and text_link_visited\n"
},
"bg_light": {
"$ref": "#/definitions/css_color",
"description": "A lighter background color applied to content panels; Should have a relatively low contrast against the bg_main color, providing only a light accent. Must have good contrast against the main copy text colors text_heading, text_body, text_light, text_link, text_link_active, and text_link_visited\n"
},
"bg_heavy": {
"$ref": "#/definitions/css_color",
"description": "A heavier background color applied to content panels; Should have a relatively higher contrast against the bg_main color, directing attention to what is \"important\" or \"primary\" content inside of it. Must have good contrast against the main copy text colors text_heading, text_body, text_light, text_link, text_link_active, and text_link_visited\n"
},
"bg_popup_mask": {
"$ref": "#/definitions/css_color"
},
"line": {
"$ref": "#/definitions/css_color"
},
"text_heading": {
"$ref": "#/definitions/css_color",
"description": "The color of heading text"
},
"text_body": {
"$ref": "#/definitions/css_color",
"description": "The color of main / normal body copy text"
},
"text_light": {
"$ref": "#/definitions/css_color"
},
"text_accent": {
"$ref": "#/definitions/css_color"
},
"text_link": {
"$ref": "#/definitions/css_color",
"description": "The default color of hyperlinks"
},
"text_link_active": {
"$ref": "#/definitions/css_color",
"description": "The color of hyperlinks that are currently active / selected"
},
"text_link_visited": {
"$ref": "#/definitions/css_color",
"description": "The color of hyperlinks that have been previously visited"
},
"bg_qrcode": {
"$ref": "#/definitions/css_color",
"description": "The background color (i.e. typically white) of rendered QR codes\n"
},
"stroke_qrcode": {
"$ref": "#/definitions/css_color",
"description": "The stroke color (i.e. typically black) of rendered QR codes\n"
},
"text_highlight": {
"$ref": "#/definitions/css_color",
"description": "The color of text highlighted using the text tag (or by using ==text== in markdown)\n"
},
"bg_text_highlight": {
"$ref": "#/definitions/css_color",
"description": "The background color of text highlighted using the text tag (or by using ==text== in markdown)\n"
},
"text_selection": {
"$ref": "#/definitions/css_color",
"description": "The color of text that has been selected by the user"
},
"bg_text_selection": {
"$ref": "#/definitions/css_color",
"description": "The background color of text that has been selected by the user"
},
"bg_button_primary": {
"$ref": "#/definitions/css_color",
"description": "The background color of \"primary\" buttons (typically major, positive actions, like \"save\" or \"publish\")\n"
},
"bg_button_primary_hover": {
"$ref": "#/definitions/css_color",
"description": "The background color of \"primary\" buttons (typically major, positive actions, like \"save\" or \"publish\") while the user is hovering over them\n"
},
"text_button_primary": {
"$ref": "#/definitions/css_color",
"description": "The text color of \"primary\" buttons (typically major, positive actions, like \"save\" or \"publish\")\n"
},
"bg_button_secondary": {
"$ref": "#/definitions/css_color",
"description": "The background color of \"secondary\" buttons (typically safe, unimpactful, or backward moving actions, like \"cancel\" or \"preview\")\n"
},
"bg_button_secondary_hover": {
"$ref": "#/definitions/css_color",
"description": "The background color of \"secondary\" buttons (typically safe, unimpactful, or backward moving actions, like \"cancel\" or \"preview\") while the user is hovering over them\n"
},
"text_button_secondary": {
"$ref": "#/definitions/css_color",
"description": "The text color of \"secondary\" buttons (typically safe, unimpactful, or backward moving actions, like \"cancel\" or \"preview\")\n"
},
"bg_error_box": {
"$ref": "#/definitions/css_color"
},
"border_error_box": {
"$ref": "#/definitions/css_color"
},
"text_error_box": {
"$ref": "#/definitions/css_color"
},
"bg_input": {
"$ref": "#/definitions/css_color"
},
"border_input": {
"$ref": "#/definitions/css_color"
},
"border_input_invalid": {
"$ref": "#/definitions/css_color"
},
"icon_active_indicator": {
"$ref": "#/definitions/css_color"
},
"icon_success_indicator": {
"$ref": "#/definitions/css_color"
},
"icon_failure_indicator": {
"$ref": "#/definitions/css_color"
},
"icon_warning_indicator": {
"$ref": "#/definitions/css_color"
},
"chart_axis": {
"$ref": "#/definitions/css_color"
},
"chart_text": {
"$ref": "#/definitions/css_color"
},
"chart_guideline": {
"$ref": "#/definitions/css_color"
},
"chart_data_0": {
"$ref": "#/definitions/css_color"
},
"chart_data_1": {
"$ref": "#/definitions/css_color"
},
"chart_data_2": {
"$ref": "#/definitions/css_color"
},
"chart_data_3": {
"$ref": "#/definitions/css_color"
},
"chart_data_4": {
"$ref": "#/definitions/css_color"
},
"chart_data_5": {
"$ref": "#/definitions/css_color"
},
"chart_data_6": {
"$ref": "#/definitions/css_color"
},
"chart_data_7": {
"$ref": "#/definitions/css_color"
},
"chart_data_8": {
"$ref": "#/definitions/css_color"
},
"chart_data_9": {
"$ref": "#/definitions/css_color"
},
"code_normal": {
"$ref": "#/definitions/css_color"
},
"code_shadow": {
"$ref": "#/definitions/css_color"
},
"code_background": {
"$ref": "#/definitions/css_color"
},
"code_selection": {
"$ref": "#/definitions/css_color"
},
"code_comment": {
"$ref": "#/definitions/css_color"
},
"code_punc": {
"$ref": "#/definitions/css_color"
},
"code_operator": {
"$ref": "#/definitions/css_color"
},
"code_const_literal": {
"$ref": "#/definitions/css_color"
},
"code_number_literal": {
"$ref": "#/definitions/css_color"
},
"code_boolean_literal": {
"$ref": "#/definitions/css_color"
},
"code_tag": {
"$ref": "#/definitions/css_color"
},
"code_string": {
"$ref": "#/definitions/css_color"
},
"code_keyword": {
"$ref": "#/definitions/css_color"
},
"code_func_name": {
"$ref": "#/definitions/css_color"
},
"code_class_name": {
"$ref": "#/definitions/css_color"
},
"code_regex_important": {
"$ref": "#/definitions/css_color"
},
"code_variable": {
"$ref": "#/definitions/css_color"
},
"code_builtin": {
"$ref": "#/definitions/css_color"
},
"code_attr_name": {
"$ref": "#/definitions/css_color"
},
"code_gutter_divider": {
"$ref": "#/definitions/css_color"
},
"code_line_number": {
"$ref": "#/definitions/css_color"
},
"code_line_highlight": {
"$ref": "#/definitions/css_color"
}
}
}
},
"definitions": {
"css_color": {
"oneOf": [
{
"type": "string",
"format": "regex",
"pattern": "^(#[0-9a-fA-F]{3}(?:[0-9a-fA-F]{3}(?:[0-9a-fA-F]{2})?)?)$",
"examples": [
"#000",
"#ff0000",
"#ffccaa88"
]
},
{
"type": "string",
"format": "regex",
"pattern": "^(rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\))$",
"examples": [
"rgb(10, 70, 130)"
]
},
{
"type": "string",
"format": "regex",
"pattern": "^(rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([01]|[01]?\\.[0-9]{1,3})\\s*\\))$",
"examples": [
"rgba(10, 70, 130, 0.5)"
]
},
{
"type": "string",
"const": "transparent"
},
{
"type": "string",
"const": "currentcolor"
},
{
"type": "string",
"enum": [
"black",
"silver",
"gray",
"white",
"maroon",
"red",
"purple",
"fuchsia",
"green",
"lime",
"olive",
"yellow",
"navy",
"blue",
"teal",
"aqua"
]
},
{
"type": "string",
"enum": [
"orange"
]
},
{
"type": "string",
"enum": [
"aliceblue",
"antiquewhite"
]
},
{
"type": "string",
"enum": [
"rebeccapurple"
]
}
]
}
}
}