主题体系跟上设计令牌化:派生文字色按对比度下限、主题 muted 补到 AA
生成器(dev/theme-builder): - paletteVars 的 text-secondary/text-muted 从「往底色混 36%/55%」改成 mixToContrast(5.5/4.5):二分找最淡且达标的位置,文字本身不达标就原样返回 - 半透明卡片先 flatten 压平到底色再算对比度;参考背景取「页面底色 + 压平后的卡片」中更不利的 - 配色面板加读数(正文/次要/淡文字/主色),低于 4.5 变橙;默认 primary #4a7fc1(3.69) → #3d6fac(4.63) - 新增 ?dump=palette 四种配色回归;README 补配色一节 主题/base(含用户本轮 base.css 改动): - sakura muted #a08c94(2.8:1) → #78696e(4.61)、shiroko #8794a7(2.76:1) → #656e7a(4.63):主题覆盖令牌,基座的 AA 修复到不了主题页 - 深色顶栏链接补 secondary 覆盖:亮色块已是次要文字色,深色块原来 !important 定成正文色,同一顶栏权重跳一档 - _scaffold.css 令牌清单 23 → 29(补 fs 阶梯与 page-position),muted 说明 AA 下限 - StaticVersion 20261021a → 20261021b
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
display / flex / grid、position 一律不动 —— 主题不是换皮模板。
|
||||
3. 本文件不参与构建,仅作参考;真正生效的是同目录下的 <slug>.css。
|
||||
|
||||
── 可用的 23 个令牌 ──────────────────────────────────────────────
|
||||
── 可用的 29 个令牌 ──────────────────────────────────────────────
|
||||
底色层 --tb-bg 页面底色(html/body)
|
||||
--tb-surface 卡片、输入框等前景面板
|
||||
--tb-surface-2 次级面(标签底、进度条轨道、代码块)
|
||||
@@ -25,13 +25,22 @@
|
||||
页面底色不是白时建议覆盖成 bg 或它的同色,否则顶栏会成为一条白带)
|
||||
线条 --tb-border 边框、分隔线
|
||||
文字 --tb-text 正文
|
||||
--tb-text-secondary 次要文字(说明、meta)
|
||||
--tb-text-secondary 次要文字(说明、meta、顶栏链接)
|
||||
--tb-text-muted 弱化文字(占位、时间戳)
|
||||
⚠️ 这三个都要满足 WCAG AA 的 4.5:1(对 --tb-bg 与压平后的 --tb-surface 都算)。
|
||||
往浅调很容易掉到 3:1 以下(旧的 #8a919c 是 3.18:1),肉眼"淡一点"其实已经看不清了。
|
||||
强调 --tb-primary 主色:链接、主按钮、进度条
|
||||
--tb-primary-weak 主色 10% 左右的浅底(选中态、标签)
|
||||
形状 --tb-radius 卡片 12px / --tb-radius-sm 8px / --tb-radius-xs 6px
|
||||
阴影 --tb-shadow 卡片默认 / --tb-shadow-hover 悬停
|
||||
字体 --tb-font 字体栈(一般不改)
|
||||
--tb-fs-xs 12px 标签、脚注、meta
|
||||
--tb-fs-md 14px 正文、列表、按钮
|
||||
--tb-fs-lg 16px 区块小标题、卡片标题
|
||||
--tb-fs-xl 24px 页面标题、大数字
|
||||
--tb-fs-hero 28px 首页主标题
|
||||
这套阶梯 base.css 已统一定义,主题一般不要覆盖:
|
||||
改一档会连带挤坏所有页面的排版,且与主题要解决的问题无关。
|
||||
页面背景 --tb-page-image 整页背景图(cover,fixed)
|
||||
--tb-page-pattern 整页图案(平铺,可叠加在背景图之上)
|
||||
--tb-page-pattern-size 图案平铺尺寸(默认 auto)
|
||||
@@ -72,7 +81,7 @@ html[data-theme-style="SLUG"] {
|
||||
|
||||
--tb-text: #1f2329;
|
||||
--tb-text-secondary: #5c6370;
|
||||
--tb-text-muted: #8a919c;
|
||||
--tb-text-muted: #6b7280; /* AA 下限:白底 4.83:1。别再往浅调 */
|
||||
|
||||
--tb-primary: #1e87f0;
|
||||
--tb-primary-weak: rgba(30, 135, 240, 0.10);
|
||||
@@ -90,6 +99,7 @@ html[data-theme-style="SLUG"] {
|
||||
--tb-page-image: none;
|
||||
--tb-page-pattern: none;
|
||||
--tb-page-pattern-size: auto;
|
||||
--tb-page-position: center center; /* cover 裁切时保留哪一侧 */
|
||||
|
||||
/* 装饰层(放人物/摆件/光)。固定 10 个槽位,必须写满,缺的填 none——
|
||||
值一多一少,多背景各列表就错位(会出现整页重复同一张图)。
|
||||
@@ -126,6 +136,7 @@ html[data-theme="dark"][data-theme-style="SLUG"] {
|
||||
--tb-page-image: none;
|
||||
--tb-page-pattern: none;
|
||||
--tb-page-pattern-size: auto;
|
||||
--tb-page-position: center center; /* cover 裁切时保留哪一侧 */
|
||||
}
|
||||
|
||||
/* 3) 按页面作用域覆盖(可选)
|
||||
|
||||
@@ -14,7 +14,8 @@ html[data-theme-style="sakura"] {
|
||||
|
||||
--tb-text: #3a2b30;
|
||||
--tb-text-secondary: #6b545c;
|
||||
--tb-text-muted: #a08c94;
|
||||
/* 弱化文字:旧值 #a08c94 只有 2.8:1(看不清),#78696e 是 4.6:1,踩住 AA 下限 */
|
||||
--tb-text-muted: #78696e;
|
||||
|
||||
--tb-primary: #e5678f;
|
||||
--tb-primary-weak: rgba(229, 103, 143, 0.12);
|
||||
|
||||
@@ -21,7 +21,8 @@ html[data-theme-style="shiroko"] {
|
||||
|
||||
--tb-text: #222d3b;
|
||||
--tb-text-secondary: #51607a;
|
||||
--tb-text-muted: #8794a7;
|
||||
/* 弱化文字:旧值 #8794a7 只有 2.76:1(看不清),#656e7a 是 4.63:1,踩住 AA 下限 */
|
||||
--tb-text-muted: #656e7a;
|
||||
|
||||
--tb-primary: #4a7fc1;
|
||||
--tb-primary-weak: rgba(74, 127, 193, 0.11);
|
||||
|
||||
Reference in New Issue
Block a user