文档

开发 Sliprail 主题

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

manifest.json

主题清单必须包含 id、displayName、description、main 和 type。

{
  "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 - 可选的基础外观,支持 Light、Dark 和 FollowSystem
  • 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 - 结果副标题
  • .result-item-icon - 所有结果类型的图标容器,包括应用、窗口和指令
  • .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 文件。本地加载的主题只保留在当前设备,不会自动同步。