Skip to content

Themes ​

Change how Vesper looks in Settings → Appearance. The theme follows light and dark mode by itself. Your public page keeps Vesper's own look.

Built-in themes and accent ​

ThemeLooks like
PaperWarm paper with a dotted grid (the default)
PlainPaper without the grid or handwriting
MistCool blue-grey
MatchaSoft green
InkBlack and white

Pick an accent colour to replace the theme's own for links, buttons and highlights. Dark mode uses a lighter mix of it so it stays readable. Choose Use the theme's colour to go back.

Custom CSS Pro ​

On Pro you can add your own CSS under Settings → Appearance → Custom CSS. It loads after everything Vesper ships, so it wins without !important.

What to target ​

Every part of the page has a data-vx attribute. These are the stable ones:

SelectorPart
[data-vx="header"], [data-vx="brand"]The header and the workspace name and icon
[data-vx="timeline"], [data-vx="entry"]The timeline and each entry
[data-vx="entry-body"]An entry's text (rendered Markdown)
[data-vx="print"], [data-vx="prints"]Photos on the timeline
[data-vx="tag-bar"], [data-vx="tag"]Tags
[data-vx="rail"], [data-vx="heatmap"]The side rail and the activity heatmap
[data-vx="gallery"], [data-vx="viewer"]The photo wall and the full-size viewer
[data-vx="atlas"], [data-vx="map-pin"]The atlas map and its photo markers
[data-vx="button"], [data-vx="input"]Buttons and text fields

Other data-vx names and class names can change between versions; build on the ones above.

Variables ​

Prefer changing variables to rewriting rules. Use light-dark(light, dark) to give a value for each mode.

VariableSets
--color-background, --color-mutedPage and panel backgrounds
--color-foreground, --color-muted-foregroundText
--color-border, --color-border-strongLines
--color-accent, --color-accent-foregroundLinks, buttons, highlights
--color-note, --color-photo-frame, --color-paper-gridPinned notes, photo borders, the dotted grid
--font-sans, --font-serif, --font-mono, --font-handTypefaces
--radius-sm, --radius-md, --radius-lg, --shadow-paperCorners and shadows
css
:root {
  --color-background: light-dark(#fffaf3, #17140f);
  --font-sans: "Iowan Old Style", serif;
}

[data-vx="entry-body"] {
  font-size: 1.0625rem;
  line-height: 1.8;
}

What is removed ​

When you save, Vesper removes:

  • @import, @charset and @namespace.
  • url() to anything but your own site (/…) or an inline data:image/…; web fonts and images from other sites do not load.
  • behavior, -moz-binding and expression().

Anything over 64 KB is refused. A rule that contains something removed is dropped whole; the rest stays.