ds_blueprint
devShakib Blueprint — chalk lines on a navy drawing sheet.
devshakib.jumyn.com · github.com/devShakib015

The idea
A drawing sheet after dark. Lines are chalk white and pale cyan, and the sparks are the colours a draughtsman marks a drawing up with: yellow for keywords, red pencil for types, green for strings, pink for numbers.
Blue is the ground here, so blue never carries a syntax role of its own — it would sink straight into the paper. That constraint is what keeps a blue theme from turning into a blur of blues.
| role |
colour |
contrast |
keyword, storage, this |
#FFD470 |
12.2:1 · italic |
| function, method |
#8FE6FF |
12.2:1 |
| type, class, interface |
#FF9F85 |
8.6:1 |
| string |
#A9E8BA |
12.2:1 |
| number, constant |
#FF8AD8 |
8.1:1 |
| property |
#A6C8EE |
9.9:1 |
| annotation, decorator |
#B8A6FF |
8.1:1 · italic |
| variable |
#E4F0FF |
14.9:1 |
| parameter |
#CADCF0 |
12.3:1 · italic |
| comment |
#86A6CB |
6.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 6.81: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.