Lynx Theme Pro welcomes contributions of all kinds — whether you want to craft a new color theme, add SVG icons, or improve the documentation. All active development happens on theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/bastndev/Lynx-Theme-Pro/llms.txt
Use this file to discover all available pages before exploring further.
dev branch, and every PR should target that branch. Before you start, read the Architecture guide to understand how themes, icons, and the Liquid Glass engine fit together.
Prerequisites
Read the Architecture guide first. It explains the directory layout, how the 8 themes are structured, how the SVG icon pool is mapped, and how the esbuild pipeline compiles the Liquid Glass engine. Knowing this context will save you time and ensure your contribution lands in the right place.Quick Start
Fork the repository on GitHub
Visit github.com/bastndev/Lynx-Theme-Pro and click Fork to create your own copy of the repository under your GitHub account.
Contribution Types
🎨 New or improved themes
🎨 New or improved themes
Location:
Test your theme against at least TypeScript, Python, Dart, and Rust source files before submitting. Check syntax highlighting, comments, strings, and UI chrome (sidebar, status bar, tabs) in each.
src/themes/Naming: Lynx-[Name]-theme.jsonBase type: vs-dark for dark themes, vs for light themes.Copy an existing theme JSON as your starting point — for example, 01_Lynx-Dark-theme.json for a dark variant or 02_Lynx-Light-theme.json for a light one. The file must follow the standard VS Code color theme schema with these top-level keys: $schema, semanticClass, semanticHighlighting, name, type, colors, and tokenColors.The numeric prefix (01_ through 08_) controls the alphabetical sort order in VS Code’s theme picker. If you are adding a brand-new theme, you do not need a prefix unless you are explicitly adjusting display order. Do not renumber existing prefixes without a good reason — it breaks muscle memory for existing users.Current themes for reference:| # | Name | Type |
|---|---|---|
| 01 | DARK | Dark |
| 02 | LIGHT | Light |
| 03 | NIGHT | Dark |
| 04 | GHIBLI | Light |
| 05 | FURY | Dark |
| 06 | KIRO | Dark |
| 07 | NVIM | Dark |
| 08 | LIQUID | Dark + Glass |
🖼️ New icons
🖼️ New icons
SVG files:
src/assets/svg/JSON mappings: src/icons/icon-themes/ (Style A — dark, Style B — light, Style C — gray)All three file/folder icon styles share the same SVG pool, so adding a single SVG makes it available to all three styles once you add the mapping. Follow this naming convention strictly:name-file.svg— file iconname-folder.svg— closed folder iconname-folder-open.svg— open folder icon
fileExtensions— map by file extension (e.g.,"ts","py")fileNames— map by exact file name (e.g.,"Dockerfile","AGENTS.md")languageIds— map by VS Code language identifier (e.g.,"typescript","rust")folderNames/folderNamesExpanded— map by folder name
📝 Documentation
📝 Documentation
The documentation source files live in the repository root. Target files for documentation contributions are:
README.md— main extension readme shown on the VS Code MarketplaceARCHITECTURE.md— codebase deep diveCONTRIBUTING.md— contribution guidelinesCHANGELOG.md— version history
public/screenshots/themes/ or public/screenshots/icons/ and are referenced in the README via GitHub raw URLs. They are not bundled in the VSIX package — the public/ directory is stripped by .vscodeignore.If you are adding new translated documentation, place it in public/docs/ following the existing naming pattern (e.g., README_DE.md, README_JA.md). The extension currently supports 11 languages: AR, DE, ES, FR, HI, JA, KO, PT, RU, VI, and ZH.Build Commands
Before submitting a PR, verify your changes compile cleanly. Run commands in this order: lint → check-types → compile/package.compile and package commands both invoke esbuild.js, which produces two separate outputs: a CJS bundle for the extension host and an ESM .mjs bundle for the Electron runtime. CSS files from src/themes/liquid-theme/css/ are automatically copied to dist/ after each build.
PR Guidelines
- Target the
devbranch — never open a PR againstmain. The maintainer promotesdevtomainfor releases. - Keep PRs small and focused — one theme, one icon set, or one documentation fix per PR. If you are touching multiple unrelated things, split them into separate PRs. Focused PRs are reviewed and merged faster.
- Describe your changes — your PR description should include what changed, why it was needed, and confirmation that you tested on at least 2–3 language files.
- Include screenshots for any visual change — a before/after pair is ideal. This is especially important for theme and icon contributions.
- Never edit
package.json— this file is maintainer-only. Versioning,contributesentries, and script definitions are managed by the project maintainer.
By participating in this project, you agree to follow the Code of Conduct. Please keep all interactions respectful and constructive.