图标
为源、技能和状态配置图标
xiantong 支持在源、技能和状态上使用图标。图标可以是 emoji、SVG 文件或栅格图像(PNG、JPG)。
标签不会使用图标 —— 它们显示为彩色圆点。有关标签颜色配置,请参阅 颜色。
支持的格式#
| 格式 | 扩展名 | 最适合 |
|---|---|---|
| SVG | .svg | 可缩放图标,可通过 currentColor 适应主题 |
| PNG | .png | 支持透明度的栅格图标 |
| JPG | .jpg, .jpeg | 照片或复杂艺术图案 |
| Emoji | Unicode | 无需文件即可快速识别 |
设置图标#
Emoji#
在实体的 config.json 中将 icon 字段设置为任意 Unicode emoji:
{
"icon": "🔧"
}
支持多码点 emoji 和 ZWJ 序列(例如 👨💻、🇭🇺)。
图标文件#
将图标文件放在实体目录中。xiantong 会自动发现名为 icon.{svg,png,jpg,jpeg} 的文件:
sources/
linear/
config.json
icon.svg ← 自动发现
当存在多种格式时的优先顺序为:SVG > PNG > JPG > JPEG。
显式路径#
在 config.json 中使用相对路径指向特定文件:
{
"icon": "./my-custom-icon.svg"
}
URL(仅限源)#
对于 icon 字段使用 URL 的源,xiantong 会下载该图像到本地 icon.{ext} 文件(最大 50KB)。下载完成后,将使用本地文件进行渲染。
解析优先级#
渲染实体图标时,xiantong 按照以下顺序解析:
- Emoji — 如果
icon字段为 emoji 字符串,则作为文本渲染 - 显式路径 — 如果
icon是相对路径(例如./icon.svg),则加载该文件 - 自动发现 — 探测实体目录中的
icon.svg、icon.png、icon.jpg - 网站图标回退(仅限源)— 从服务 URL(MCP url 或 API baseUrl)解析图标
- 回退图标 — 显示通用占位图标
SVG 主题适配#
使用 currentColor 的 SVG 会自动适应当前主题:
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2L2 7l10 5 10-5-10-5z" fill="currentColor"/>
</svg>
工作原理:
- 使用
currentColor的 SVG 会被识别为可着色 —— 它们继承父上下文的颜色(例如状态图标会采用该状态颜色) - 未使用
currentColor的 SVG 会以其硬编码颜色渲染 - 根
<svg>元素没有fill属性的 SVG 会自动注入主题前景色
在 SVG 中使用 currentColor,可使图标匹配实体颜色(例如状态)或适应亮/暗模式。
实体特定细节#
源#
~/.xiantong/workspaces/{id}/sources/{slug}/
config.json ← "icon": "🔧" or "./icon.svg"
icon.svg ← 自动发现
源具有网站图标回退:如果没有本地图标,xiantong 会从 MCP URL 或 API base URL 解析图标。
技能#
~/.xiantong/workspaces/{id}/skills/{slug}/
SKILL.md
icon.svg ← 自动发现
技能使用相同的自动发现模式。解析出的图标路径会以 iconPath 存储在技能元数据中。
状态#
~/.xiantong/workspaces/{id}/statuses/
config.json ← 含可选 "icon" 字段的状态定义
{status-id}.svg ← 使用状态 ID 命名的图标文件
状态图标使用状态 ID 作为文件名,而不是 icon:
statuses/
config.json
in-progress.svg ← 对应状态 id "in-progress" 的图标
done.svg ← 对应状态 id "done" 的图标
图标尺寸#
图标在 UI 中以标准尺寸渲染:
| 尺寸 | 维度 | 用途 |
|---|---|---|
xs | 14px | 行内提及、紧凑列表 |
sm | 16px | 侧边栏项、徽章 |
md | 20px | 默认尺寸、列表项 |
lg | 24px | 标题、显著位置 |
xl | 28px | 大型展示 |
提示#
使用 SVG 以获得最佳效果
SVG 在所有尺寸下都能完美缩放,并可通过 currentColor 适应主题颜色。它们是自定义图标的推荐格式。
保持 SVG 简洁
移除不必要的元数据、编辑器痕迹和内联样式。具有干净 viewBox、带 fill="currentColor" 的路径、且没有 width/height 属性的 SVG 表现最佳。
Emoji 便于快速设置
Emoji 无需文件即可原生渲染。它们非常适合快速入门或当不需要文件图标时使用。
图标未显示?
- 检查文件是否位于实体类型的正确目录中
- 确认文件名匹配(源/技能为
icon.svg,状态为{id}.svg) - 确保 SVG 内容为有效的 XML
- 对于 URL 图标,检查文件是否已下载(查看实体目录中的
icon.{ext})