Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SVG主题预览器New to Visual Studio Code? Get it now.
SVG主题预览器

SVG主题预览器

Matrixport App

|
11 installs
| (0) | Free
预览带有主题变量的SVG文件,支持浅色和深色模式,自动转换颜色为主题变量
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SVG主题预览器

一个VS Code插件,用于预览带有主题变量的SVG文件,支持浅色和深色主题模式双主题对比预览,并能自动将硬编码颜色转换为主题变量。

功能特性

  • 🎨 支持将SVG中的主题变量(如{{iconBlack}})替换为实际颜色值
  • 🌓 双主题对比预览,同时显示浅色和深色主题效果
  • ⚡ 实时预览,无需保存文件
  • 🔄 智能颜色转换,将硬编码颜色值自动替换为主题变量
  • 🎯 动态变量切换,实时预览不同颜色搭配效果
  • 💾 一键应用变更,直接保存到SVG文件
  • 🔧 从插件目录读取主题配置,支持自定义颜色映射
  • 📁 右键菜单和编辑器标题栏快速访问

安装方法

  1. 下载插件代码到本地
  2. 在插件根目录创建 light.json、dark.json 和 color_mapping.json 配置文件
  3. 在项目根目录运行:
    npm install
    npm run compile
    
  4. 在VS Code中按F5启动扩展开发主机来测试插件

使用方法

主题预览功能

  1. 打开包含主题变量的SVG文件(如包含{{iconBlack}}、{{textText1}}等变量)
  2. 右键点击文件,选择"预览带主题变量的SVG"
  3. 或者在编辑器中打开SVG文件后,点击标题栏的预览按钮(👁️)
  4. 查看并排显示的浅色和深色主题效果
  5. 在主题映射控制区域可以实时切换不同的颜色变量
  6. 修改变量后点击"确定应用变更"按钮保存到SVG文件

SVG颜色转换功能

  1. 打开包含硬编码颜色的SVG文件(如包含"white"、"#1c2526"等颜色值)
  2. 右键点击文件,选择"SVG颜色转换"
  3. 或者在编辑器中打开SVG文件后,点击标题栏的转换按钮(⟷)
  4. 插件会自动将硬编码颜色替换为相应的主题变量
  5. 转换完成后会显示替换的颜色值数量

配置主题映射

在插件根目录下创建三个JSON配置文件:

light.json (浅色主题配置):

{
  "iconBlack": "#1c2526",
  "iconWhite": "#ffffff",
  "textText1": "#1c2526",
  "textText2": "#606667",
  "textText3": "#a4a8a8",
  "bgCard": "#ffffff",
  "bgInput": "#f7f7f7",
  "bgLine": "#f3f4f4"
}

dark.json (深色主题配置):

{
  "iconBlack": "#ffffff",
  "iconWhite": "#1c2526",
  "textText1": "#ffffff",
  "textText2": "#bbbebe",
  "textText3": "#777c7d",
  "bgCard": "#1c2526",
  "bgInput": "#2a3233",
  "bgLine": "#2a3233"
}

color_mapping.json (颜色转换映射):

{
  "white": "iconWhite",
  "#1c2526": "iconBlack",
  "#ffffff": "iconWhite",
  "#babdbd": "iconGrey",
  "#1cc1f7": "iconBlue",
  "#f9584a": "iconRed",
  "#f7f7f7": "bgInput",
  "#f3f4f4": "bgLine"
}

配置文件格式说明

主题配置文件 (light.json / dark.json):

  • 键: 变量名(如 iconBlack)
  • 值: 对应的颜色值(如 #1c2526)

颜色映射文件 (color_mapping.json):

  • 键: 硬编码颜色值(如 #1c2526 或 white)
  • 值: 要转换为的变量名(如 iconBlack)

支持的变量格式

插件支持双花括号格式的变量,例如:

  • {{iconBlack}} - 黑色图标
  • {{iconWhite}} - 白色图标
  • {{iconGrey}} - 灰色图标
  • {{textText1}} - 主要文本颜色
  • {{textText2}} - 次要文本颜色
  • {{textText3}} - 辅助文本颜色
  • {{bgCard}} - 卡片背景色
  • {{bgInput}} - 输入框背景色
  • 等等...

示例工作流程

1. 原始SVG(硬编码颜色)

<svg viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
  <path d="M23 12.9289L15.9289 20L23 27.071" 
        stroke="white" 
        stroke-width="1.5"/>
</svg>

2. 使用"SVG颜色转换"后

<svg viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg">
  <path d="M23 12.9289L15.9289 20L23 27.071" 
        stroke="{{iconWhite}}" 
        stroke-width="1.5"/>
</svg>

3. 使用"预览带主题变量的SVG"

  • 浅色主题:{{iconWhite}} 显示为 #ffffff(白色)
  • 深色主题:{{iconWhite}} 显示为 #1c2526(深色)
  • 可以实时切换到其他变量如 {{iconBlack}}、{{textText1}} 等

开发

项目结构

svg-theme-previewer/
├── package.json              # 插件清单
├── light.json               # 浅色主题配置
├── dark.json                # 深色主题配置
├── color_mapping.json       # 颜色转换映射
├── src/
│   └── extension.ts         # 主要插件逻辑
├── tsconfig.json            # TypeScript配置
└── README.md               # 文档

构建命令

  • npm install: 安装依赖
  • npm run compile: 编译TypeScript
  • npm run watch: 监听模式编译

测试插件

  1. 在VS Code中打开插件项目
  2. 按 F5 启动扩展开发主机
  3. 在新窗口中打开包含SVG文件的项目
  4. 右键点击SVG文件测试预览和转换功能

工作原理

主题预览原理

  1. 读取配置: 从插件目录的 light.json 和 dark.json 读取主题配置
  2. 变量替换: 在SVG内容中查找并替换所有主题变量
  3. 智能过滤: 只显示SVG中实际使用的变量,并按颜色值分组可选项
  4. 实时预览: 动态更新浅色和深色两个版本的SVG显示
  5. 变更保存: 支持将修改后的变量直接保存到原SVG文件

颜色转换原理

  1. 读取映射: 从 color_mapping.json 读取颜色到变量的映射关系
  2. 智能匹配: 使用正则表达式匹配各种格式的颜色值(带引号、不带引号、大小写不敏感)
  3. 优先级排序: 按颜色值长度排序,避免部分匹配问题
  4. 精确替换: 将匹配的颜色值替换为对应的主题变量格式

命令列表

  • 预览带主题变量的SVG - 打开主题预览面板
  • SVG颜色转换 - 自动转换硬编码颜色为主题变量

许可证

MIT License

反馈

如有问题或建议,欢迎提交Issue。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft