ds_sepia
devShakib Sepia — a print toned in the darkroom.
devshakib.jumyn.com · github.com/devShakib015

The idea
The ground is the brown-black of a sepia shadow and the text is the cream of the
paper, so the whole screen sits in one warm range with no blue light behind it.
Colour comes the way it did on an old photograph: added by hand, sparingly.
Burnt sienna for keywords, ochre for types, a faded sage for strings, dusty rose
for numbers. Calls take the pale blue a tinter kept for skies — the one cool
colour on a warm print, so a function call never reads as plain text.
| role |
colour |
contrast |
keyword, storage, this |
#E47F52 |
6.6:1 · italic |
| function, method |
#CFE2EA |
13.9:1 |
| type, class, interface |
#DAB46C |
9.5:1 |
| string |
#AFBB8E |
9.1:1 |
| number, constant |
#D69CB0 |
8.2:1 |
| property |
#CFBD9C |
10.1:1 |
| annotation, decorator |
#B7A6D0 |
8.3:1 · italic |
| variable |
#E3D2B4 |
12.5:1 |
| parameter |
#BFAD8E |
8.5:1 · italic |
| comment |
#A08F74 |
5.9: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.91:1.
The build earned its keep on the first run: calls were a bright cream, and it
refused the theme because they sat too close to plain text for anyone to tell
apart. That is where the sky blue came from.
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 |
| ds_sepia |
a darkroom print, tinted by hand |
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.