catppuccin-userstyles/src/userstyles.schema.json
sgoudham 8cfccfd837
feat: launch catppuccin/userstyles
Co-authored-by: rubyowo <perhaps-you-know@what-is.ml>
Co-authored-by: Andreas Grafen <andreas@grafen.info>
Co-authored-by: winston <hey@winston.sh>
Co-authored-by: Carsten Kragelund <carsten@kragelund.me>
Co-authored-by: Andreas Grafen <andreas@grafen.info>
Co-authored-by: Alaina <68250402+alaidriel@users.noreply.github.com>
Co-authored-by: jolheiser <john.olheiser@gmail.com>
2023-07-20 19:43:01 +01:00

204 lines
6.8 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"userstyles": {
"$id": "#userstyles",
"title": "Userstyles",
"type": "object",
"description": "All userstyles in the Catppuccin org.",
"patternProperties": {
"[A-Za-z0-9_\\-]": {
"$id": "#userstyles/userstyle",
"title": "Userstyle",
"type": "object",
"description": "The directory of the userstyle.",
"examples": ["youtube"],
"required": ["name", "category", "readme"],
"additionalProperties": false,
"properties": {
"name": {
"$id": "#userstyles/userstyle/name",
"title": "Name",
"description": "The name of the userstyle(s).",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"examples": [["AniList", "AniChart"]]
},
{
"type": "string",
"examples": ["YouTube"]
}
]
},
"category": {
"$id": "#userstyles/userstyle/category",
"title": "Category",
"description": "The category that fits the port the most.",
"$ref": "#/$defs/category"
},
"color": {
"$id": "#userstyles/userstyle/color",
"title": "Color",
"description": "The fill color for the icon on the Catppuccin website.",
"type": "string",
"enum": [
"rosewater",
"flamingo",
"pink",
"mauve",
"red",
"maroon",
"peach",
"yellow",
"green",
"teal",
"sky",
"sapphire",
"blue",
"lavender",
"text"
],
"examples": ["pink"]
},
"icon": {
"$id": "#userstyles/userstyle/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": ["twitch", "twitch.svg"]
},
"readme": {
"$id": "#userstyles/userstyle/readme",
"title": "README",
"description": "Options to help in the auto-generation of the userstyle README.",
"type": "object",
"required": ["app-link", "current-maintainers"],
"properties": {
"app-link": {
"$id": "#userstyles/userstyle/readme/app-link",
"title": "Application Link",
"description": "The hyperlink of the app that is being themed.",
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 2,
"examples": [
["https://anilist.co", "https://anichart.net"]
]
},
{
"type": "string",
"examples": ["https://github.com"]
}
]
},
"usage": {
"$id": "#userstyles/userstyle/readme/usage",
"title": "Usage",
"description": "The Usage section of the userstyle README.",
"type": "string"
},
"faq": {
"$id": "#userstyles/userstyle/readme/faq",
"title": "FAQ",
"description": "The FAQ section of the userstyle README.",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"question": {
"type": "string",
"title": "Question",
"description": "A question that a user may have about the userstyle."
},
"answer": {
"type": "string",
"title": "Answer",
"description": "An answer to the question about the userstyle."
}
},
"required": ["question", "answer"]
}
},
"current-maintainers": {
"$id": "#userstyles/userstyle/readme/current-maintainers",
"title": "Current Maintainers",
"description": "List of all active maintainers for this userstyle.",
"$ref": "#/$defs/collaborators"
},
"past-maintainers": {
"$id": "#userstyles/userstyle/readme/past-maintainers",
"title": "Past Maintainers",
"description": "List of all maintainers that have maintained on this userstyle in the past.",
"$ref": "#/$defs/collaborators"
}
}
}
}
}
}
},
"collaborators": {
"$id": "#all-collaborators",
"title": "All Collaborators",
"description": "Represents all maintainers and contributors to all userstyles.",
"$ref": "#/$defs/collaborators"
}
},
"$defs": {
"collaborators": {
"$id": "#collaborators",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Display Name",
"description": "The display name of the collaborator to show in the userstyle README."
},
"url": {
"type": "string",
"title": "GitHub Profile",
"description": "The GitHub profile link of the collaborator to show in the userstyle README."
}
},
"required": ["url"]
}
},
"category": {
"$id": "#category",
"type": "string",
"enum": [
"browser",
"browser_extension",
"cli",
"code_editor",
"development",
"game",
"leisure",
"library",
"messaging",
"note_taking",
"productivity",
"search_engine",
"social",
"system",
"terminal"
]
}
}
}