diff --git a/static/css/themes/test01.css b/static/css/themes/test01.css new file mode 100644 index 0000000..409d93c --- /dev/null +++ b/static/css/themes/test01.css @@ -0,0 +1,270 @@ +/* test01 —— 由 dev/theme-builder 生成,可直接手改。 + 装饰层固定 10 个槽位(对应 base.css 的 12 层背景); + 按页面覆盖时也必须写满 10 个,否则图层会与 size/position 错位。 */ +html[data-theme-style="test01"] { + --tb-bg: #eef3f9; + --tb-surface: rgba(255,255,255,0.86); + --tb-surface-2: rgba(242, 242, 243, 0.86); + --tb-surface-hover: rgba(237, 242, 249, 0.86); + --tb-navbar: rgba(255,255,255,0.52); + --tb-border: #d6e0ec; + --tb-text: #222d3b; + --tb-text-secondary: rgb(107, 116, 127); + --tb-text-muted: rgb(146, 154, 164); + --tb-primary: #4a7fc1; + --tb-primary-weak: rgba(74, 127, 193, 0.12); + --tb-page-image: none; + --tb-page-pattern: none; + --tb-page-pattern-size: 320px 320px; + --tb-page-position: center center; + --tb-deco: none, + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; +} + +html[data-theme="dark"][data-theme-style="test01"] { + --tb-bg: #141a22; + --tb-surface: #1d2530; + --tb-surface-2: rgb(41, 49, 60); + --tb-surface-hover: rgb(37, 50, 66); + --tb-navbar: #141a22; + --tb-border: #334052; + --tb-text: #e3eaf4; + --tb-text-secondary: rgb(152, 159, 168); + --tb-text-muted: rgb(113, 120, 129); + --tb-primary: #6fa3e0; + --tb-primary-weak: rgba(111, 163, 224, 0.12); + --tb-page-image: linear-gradient(180deg, #141a22 0%, #141a22 60%, #0e1319 100%); + --tb-page-pattern: none; + --tb-deco: none, none, none, none, none, none, none, none, none, none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, left top, left top, left top, left top, left top, left top, left top, left top, left top; +} + +/* 箱主页 /_/{domain} */ +html[data-theme-style="test01"][data-page-scope="box"] { + --tb-page-image: url("/static/images/themes/test01/20260803152009-33-24.webp"); + --tb-page-pattern: none; + --tb-page-pattern-size: 320px 320px; + --tb-page-position: center center; + --tb-deco: none, + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; +} + +html[data-theme="dark"][data-theme-style="test01"][data-page-scope="box"] { + --tb-page-image: none; + --tb-page-pattern: none; + --tb-deco: none, none, none, none, none, none, none, none, none, none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, left top, left top, left top, left top, left top, left top, left top, left top, left top; +} + +/* 问题页 /_/{domain}/{id} */ +html[data-theme-style="test01"][data-page-scope="question"] { + --tb-page-image: none; + --tb-page-pattern: none; + --tb-page-pattern-size: 320px 320px; + --tb-page-position: center center; + --tb-deco: url("/static/images/themes/test01/yande-re-20537358-205-to.webp"), + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto clamp(min(calc(100vh - 24px), 198px), 40vh, 360px), auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: calc(50% - 0.67vh) calc(100% - 42.56vh), + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; +} + +html[data-theme="dark"][data-theme-style="test01"][data-page-scope="question"] { + --tb-page-image: none; + --tb-page-pattern: none; + --tb-deco: none, none, none, none, none, none, none, none, none, none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, left top, left top, left top, left top, left top, left top, left top, left top, left top; +} + +/* 题目列表 /user/questions */ +html[data-theme-style="test01"][data-page-scope="admin"] { + --tb-page-image: none; + --tb-page-pattern: none; + --tb-page-pattern-size: 320px 320px; + --tb-page-position: center center; + --tb-deco: url("/static/images/themes/test01/yande-re-20537358-205-to.webp"), + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto clamp(min(calc(100vh - 24px), 198px), 40vh, 360px), auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: calc(50% + 0px) calc(100% - 4.44vh), + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; +} + +html[data-theme="dark"][data-theme-style="test01"][data-page-scope="admin"] { + --tb-page-image: none; + --tb-page-pattern: none; + --tb-deco: none, none, none, none, none, none, none, none, none, none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, left top, left top, left top, left top, left top, left top, left top, left top, left top; +} + +/* 窄屏:卡片几乎占满宽度,两侧没有留白,桌面那套背景与装饰在这里只会被裁/被盖。 + 每个独立配置的页面都要写一条 —— 页面覆盖块特异性更高(0,2,1), + 只写 html[data-theme-style] 的话,独立配置的页面在手机上根本不生效。 */ +@media (max-width: 900px) { + html[data-theme-style="test01"] { + --tb-deco: none, + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; + } + html[data-theme-style="test01"][data-page-scope="box"] { + --tb-page-position: center center; + --tb-deco: none, + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; + } + html[data-theme-style="test01"][data-page-scope="question"] { + --tb-deco: none, + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; + } + html[data-theme-style="test01"][data-page-scope="admin"] { + --tb-deco: none, + none, + none, + none, + none, + none, + none, + none, + none, + none; + --tb-deco-size: auto, auto, auto, auto, auto, auto, auto, auto, auto, auto; + --tb-deco-position: left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top, + left top; + } +} diff --git a/static/images/themes/test01/20260803152009-33-24.webp b/static/images/themes/test01/20260803152009-33-24.webp new file mode 100644 index 0000000..5152751 Binary files /dev/null and b/static/images/themes/test01/20260803152009-33-24.webp differ diff --git a/static/images/themes/test01/yande-re-20537358-205-to.webp b/static/images/themes/test01/yande-re-20537358-205-to.webp new file mode 100644 index 0000000..39a3654 Binary files /dev/null and b/static/images/themes/test01/yande-re-20537358-205-to.webp differ