Files
王阳 7e5fc46126 阶段3:皮肤系统现代化
- CSS 架构改为 src/css/base.css(结构+35个--moe-变量) + themes/(default/red/ixigua) 构建拼接
- 11 张 PNG 雪碧图全部删除,20+ 图标改为 SVG data-URI + CSS mask,颜色随主题变量
- 修复原 ckplayer 雪碧图 exitfull/next 共用图标 bug
- 视觉重做:渐变控制条/细轨道+圆点滑块进度条/圆角弹层/系统字体栈
- 默认皮肤深蓝 accent,ixigua 重做为浅色皮肤;播放器默认不再带品牌水印
- 修复中央播放键三角形不居中问题
- index.html 演示页重做:深色现代设计,移除原项目链接
2026-07-21 14:34:05 +08:00

49 lines
2.0 KiB
JavaScript

/*
* 构建脚本(第二步)
* 功能:把 src/css/base.css 与各主题(src/css/themes/*.css)拼接为自包含的皮肤产物
* 输出到 moeplayer/css/(moeplayer.css / moeplayer.red.css / moeplayer.ixigua.css)
* 用户只需引用一个文件,无需 @import;拼接时自动加上版权注释头
* 第一步(rollup 打包压缩)见 rollup.config.js,第三步(拷贝运行时依赖)见 scripts/copy-libs.js
* 用法:npm run build(即 rollup -c && node scripts/build-css.js && node scripts/copy-libs.js)
*/
const fs = require('fs');
const path = require('path');
const root = path.resolve(__dirname, '..');
const cssSrcDir = path.join(root, 'src', 'css');
const cssOutDir = path.join(root, 'moeplayer', 'css');
// 版权注释头(与 rollup 产物头部保持一致)
const header = '/*\n' +
' * 软件名称:MoePlayer\n' +
' * 版本:X3\n' +
' * 版权:MoePlayer 项目(fork 自 ckplayer, www.ckplayer.com)\n' +
' * 开源协议:MIT\n' +
' * 本文件由 npm run build 自动生成(src/css/base.css + 主题),请勿手动修改\n' +
' */\n';
// 皮肤产物清单:[主题文件名, 输出文件名, 皮肤说明]
const themes = [
['default.css', 'moeplayer.css', '默认(深色控制条 + 蓝色 accent)'],
['red.css', 'moeplayer.red.css', '红色(深色控制条 + 红色 accent)'],
['ixigua.css', 'moeplayer.ixigua.css', '西瓜(浅色控制条 + 深色图标 + 红色 accent)']
];
function buildCss() {
const base = fs.readFileSync(path.join(cssSrcDir, 'base.css'), 'utf8');
for (const [themeFile, outFile, desc] of themes) {
const theme = fs.readFileSync(path.join(cssSrcDir, 'themes', themeFile), 'utf8');
const out = header + base + '\n' + theme;
fs.writeFileSync(path.join(cssOutDir, outFile), out);
console.log('生成皮肤: moeplayer/css/' + outFile + ' (' + desc + ')');
}
}
try {
buildCss();
console.log('皮肤构建完成');
} catch (err) {
console.error('皮肤构建失败:', err);
process.exit(1);
}