ds_paper
devShakib Paper — ink on warm stock, for daylight.
devshakib.jumyn.com · github.com/devShakib015

The idea
The family's light theme, for daylight, bright rooms and projectors. The ground is warm paper rather than white, which takes the glare off without going grey.
On a light ground every syntax colour has to be dark, so this is not the dark themes turned inside out. It is built from inks: near-black for text, fountain-pen blue for calls, red pencil for keywords, a rubber-stamp teal for types, olive for strings and umber for numbers. The terminal follows the same rule — its bright colours are a second ink at the same darkness, because lighter would wash out.
| role |
colour |
contrast |
keyword, storage, this |
#B02A20 |
5.8:1 · italic |
| function, method |
#1D5FAE |
5.6:1 |
| type, class, interface |
#0B7466 |
5.0:1 |
| string |
#4F7412 |
4.8:1 |
| number, constant |
#955300 |
5.3:1 |
| property |
#3B5579 |
6.7:1 |
| annotation, decorator |
#7A3A9C |
6.3:1 · italic |
| variable |
#2A251F |
13.4:1 |
| parameter |
#463F35 |
9.1:1 · italic |
| comment |
#6F6553 |
5.0: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 string
colour at 4.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.