update at 2026-01-23 23:20:39

This commit is contained in:
douboer@gmail.com
2026-01-23 23:20:39 +08:00
parent dc45937623
commit d6312fcd16
24 changed files with 982 additions and 143 deletions

View File

@@ -26,33 +26,9 @@
-- ========================================
-- 主题配置
-- ========================================
"theme": {
"name": "五行配色主题",
-- 文字颜色自动计算:根据背景色明暗度自动选择黑/白文字,确保高对比度
-- "textOnLight": "#1a1a1a", 已删除,由系统自动计算
-- "textOnDark": "#ffffff", 已删除,由系统自动计算
-- ========================================
-- 命名配色方案 (Named Color Palettes)
-- ========================================
-- 定义可复用的命名颜色,在 layers 中通过名称引用
-- 包含10种配色黑、灰、白、五行木火土金水、热、冷、强、软
"colorPalettes": {
"黑": "#000000", -- 纯黑
"灰": "#757575", -- 中灰
"白": "#ffffff", -- 纯白
"木": "#43A047", -- 生机绿(五行:木)
"火": "#E53935", -- 烈焰红(五行:火)
"土": "#8D6E63", -- 大地棕(五行:土)
"金": "#78909C", -- 金属灰(五行:金)
"水": "#0288D1", -- 水蓝(五行:水)
"热": "#FF8F00", -- 暖橙(暖色调)
"冷": "#1976D2", -- 冷蓝(冷色调)
"强": "#D32F2F", -- 强烈红(高饱和度)
"\u8f6f": "#FFE0B2" -- 柔和杏(低饱和度)
},
},
-- 主题统一放在 public/themes.json 中管理
-- 通过 themeRef 引用主题名称;不填则使用 themes.json.default
"themeRef": "五行弱",
-- ========================================
-- 层配置 (Layers Configuration)
@@ -129,7 +105,7 @@
"startAngle": 0, -- 第一个扇区的起始角度0度为正北方向顺时针
"colorRef": "土", -- 着色使用的颜色引用
"innerFill": 1, -- 着色区域的内缩设置
-- "start": 1, -- 从第1个扇区开始着色已废弃统一从第1个扇区开始
-- "patternOffset": 2, -- 第一个着色单元偏移1个扇区(可选
"num": 3, -- 连续着色3个扇区
"interval": 1, -- 着色后间隔1个扇区
"sectors": [
@@ -265,17 +241,18 @@
-- 示例:{ "content": "木", "colorRef": "木" }
--
-- 优先级2层级规律填色配置
-- 通过 colorRef + start + num + interval 实现规律着色
-- 通过 colorRef + patternOffset + num + interval 实现规律着色
-- 未着色的扇区使用全局 background 颜色
--
-- ========================================
-- 规律填色算法说明
-- ========================================
-- startAngle: 第一个扇区的起始角度0度为正北方向顺时针增加
-- patternOffset: 规律填色起始偏移扇区序号从1开始默认1未指定时与startAngle对齐
-- num: 连续着色扇区数量
-- interval: 着色后间隔的扇区数量
--
-- 算法:从第1个扇区开始,循环执行 "着色num个" → "跳过interval个"
-- 算法:从第 patternOffset 个扇区开始,循环执行 "着色num个" → "跳过interval个"
-- 特殊情况interval=0 表示无间隔,全部着色
--
-- 示例divisions=12, startAngle=0, num=3, interval=1