由用户与 Claude 共同设计打造,2026-07。零外部依赖(仅需 JSplitter 组件), 所有面板从零手写,琥珀暖色体系。
| 文件 | 面板 | 说明 |
|---|---|---|
amber-lib.js |
公共库 | 工具函数 + 琥珀调色板(全局改色只动这里) |
playlists.js |
播放列表侧栏 | 列表/计数/琥珀高亮/右键管理/全局搜索(命中直接跳转到对应专辑) |
coverflow.js |
封面墙 | 伪3D轮播/倒影/缓动/自动回到播放专辑/联动广播 + ⊞专辑总览(网格+曲目卡) |
albumcard.js |
专辑播放卡 | 歌手·居中控制·四键播放顺序·走字时间 + 曲目行(队列角标/行内播放进度) |
controls.js |
独立播放条 | 备用(专辑卡已内建控制键) |
任意 JSplitter 面板的配置里只写一行(把 xxx 换成上面的文件名):
include(fb.ProfilePath + 'amber\\xxx.js');
注意:脚本文件必须保留 UTF-8 BOM,否则中文乱码。
coverflow 停稳时广播 NotifyOthers("cf_album", [playlistIndex, firstItemIndex]),
albumcard 监听并切换显示。任何自定义面板都可以接入。
改 AMBER_PALETTE 一行就整套换装,所有面板都读这个文件:
var AMBER_PALETTE = "celadon"; // 改完重启 foobar2000| 名称 | 强调色 | 调性 |
|---|---|---|
amber |
#EBA546 | 默认。暖炭底 + 琥珀金 |
celadon |
#6FC2B0 | 青瓷,冷调,配深蓝灰底 |
plum |
#C77DBB | 绛紫,偏冷紫红,配深紫底 |
pine |
#8FB573 | 松墨,低饱和绿,接近单色 |
steel |
#7BA7D4 | 铁蓝,中性偏冷,配纯黑或深灰底 |
五套的「强调色底 + 其上文字」和「强调色 + 深底」对比度均达 WCAG AA
(≥4.5:1,最低是 amber 自己的 4.95:1)。写错名字回落到 amber,不会崩。
每套定义 5 个值:accent 强调色 · row 选中行 · sel 次级选中 ·
txtOn 强调色底上的文字 · bg 面板背景(0 = 跟随系统,推荐)。
面板实际读取的仍是 AMBER_ACCENT 等 5 个变量,单独改也有效。
自定义且不被升级覆盖:新建 amber\palette-user.js,再把 amber-lib.js
里那行 include(...palette-user.js) 的注释去掉。该行默认注释,因为
JSplitter 的 include 失败是组件级报错,未确认能否被 JS catch 拦住——
默认开启的话,没建这个文件的人每个面板都会崩。
字号/行高/尺寸/动画速度等,改完重启 foobar2000 生效。