How the themes measure on this page’s sample
The sample above, highlighted in each theme the tool offers and measured with WCAG 2 contrast on the colour actually shown. 13 of 17 themes have at least one token colour under 4.5:1 on their own background; across all 65 themes that ship with the highlighter, 56 do, on a wider set of samples. The lifted colour is what Accessible colours puts in the image instead.
| Theme | Colours used | Under 4.5:1 | Worst colour | Lifted to |
|---|---|---|---|---|
| Dracula | 7 | 1 | #6272a4 3.02:1 | #7e90c3 4.51:1 |
| One Dark Pro | 8 | 2 | #7f848e 3.72:1 | #8d939d 4.52:1 |
| GitHub Dark | 6 | 0 | #8b949e 6.15:1 | — |
| Nord | 8 | 2 | #616e88 2.43:1 | #8e9cb7 4.51:1 |
| Tokyo Night | 11 | 1 | #51597d 2.50:1 | #7982a8 4.53:1 |
| Night Owl | 10 | 2 | #637777 3.87:1 | #6d8282 4.51:1 |
| Monokai | 7 | 2 | #f92672 3.92:1 | #ff447d 4.51:1 |
| Catppuccin Mocha | 7 | 0 | #9399b2 5.81:1 | — |
| Rosé Pine | 7 | 2 | #31748f 3.38:1 | #4789a4 4.52:1 |
| Vitesse Dark | 8 | 2 | #666666 3.26:1 | #7d7d7d 4.55:1 |
| Solarized Dark | 6 | 3 | #586e75 2.78:1 | #7a9198 4.52:1 |
| GitHub Light (light) | 6 | 0 | #6e7781 4.54:1 | — |
| One Light (light) | 6 | 3 | #a0a1a7 2.46:1 | #737379 4.51:1 |
| Catppuccin Latte (light) | 7 | 5 | #fe640b 2.63:1 | #be4700 4.53:1 |
| Vitesse Light (light) | 8 | 5 | #a0ada0 2.33:1 | #6d7a6e 4.50:1 |
| Solarized Light (light) | 6 | 5 | #93a1a1 2.47:1 | #667474 4.51:1 |
| VS Code Light+ (light) | 9 | 0 | #267f99 4.58:1 | — |
Comments are the usual casualty: syntax themes dim them on purpose so the code stands out, and on a slide or a phone screen in daylight the dimmed line is the one nobody can read. To check a single pair of colours by hand, use the contrast checker, which runs the same search.
Why the SVG works in Figma and slides
Most code-image tools take a picture of their own web page. Their SVG export wraps that page’s HTML in a<foreignObject> element, which browsers draw and design and office apps do not: Figma, Inkscape, Google Slides and PowerPoint show a blank box, and the text often cannot be selected. This tool writes the image itself, one <text> element per line, so any SVG reader draws it and the code stays searchable. The PNG is that same SVG drawn by your browser, so the two cannot disagree.
A 2× PNG says 192 ppi in its pHYs chunk and a 3× PNG says 288, so a slide or layout app places it at its 1× size instead of twice as large. For other raster work, SVG to PNG converts any SVG at an exact or print size.