{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "categories": { "$id": "#category-definitions", "title": "Category Definitions", "description": "The categories listed in the README.", "type": "array", "items": { "$id": "#category-definitions/item", "title": "Category Item", "type": "object", "required": [ "key", "name", "description", "emoji" ], "additionalProperties": false, "properties": { "key": { "$id": "#category-definitions/category/key", "title": "key", "type": "string", "$ref": "#/$defs/category" }, "name": { "$id": "#category-definitions/category/name", "title": "Name", "type": "string" }, "description": { "$id": "#category-definitions/category/description", "title": "Description", "type": "string" }, "emoji": { "$id": "#category-definitions/category/emoji", "title": "Emoji", "type": "string" } } } }, "ports": { "$id": "#ports", "title": "Ports", "type": "object", "description": "All ports in the Catppuccin organisation.", "patternProperties": { "[A-Za-z0-9_\\-]": { "$id": "#ports/port", "title": "Port", "type": "object", "description": "The GitHub repository name of the port.", "examples": [ "nvim" ], "required": [ "categories", "name", "platform" ], "additionalProperties": false, "properties": { "name": { "$id": "#ports/port/name", "title": "Name", "description": "The name of the software the port is for.", "type": "string", "examples": [ "Neovim" ] }, "categories": { "$id": "#ports/port/categories", "title": "Categories", "description": "The categories that fit the port the most, the first category is the primary category which the port will be listed under on the README.", "$ref": "#/$defs/categories" }, "platform": { "$id": "#ports/port/platform", "title": "Platform", "description": "The platforms the port supports. Either an array of supported operating systems or \"agnostic\" (indicating support for all platforms).", "oneOf": [ { "type": "array", "items": { "$id": "#ports/port/platform/os", "title": "Operating Systems", "type": "string", "enum": [ "android", "ios", "linux", "macos", "windows" ], "examples": [ [ "linux", "macos", "windows" ], [ "android", "ios" ] ] } }, { "type": "string", "enum": [ "agnostic" ] } ] }, "color": { "$ref": "#/$defs/color" }, "icon": { "$ref": "#/$defs/icon" }, "alias": { "$id": "#ports/port/alias", "title": "Alias", "description": "If another port provides the theme for this port, provide the name of the other port here (e.g. `vscode` for `azuredatastudio`, where Azure Data Studio uses the VS Code theme).", "type": "string" }, "url": { "$id": "#ports/port/url", "title": "URL", "description": "If the port is hosted on a specific URL, provide it here.", "examples": [ "https://github.com/catppuccin/vscode/tree/compiled" ], "type": "string" }, "links": { "$id": "#ports/port/links", "title": "Links", "description": "Links to the port on marketplaces, app stores; documentation, preview pages, etc.", "type": "array", "items": { "$id": "#ports/port/links/item", "title": "Link", "type": "object", "required": [ "name", "url" ], "additionalProperties": false, "properties": { "name": { "$id": "#ports/port/links/link/name", "title": "Name", "type": "string" }, "color": { "$ref": "#/$defs/color" }, "icon": { "$ref": "#/$defs/icon" }, "url": { "$id": "#ports/port/links/link/url", "title": "URL", "type": "string" } } } }, "upstreamed": { "$id": "#ports/port/upstreamed", "title": "Upstreamed", "description": "Boolean indicating whether the port has been upstreamed.", "type": "boolean" } } } } }, "showcases": { "$id": "#showcases", "title": "Showcases", "type": "array", "description": "Each showcase listed in the README", "items": { "$id": "#showcase/item", "title": "Showcase item", "type": "object", "required": [ "title", "link", "description" ], "additionalProperties": false, "properties": { "title": { "$id": "#showcase/showcase/title", "title": "title", "type": "string" }, "link": { "$id": "#showcase/showcase/link", "title": "Link", "type": "string" }, "description": { "$id": "#showcase/showcase/description", "title": "Link", "type": "string" } } } } }, "$defs": { "icon": { "$id": "#icon", "title": "Icon", "description": "The icon to use on the website. This should be the same name as the SVG file on https://simpleicons.org/. If a `.svg` suffix is present, it's taken from the local website repository resources.", "type": "string", "examples": [ "neovim", "neovim.svg" ] }, "color": { "$id": "#color", "title": "Color", "description": "The fill color for the icon on the website.", "type": "string", "enum": [ "rosewater", "flamingo", "pink", "mauve", "red", "maroon", "peach", "yellow", "green", "teal", "sky", "sapphire", "blue", "lavender", "text" ], "examples": [ "pink" ] }, "categories": { "$id": "#categories", "type": "array", "minItems": 1, "maxItems": 3, "items": { "$ref": "#/$defs/category" } }, "category": { "$id": "#category", "type": "string", "enum": [ "3d_modelling", "analytics", "application_launcher", "artificial_intelligence", "boot_loader", "browser", "browser_extension", "cli", "code_editor", "desktop_environment", "development", "discussion_forum", "document_viewer", "education", "email_client", "entertainment", "file_manager", "game", "game_development", "health_and_fitness", "library", "music", "note_taking", "notification_daemon", "photo_and_video", "productivity", "search_engine", "self_hosted", "social_networking", "system", "terminal", "translation_tool", "userstyle", "wiki", "window_manager" ] } } }