ds_synthwave
devShakib Synthwave — neon on indigo, without the shimmer.
devshakib.jumyn.com · github.com/devShakib015

The idea
Neon is easy to get wrong. Put saturated complements next to each other on a mid-tone ground and they vibrate, which looks great in a screenshot and tiring after an hour.
So the ground is a deep indigo, dark enough to hold light, and the tokens that appear most often — variables, properties, parameters — are pale lavender and ice. The neon is spent only where it means something: pink keywords, cyan calls, sun-yellow types, sunset-orange strings. They read as light sources, not noise.
| role |
colour |
contrast |
keyword, storage, this |
#FF5CC6 |
6.8:1 · italic |
| function, method |
#3DF2EE |
13.6:1 |
| type, class, interface |
#FEDE5D |
14.2:1 |
| string |
#FF9966 |
9.0:1 |
| number, constant |
#C69CFF |
8.6:1 |
| property |
#A5EDFF |
14.5:1 |
| annotation, decorator |
#72F1B8 |
13.4:1 · italic |
| variable |
#F4ECFF |
16.4:1 |
| parameter |
#D2C2F2 |
11.4:1 · italic |
| comment |
#9885C4 |
5.8:1 · italic |
Italics are structural rather than decorative: comments, keywords, storage,
this, parameters, annotations and attributes are the things you skim past or
read as scaffolding, so slanting them separates them without spending a colour.
Contrast
Measured at build time, not judged by eye. tool/build_themes.py refuses to
write the theme if any syntax colour, UI label or terminal colour falls below
4.5:1 on its own background, or if two roles a reader must tell apart sit
too close together. The lowest here is the comment
colour at 5.82:1.
Font
A theme cannot set your font — editor.fontFamily is a user setting. The
italics are designed around Victor Mono, whose italic is cursive, but any
monospace face with a real italic works.
"editor.fontFamily": "Victor Mono, JetBrains Mono, monospace",
"editor.fontSize": 15,
"editor.lineHeight": 1.7
The family
| theme |
|
| ds_retro |
green CRT with colour sparks |
| ds_amber |
amber phosphor, warm and blue-free |
| ds_synthwave |
neon on deep indigo |
| ds_paper |
ink on warm paper — the light one |
| ds_blueprint |
chalk lines on a navy drawing sheet |
| ds_noir |
silver greys, one red, one gold |
Building
python3 tool/build_themes.py # the theme JSON, refused if a check fails
python3 tool/make_icon.py # icon.png and icon-512.png
python3 tool/shots.py # preview.png, drawn from the theme JSON
npx @vscode/vsce package # the .vsix
The palette is tool/palette.py. Never hand-edit the theme JSON.
By
devShakib — devshakib.jumyn.com ·
github.com/devShakib015 ·
pub.dev/publishers/jumyn.com
Licence
MIT.