- 前端
【免费下载链接】spicetify-themes
A community-driven collection of themes for customizing Spotify through Spicetify - https://github.com/spicetify/cli
Ziro 是 spicetify-themes 社区主题集合中一款设计语言极为统一、风格"平滑圆润"的 Spotify 美化主题,其灵感来自 [Zorin OS 的 GTK 主题]设计语言与 spot 类播放器界面的克制配色。本文以 Ziro/README.md 为主线,结合仓库内真实的 color.ini(16 套完整配色方案)与 user.css(586 行核心样式)逐层拆解:读者将掌握 Ziro 的配色体系与切换方式、每个颜色变量的 UI 映射关系,以及如何通过改色与改圆角变量定制出属于自己的 Ziro 变体。
一、Ziro 主题概览:设计来源与风格定位
根据 Ziro/README.md 的说明,Ziro 受两处设计启发:
- Zorin OS 的 GTK 桌面主题:贡献了"扁平 + 圆角 + 低饱和度"的现代桌面质感,这也是 Ziro 大量使用
border-radius圆角变量、隐藏阴影的根源; - spot 播放器:贡献了紧凑、克制、以内容为中心的布局思路。
在 manifest.json 中,Ziro 的官方描述为"a smooth theme inspired by zorin os"(一个受 Zorin OS 启发的平滑主题),作者为 schnensch0,主题目录包含user.css与color.ini两个核心文件,属于标记为latest(适配最新版 Spicetify)的主题。
Ziro 的视觉语言可以概括为三点:单一底色背景(main、sidebar、player 三区同色,消除 Spotify 默认的分区色差)、卡片化内容区(所有卡片、菜单、输入框统一使用card色与圆角)、强统一的强调色(selected-row、button、tab-active 等交互状态共用同一强调色)。
二、16 套配色方案:明暗 × 色相的双轴矩阵
README 以截图形式展示了 Ziro 的多种配色;而真正完整的配色清单保存在 color.ini 中,共16 个[scheme]段,呈"6 种色相 × 明暗两版 + 4 套第三方流行配色"的矩阵结构:
| 色相系 | 深色版 | 浅色版 |
|---|---|---|
| Blue(蓝) | [blue-dark] | [blue-light] |
| Gray(灰) | [gray-dark] | [gray-light] |
| Green(绿) | [green-dark] | [green-light] |
| Orange(橙) | [orange-dark] | [orange-light] |
| Purple(紫) | [purple-dark] | [purple-light] |
| Red(红) | [red-dark] | [red-light] |
此外还有 4 套社区流行配色:Rose Pine三件套([rose-pine]、[rose-pine-moon]、[rose-pine-dawn],分别对应暗、中暗、亮三个亮度档)以及[tokyo-night](东京之夜)。
以[blue-dark]为例,一套完整 scheme 的定义如下(见 color.ini):
[blue-dark] text = bde6fb subtext = 6d8692 main = 1e2529 sidebar = 1e2529 player = 1e2529 card = 171d20 shadow = 171d20 selected-row = bde6fb button = bde6fb button-active = bde6fb button-disabled = 2a3439 tab-active = bde6fb notification = 171d20 notification-error = fb7c7c misc = 1e2529可以清晰看出 Ziro 的配色纪律:main / sidebar / player 三者取值完全一致(背景同色);selected-row / button / button-active / tab-active 四者共享同一强调色(本方案中为浅蓝bde6fb);card 与 shadow 同为卡片底色。浅色版(如[blue-light],见 color.ini)则把底色切换到f5f7fa/ffffff,强调色换成高饱和的22c5fd,文本变为深蓝123354。
Rose Pine 系列忠实还原了 Rose Pine 官方调色板:[rose-pine]主色191724、强调色ebbcba;[rose-pine-moon]底色提亮至232136;[rose-pine-dawn]则为米白底f2e9e1配砖红d7827e(详见 color.ini)。[tokyo-night]则使用242638深底与B5B9D6亮文本(见 color.ini),注意它的大写十六进制写法同样被 Spicetify 接受。
三、color.ini 变量映射:每个颜色管哪块 UI
color.ini 文件头部的注释是理解 Ziro 配色逻辑的"官方字典",逐条展开如下:
| 变量 | 作用的 UI 区域 |
|---|---|
main/sidebar/player | 三处背景:主内容区、左侧导航栏、底部播放栏 |
card | 卡片、歌曲列表(tracklist)、下拉菜单、输入框的背景 |
shadow | 按钮上的文字色、激活的 Tab 文字色、选中行的文字色(与selected-row背景搭配形成对比) |
selected-row | 选中歌曲行与激活 Tab 的背景 |
button-active | 播放按钮(主播放/暂停键)、聚焦输入框的外轮廓 |
button | 其余所有普通按钮 |
button-disabled | 音量条与进度条背景、滚动条滑块、边框、悬停背景 |
tab-active | 激活的 Tab 标签背景 |
notification/notification-error | 通知弹窗背景 / 错误通知 |
misc | 其余杂项 |
这套映射在 user.css 中可以直接找到证据,例如:
- 卡片背景:
.main-card-card使用var(--spice-card)(user.css); - 进度条底色:
.x-progressBar-progressBarBg使用var(--spice-button-disabled)(user.css); - Tab 激活态:
.oaNVBli46GtVjaQKB15g等使用background: var(--spice-tab-active)(user.css)。
注意:Spicetify 会把
color.ini中的键名自动转成--spice-<key>形式的 CSS 变量(如main对应--spice-main),并在user.css中引用;同时还会派生--spice-rgb-<key>(RGB 三元组形式,供rgba()使用),如 user.css 中的rgba(var(--spice-rgb-card), 1)。
四、安装与切换:一条命令换肤
Ziro 的使用方式与其他 Spicetify 主题完全一致,官方流程如下:
- 克隆仓库并拷贝主题目录(Linux/macOS):
git clone --depth=1 <仓库地址> cd spicetify-themes cp -r * ~/.config/spicetify/ThemesWindows PowerShell 用户使用:
cp * "$(spicetify -c | Split-Path)\Themes\" -Recurse - 应用 Ziro 主题:
spicetify config current_theme Ziro - 切换配色方案(主题内置 16 套,任选其一):
spicetify config color_scheme blue-dark spicetify config color_scheme rose-pine-dawn - 让配置生效:
spicetify apply
注意事项(来自仓库根 README.md):Ziro 及本仓库所有主题要求最新版 Spotify 与 Spicetify;Dribbblish、Turntable 等带 JS 的主题需按各自 README 额外操作,而 Ziro 仅由user.css+color.ini组成,属纯 CSS 主题,安装即为完整生效;官方不支持 ad-block 修改版 Spotify,请使用官方客户端。
五、user.css 源码拆解:Ziro 的"平滑感"从何而来
user.css 全文件 586 行,是 Ziro 观感的真正实现层。它的设计手法高度模式化,适合作为自定义 Spicetify 主题的样板。
5.1 全局设计令牌:圆角与滚动条
文件开头的:root定义了全局设计令牌(user.css):
:root { --br-1: 10px; /* 大圆角:卡片、菜单、tracklist */ --br-2: 8px; /* 小圆角:按钮、输入框、滚动条滑块 */ --scrollbar: unset; /* 默认隐藏滚动条 */ --spice-main-elevated: var(--spice-main); --spice-highlight: var(--spice-button-disabled); --spice-highlight-elevated: var(--spice-card); }其中--br-1/--br-2两个圆角令牌贯穿全文件:卡片用--br-1,按钮与输入框用--br-2,封面图则取calc(var(--br-2) / 2)(user.css)。同时* { box-shadow: none !important; }(user.css)全局移除阴影,这正是 Ziro 扁平感的来源。
5.2 背景统一与导航栏
- 隐藏首页 Header、实体页渐变背景与操作栏背景(user.css),让内容区、顶栏、导航栏统一为
var(--spice-main); - 导航栏激活项使用
color: var(--spice-shadow); background: var(--spice-selected-row)(user.css),与 color.ini 的"selected-row/shadow"变量语义一一对应; - 侧边栏列表项统一为
--br-1圆角,悬停时以--spice-button-disabled做背景反馈(user.css)。
5.3 播放器:自定义滑块与进度条
Ziro 对底部播放栏做了精细重排(user.css):
- 进度条被绝对定位到底部上方(
bottom: 82px),时间文本右移并借助::after { content: ' /' }拼出"已播放 / 总时长"格式(user.css); - 滑块(
.progress-bar__slider)改为 16px 圆点,border: 2px solid var(--bar),悬停时进度条加高到 8px(user.css); - 播放栏按钮统一着色为
var(--spice-button),主播放/暂停键则反转为var(--spice-shadow)文字色(user.css)。
5.4 歌曲列表与"正在播放"动画
歌曲列表被整体放进--spice-card背景的圆角容器(user.css),选中行以--spice-tab-active高亮、文字反白为--spice-shadow。最有辨识度的是播放中动画图标:通过内联 SVG + CSS keyframesplay让四根声柱以不同延迟(-0.51s、0s、-0.15s、-0.75s)做 scaleY 动画,再用-webkit-mask-image把它作为遮罩、以var(--spice-text)填充上色(user.css)——这种做法让动画图标自动适配任意配色。
5.5 其余细节:歌词、全屏、Marketplace
- 歌词页:显式覆盖
--lyrics-color-active/inactive/passed/messaging四个变量并去掉歌词背景图(user.css); - 全屏模式(Now Playing View):跨淡出封面采用
calc(var(--br-1) * 3)的大圆角,up-next 面板改为 card 底色圆角卡(user.css); - 设置开关:toggle 滑块被改为 18px 圆点并用
--spice-shadow上色(user.css); - 对 Spicetify Marketplace 扩展的 Tab、卡片、设置按钮均做了配色适配(user.css),说明 Ziro 对第三方生态保持兼容。
六、定制你的 Ziro 变体:改色、改圆角
基于以上结构,定制 Ziro 只需两步,且不需要修改任何 CSS 逻辑:
- 新增配色:在 color.ini 中追加一个
[my-scheme]段,仿照上文的 15 个变量定义颜色,然后执行:spicetify config color_scheme my-scheme spicetify apply - 调整圆角与滚动条:在 user.css 的
:root中覆盖--br-1(如24px更圆润)、--br-2,或将--scrollbar改为unset之外的值(如恢复默认)即可全局生效。
注意:Ziro 的强调色联动(selected-row / button / button-active / tab-active 同色)是保持观感统一的关键;若只改其中一两个变量,会出现按钮与选中态"脱色",建议成套调整。
七、结语
Ziro 的价值在于它把"变量即设计系统"的思想贯彻到了极致:color.ini 用 16 套 15 变量方案覆盖明暗 × 色相的全部组合,user.css 则用--br-1/--br-2两个圆角令牌和统一的--spice-*变量引用,让任何配色方案都能无缝套用到同一套圆角布局上。如果你想在社区主题中选一款"改色成本最低、设计语言最自洽"的方案,Ziro 是极佳的起点;若需要查看全部主题的整体预览,可参考 THEMES.md 中的 Ziro 专区。
- 前端
【免费下载链接】spicetify-themes
A community-driven collection of themes for customizing Spotify through Spicetify - https://github.com/spicetify/cli
相关推荐
astryx Neutral 主题实战指南:安装、调色板体系与源码级主题定制解析
astryx Neutral 主题实战指南:安装、调色板体系与源码级主题定制解析 本文基于仓库文档 packages/themes/neutral/README
设计系统UI组件前端MMPose 服装关键点检测实战:基于 DeepFashion2 数据集的 ResNet-50 热图方案
MMPose 服装关键点检测实战:基于 DeepFashion2 数据集的 ResNet 50 热图方案 本篇技术指南聚焦 OpenMMLab 姿态估计工具箱
前端掌握spicetify-cli颜色系统:color.ini配置的终极指南
掌握spicetify cli颜色系统:color.ini配置的终极指南 spicetify cli是一款强大的命令行工具,用于自定义Spotify客户端界面,
开发工具CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考