コンテンツへスキップ

テーマ

shikiphpにはShikiの全テーマが含まれます。VS Codeの全65テーマは、tm-themes 1.12.2のテーマセットで、Shiki 3.23.0に収録されています。内訳はダーク44、ライト21です。人気のIDにはgithub-dark、github-light、nord、dracula、vitesse-dark、vitesse-light、one-dark-pro、monokai、solarized-dark、さらにcatppuccin-*とmaterial-theme-*の各ファミリーがあります。

themeオプションでテーマを1つ、またはthemesを使って2つ以上指定し、ライト/ダークのCSS変数出力を行います。はじめにを参照してください。

PHP
use Shikiphp\Shikiphp;

echo Shikiphp::codeToHtml('const answer = 42', [
    'lang'   => 'js',
    'themes' => ['light' => 'github-light', 'dark' => 'github-dark'],
]);

バンドルにないテーマIDを指定すると、Shikiphp\Exceptions\Highlightが発生し、メッセージUnknown theme "…"が表示されます。

テーマで設定できる項目

テーマはブロックの前景色と背景色(<pre>に設定)に加え、各トークンの色とフォントスタイル(斜体、太字、下線、取り消し線)を設定します。スタイルはスコープセレクターの具体性に基づいて決まります。lang: 'ansi'の場合は、テーマのterminal.ansi*色がANSIパレットになります(ANSIを参照)。テーマを編集せずに個別の色を調整するには、colorReplacementsを使います。

同梱テーマの一覧表示

PHPから:

PHP
use Shikiphp\Shikiphp;

$highlighter = Shikiphp::highlighter();

$highlighter->bundledThemes(); // list<string> — ids shipped in the box
$highlighter->loadedThemes();  // list<string> — bundled plus any you registered

またはコマンドラインから、IDをアルファベット順に1行ずつ表示します:

シェル
vendor/bin/shikiphp themes

カタログ

種類はバンドルが各テーマに記録しているlightまたはdarkです。themesオプションに指定するテーマの組み合わせを選ぶ際に役立ちます。

テーマ ID 種類
Andromeeda andromeeda dark
Aurora X aurora-x dark
Ayu Dark ayu-dark dark
Ayu Light ayu-light light
Ayu Mirage ayu-mirage dark
Catppuccin Frappé catppuccin-frappe dark
Catppuccin Latte catppuccin-latte light
Catppuccin Macchiato catppuccin-macchiato dark
Catppuccin Mocha catppuccin-mocha dark
Dark Plus dark-plus dark
Dracula Theme dracula dark
Dracula Theme Soft dracula-soft dark
Everforest Dark everforest-dark dark
Everforest Light everforest-light light
GitHub Dark github-dark dark
GitHub Dark Default github-dark-default dark
GitHub Dark Dimmed github-dark-dimmed dark
GitHub Dark High Contrast github-dark-high-contrast dark
GitHub Light github-light light
GitHub Light Default github-light-default light
GitHub Light High Contrast github-light-high-contrast light
Gruvbox Dark Hard gruvbox-dark-hard dark
Gruvbox Dark Medium gruvbox-dark-medium dark
Gruvbox Dark Soft gruvbox-dark-soft dark
Gruvbox Light Hard gruvbox-light-hard light
Gruvbox Light Medium gruvbox-light-medium light
Gruvbox Light Soft gruvbox-light-soft light
Horizon horizon dark
Horizon Bright horizon-bright light
Houston houston dark
Kanagawa Dragon kanagawa-dragon dark
Kanagawa Lotus kanagawa-lotus light
Kanagawa Wave kanagawa-wave dark
LaserWave laserwave dark
Light Plus light-plus light
Material Theme material-theme dark
Material Theme Darker material-theme-darker dark
Material Theme Lighter material-theme-lighter light
Material Theme Ocean material-theme-ocean dark
Material Theme Palenight material-theme-palenight dark
Min Dark min-dark dark
Min Light min-light light
Monokai monokai dark
Night Owl night-owl dark
Night Owl Light night-owl-light light
Nord nord dark
One Dark Pro one-dark-pro dark
One Light one-light light
Plastic plastic dark
Poimandres poimandres dark
Red red dark
Rosé Pine rose-pine dark
Rosé Pine Dawn rose-pine-dawn light
Rosé Pine Moon rose-pine-moon dark
Slack Dark slack-dark dark
Slack Ochin slack-ochin light
Snazzy Light snazzy-light light
Solarized Dark solarized-dark dark
Solarized Light solarized-light light
Synthwave '84 synthwave-84 dark
Tokyo Night tokyo-night dark
Vesper vesper dark
Vitesse Black vitesse-black dark
Vitesse Dark vitesse-dark dark
Vitesse Light vitesse-light light

独自の文法を追加する

カスタム VS Code テーマ JSON を loadTheme に登録します。カスタム言語とテーマを参照してください。