The Ultimate Shiki Theme Matrix
A live preview of all 65 built-in Shiki syntax highlighting themes, side by side, rendered with real code at build time -- so you can see exactly what each one looks like before picking one for your own site.
GitHub & Git Ecosystem
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Material & Tech Collections
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Gruvbox & Natural Tones
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Catppuccin & Vibrant Pastels
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Popular Dev Classics
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Minimalist & High Contrast
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Specialty, Synth & Gaming
// Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} // Returns a greeting
function greet(name = "World") {
const count = 42;
const isReady = true;
return `Hello, ${name}! #${count}`;
} Frequently asked questions
How do I use one of these themes in my own project?
Install the theme name as Shiki’s `theme` option (e.g. `theme: "dracula"`) wherever you configure Shiki -- in Astro’s markdown config, VitePress, Nuxt Content, or a direct `codeToHtml()` call. Every name shown on this page is one of Shiki’s officially bundled themes, so no extra install is needed.
What’s the difference between a theme and its variants (e.g. Catppuccin Mocha vs Latte)?
Variants are the same color system at different brightness levels -- usually a dark and a light version, sometimes more. Catppuccin, for example, ships four: Latte (light), and Frappé, Macchiato, and Mocha (progressively darker).
Can I use a different theme for light and dark mode?
Yes -- Shiki supports passing multiple themes at once (e.g. `themes: { light: "github-light", dark: "github-dark" }`), and switches between them automatically based on a CSS class or media query, without re-rendering the code block.
Why do some themes look identical in this gallery?
A few themes share a base palette but differ in details this short sample doesn’t exercise, such as bracket-pair coloring, diff/git markers, or markup languages other than JavaScript. Try a theme in your own project for the full picture.