agentleFS
Tght1211Tght1211/lan-proxy-gateway/skills/theme-dev/SKILL.md

theme-dev

Skill543 starsChanged 7 days agoMITView on GitHub

面向 AI agent 和人类开发者的主题 / 皮肤制作指南。 读完本文件即可*从零创建一套完整皮肤*,并通过 App 导入使用。 在 App 设置 → 外观主题 右上角点击「导出」,得到当前主题的 .json 文件。 或者用命令行直接复制示例模板: 用任意编辑器修改颜色、圆角、阴影等参数(字段说明见下方)。 在 App 设置 → 外观主题 点击「导入」,选择你的 .json 文件,即时生效。 修改 JSON → 删除旧主题 → 重新导入,或直接编辑存储目录中的文件后切换主题刷新。 存储目录:~/.config/lan-proxy-gateway/themes/ 一个主题文件是一个 JSON 对象,包含以下字段(全部必填): 以下是 4 个内置主题的设计思路,可作为调色灵感: 通过「设置 → 导出」可获取它们的完整 JSON。

  • In this repositoryOne other file it gives its agents.

The file

Files
SKILL.md

LAN Proxy Gateway · 皮肤开发 Skill

面向 AI agent 和人类开发者的主题 / 皮肤制作指南。 读完本文件即可从零创建一套完整皮肤,并通过 App 导入使用。


快速上手

1. 从内置皮肤导出模板

在 App 设置 → 外观主题 右上角点击「导出」,得到当前主题的 .json 文件。 或者用命令行直接复制示例模板:

cp skills/theme-dev/templates/starter-dark.json my-theme.json

2. 编辑 JSON

用任意编辑器修改颜色、圆角、阴影等参数(字段说明见下方)。

3. 导入并预览

在 App 设置 → 外观主题 点击「导入」,选择你的 .json 文件,即时生效。

4. 迭代调试

修改 JSON → 删除旧主题 → 重新导入,或直接编辑存储目录中的文件后切换主题刷新。

存储目录:~/.config/lan-proxy-gateway/themes/


JSON Schema

一个主题文件是一个 JSON 对象,包含以下字段(全部必填):

{
    "id":              "my-theme",       // 唯一标识,英文+连字符,不能与内置冲突
    "name":            "我的主题",        // 显示名称,支持中英文
    "isDark":          true,             // 是否为深色模式(影响系统控件适配)

    // ── 基础色板(全部为 sRGB [R, G, B],取值 0.0–1.0)──────────
    "canvas":          [0.08, 0.09, 0.11],    // 最底层画布背景
    "sidebar":         [0.10, 0.11, 0.13],    // 左侧导航栏背景
    "panel":           [0.13, 0.14, 0.16],    // 卡片 / 面板背景
    "panelRaised":     [0.16, 0.18, 0.20],    // 悬浮 / 弹出面板背景
    "border":          [0.26, 0.28, 0.32],    // 边框 & 分割线

    // ── 语义色(用于数据可视化和状态指示)────────────────────
    "cyan":            [0.30, 0.76, 0.66],    // 主强调色 — 链接、活跃状态、图表主色
    "coral":           [0.94, 0.45, 0.40],    // 警告 / 错误 / 拒绝
    "lime":            [0.55, 0.79, 0.40],    // 成功 / 健康 / 直连
    "yellow":          [0.94, 0.70, 0.32],    // 提醒 / 学习中 / 待处理
    "muted":           [0.60, 0.64, 0.70],    // 次要文字 / 占位符

    // ── 材质参数 ─────────────────────────────────────
    "radius":          3,           // 卡片圆角 (px)
    "radiusSmall":     2,           // 小组件圆角 (px)
    "borderWidth":     1.0,         // 边框线宽 (px)
    "shadowOpacity":   0.5,         // 卡片阴影透明度 (0=无, 1=最重)
    "shadowRadius":    12,          // 卡片阴影模糊半径 (px)
    "fontDesign":      "default",   // 字体风格: "default" | "rounded" | "serif" | "monospaced"

    // ── 画布渐变(可选视觉层次)────────────────────────
    "canvasGradient":  [            // 空数组 [] = 纯色; 2个色值 = 垂直渐变
        [0.10, 0.11, 0.13],
        [0.07, 0.07, 0.09]
    ]
}

字段详解

颜色角色在 UI 中的映射

