文档

开发 Sliprail 主题

Sliprail 主题由已注册的主题清单、CSS 文件和可选图片资源组成。主题不需要导出 JavaScript。

manifest.json

主题清单必须包含 iddisplayNamedescriptionmaintype

{
  "id": "your-registered-theme-id",
  "displayName": {
    "en": "My Theme",
    "zh-hans": "我的主题"
  },
  "description": {
    "en": "A custom Sliprail launcher theme",
    "zh-hans": "一个自定义 Sliprail 启动器主题"
  },
  "main": "main.css",
  "type": "Theme",
  "preview": "preview.png",
  "icon": "icon.svg",
  "theme": {
    "appearance": "Dark",
    "extend": {
      "top": 24,
      "right": 24,
      "bottom": 24,
      "left": 24
    }
  }
}
  • id - 在开发者门户注册的主题 ID
  • displayName - Sliprail 中显示的字符串或多语言对象
  • description - 主题详情使用的字符串或多语言对象
  • main - Sliprail 加载的 CSS 文件。主题样式应集中在此文件中,并避免使用 @import
  • type - 必须设置为 Theme
  • preview - 可选的本地预览图文件名
  • icon - 可选的本地文件、HTTP URL、data URI 或图标选项对象
  • theme.appearance - 可选的基础外观,支持 LightDarkFollowSystem
  • theme.extend - 可选的启动器外部装饰空间,每个方向可填写 0 到 500

main.css 中的相对 url(...) 引用会以主题目录为基准解析。

主题选择器

可以使用以下稳定类名设置桌面启动器样式:

  • .window - 最外层主题画布,适合放置背景图和启动器周围的装饰内容
  • .window-foreground - 不接收鼠标事件的前景层,适合遮罩和插画
  • .main - 启动器内容容器,主要背景和边框样式应设置在这里
  • .search-input-box - 搜索输入区域
  • .results - 搜索结果区域
  • .result-item - 单条结果
  • .result-item-selected - 当前选中的结果
  • .result-item-title - 结果标题
  • .result-item-subtitle - 结果副标题
  • .app-icon - 结果中的应用和窗口图标

在增加 theme.extend 前,外层默认留白为 10 像素。建议不要修改结果行高度,也不要添加开销较大的过渡效果,因为结果列表会随着输入持续更新。

测试主题

  1. 注册公开或私有主题,并复制主题 ID
  2. 打开 Sliprail 设置 > 全部主题
  3. 打开文件菜单并选择加载已解压的主题
  4. 选择包含 manifest.json 的目录
  5. 从主题列表中选择已加载的主题

修改 CSS 后,可以再次加载已解压主题,或重新启动 Sliprail 刷新效果。

在启动器获得焦点时运行 生成主题预览图GenerateThemePreview,可以捕获当前窗口,并在下载文件夹保存无损 WebP 预览图。

发布公开主题

  1. 创建公开 GitHub 仓库
  2. 注册公开 Sliprail 主题并绑定仓库链接
  3. manifest.json 中填写注册 ID
  4. 在仓库中包含清单、CSS、预览图、图标和全部引用资源
  5. 推送完整主题,并从开发者门户发布

已发布主题可以出现在 Sliprail 主题商店。符合条件的 GitHub 主题会由 Sliprail 更新系统检查新提交。

使用私有主题

将主题注册为私有,在清单中使用对应 ID,然后从全部主题中加载已解压目录或 ZIP 文件。本地加载的主题只保留在当前设备,不会自动同步。