The Plum Theme — Palette, Contrast and CSS Variables

One of 8 themes in the code-to-image tool · light-first palette

The Plum theme is five colours, not thirty: a page wash, an editor surface, a tint for chrome, an accent for keywords and one text colour that has to sit legibly on all three surfaces. The table below turns the palette into the numbers you actually need when re-implementing it — channels, hue and, most importantly, contrast against each surface.

#F0E4ECBackground#FDF9FCEditor#E9D8E4Tint#8B3A76Accent#33202CText

Palette in every notation

TokenHEXRGBHSL
Background#F0E4ECrgb(240, 228, 236)hsl(320, 29%, 92%)
Editor#FDF9FCrgb(253, 249, 252)hsl(315, 50%, 98%)
Tint#E9D8E4rgb(233, 216, 228)hsl(318, 28%, 88%)
Accent#8B3A76rgb(139, 58, 118)hsl(316, 41%, 39%)
Text#33202Crgb(51, 32, 44)hsl(322, 23%, 16%)

Contrast on each surface

Ratios use the WCAG 2.1 relative-luminance definition (sRGB gamma linearisation, 0.2126 / 0.7152 / 0.0722 weights). AA wants 4.5:1 for body text and 3:1 for large text; AAA raises those to 7:1 and 4.5:1.

PairRatioAA textAA largeAAA text
Text on background12.30:1passpasspass
Text on editor14.55:1passpasspass
Text on tint11.13:1passpasspass
Accent on editor6.79:1passpassfail

Copy-paste tokens

:root {
  --snippet-bg: #f0e4ec;
  --snippet-editor: #fdf9fc;
  --snippet-tint: #e9d8e4;
  --snippet-accent: #8b3a76;
  --snippet-text: #33202c;
}

What this palette is good for

Dusty mauve with a wine accent, the most decorative of the set. Keep it for hero images rather than inline documentation.

Other themes

Frequently asked questions

Does the Plum text colour pass WCAG on every surface?
Against the editor surface it measures 14.55:1 and against the page background 12.30:1. AA for body text needs 4.5:1, so the pair that matters for a code screenshot — text on editor — is comfortably above the bar.

Can I reuse these values in my own syntax theme?
Yes, and the copy block above is written as CSS custom properties for that reason. Map background to your editor canvas, editor to the code area, accent to keywords and text to identifiers. Because the palette is light-first, invert the two surfaces rather than the text colour if you need a dark variant.

Render your own snippet in this palette with the Code2Image code to image tool, or compare every palette in the theme library.