{"id":27921572,"url":"https://github.com/victor-gp/yaml-vscode-theme-json-schema","last_synced_at":"2026-05-08T10:36:20.965Z","repository":{"id":291566689,"uuid":"977202939","full_name":"victor-gp/yaml-vscode-theme-json-schema","owner":"victor-gp","description":"JSON Schema for VS Code themes written in YAML","archived":false,"fork":false,"pushed_at":"2025-05-05T11:05:18.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T21:54:28.260Z","etag":null,"topics":["json-schema","vscode","vscode-theme","yaml"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/victor-gp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-03T16:53:14.000Z","updated_at":"2025-05-05T11:05:22.000Z","dependencies_parsed_at":"2025-05-06T21:54:21.346Z","dependency_job_id":null,"html_url":"https://github.com/victor-gp/yaml-vscode-theme-json-schema","commit_stats":null,"previous_names":["victor-gp/yaml-vscode-theme-json-schema"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/victor-gp/yaml-vscode-theme-json-schema","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victor-gp%2Fyaml-vscode-theme-json-schema","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victor-gp%2Fyaml-vscode-theme-json-schema/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victor-gp%2Fyaml-vscode-theme-json-schema/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victor-gp%2Fyaml-vscode-theme-json-schema/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/victor-gp","download_url":"https://codeload.github.com/victor-gp/yaml-vscode-theme-json-schema/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victor-gp%2Fyaml-vscode-theme-json-schema/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260606509,"owners_count":23035353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json-schema","vscode","vscode-theme","yaml"],"created_at":"2025-05-06T21:54:19.214Z","updated_at":"2026-05-08T10:36:20.750Z","avatar_url":"https://github.com/victor-gp.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSON Schema for YAML VS Code Themes\n\nJSON Schema files for VS Code themes written in YAML, with the extra features supported in projects like [Dracula for Visual Studio Code](https://github.com/dracula/visual-studio-code) and [Lucario Theme for VS Code](https://github.com/victor-gp/lucario-vscode-theme).\n\n## Motivation\n\nThe `color-theme` set of JSON Schemas from VS Code provide great Intellisense while developing a JSON VS Code theme. They properly describe each themable element in the workbench, provide useful snippets for many properties, etc.\n\nYAML files can validate with JSON Schemas alright, so YAML themes are theoretically able to benefit from that wealth of Intellisense hints.\nBut the VS Code schemas are not applicable for a couple of reasons:\n\n1. They're served on a `vscode://` URI, which is not accessible for the [YAML extension](https://github.com/redhat-developer/vscode-yaml) that provides JSON Schema validation for YAML files.\n2. Even if they were accessible, they don't include support for the extra features that YAML VS Code themes can use, so we'd get a needless array of validation errors.\n\nThis project provides schemas that solve both these issues.\n\n## Extra features\n\nThese are the extra features afforded to YAML themes:\n\n- anchors (`\u0026`) and aliases (`*`): define a color or style once and reference it by name everyhwere else, like variables.\n  - this is out-of-the-box for YAML to JSON conversion, it doesn't require any schema modifications.\n\n  ```yaml\n  \u0026Accent   \"#5c98cd\"\n  # ...\n  activityBar.activeBorder: *Accent\n  ```\n\n- comments: you can use comments all throughout the file and they'll be stripped away from the delivered `.json` file.\n  - this is also out-of-the-box.\n\n  ```yaml\n  # Reference: https://code.visualstudio.com/api/references/theme-color\n  ```\n\n- color properties can take `!alpha` custom tags, which are transformed into `#rrggbbaa`/`#rgba` at conversion time.\n\n  ```yaml\n  editorLineNumber.foreground: !alpha ['#ffffff', '80']\n  ```\n\n- some color properties can take null values, and then they are removed at conversion time.\n\n  ```yaml\n  icon.foreground: # default is ok\n  ```\n\nWith the following support:\n\n| Support            | !alpha | null |\n|--------------------|--------|------|\n| colors             | ✅     | ✅   |\n| tokenColors        | ✅     | ❌   |\n| semanticTokenColors| ✅     | ❌   |\n\nWhere:\n\n- `colors`: Workbench (UI) elements\n- `tokenColors`: code syntax, provided by default\n- `semanticTokenColors`: code syntax, provided by a Language Server (extension)\n\n\u003c!--TODO version this feature support\nthis should be yaml-vscode-theme v1.\nv2 should extend null support for both token colors scopes. maybe also fontStyle.\nv3 could limit alpha values to strings only, adressing that blindspot in our schema. (this would be breaking for Dracula)\nv0 could be just the vscode themes, without any extra features.\nat the directory level. keep both v1 and v2-v\u003ci\u003e\nfurther versions could introduce more features...\ntags/releases in this project should correspond to vscode releases, e.g. vscode-v1.99.0\n--\u003e\n\n## Development\n\n- `save-vscode-schemas` (extension) gets the VS Code set of schemas, we filter the `color-theme` related ones.\n  - The extension isn't available on the VS Marketplace. You have to clone it locally.\n  - Then `npm i`, do `Debug: Start Debugging` and run the extension's command: `Save VS Code's Schemas`.\n  - Copy the saved schemas into this project under `schemas/v0`.\n- `patch-schemas.js` patches those schemas so they allow the extra features.\n  - They take the base VS Code schemas in `v0/` and output the result in `v1`.\n\n## Credit\n\n@wraith13 for their VS Code schema-related projects:\n\n- We used the schemas provided in [vscode-schemas](https://github.com/wraith13/vscode-schemas)  as the base for ours while the schemas still lived in [vscode-lucario-theme](https://github.com/victor-gp/lucario-vscode-theme).\n- We're using the [save-vscode-schemas](https://github.com/wraith13/save-vscode-schemas) extension to retrieve them in this project.\n\n## License\n\nMIT © Víctor González Prieto\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictor-gp%2Fyaml-vscode-theme-json-schema","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictor-gp%2Fyaml-vscode-theme-json-schema","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictor-gp%2Fyaml-vscode-theme-json-schema/lists"}