字段在 App 中的位置
canvas整体窗口背景,最大面积色块
sidebar左侧导航栏、侧边状态条
panel所有数据卡片、面板区域的背景
panelRaised弹出窗口(Popover)、悬浮提示的背景
border卡片边框、分割线、表格网格线
cyan主强调色 — 侧栏选中态、链接、图表折线、活跃连接标记、勾选标记
coral警告色 — 错误连接、拒绝规则、设备策略阀门、删除按钮
lime成功色 — 健康指示、直连标记、操作成功通知条
yellow提醒色 — UDP 标签、学习中规则、检查中状态
muted次要文字 — 副标题、说明文字、禁用态标签

材质参数对风格的影响

参数效果
radius 大 (10–16)圆润柔和风格,适合浅色主题
radius 小 (2–4)硬朗锐利风格,适合暗黑 / 工程主题
shadowOpacity 0平面化设计,无层次感
shadowOpacity 高 (0.3–0.6)立体浮动卡片效果
fontDesign: "monospaced"等宽字体,终端 / 黑客风格
fontDesign: "serif"衬线字体,书报 / 文艺风格
fontDesign: "rounded"圆体,可爱 / 友好风格
canvasGradient 两色画布有轻微渐变,增加深度感
canvasGradient 空纯色平面画布

设计建议

配色对比度

  • panel 和 canvas 之间需要可感知的明度差(建议 ΔL ≥ 0.03),否则卡片会"沉入"背景
  • 深色主题中 border 亮度建议比 panel 高 0.10–0.15
  • 浅色主题中 border 亮度建议比 panel 低 0.10–0.15
  • muted 与 panel 需保证 WCAG AA 对比度(4.5:1),否则次要文字难以辨认

语义色一致性

  • cyan 是全 App 出现频率最高的语义色,选一个高辨识度的色调
  • coral 和 lime 应互为对立感知(暖 vs 冷 / 红 vs 绿),用于二元状态区分
  • yellow 应与 coral 有明确区分(不要两者都偏红/橙)

深浅模式

  • isDark: true 会让系统控件(滚动条、菜单)自动切换深色
  • 深色主题的 canvas 建议 L ≤ 0.15;浅色建议 L ≥ 0.90
  • 不需要同时提供深浅两版,每个 JSON 就是一个独立主题

内置主题参考

以下是 4 个内置主题的设计思路,可作为调色灵感:

ID名称风格特点
light经典浅色中性灰白底,radius: 7,默认字体,无渐变
graphite石墨深色深灰底,radius: 3,重阴影 (0.5/12),微渐变
ocean海雾蓝蓝灰底,radius: 13 大圆角,rounded 字体,柔和阴影
cream暖沙米暖黄底,radius: 8,serif 字体,无阴影

通过「设置 → 导出」可获取它们的完整 JSON。


文件管理

操作方式
导入App 设置 → 「导入」按钮 → 选择 .json 文件(支持批量)
导出App 设置 → 「导出」按钮(导出当前)或右键某主题 → 「导出此主题」
删除右键自定义主题 → 「删除此主题」
直接编辑修改 ~/.config/lan-proxy-gateway/themes/<id>.json,切换主题后生效
分享将 .json 文件发给他人,对方导入即可

内置主题不可删除,但可以导出后修改 id 和 name 做为自定义主题重新导入。


AI Agent 工作流

当用户请求 "帮我做一套 XX 风格的皮肤" 时:

  1. 读取本 Skill 了解 JSON Schema 和设计建议
  2. 导出一个接近的内置主题作为基线:选最接近的 isDark 和 fontDesign
  3. 修改配色:根据用户描述的风格关键词确定色板
  4. 写入 JSON 到 ~/.config/lan-proxy-gateway/themes/<id>.json
  5. 切换主题:修改 UserDefaults appThemeID 或提醒用户在 App 设置中选择
# 直接写入自定义主题(无需通过 App 导入)
cat > ~/.config/lan-proxy-gateway/themes/my-theme.json << 'EOF'
{ ... }
EOF

# 提醒用户在 App 设置中切换到新主题
echo "主题已保存,请在 App 设置 → 外观主题中选择"

风格关键词 → 参数映射参考

用户描述isDarkradiusfontDesignshadowOpacity配色方向
暗黑 / 黑客 / 终端true2–3monospaced0.4–0.6纯黑底 + 绿/青强调
赛博朋克 / 霓虹true3–5monospaced0.5–0.8深紫底 + 品红/电蓝
清新 / 自然 / 森林false10–14rounded0.05–0.1浅绿底 + 翠绿强调
日系 / 和风 / 樱花false12–16serif0–0.05粉白底 + 樱粉强调
商务 / 极简false6–8default0.02–0.05纯白底 + 深蓝强调
复古 / 纸质false6–10serif0米黄底 + 棕/深红
游戏 / 电竞true2–4default0.5–0.7深灰底 + 红/橙

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.