Skip to content

代码块主题

约 614 字大约 2 分钟

2026-09-01

文章代码块的语法高亮由 Expressive Code 提供,明暗两套主题由 expressiveCodeConfig.ts 配置,随站点的深色模式自动切换。

配置

src/config/expressiveCodeConfig.ts
export const expressiveCodeConfig = withUserConfig("expressiveCode", {
  theme: "github-dark",
  lightTheme: "github-light",
  darkTheme: "github-dark",
})
字段默认说明
themegithub-dark基础主题(兼容场景回退值)
lightThemegithub-light浅色模式下的代码主题
darkThemegithub-dark深色模式下的代码主题

构建期会为明暗两套主题各生成一份样式,页面随访客的明暗模式选择自动切换,无需任何客户端脚本。

可用主题

主题名取自 Shiki 主题库,常用选择:

主题名风格
github-light / github-dark默认。GitHub 风格,中性易读
catppuccin-latte / catppuccin-mocha柔和马卡龙色系,与二次元气质契合
one-light / one-dark-pro经典编辑器风格
dracula高饱和紫调
rose-pine-dawn / rose-pine低饱和玫瑰调
vitesse-light / vitesse-dark低对比护眼风

完整主题列表见 Expressive Code / Shiki 的主题文档。

搭配建议

与站点配色呼应(推荐二次元站点)

src/config/expressiveCodeConfig.ts
{
  theme: "catppuccin-mocha",
  lightTheme: "catppuccin-latte",
  darkTheme: "catppuccin-mocha",
}

低对比护眼组合

src/config/expressiveCodeConfig.ts
{
  theme: "vitesse-dark",
  lightTheme: "vitesse-light",
  darkTheme: "vitesse-dark",
}

与动态配色的关系

代码块主题是固定色板,不参与 HCT 动态配色——换 themeColor.hue 不会改变代码高亮颜色。若希望观感统一,选择与站点种子色相近的 Shiki 主题(如粉紫站点配 rose-pine 系)。

相关阅读

代码块的语法能力(文件树、代码树、行装饰、折叠)见写作板块的代码展示(在新窗口打开);本篇只涉及颜色主题。

常见问题

换了主题没生效

代码块背景与卡片背景颜色冲突

想让代码块也跟随主题色变化