One Theme Database to rule them all.
ThemeDatabase is a static GitHub Pages app for exploring 22K+ VS Code themes, filtering by color and token intent, and exporting any theme as a .vsix extension package in the browser.
Home (interactive color picker + filters):
Export Builder (VSIX + other targets):
Theme Pack Builder (select up to 10 themes, export as one VSIX):
- Interactive code preview: click any syntax token color to filter the whole dataset.
- Color palette + HEX picker: presets, custom picker, and tolerance slider.
- Theme Explorer: virtualized grid/list browsing for large datasets.
- Theme Detail: palette breakdown, editor colors, and similar themes.
- Theme selection (max 10): pin selected themes to the top and remove duplicates from the main list.
- Theme Pack Builder: export selected themes as a single
.vsixtheme pack. - Export Builder: generate artifacts client-side:
- VS Code
.vsix - JetBrains color scheme (
.icls) and plugin zip - Xcode
.dvtcolortheme - Vim colorscheme
- Emacs theme
- VS Code
- Support popover: Buy Me a Coffee link + manual supporters list (
public/supporters.json). - GitHub Pages-safe routing:
HashRouterwithbase: './'.
- React + Vite + TypeScript
react-router-dom(HashRouter)react-windowvirtualization- Browser-side VSIX packaging with JSZip
- Static sharded dataset in
public/data
Source data (from workspace root):
../themes_enhanced.csv../theme_previews_svg../theme_previews_png../extracted_themes
Generate data shards:
npm run build:dataSync preview assets:
npm run sync:previewsFull local build (data + previews + app):
npm run build:fullnpm install
npm run devnpm run test:run
npm run smokeThis repo includes a GitHub Actions Pages workflow: .github/workflows/deploy-pages.yml.
Deployment flow:
- Make sure
public/dataand preview assets exist in the repo (static hosting). - Push to
main. - GitHub Actions builds and publishes
dist/to Pages.
Suggested values for GitHub repo settings:
- Description: Global theme database: pick colors from code, filter 22K+ themes, export to VS Code/JetBrains/Xcode/Vim/Emacs.
- Website:
https://nsozturk.github.io/ThemeDatabase/ - Topics:
vscodevscode-themetheme-databasetheme-explorervsixjetbrainsxcodevimemacscolor-matchingsyntax-highlightinggithub-pagesreactvite
This repo includes a script that captures real screenshots using your local Chrome:
node scripts/capture-screenshots.mjsThe support CTA is configured in public/supporters.json:
ctaUrl:https://buymeacoffee.com/ns0bjtiers: used for suggested amounts in the support popoversupporters: manual “Thanks” list displayed in About
MIT (LICENSE)
- SEO tags are defined in
index.html(description, keywords, Open Graph, Twitter, JSON-LD). public/robots.txtandpublic/sitemap.xmlare included for GitHub Pages indexing.- Default Pages URL assumes:
https://nsozturk.github.io/ThemeDatabase/- If your URL differs, update:
index.htmlcanonical +og:url+og:imagepublic/robots.txtsitemap URLpublic/sitemap.xml<loc>
- If your URL differs, update:


