{"id":21380624,"url":"https://github.com/thertzlor/semantic-rainbow","last_synced_at":"2025-07-13T13:30:46.722Z","repository":{"id":62832667,"uuid":"407197019","full_name":"Thertzlor/semantic-rainbow","owner":"Thertzlor","description":"A maximalist VSCode color theme for semantic highlighting featuring bold colors and subtle distinctions.","archived":false,"fork":false,"pushed_at":"2024-05-22T18:02:26.000Z","size":9220,"stargazers_count":16,"open_issues_count":2,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-22T19:27:36.263Z","etag":null,"topics":["syntax-highlighting","visual-studio-code","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://thertzlor.github.io/semantic-rainbow/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thertzlor.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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}},"created_at":"2021-09-16T14:30:01.000Z","updated_at":"2024-05-22T19:27:50.989Z","dependencies_parsed_at":"2024-05-22T19:27:49.694Z","dependency_job_id":"2ecba2fa-d04c-4175-99a6-b5e673919042","html_url":"https://github.com/Thertzlor/semantic-rainbow","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thertzlor%2Fsemantic-rainbow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thertzlor%2Fsemantic-rainbow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thertzlor%2Fsemantic-rainbow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thertzlor%2Fsemantic-rainbow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thertzlor","download_url":"https://codeload.github.com/Thertzlor/semantic-rainbow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225885810,"owners_count":17539640,"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":["syntax-highlighting","visual-studio-code","vscode","vscode-extension"],"created_at":"2024-11-22T10:41:57.601Z","updated_at":"2025-07-13T13:30:46.709Z","avatar_url":"https://github.com/Thertzlor.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Banner](https://raw.githubusercontent.com/Thertzlor/semantic-rainbow/refs/heads/main/assets/SR_Banner.png)\n\n![Version](https://img.shields.io/visual-studio-marketplace/v/thertzlor.semantic-rainbow)\n[![CodeFactor](https://www.codefactor.io/repository/github/thertzlor/semantic-rainbow/badge)](https://www.codefactor.io/repository/github/thertzlor/semantic-rainbow)\n![Rating](https://img.shields.io/visual-studio-marketplace/stars/thertzlor.semantic-rainbow) ![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/thertzlor.semantic-rainbow)\n![License](https://img.shields.io/github/license/thertzlor/semantic-rainbow)\n## Overview\nPlenty of themes offer minimalist highlighting focusing on specific aspects of code while using a limited color palette. This theme takes the opposite approach.  \nUtilizing both bold colors and subtle distinctions, anything than *can* be identified *will* be identified.  \n\nWhy do I think this might be a good idea? [This blog posts elaborates on my general reasoning.](https://www.modal-marginalia.com/post/1-syntax-highlighting-and-focus)\n\n### **TypeScript**\n![TypeScript Highlighted](https://raw.githubusercontent.com/Thertzlor/semantic-rainbow/refs/heads/main/assets/SR_ts_small.png)\n### **SCSS**\n![TypeScript Highlighted](https://raw.githubusercontent.com/Thertzlor/semantic-rainbow/refs/heads/main/assets/SR_cs_small.png)\n### **Python**\n![TypeScript Highlighted](https://raw.githubusercontent.com/Thertzlor/semantic-rainbow/refs/heads/main/assets/SR_py_small.png)\n### **Full Editor**\n![Example Full](https://raw.githubusercontent.com/Thertzlor/semantic-rainbow/refs/heads/main/assets/SR_Example.png)\n\nList of languages supported (sorted by amount of tests):\n- TypeScript/JavaScript\n- CSS/SCSS\n- Python\n- lua\n- HTML/Twig\n- Java\n- Go\n- Ruby\n- C++\n\nSemantic Highlighting enables an amazing amount of granular control of styles and **Semantic Rainbow** aims to make use of all of it.\n\nBy highlighting **14** types of semantic tokens each with **8** varations corresponding to different semantic modifiers and an additional **18** shades for combinations of two or more individual modifiers, this theme defines a total of **364** styles for all conceivable (and a few inconceivable) kinds of tokens.\n\nIf you've ever wanted a visual distinction between a *readonly async method*, and a *readonly async method of a default library* and also want to tell it apart from a *static default library method* look no further.\n\nFor a list of styles and a breakdown of the design process, check out the [GitHub page of this repo](https://thertzlor.github.io/semantic-rainbow/).\n\n## How it works\nIf 364 styles sounds like too much to configure by hand, you're right.  \n*Semantic Rainbow* is programmatically generated, based on a configuration of base colors for the different tokens and a list of specific color transformations for token modifiers which can also be stacked to represent different combinations.  \nAbout 8.24% of styles/transformations are manually defined, stepping in where the automatic generation produced less than optimal results.\n\nThe definition of colors and transformations follows a [simple spec](https://github.com/Thertzlor/semantic-rainbow/tree/main/generator#user-content-working-with-the-semantic-theme-generator) for easy tweaking and forking to create any number of dynamic semantic themes.\n\n## Compatibility\nThis theme relies on the presence of a language server that support Semantic Highlighting. Some of the languages with the best support for this feature include JavaScript, TypeScript, Java and Python.  \nKeep in mind results might vary based on the language extensions you have installed, and even for non-semantic highlighting the theme attempts to approximate results by providing fallback mappings to TextMate rules including but not limited to the [VSCode semantic token scope map](https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#semantic-token-scope-map).\n\n## Installation\nInstall from VSCode or via the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=thertzlor.semantic-rainbow).\n\n## Roadmap\n* Support for even more TinyColor color transformations\n* Including color readability checks\n\n## Contributing\nI am always looking for ways to improve Semantic Rainbow.\n\n* Know any language with Semantic Highlighting that this theme could support better?\n* Notice any contexts in which the existing syntax highlighting looks bad or incomplete?\n* Are there any TextMate fallbacks or modifier combinations that should be included?\n\nPreferably issues or fixes should be demonstrated in an example file and with info about, if applicable, extensions used to provide syntax highlighting.\n\n## Credits\n* [**Horizon Dark Theme**](https://horizontheme.netlify.app/) - Semantic Rainbow started as an extension of this theme and it remains an influence especially in the non-syntax parts. \n* [**TinyColor**](https://github.com/bgrins/TinyColor) -  Used for color transformations.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthertzlor%2Fsemantic-rainbow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthertzlor%2Fsemantic-rainbow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthertzlor%2Fsemantic-rainbow/lists"}