UNPKG

@progress/kendo-theme-tasks

Version:
450 lines (440 loc) • 17.3 kB
{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "kendo-cli://schemas/kendo-swatch.json", "title": "Kendo Swatch Definition", "properties": { "$schema": { "type": "string" }, "name": { "description": "Name of the theme. Used for naming download artifacts.", "type": "string" }, "base": { "description": "Base for the theme. Must be a valid kendo or webui theme name.", "type": "string", "enum": [ "@progress/kendo-theme-default", "@progress/kendo-theme-bootstrap", "@progress/kendo-theme-material", "@progress/kendo-theme-classic", "@progress/kendo-theme-nouvelle", "@telerik/webui-theme-default", "@telerik/webui-theme-bootstrap", "@telerik/webui-theme-material", "@telerik/webui-theme-glow", "@telerik/webui-theme-silk" ] }, "version": { "description": "Version of the theme to compile against. Note: this is recommended version.", "markdownDescription": "Version of the theme to compile against.\n\nNote: this is **recommended** version.", "type": "string" }, "product": { "description": "Product for which the theme is for. Either kendo or webui.", "type": "string", "enum": [ "kendo", "webui" ] }, "hidden": { "description": "Hides the swatch from themebuilder customization interface. Default is false. Note: this has no effect when uploading a swatch.", "markdownDescription": "Hides the swatch from themebuilder customization interface. Default is `false`.\n\nNote: this has **no effect** when uploading a swatch.", "type": "boolean" }, "previewColors": { "description": "A list of HEX colors that represents the theme.", "type": "array", "items": { "$ref": "#/$defs/css-color" }, "minItems": 2, "maxItems": 8 }, "components": { "description": "Components to include in the compiled theme. Leave empty for all.", "$ref": "#/$defs/component-list" }, "themeBuilder": { "description": "List of variables to be customized in ThemeBuilder, organized in groups", "type": "array", "items": { "$ref": "#/$defs/group" } }, "groups": { "description": "List of variables to be customized in ThemeBuilder, organized in groups", "type": "array", "items": { "$ref": "#/$defs/group" } }, "variables": { "$ref": "#/$defs/variable-list" } }, "additionalProperties": false, "required": [ "$schema", "name", "base", "product" ], "oneOf": [ { "oneOf": [ { "required": [ "variables" ] }, { "required": [ "groups" ] }, { "required": [ "themeBuilder" ] } ] } ], "$defs": { "css-color": { "$ref": "./css-color.json#/$defs/css-color" }, "css-length": { "$ref": "./css-number.json#/$defs/css-length" }, "sass-variable-type": { "$ref": "./sass-variable.json#/$defs/sass-variable-type" }, "component-list": { "$ref": "./kendo-component.json#/$defs/component-list" }, "group": { "description": "A group of variables", "type": "object", "properties": { "name": { "description": "Friendly group name. It will be shown as title in the themebuilder.", "type": "string" }, "variables": { "$ref": "#/$defs/variable-list" }, "hidden": { "description": "Hides the group from themebuilder customization interface. Default is false. Note: even a group is hidden, the variables will be processed!", "markdownDescription": "Hides the group from themebuilder customization interface. Default is `false`. \n\nNote: even a group is hidden, the variables will be processed!", "type": "boolean" } }, "additionalProperties": false, "required": [ "variables" ] }, "variable-list": { "description": "A list of variables. Each key refers to a sass variable name without the dollar sign", "type": "object", "patternProperties": { "^[a-zA-Z]": { "$ref": "#/$defs/variable" } }, "additionalProperties": false }, "variable": { "description": "An object representation of a variable.", "type": "object", "properties": { "name": { "description": "Friendly name for variable. Will be shown in Themebuilder as label for editor", "type": "string" }, "type": { "description": "Variable type. One of color, number, boolean or hidden.", "markdownDescription": "Variable type. One of `color`, `number`, `boolean` or `hidden`.", "$ref": "#/$defs/variable-type" }, "value": {}, "hidden": { "description": "Hides the variable from themebuilder customization interface. Default is false. Note: even a variable is hidden, it will be processed!", "markdownDescription": "Hides the variable from themebuilder customization interface. Default is `false`. \n\nNote: even a variable is hidden, it will be processed!", "type": "boolean" }, "enum": {} }, "additionalProperties": false, "required": [ "name", "type", "value" ], "allOf": [ { "if": { "properties": { "type": { "const": "color" }, "required": [ "type" ] } }, "then": { "properties": { "value": { "type": [ "string", "null" ], "oneOf": [ { "$ref": "#/$defs/css-color", "examples": [ "black", "#000000", "#000", "#000000FF", "#000f", "rgb( 0, 0, 0 )", "rgba( 0, 0, 0, 0 )" ] }, { "pattern": "^\\{\\{\\s*([a-zA-z\\d\\-\\_]+)(\\.[a-zA-z\\d\\-\\_]+)*\\s*\\}\\}$", "examples": [ "{{ base.themeColors.primary }}" ] } ], "description": "CSS color or token reference" } } } }, { "if": { "properties": { "type": { "const": "colorlist" }, "required": [ "type" ] } }, "then": { "properties": { "value": { "description": "A specific color from discreet color list.", "markdownDescription": "A specific color from discreet color list.", "type": [ "string", "null" ] }, "enum": { "type": "array", "items": { "oneOf": [ { "$ref": "#/$defs/css-color" }, { "$ref": "#/$defs/colorlist-tuple" } ] } } } } }, { "if": { "properties": { "type": { "const": "color-mode" }, "required": [ "type" ] } }, "then": { "properties": { "value": { "description": "How to apply colors based on intended theme luminocity. One of dark or light.", "markdownDescription": "How to apply colors based on intended theme luminocity. One of `dark` or `light`.", "type": [ "string", "null" ], "oneOf": [ { "$ref": "#/$defs/color-modes" }, { "type": "null" } ] }, "enum": { "type": "array", "items": { "oneOf": [ { "$ref": "#/$defs/color-modes" }, { "$ref": "#/$defs/colormode-tuple" } ] } } } } }, { "if": { "properties": { "type": { "const": "material-colorlist" }, "required": [ "type" ] } }, "then": { "properties": { "value": { "description": "A specific color from discreet color list.", "markdownDescription": "A specific color from discreet color list.", "type": [ "string", "null" ] }, "enum": { "type": "array", "items": { "oneOf": [ { "$ref": "#/$defs/material-colors" }, { "$ref": "#/$defs/material-colorlist-tuple" } ] } } } } }, { "if": { "properties": { "type": { "const": "number" }, "required": [ "type" ] } }, "then": { "properties": { "value": { "description": "Valid CSS length or null", "markdownDescription": "Valid CSS length or `null`. See [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/CSS/length).", "oneOf": [ { "$ref": "#/$defs/css-length" }, { "type": "null" } ] } } } }, { "if": { "properties": { "type": { "const": "boolean" }, "required": [ "type" ] } }, "then": { "properties": { "value": { "description": "true or false", "markdownDescription": "`true` or `false`", "enum": [ true, false, null ] } } } } ] }, "variable-type": { "oneOf": [ { "$ref": "#/$defs/sass-variable-type" }, { "type": "string", "const": "colorlist" }, { "type": "string", "const": "color-mode" }, { "type": "string", "const": "material-colorlist" } ] }, "colorlist-tuple": { "type": "object", "properties": { "text": { "type": "string" }, "value": { "$ref": "#/$defs/css-color" }, "preview": { "$ref": "#/$defs/css-color" } }, "additionalProperties": false, "required": [ "value" ] }, "color-modes": { "type": "string", "enum": [ "light", "dark" ] }, "colormode-tuple": { "type": "object", "properties": { "text": { "type": "string" }, "value": { "$ref": "#/$defs/color-modes" }, "preview": { "$ref": "#/$defs/css-color" } }, "additionalProperties": false, "required": [ "value" ] }, "material-colors": { "type": "string", "enum": [ "red", "pink", "purple", "deepPurple", "indigo", "blue", "lightBlue", "cyan", "teal", "green", "lightGreen", "lime", "yellow", "amber", "orange", "deepOrange", "brown", "gray", "blueGray" ] }, "material-colorlist-tuple": { "type": "object", "properties": { "text": { "type": "string" }, "value": { "$ref": "#/$defs/material-colors" }, "preview": { "$ref": "#/$defs/css-color" } }, "additionalProperties": false, "required": [ "value" ] } } }