Skip to content

Themes

All Themes

Inherited from shiki, here are all the themes bundled in shikiji.

ID
dark-plus
dracula
dracula-soft
github-dark
github-dark-dimmed
github-light
light-plus
material-theme
material-theme-darker
material-theme-lighter
material-theme-ocean
material-theme-palenight
min-dark
min-light
monokai
nord
one-dark-pro
poimandres
rose-pine
rose-pine-dawn
rose-pine-moon
slack-dark
slack-ochin
solarized-dark
solarized-light
vitesse-black
vitesse-dark
vitesse-light

Load Custom Themes

You can load custom themes by passing a Theme object into the themes array.

ts
import { getHighlighter } from 'shikiji'

const myTheme = JSON.parse(fs.readFileSync('my-theme.json', 'utf8'))

const highlighter = await getHighlighter({
  themes: [myTheme]
})

const html = highlighter.codeToHtml(code, {
  lang: 'javascript',
  theme: 'my-theme'
})

You can also load themes after the highlighter has been created.

ts
import { getHighlighter } from 'shikiji'

const myTheme = JSON.parse(fs.readFileSync('my-theme.json', 'utf8'))

const highlighter = await getHighlighter()

await highlighter.loadTheme(myTheme) // <--

const html = highlighter.codeToHtml(code, {
  lang: 'javascript',
  theme: 'my-theme'
})

The theme should be a TextMate theme in JSON object. For example, it should looks like this.

Released under the MIT License.