Skip to content
| Marketplace
Sign in
Visual Studio Code>Themes>DuoTone BlueNew to Visual Studio Code? Get it now.
DuoTone Blue

DuoTone Blue

Kenneth Tsang

|
4 installs
| (0) | Free
A double-hue blue and gold theme for Visual Studio Code
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DuoTone Blue


DuoTone Blue logo


DuoTone Blue is a pair of Visual Studio Code themes built from two hues: blue (Uno) and gold (Duo). The package contains DuoTone Blue Light and DuoTone Blue Dark, with the UI palette generated independently from syntax highlighting.

DuoTone Blue Light
DuoTone Blue Light
DuoTone Blue Dark
DuoTone Blue Dark

Color scheme

Sources

  • DuoTone Light Blue Syntax provides the light palette.
  • DuoTone Blue Dark provides the dark palette.
  • DuoTone Light Syntax and DuoTone Dark Syntax are the upstream two-hue syntax references.
  • Soy Themes is the reference for the project structure.

Syntax color mapping

The token scopes follow the baseline mapping in vscode-theme-gruvbox, but the colors come from DuoTone rather than Gruvbox's many unrelated accent hues. The mapping keeps DuoTone's two-hue hierarchy:

Scope family Light Dark
Default text, comments Uno-2 Uno-2
Strings and constants Duo-1 Duo-1
Keywords and storage modifiers Duo-1 Duo-2
Definitions, tags, selectors Uno-1 Uno-1
Punctuation Uno-3 Uno-4
Types and supported entities Uno-1 Uno-3

Development

Build

The generator uses Node.js directly and has no runtime or build dependencies. Use Node.js 22.18 or newer, then run:

npm run build

The build generates themes/duotone-blue-light.json and themes/duotone-blue-dark.json, and synchronizes the theme contributions in package.json. npm run check rebuilds the files and validates their manifest, syntax colors, and key contrast ratios. Package the extension with npm run package.

Testing in VS Code

Open this folder in VS Code and press F5 (or choose Run → Start Debugging). The Launch Extension configuration builds the themes first, then opens an Extension Development Host with DuoTone Blue available. Use Preferences: Color Theme in that new window to switch between the light and dark variants. After changing a palette or the generator, press F5 again or run Developer: Reload Window in the host window. The files in samples/ cover common languages, and Developer: Inspect Editor Tokens and Scopes shows which rule colored a token.

Previewing syntax colors in the terminal

scripts/preview.ts colors files with VS Code's own grammars and TextMate engine, so you can check syntax rules without opening VS Code. It reads the grammars from your VS Code installation, and uses the two development dependencies in package.json, so run npm install first.

npm run preview                                    # all samples, light variant
npm run preview -- --variant duotone-blue-dark samples/sample.py
npm run preview -- --plain samples/sample.ts       # [text|role] markup
npm run preview -- --plain --scopes Settings samples/sample.ts

In a terminal it prints the code in the theme's colors. With --plain, or when the output is piped, colored tokens are marked as [text|role] instead, and --scopes <text> lists the TextMate scopes of matching tokens. Roles that share a color are marked with the first of them in the palette, so constants show as string. Semantic highlighting needs a language server, so the preview shows TextMate colors only. If VS Code is installed somewhere unusual, pass its built-in extensions folder with --extensions <dir>.

Screenshots

scripts/screenshots.ts draws a simplified VS Code window for each variant, using the theme's colors and the same tokenizer as the preview, and saves it to images/<variant>.png with headless Chrome, Chromium or Edge. The window is an approximation; the code colors are what VS Code shows without a language server. Run npm run screenshots after changing colors, or pass --variant <id> for one variant and --chrome <path> if the browser isn't found.

Icon

scripts/icon.ts draws the extension icon from the dark palette, with "DUO" in Duo-1 to Duo-3 above "TONE" in Uno-1 to Uno-4, and saves it to images/icon.png the same way. The letters are geometric paths rather than text, so the icon looks the same on every machine. Run npm run icon after changing the dark palette.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft