@mooncellwiki/prts-design-css 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/prts-design.css +6762 -0
- package/dist/prts-design.min.css +2 -0
- package/package.json +55 -0
- package/src/arknights/archive.css +21 -0
- package/src/arknights/attrs.css +11 -0
- package/src/arknights/camp.css +8 -0
- package/src/arknights/dialogue.css +7 -0
- package/src/arknights/dossier.css +13 -0
- package/src/arknights/elite.css +5 -0
- package/src/arknights/enemy.css +12 -0
- package/src/arknights/event.css +14 -0
- package/src/arknights/hero.css +11 -0
- package/src/arknights/index.css +41 -0
- package/src/arknights/item.css +32 -0
- package/src/arknights/kv.css +15 -0
- package/src/arknights/level.css +9 -0
- package/src/arknights/materials.css +6 -0
- package/src/arknights/module.css +49 -0
- package/src/arknights/news.css +6 -0
- package/src/arknights/op-card.css +26 -0
- package/src/arknights/op-row.css +6 -0
- package/src/arknights/phase-tabs.css +8 -0
- package/src/arknights/pot-list.css +7 -0
- package/src/arknights/potential.css +4 -0
- package/src/arknights/profession.css +16 -0
- package/src/arknights/range.css +10 -0
- package/src/arknights/rarity.css +21 -0
- package/src/arknights/rich-text.css +18 -0
- package/src/arknights/skill-levels.css +13 -0
- package/src/arknights/skill-matrix.css +25 -0
- package/src/arknights/skill-sheet.css +30 -0
- package/src/arknights/skill.css +28 -0
- package/src/arknights/sp.css +15 -0
- package/src/arknights/stage.css +22 -0
- package/src/arknights/table-numerals.css +7 -0
- package/src/arknights/talent-table.css +30 -0
- package/src/arknights/talent.css +7 -0
- package/src/arknights/trust.css +4 -0
- package/src/arknights/voice.css +21 -0
- package/src/base/catlinks.css +64 -0
- package/src/base/collapsible.css +10 -0
- package/src/base/forms.css +121 -0
- package/src/base/index.css +20 -0
- package/src/base/media.css +26 -0
- package/src/base/notices.css +17 -0
- package/src/base/print.css +11 -0
- package/src/base/references.css +9 -0
- package/src/base/root.css +16 -0
- package/src/base/special-pages.css +43 -0
- package/src/base/tabber.css +31 -0
- package/src/base/tables.css +45 -0
- package/src/base/toc.css +19 -0
- package/src/base/typography.css +133 -0
- package/src/bridge-codex.css +98 -0
- package/src/chrome/body.css +13 -0
- package/src/chrome/footer.css +34 -0
- package/src/chrome/header.css +104 -0
- package/src/chrome/index.css +29 -0
- package/src/chrome/keyart.css +15 -0
- package/src/chrome/layout.css +15 -0
- package/src/chrome/local-nav.css +17 -0
- package/src/chrome/page-header.css +68 -0
- package/src/chrome/responsive.css +127 -0
- package/src/chrome/search-palette.css +121 -0
- package/src/chrome/shell.css +4 -0
- package/src/chrome/sidebar-tree.css +36 -0
- package/src/chrome/sidebar.css +39 -0
- package/src/chrome/special-pages.css +4 -0
- package/src/chrome/theme-toggle.css +10 -0
- package/src/chrome/toc.css +38 -0
- package/src/components/accordion.css +10 -0
- package/src/components/avatar.css +8 -0
- package/src/components/badge.css +16 -0
- package/src/components/breadcrumb.css +7 -0
- package/src/components/button.css +45 -0
- package/src/components/card.css +28 -0
- package/src/components/cbox.css +18 -0
- package/src/components/chip.css +9 -0
- package/src/components/dialog.css +14 -0
- package/src/components/divider.css +8 -0
- package/src/components/dropdown.css +30 -0
- package/src/components/empty.css +5 -0
- package/src/components/fab.css +9 -0
- package/src/components/form.css +66 -0
- package/src/components/heading.css +11 -0
- package/src/components/index.css +38 -0
- package/src/components/keyframes.css +14 -0
- package/src/components/message.css +21 -0
- package/src/components/pagination.css +11 -0
- package/src/components/panel.css +15 -0
- package/src/components/progress.css +19 -0
- package/src/components/skeleton.css +5 -0
- package/src/components/spinner.css +23 -0
- package/src/components/stat.css +12 -0
- package/src/components/stepper.css +14 -0
- package/src/components/table.css +17 -0
- package/src/components/tabs.css +29 -0
- package/src/components/tag.css +26 -0
- package/src/components/timeline.css +13 -0
- package/src/components/title-reset.css +8 -0
- package/src/components/toast.css +14 -0
- package/src/components/tooltip.css +31 -0
- package/src/decor/bilingual.css +6 -0
- package/src/decor/brackets.css +6 -0
- package/src/decor/chevrons.css +5 -0
- package/src/decor/corner.css +12 -0
- package/src/decor/glyph.css +7 -0
- package/src/decor/halftone.css +13 -0
- package/src/decor/index.css +18 -0
- package/src/decor/inverse.css +4 -0
- package/src/decor/patterns.css +7 -0
- package/src/decor/stripes.css +10 -0
- package/src/decor/type.css +10 -0
- package/src/forced-colors.css +54 -0
- package/src/index.css +18 -0
- package/src/scope.css +120 -0
- package/src/search-palette.js +549 -0
- package/src/sidebar-tree.js +220 -0
- package/src/standalone.css +12 -0
- package/src/tokens.css +665 -0
- package/src/utilities.css +43 -0
package/src/tokens.css
ADDED
|
@@ -0,0 +1,665 @@
|
|
|
1
|
+
/*! ═══════════════════════════════════════════════════════════════════════════
|
|
2
|
+
* PRTS Design — 明日方舟网页设计系统 · Design Tokens
|
|
3
|
+
* Design system of the Arknights MediaWiki skin (prts.wiki)
|
|
4
|
+
*
|
|
5
|
+
* 生成物,勿手改:源文件是 packages/tokens/src/ 下的 *.json5(W3C DTCG 格式,@mooncellwiki/prts-design-tokens),改完 pnpm tokens 重新生成。
|
|
6
|
+
*
|
|
7
|
+
* 层级:
|
|
8
|
+
* 1. Primitive --ak-{hue}-{step} 原始色板(来源:官网 CSS / 游戏解包 / gamedata)
|
|
9
|
+
* 2. Semantic --ak-{role} 语义令牌(随主题变化)
|
|
10
|
+
* Codex / MediaWiki 令牌桥接(原第 3 段,让 MW 核心 & 扩展 UI 跟随主题)只属于 Arknights 皮肤,在 bridge-codex.css;本文件任何宿主都能加载。
|
|
11
|
+
*
|
|
12
|
+
* 主题机制(与 MediaWiki 1.43 clientPrefs 一致):
|
|
13
|
+
* <html class="skin-theme-clientpref-os"> 跟随系统(默认)
|
|
14
|
+
* <html class="skin-theme-clientpref-night"> 终端模式(暗)
|
|
15
|
+
* <html class="skin-theme-clientpref-day"> 档案模式(亮)
|
|
16
|
+
* 非 MW 环境亦可用 data-theme="dark|light"。
|
|
17
|
+
* 局部主题:.ak-scope[data-theme="dark|light"]——作用域内走终端 / 档案配色,不写 data-theme 的 .ak-scope 跟随页面。
|
|
18
|
+
* 排版基线(字体 / 字号 / 行高 / 前景色)见 scope.css;html / body 的底色、选区、焦点环等皮肤全局样式见 base/root.css。
|
|
19
|
+
* ═══════════════════════════════════════════════════════════════════════════ */
|
|
20
|
+
|
|
21
|
+
/* ═══ 1. PRIMITIVE PALETTE · 2a. THEME-INDEPENDENT SEMANTICS ═══ */
|
|
22
|
+
:root {
|
|
23
|
+
/* ─── color · 1. 原始色板 --ak-{hue}-{step}(来源:官网 CSS / 游戏解包 / gamedata);组件不直接用,经由 functional/themes 的语义令牌引用 */
|
|
24
|
+
|
|
25
|
+
/* ─── color · neutral · Neutrals · 取自游戏内 UI 灰阶(btn #313131 / panel #F5F5F5)与官网灰阶 */
|
|
26
|
+
--ak-gray-0: #ffffff;
|
|
27
|
+
--ak-gray-50: #f5f5f5; /* in-game light panel */
|
|
28
|
+
--ak-gray-100: #ebebeb;
|
|
29
|
+
--ak-gray-200: #d2d2d2; /* site */
|
|
30
|
+
--ak-gray-300: #b1b1b1;
|
|
31
|
+
--ak-gray-400: #8d8d8d; /* site */
|
|
32
|
+
--ak-gray-500: #626262; /* in-game btn_done */
|
|
33
|
+
--ak-gray-600: #535353;
|
|
34
|
+
--ak-gray-700: #3b3b3b;
|
|
35
|
+
--ak-gray-800: #313131; /* in-game standard button */
|
|
36
|
+
--ak-gray-850: #272727; /* site */
|
|
37
|
+
--ak-gray-900: #1d1f20; /* site panel */
|
|
38
|
+
--ak-gray-950: #181818; /* in-game deep */
|
|
39
|
+
--ak-gray-1000: #000000;
|
|
40
|
+
|
|
41
|
+
/* ─── color · brand · Brand cyan / blue · 官网 #18D1FF,游戏内选中蓝 #0098DC */
|
|
42
|
+
--ak-cyan-200: #7ee5ff;
|
|
43
|
+
--ak-cyan-300: #5ddcff;
|
|
44
|
+
--ak-cyan-400: #22bbff; /* in-game select_round */
|
|
45
|
+
--ak-cyan-500: #18d1ff; /* ★ site brand accent */
|
|
46
|
+
--ak-blue-400: #00b0ff; /* in-game <ba.kw> */
|
|
47
|
+
--ak-blue-500: #0098dc; /* ★ in-game UI blue / <ba.vup> */
|
|
48
|
+
--ak-blue-600: #0075a9; /* in-game toggle-on */
|
|
49
|
+
--ak-blue-700: #005a82;
|
|
50
|
+
|
|
51
|
+
/* ─── color · yellow · Yellow · 稀有度星 / 商店 / 关卡名 */
|
|
52
|
+
--ak-yellow-400: #ffe75a;
|
|
53
|
+
--ak-yellow-500: #ffd800; /* ★ in-game yellow (rarity #FFDE00) */
|
|
54
|
+
--ak-yellow-600: #ffc90e; /* <ga.subtitle> */
|
|
55
|
+
--ak-yellow-700: #eab841;
|
|
56
|
+
|
|
57
|
+
/* ─── color · lime · Lime · SP / 官网次级强调 */
|
|
58
|
+
--ak-lime-400: #caec46; /* in-game SP cost */
|
|
59
|
+
--ak-lime-500: #c8eb21; /* site */
|
|
60
|
+
--ak-lime-600: #8fc31f; /* site */
|
|
61
|
+
|
|
62
|
+
/* ─── color · orange · Orange */
|
|
63
|
+
--ak-orange-400: #ff9433; /* 6★ */
|
|
64
|
+
--ak-orange-500: #f49800; /* <ba.rem> */
|
|
65
|
+
--ak-orange-600: #e5622b; /* in-game mission track */
|
|
66
|
+
|
|
67
|
+
/* ─── color · red · Red */
|
|
68
|
+
--ak-red-400: #ff6237; /* <ba.vdown> */
|
|
69
|
+
--ak-red-500: #d83c3c; /* <ba.enemy> */
|
|
70
|
+
--ak-red-600: #c82a36; /* in-game NEW mark */
|
|
71
|
+
--ak-red-700: #a40000; /* in-game BREAKING NEWS */
|
|
72
|
+
--ak-red-800: #711111; /* in-game confirm button */
|
|
73
|
+
--ak-red-900: #860101; /* specialization */
|
|
74
|
+
--ak-magenta-500: #e40043; /* in-game monthly card */
|
|
75
|
+
|
|
76
|
+
/* ─── color · green-purple · Green / Purple */
|
|
77
|
+
--ak-green-500: #2fac78; /* <ba.gild> */
|
|
78
|
+
--ak-green-400: #4ffaa5;
|
|
79
|
+
--ak-purple-400: #bf96ed; /* 4★ */
|
|
80
|
+
--ak-purple-500: #9266b2;
|
|
81
|
+
|
|
82
|
+
/* ─── color · rarity · Rarity · 官方色阶 (gamedata sandbox_table.charRarityColorList) */
|
|
83
|
+
--ak-rarity-1: #bababa;
|
|
84
|
+
--ak-rarity-2: #d3dc35;
|
|
85
|
+
--ak-rarity-3: #82c5f5;
|
|
86
|
+
--ak-rarity-4: #bf96ed;
|
|
87
|
+
--ak-rarity-5: #efd691;
|
|
88
|
+
--ak-rarity-6: #ff9433;
|
|
89
|
+
|
|
90
|
+
/* ─── color · sp · Skill SP 回复类型(对应游戏内技能框配色,近似取值) */
|
|
91
|
+
--ak-sp-auto: #8fc31f; /* 自动回复 INCREASE_WITH_TIME */
|
|
92
|
+
--ak-sp-attack: #ff8a00; /* 攻击回复 INCREASE_WHEN_ATTACK */
|
|
93
|
+
--ak-sp-hit: #ffd800; /* 受击回复 INCREASE_WHEN_TAKEN_DAMAGE */
|
|
94
|
+
--ak-sp-passive: #8d8d8d; /* 被动 */
|
|
95
|
+
|
|
96
|
+
/* ─── typography */
|
|
97
|
+
|
|
98
|
+
/* ─── typography · font · Typography —— 每条链的前两段都由 fonts.css 自托管(人人一致,也是「上线效果」):
|
|
99
|
+
* ① 官网同源的 Novecento Sans Wide / Bender(ASCII 子集:· » — × ° 等非 ASCII 会逐字落到 ②)
|
|
100
|
+
* ② OFL 的 Noto Sans SC / Oswald / Chakra Petch / JetBrains Mono
|
|
101
|
+
* 之后是装机备选 → 系统字。fonts.css 没加载(Gadget 关掉 / 离线单文件)时自然退到后两段。 */
|
|
102
|
+
--ak-font-body: "Source Han Sans SC", "Noto Sans SC", "Noto Sans CJK SC", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, -apple-system, sans-serif;
|
|
103
|
+
--ak-font-display: "Novecento Sans Wide", "Novecentosanswide-Bold", "Bender", "Oswald", "Michroma", "Arial Narrow", system-ui, sans-serif; /* 拉丁展示字(大写):Novecento 500–800 → Bender → Oswald 接非 ASCII */
|
|
104
|
+
--ak-font-label: "Bender", "Bender-Bold", "Chakra Petch", "Rajdhani", "Saira", "Oswald", system-ui, sans-serif; /* HUD 标签 / 数值:Bender 400/700 → Chakra Petch 接非 ASCII */
|
|
105
|
+
--ak-font-condensed: "Oswald", "Roboto Condensed", "Arial Narrow", sans-serif; /* 自托管 Oswald 200–700 */
|
|
106
|
+
--ak-font-mono: "JetBrains Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; /* 自托管 JetBrains Mono 100–800 正 / 斜 */
|
|
107
|
+
|
|
108
|
+
/* ─── typography · font-size · 字号(rem;注释为 px) */
|
|
109
|
+
--ak-fs-display-xl: 3.5rem; /* 56 */
|
|
110
|
+
--ak-fs-display: 2.5rem; /* 40 */
|
|
111
|
+
--ak-fs-h1: 2rem; /* 32 */
|
|
112
|
+
--ak-fs-h2: 1.5rem; /* 24 */
|
|
113
|
+
--ak-fs-h3: 1.25rem; /* 20 */
|
|
114
|
+
--ak-fs-h4: 1.0625rem; /* 17 */
|
|
115
|
+
--ak-fs-body-lg: 1.125rem; /* 18 */
|
|
116
|
+
--ak-fs-body: 1rem; /* 16 */
|
|
117
|
+
--ak-fs-sm: 0.875rem; /* 14 */
|
|
118
|
+
--ak-fs-xs: 0.75rem; /* 12 */
|
|
119
|
+
--ak-fs-overline: 0.6875rem; /* 11 */
|
|
120
|
+
|
|
121
|
+
/* ─── typography · line-height · 行高 */
|
|
122
|
+
--ak-lh-body: 1.7; /* CJK 正文 */
|
|
123
|
+
--ak-lh-tight: 1.25;
|
|
124
|
+
--ak-lh-display: 1.05;
|
|
125
|
+
|
|
126
|
+
/* ─── typography · tracking · 字距 */
|
|
127
|
+
--ak-tracking-caps: 0.08em;
|
|
128
|
+
--ak-tracking-overline: 0.14em;
|
|
129
|
+
--ak-tracking-display: -0.02em;
|
|
130
|
+
|
|
131
|
+
/* ─── size */
|
|
132
|
+
|
|
133
|
+
/* ─── size · space · Spacing (4px grid) */
|
|
134
|
+
--ak-space-1: 4px;
|
|
135
|
+
--ak-space-2: 8px;
|
|
136
|
+
--ak-space-3: 12px;
|
|
137
|
+
--ak-space-4: 16px;
|
|
138
|
+
--ak-space-5: 20px;
|
|
139
|
+
--ak-space-6: 24px;
|
|
140
|
+
--ak-space-8: 32px;
|
|
141
|
+
--ak-space-10: 40px;
|
|
142
|
+
--ak-space-12: 48px;
|
|
143
|
+
--ak-space-16: 64px;
|
|
144
|
+
--ak-space-20: 80px;
|
|
145
|
+
--ak-space-24: 96px;
|
|
146
|
+
|
|
147
|
+
/* ─── size · shape · Shape · 方舟 = 直角;仅极小圆角用于输入框。不做切角 / 斜切 / 斜带——整套系统里没有 45° 的斜边。
|
|
148
|
+
* 色条 + 细框(pre / 消息 / 面板头 / 模组卡 …):粗的 border-left 与 1px 的 border-top/bottom 在角上会被浏览器
|
|
149
|
+
* 斜接(miter)出一道小斜边,看着像「斜切装饰」;所以这类盒子的框用 border-image 画成直角拼接:
|
|
150
|
+
* border: 1px solid var(--ak-border); border-left-width: 4px;
|
|
151
|
+
* border-image: linear-gradient(to right, <色条色> 4px, var(--ak-border) 4px) 1 1 1 4; ← slice 与各边 border-width 一致
|
|
152
|
+
* (顶部色条同理:linear-gradient(<色条色> 3px, var(--ak-border) 3px) 3 1 1 1)。只有一条边有色条、其它边无框的盒子不受影响。 */
|
|
153
|
+
--ak-radius: 0px;
|
|
154
|
+
--ak-radius-sm: 2px;
|
|
155
|
+
--ak-radius-pill: 999px;
|
|
156
|
+
--ak-bar-w: 4px; /* 标题左侧色条宽度 */
|
|
157
|
+
--ak-bar-w-lg: 8px;
|
|
158
|
+
|
|
159
|
+
/* ─── size · layout · Layout · 与 Codex 断点一致: 320 / 640 / 1120 / 1680 */
|
|
160
|
+
--ak-header-h: 56px;
|
|
161
|
+
--ak-local-nav-h: 48px; /* 二级吸顶栏(<1400 出现:菜单 / 本页目录) */
|
|
162
|
+
--ak-sidebar-w: 248px;
|
|
163
|
+
--ak-toc-w: 240px;
|
|
164
|
+
--ak-content-max: 1240px; /* 阅读区最大宽度;表格密集页可加 .ak-wide */
|
|
165
|
+
--ak-content-narrow: 760px;
|
|
166
|
+
--ak-gutter: 24px;
|
|
167
|
+
--ak-gutter-sm: 16px;
|
|
168
|
+
|
|
169
|
+
/* ─── size · icon · Icon sizes */
|
|
170
|
+
--ak-icon-xs: 14px;
|
|
171
|
+
--ak-icon-sm: 18px;
|
|
172
|
+
--ak-icon-md: 24px;
|
|
173
|
+
--ak-icon-lg: 32px;
|
|
174
|
+
--ak-icon-xl: 48px;
|
|
175
|
+
|
|
176
|
+
/* ─── size · decoration · Signature decorations */
|
|
177
|
+
--ak-stripe-size: 8px;
|
|
178
|
+
--ak-halftone-size: 6px;
|
|
179
|
+
--ak-grid-size: 32px;
|
|
180
|
+
|
|
181
|
+
/* ─── motion */
|
|
182
|
+
|
|
183
|
+
/* ─── motion · duration · Motion · 时长 */
|
|
184
|
+
--ak-dur-instant: 80ms;
|
|
185
|
+
--ak-dur-fast: 150ms;
|
|
186
|
+
--ak-dur-normal: 250ms;
|
|
187
|
+
--ak-dur-slow: 400ms;
|
|
188
|
+
|
|
189
|
+
/* ─── motion · easing · Motion · 缓动 */
|
|
190
|
+
--ak-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
191
|
+
--ak-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
192
|
+
--ak-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
193
|
+
--ak-ease-sharp: cubic-bezier(0.4, 0, 0.2, 1);
|
|
194
|
+
|
|
195
|
+
/* ─── layer */
|
|
196
|
+
|
|
197
|
+
/* ─── layer · z-index · Z-index */
|
|
198
|
+
--ak-z-dropdown: 100;
|
|
199
|
+
--ak-z-sticky: 200;
|
|
200
|
+
--ak-z-header: 1000;
|
|
201
|
+
--ak-z-overlay: 1500;
|
|
202
|
+
--ak-z-modal: 2000;
|
|
203
|
+
--ak-z-toast: 3000;
|
|
204
|
+
--ak-z-tooltip: 4000;
|
|
205
|
+
|
|
206
|
+
/* ─── asset · 资源路径约定:模板 / Gadget 拼图标路径的基准(默认相对 preview/assets;生产环境见文档站 /foundations/icons#游戏图标)。CSS 不读它——url() 里不能放 var();CSS 引用的游戏素材走 base/skin-assets.css 的 --ak-item-bg-* 接口 */
|
|
207
|
+
--ak-asset-base: assets;
|
|
208
|
+
|
|
209
|
+
/* ─── control */
|
|
210
|
+
|
|
211
|
+
/* ─── control · select-arrow · 下拉箭头 ▾:裸 <select> 与 .ak-select 同一枚(两条 45° 渐变拼成实心三角,颜色随主题的 --ak-fg-muted) */
|
|
212
|
+
--ak-select-arrow: linear-gradient(45deg, transparent 50%, var(--ak-fg-muted) 50%), linear-gradient(135deg, var(--ak-fg-muted) 50%, transparent 50%);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/* ═══ 2b. SEMANTIC TOKENS · LIGHT("档案模式" · in-game archive / white UI) ═══ */
|
|
216
|
+
:root {
|
|
217
|
+
color-scheme: light;
|
|
218
|
+
|
|
219
|
+
/* ─── theme */
|
|
220
|
+
|
|
221
|
+
/* ─── theme · background · 背景 / 表面 */
|
|
222
|
+
--ak-bg-canvas: var(--ak-gray-50);
|
|
223
|
+
--ak-bg-surface: var(--ak-gray-0);
|
|
224
|
+
--ak-bg-surface-2: var(--ak-gray-50);
|
|
225
|
+
--ak-bg-surface-3: var(--ak-gray-100);
|
|
226
|
+
--ak-bg-inset: #eef0f1;
|
|
227
|
+
--ak-bg-hover: rgba(0, 0, 0, 0.05);
|
|
228
|
+
--ak-bg-active: rgba(0, 0, 0, 0.09);
|
|
229
|
+
--ak-bg-inverse: var(--ak-gray-900);
|
|
230
|
+
--ak-bg-overlay: rgba(15, 15, 16, 0.6);
|
|
231
|
+
|
|
232
|
+
/* ─── theme · foreground · 文字 */
|
|
233
|
+
--ak-fg: var(--ak-gray-900);
|
|
234
|
+
--ak-fg-secondary: #454647;
|
|
235
|
+
--ak-fg-muted: var(--ak-gray-500);
|
|
236
|
+
--ak-fg-subtle: var(--ak-gray-400);
|
|
237
|
+
--ak-fg-disabled: var(--ak-gray-300);
|
|
238
|
+
--ak-fg-inverse: var(--ak-gray-0);
|
|
239
|
+
|
|
240
|
+
/* ─── theme · accent · 强调色:亮色 = 游戏内蓝 #0098DC,暗色 = 官网青 #18D1FF;次强调 = 黄 */
|
|
241
|
+
--ak-accent: var(--ak-blue-500); /* 亮色下用游戏内蓝 #0098DC,对比更稳 */
|
|
242
|
+
--ak-accent-hover: var(--ak-blue-600);
|
|
243
|
+
--ak-accent-fg: #ffffff;
|
|
244
|
+
--ak-accent-subtle: rgba(0, 152, 220, 0.10);
|
|
245
|
+
--ak-accent-muted: rgba(0, 152, 220, 0.28);
|
|
246
|
+
--ak-accent-2: var(--ak-yellow-500); /* 次强调:黄 */
|
|
247
|
+
--ak-accent-2-fg: #1d1f20;
|
|
248
|
+
|
|
249
|
+
/* ─── theme · link · 链接 */
|
|
250
|
+
--ak-link: #0072a8;
|
|
251
|
+
--ak-link-hover: #005a82;
|
|
252
|
+
--ak-link-visited: #2c6b88; /* 已访问 = 链接色「褪一层」而不是换成紫:= #0072a8 × 55% + --ak-fg-muted #626262 × 45%(变灰变钝,白底 5.9:1)。
|
|
253
|
+
写死算好的实色,不用 color-mix——链接色是常量,没必要让正文链接吃一个 2023 年的特性;重算:round(l*k + m*(1-k))。
|
|
254
|
+
:visited 里的 alpha 会被浏览器丢掉(防历史嗅探),所以必须是实色;悬停回 --ak-link-hover */
|
|
255
|
+
--ak-link-new: #c82a36; /* 红链 */
|
|
256
|
+
--ak-link-external: #0072a8;
|
|
257
|
+
|
|
258
|
+
/* ─── theme · border · 边框 / 焦点 / 选区 / 高亮 */
|
|
259
|
+
--ak-border: #d9dbdc;
|
|
260
|
+
--ak-border-subtle: #e8eaeb;
|
|
261
|
+
--ak-border-strong: #b1b1b1;
|
|
262
|
+
--ak-border-accent: var(--ak-blue-500);
|
|
263
|
+
--ak-focus: var(--ak-blue-500);
|
|
264
|
+
--ak-selection: rgba(0, 152, 220, 0.25);
|
|
265
|
+
--ak-mark-bg: rgba(0, 152, 220, 0.14); /* <mark> 文字高亮:同 :target 引用 / 表格 is-hl / 面板当前项一套「淡青底」语言,比 --ak-accent-subtle 深一档、比 ::selection 浅一档(选中时仍看得出变化);
|
|
266
|
+
不用黄——黄留给稀有度 / 警示条纹,且半透明黄叠在暗色面上会发闷成橄榄色;不用红——红链 / danger 已占满红的语义,红底高亮会像报错,红链落在里面也看不清 */
|
|
267
|
+
|
|
268
|
+
/* ─── theme · status · 状态色 */
|
|
269
|
+
--ak-info: #0072a8;
|
|
270
|
+
--ak-info-bg: rgba(0, 152, 220, 0.10);
|
|
271
|
+
--ak-success: #1f8f5f;
|
|
272
|
+
--ak-success-bg: rgba(47, 172, 120, 0.12);
|
|
273
|
+
--ak-warning: #b86f00;
|
|
274
|
+
--ak-warning-bg: rgba(244, 152, 0, 0.14);
|
|
275
|
+
--ak-danger: #c8102e;
|
|
276
|
+
--ak-danger-bg: rgba(200, 42, 54, 0.10);
|
|
277
|
+
|
|
278
|
+
/* ─── theme · rich-text · Rich text(游戏内 <color> 标签)· 亮色下微调以满足 AA */
|
|
279
|
+
--ak-rt-vup: #007bb5;
|
|
280
|
+
--ak-rt-vdown: #d0421c;
|
|
281
|
+
--ak-rt-rem: #b86f00;
|
|
282
|
+
--ak-rt-kw: #0077b3;
|
|
283
|
+
--ak-rt-imp: #d40000;
|
|
284
|
+
--ak-rt-drop: #1d78b8;
|
|
285
|
+
--ak-rt-enemy: #c22f2f;
|
|
286
|
+
--ak-rt-gild: #1f8f5f;
|
|
287
|
+
--ak-rt-acrem: #727272;
|
|
288
|
+
--ak-rt-level: #9a7b00;
|
|
289
|
+
|
|
290
|
+
/* ─── theme · rarity-text · Rarity text-safe(用于文字/描边) */
|
|
291
|
+
--ak-rarity-1-text: #6f6f6f;
|
|
292
|
+
--ak-rarity-2-text: #7f8a00;
|
|
293
|
+
--ak-rarity-3-text: #1d78b8;
|
|
294
|
+
--ak-rarity-4-text: #7d4fc2;
|
|
295
|
+
--ak-rarity-5-text: #a87a00;
|
|
296
|
+
--ak-rarity-6-text: #d45f00;
|
|
297
|
+
|
|
298
|
+
/* ─── theme · shadow · 阴影 */
|
|
299
|
+
--ak-shadow-sm: 0 1px 2px rgba(0,0,0,.08);
|
|
300
|
+
--ak-shadow-md: 0 4px 12px rgba(0,0,0,.10), 0 1px 3px rgba(0,0,0,.06);
|
|
301
|
+
--ak-shadow-lg: 0 12px 32px rgba(0,0,0,.14), 0 2px 6px rgba(0,0,0,.08);
|
|
302
|
+
--ak-shadow-accent: 0 0 0 3px var(--ak-accent-subtle);
|
|
303
|
+
|
|
304
|
+
/* ─── theme · decoration · 装饰:白线稿反相 / 斜纹 / 网格 / 网点 / 滚动条 */
|
|
305
|
+
--ak-glyph-filter: invert(1); /* 游戏白色线稿图标在亮色下反相为黑 */
|
|
306
|
+
--ak-glyph-filter-inverse: none; /* 同一套白线稿落在反色块(--ak-bg-inverse 底:.ak-phase-tabs 选中项那种)上时用——亮色下反色块是深底,白线稿不动;暗色下反色块是白底,要反相。组件走这个令牌,别按 :root[data-theme] 分支:跟随系统的暗色没有 data-theme,会漏 */
|
|
307
|
+
--ak-stripe-color: rgba(0,0,0,.08);
|
|
308
|
+
--ak-grid-color: rgba(0,0,0,.06);
|
|
309
|
+
--ak-halftone-color: rgba(0,0,0,.14);
|
|
310
|
+
--ak-scrollbar: #c4c6c8;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/* ═══ 2c. SEMANTIC TOKENS · DARK("终端模式" · main menu / PRTS terminal) ═══ */
|
|
314
|
+
:root[data-theme="dark"],
|
|
315
|
+
html.skin-theme-clientpref-night,
|
|
316
|
+
.ak-scope[data-theme="dark"] {
|
|
317
|
+
color-scheme: dark;
|
|
318
|
+
|
|
319
|
+
/* ─── theme */
|
|
320
|
+
|
|
321
|
+
/* ─── theme · background · 背景 / 表面 */
|
|
322
|
+
--ak-bg-canvas: #0f0f10;
|
|
323
|
+
--ak-bg-surface: #1a1b1c;
|
|
324
|
+
--ak-bg-surface-2: #232425;
|
|
325
|
+
--ak-bg-surface-3: #2d2e30;
|
|
326
|
+
--ak-bg-inset: #141516;
|
|
327
|
+
--ak-bg-hover: rgba(255, 255, 255, 0.06);
|
|
328
|
+
--ak-bg-active: rgba(255, 255, 255, 0.11);
|
|
329
|
+
--ak-bg-inverse: var(--ak-gray-0);
|
|
330
|
+
--ak-bg-overlay: rgba(0, 0, 0, 0.7);
|
|
331
|
+
|
|
332
|
+
/* ─── theme · foreground · 文字 */
|
|
333
|
+
--ak-fg: #f0f0f0;
|
|
334
|
+
--ak-fg-secondary: #c9c9c9;
|
|
335
|
+
--ak-fg-muted: var(--ak-gray-400);
|
|
336
|
+
--ak-fg-subtle: #6f7071;
|
|
337
|
+
--ak-fg-disabled: #4a4b4c;
|
|
338
|
+
--ak-fg-inverse: var(--ak-gray-950);
|
|
339
|
+
|
|
340
|
+
/* ─── theme · accent · 强调色:亮色 = 游戏内蓝 #0098DC,暗色 = 官网青 #18D1FF;次强调 = 黄 */
|
|
341
|
+
--ak-accent: var(--ak-cyan-500); /* 暗色下用官网青 #18D1FF */
|
|
342
|
+
--ak-accent-hover: var(--ak-cyan-200);
|
|
343
|
+
--ak-accent-fg: #000000;
|
|
344
|
+
--ak-accent-subtle: rgba(24, 209, 255, 0.10);
|
|
345
|
+
--ak-accent-muted: rgba(24, 209, 255, 0.30);
|
|
346
|
+
--ak-accent-2: var(--ak-yellow-500);
|
|
347
|
+
--ak-accent-2-fg: #000000;
|
|
348
|
+
|
|
349
|
+
/* ─── theme · link · 链接 */
|
|
350
|
+
--ak-link: var(--ak-cyan-300);
|
|
351
|
+
--ak-link-hover: var(--ak-cyan-200);
|
|
352
|
+
--ak-link-visited: #3f8ea4; /* 已访问 = 青 #5ddcff × 62% + 画布 #0f0f10 × 38%(视觉上就是「62% 透明的链接色」,写成实色);黑底 5:1、surface 4.6:1 */
|
|
353
|
+
--ak-link-new: #ff6b6b;
|
|
354
|
+
--ak-link-external: var(--ak-cyan-300);
|
|
355
|
+
|
|
356
|
+
/* ─── theme · border · 边框 / 焦点 / 选区 / 高亮 */
|
|
357
|
+
--ak-border: #2f3133;
|
|
358
|
+
--ak-border-subtle: #262729;
|
|
359
|
+
--ak-border-strong: #4a4c4f;
|
|
360
|
+
--ak-border-accent: var(--ak-cyan-500);
|
|
361
|
+
--ak-focus: var(--ak-cyan-500);
|
|
362
|
+
--ak-selection: rgba(24, 209, 255, 0.28);
|
|
363
|
+
--ak-mark-bg: rgba(24, 209, 255, 0.20);
|
|
364
|
+
|
|
365
|
+
/* ─── theme · status · 状态色 */
|
|
366
|
+
--ak-info: var(--ak-cyan-300);
|
|
367
|
+
--ak-info-bg: rgba(24, 209, 255, 0.10);
|
|
368
|
+
--ak-success: #4fd18f;
|
|
369
|
+
--ak-success-bg: rgba(47, 172, 120, 0.14);
|
|
370
|
+
--ak-warning: #ffb340;
|
|
371
|
+
--ak-warning-bg: rgba(244, 152, 0, 0.14);
|
|
372
|
+
--ak-danger: #ff5c5c;
|
|
373
|
+
--ak-danger-bg: rgba(216, 60, 60, 0.14);
|
|
374
|
+
|
|
375
|
+
/* ─── theme · rich-text · Rich text(游戏内 <color> 标签)· 暗色下即游戏原值 */
|
|
376
|
+
--ak-rt-vup: var(--ak-blue-500);
|
|
377
|
+
--ak-rt-vdown: var(--ak-red-400);
|
|
378
|
+
--ak-rt-rem: var(--ak-orange-500);
|
|
379
|
+
--ak-rt-kw: var(--ak-blue-400);
|
|
380
|
+
--ak-rt-imp: #ff3b3b;
|
|
381
|
+
--ak-rt-drop: #36acff;
|
|
382
|
+
--ak-rt-enemy: var(--ak-red-500);
|
|
383
|
+
--ak-rt-gild: var(--ak-green-500);
|
|
384
|
+
--ak-rt-acrem: #8a8a8a;
|
|
385
|
+
--ak-rt-level: #ffde00;
|
|
386
|
+
|
|
387
|
+
/* ─── theme · rarity-text · Rarity text-safe · 暗色下直接用稀有度原色 */
|
|
388
|
+
--ak-rarity-1-text: var(--ak-rarity-1);
|
|
389
|
+
--ak-rarity-2-text: var(--ak-rarity-2);
|
|
390
|
+
--ak-rarity-3-text: var(--ak-rarity-3);
|
|
391
|
+
--ak-rarity-4-text: var(--ak-rarity-4);
|
|
392
|
+
--ak-rarity-5-text: var(--ak-rarity-5);
|
|
393
|
+
--ak-rarity-6-text: var(--ak-rarity-6);
|
|
394
|
+
|
|
395
|
+
/* ─── theme · shadow · 阴影 */
|
|
396
|
+
--ak-shadow-sm: 0 1px 2px rgba(0,0,0,.4);
|
|
397
|
+
--ak-shadow-md: 0 4px 14px rgba(0,0,0,.5), 0 1px 3px rgba(0,0,0,.4);
|
|
398
|
+
--ak-shadow-lg: 0 16px 40px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.4);
|
|
399
|
+
--ak-shadow-accent: 0 0 0 3px var(--ak-accent-subtle);
|
|
400
|
+
|
|
401
|
+
/* ─── theme · decoration · 装饰:白线稿反相 / 斜纹 / 网格 / 网点 / 滚动条 */
|
|
402
|
+
--ak-glyph-filter: none;
|
|
403
|
+
--ak-glyph-filter-inverse: invert(1);
|
|
404
|
+
--ak-stripe-color: rgba(255,255,255,.07);
|
|
405
|
+
--ak-grid-color: rgba(255,255,255,.05);
|
|
406
|
+
--ak-halftone-color: rgba(255,255,255,.16);
|
|
407
|
+
--ak-scrollbar: #3b3d40;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/* ═══ 跟随系统:仅当未显式指定时生效(= 2c,同一份源) ═══ */
|
|
411
|
+
@media (prefers-color-scheme: dark) {
|
|
412
|
+
:root:not([data-theme="light"]):not(.skin-theme-clientpref-day):not([data-theme="dark"]):not(.skin-theme-clientpref-night) {
|
|
413
|
+
color-scheme: dark;
|
|
414
|
+
|
|
415
|
+
/* ─── theme */
|
|
416
|
+
|
|
417
|
+
/* ─── theme · background · 背景 / 表面 */
|
|
418
|
+
--ak-bg-canvas: #0f0f10;
|
|
419
|
+
--ak-bg-surface: #1a1b1c;
|
|
420
|
+
--ak-bg-surface-2: #232425;
|
|
421
|
+
--ak-bg-surface-3: #2d2e30;
|
|
422
|
+
--ak-bg-inset: #141516;
|
|
423
|
+
--ak-bg-hover: rgba(255, 255, 255, 0.06);
|
|
424
|
+
--ak-bg-active: rgba(255, 255, 255, 0.11);
|
|
425
|
+
--ak-bg-inverse: var(--ak-gray-0);
|
|
426
|
+
--ak-bg-overlay: rgba(0, 0, 0, 0.7);
|
|
427
|
+
|
|
428
|
+
/* ─── theme · foreground · 文字 */
|
|
429
|
+
--ak-fg: #f0f0f0;
|
|
430
|
+
--ak-fg-secondary: #c9c9c9;
|
|
431
|
+
--ak-fg-muted: var(--ak-gray-400);
|
|
432
|
+
--ak-fg-subtle: #6f7071;
|
|
433
|
+
--ak-fg-disabled: #4a4b4c;
|
|
434
|
+
--ak-fg-inverse: var(--ak-gray-950);
|
|
435
|
+
|
|
436
|
+
/* ─── theme · accent · 强调色:亮色 = 游戏内蓝 #0098DC,暗色 = 官网青 #18D1FF;次强调 = 黄 */
|
|
437
|
+
--ak-accent: var(--ak-cyan-500); /* 暗色下用官网青 #18D1FF */
|
|
438
|
+
--ak-accent-hover: var(--ak-cyan-200);
|
|
439
|
+
--ak-accent-fg: #000000;
|
|
440
|
+
--ak-accent-subtle: rgba(24, 209, 255, 0.10);
|
|
441
|
+
--ak-accent-muted: rgba(24, 209, 255, 0.30);
|
|
442
|
+
--ak-accent-2: var(--ak-yellow-500);
|
|
443
|
+
--ak-accent-2-fg: #000000;
|
|
444
|
+
|
|
445
|
+
/* ─── theme · link · 链接 */
|
|
446
|
+
--ak-link: var(--ak-cyan-300);
|
|
447
|
+
--ak-link-hover: var(--ak-cyan-200);
|
|
448
|
+
--ak-link-visited: #3f8ea4; /* 已访问 = 青 #5ddcff × 62% + 画布 #0f0f10 × 38%(视觉上就是「62% 透明的链接色」,写成实色);黑底 5:1、surface 4.6:1 */
|
|
449
|
+
--ak-link-new: #ff6b6b;
|
|
450
|
+
--ak-link-external: var(--ak-cyan-300);
|
|
451
|
+
|
|
452
|
+
/* ─── theme · border · 边框 / 焦点 / 选区 / 高亮 */
|
|
453
|
+
--ak-border: #2f3133;
|
|
454
|
+
--ak-border-subtle: #262729;
|
|
455
|
+
--ak-border-strong: #4a4c4f;
|
|
456
|
+
--ak-border-accent: var(--ak-cyan-500);
|
|
457
|
+
--ak-focus: var(--ak-cyan-500);
|
|
458
|
+
--ak-selection: rgba(24, 209, 255, 0.28);
|
|
459
|
+
--ak-mark-bg: rgba(24, 209, 255, 0.20);
|
|
460
|
+
|
|
461
|
+
/* ─── theme · status · 状态色 */
|
|
462
|
+
--ak-info: var(--ak-cyan-300);
|
|
463
|
+
--ak-info-bg: rgba(24, 209, 255, 0.10);
|
|
464
|
+
--ak-success: #4fd18f;
|
|
465
|
+
--ak-success-bg: rgba(47, 172, 120, 0.14);
|
|
466
|
+
--ak-warning: #ffb340;
|
|
467
|
+
--ak-warning-bg: rgba(244, 152, 0, 0.14);
|
|
468
|
+
--ak-danger: #ff5c5c;
|
|
469
|
+
--ak-danger-bg: rgba(216, 60, 60, 0.14);
|
|
470
|
+
|
|
471
|
+
/* ─── theme · rich-text · Rich text(游戏内 <color> 标签)· 暗色下即游戏原值 */
|
|
472
|
+
--ak-rt-vup: var(--ak-blue-500);
|
|
473
|
+
--ak-rt-vdown: var(--ak-red-400);
|
|
474
|
+
--ak-rt-rem: var(--ak-orange-500);
|
|
475
|
+
--ak-rt-kw: var(--ak-blue-400);
|
|
476
|
+
--ak-rt-imp: #ff3b3b;
|
|
477
|
+
--ak-rt-drop: #36acff;
|
|
478
|
+
--ak-rt-enemy: var(--ak-red-500);
|
|
479
|
+
--ak-rt-gild: var(--ak-green-500);
|
|
480
|
+
--ak-rt-acrem: #8a8a8a;
|
|
481
|
+
--ak-rt-level: #ffde00;
|
|
482
|
+
|
|
483
|
+
/* ─── theme · rarity-text · Rarity text-safe · 暗色下直接用稀有度原色 */
|
|
484
|
+
--ak-rarity-1-text: var(--ak-rarity-1);
|
|
485
|
+
--ak-rarity-2-text: var(--ak-rarity-2);
|
|
486
|
+
--ak-rarity-3-text: var(--ak-rarity-3);
|
|
487
|
+
--ak-rarity-4-text: var(--ak-rarity-4);
|
|
488
|
+
--ak-rarity-5-text: var(--ak-rarity-5);
|
|
489
|
+
--ak-rarity-6-text: var(--ak-rarity-6);
|
|
490
|
+
|
|
491
|
+
/* ─── theme · shadow · 阴影 */
|
|
492
|
+
--ak-shadow-sm: 0 1px 2px rgba(0,0,0,.4);
|
|
493
|
+
--ak-shadow-md: 0 4px 14px rgba(0,0,0,.5), 0 1px 3px rgba(0,0,0,.4);
|
|
494
|
+
--ak-shadow-lg: 0 16px 40px rgba(0,0,0,.6), 0 2px 6px rgba(0,0,0,.4);
|
|
495
|
+
--ak-shadow-accent: 0 0 0 3px var(--ak-accent-subtle);
|
|
496
|
+
|
|
497
|
+
/* ─── theme · decoration · 装饰:白线稿反相 / 斜纹 / 网格 / 网点 / 滚动条 */
|
|
498
|
+
--ak-glyph-filter: none;
|
|
499
|
+
--ak-glyph-filter-inverse: invert(1);
|
|
500
|
+
--ak-stripe-color: rgba(255,255,255,.07);
|
|
501
|
+
--ak-grid-color: rgba(255,255,255,.05);
|
|
502
|
+
--ak-halftone-color: rgba(255,255,255,.16);
|
|
503
|
+
--ak-scrollbar: #3b3d40;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
/* ═══ 2b′. SEMANTIC TOKENS · LIGHT(作用域内强制亮色:= 2b,同一份源) ═══ */
|
|
508
|
+
.ak-scope[data-theme="light"] {
|
|
509
|
+
color-scheme: light;
|
|
510
|
+
|
|
511
|
+
/* ─── theme */
|
|
512
|
+
|
|
513
|
+
/* ─── theme · background · 背景 / 表面 */
|
|
514
|
+
--ak-bg-canvas: var(--ak-gray-50);
|
|
515
|
+
--ak-bg-surface: var(--ak-gray-0);
|
|
516
|
+
--ak-bg-surface-2: var(--ak-gray-50);
|
|
517
|
+
--ak-bg-surface-3: var(--ak-gray-100);
|
|
518
|
+
--ak-bg-inset: #eef0f1;
|
|
519
|
+
--ak-bg-hover: rgba(0, 0, 0, 0.05);
|
|
520
|
+
--ak-bg-active: rgba(0, 0, 0, 0.09);
|
|
521
|
+
--ak-bg-inverse: var(--ak-gray-900);
|
|
522
|
+
--ak-bg-overlay: rgba(15, 15, 16, 0.6);
|
|
523
|
+
|
|
524
|
+
/* ─── theme · foreground · 文字 */
|
|
525
|
+
--ak-fg: var(--ak-gray-900);
|
|
526
|
+
--ak-fg-secondary: #454647;
|
|
527
|
+
--ak-fg-muted: var(--ak-gray-500);
|
|
528
|
+
--ak-fg-subtle: var(--ak-gray-400);
|
|
529
|
+
--ak-fg-disabled: var(--ak-gray-300);
|
|
530
|
+
--ak-fg-inverse: var(--ak-gray-0);
|
|
531
|
+
|
|
532
|
+
/* ─── theme · accent · 强调色:亮色 = 游戏内蓝 #0098DC,暗色 = 官网青 #18D1FF;次强调 = 黄 */
|
|
533
|
+
--ak-accent: var(--ak-blue-500); /* 亮色下用游戏内蓝 #0098DC,对比更稳 */
|
|
534
|
+
--ak-accent-hover: var(--ak-blue-600);
|
|
535
|
+
--ak-accent-fg: #ffffff;
|
|
536
|
+
--ak-accent-subtle: rgba(0, 152, 220, 0.10);
|
|
537
|
+
--ak-accent-muted: rgba(0, 152, 220, 0.28);
|
|
538
|
+
--ak-accent-2: var(--ak-yellow-500); /* 次强调:黄 */
|
|
539
|
+
--ak-accent-2-fg: #1d1f20;
|
|
540
|
+
|
|
541
|
+
/* ─── theme · link · 链接 */
|
|
542
|
+
--ak-link: #0072a8;
|
|
543
|
+
--ak-link-hover: #005a82;
|
|
544
|
+
--ak-link-visited: #2c6b88; /* 已访问 = 链接色「褪一层」而不是换成紫:= #0072a8 × 55% + --ak-fg-muted #626262 × 45%(变灰变钝,白底 5.9:1)。
|
|
545
|
+
写死算好的实色,不用 color-mix——链接色是常量,没必要让正文链接吃一个 2023 年的特性;重算:round(l*k + m*(1-k))。
|
|
546
|
+
:visited 里的 alpha 会被浏览器丢掉(防历史嗅探),所以必须是实色;悬停回 --ak-link-hover */
|
|
547
|
+
--ak-link-new: #c82a36; /* 红链 */
|
|
548
|
+
--ak-link-external: #0072a8;
|
|
549
|
+
|
|
550
|
+
/* ─── theme · border · 边框 / 焦点 / 选区 / 高亮 */
|
|
551
|
+
--ak-border: #d9dbdc;
|
|
552
|
+
--ak-border-subtle: #e8eaeb;
|
|
553
|
+
--ak-border-strong: #b1b1b1;
|
|
554
|
+
--ak-border-accent: var(--ak-blue-500);
|
|
555
|
+
--ak-focus: var(--ak-blue-500);
|
|
556
|
+
--ak-selection: rgba(0, 152, 220, 0.25);
|
|
557
|
+
--ak-mark-bg: rgba(0, 152, 220, 0.14); /* <mark> 文字高亮:同 :target 引用 / 表格 is-hl / 面板当前项一套「淡青底」语言,比 --ak-accent-subtle 深一档、比 ::selection 浅一档(选中时仍看得出变化);
|
|
558
|
+
不用黄——黄留给稀有度 / 警示条纹,且半透明黄叠在暗色面上会发闷成橄榄色;不用红——红链 / danger 已占满红的语义,红底高亮会像报错,红链落在里面也看不清 */
|
|
559
|
+
|
|
560
|
+
/* ─── theme · status · 状态色 */
|
|
561
|
+
--ak-info: #0072a8;
|
|
562
|
+
--ak-info-bg: rgba(0, 152, 220, 0.10);
|
|
563
|
+
--ak-success: #1f8f5f;
|
|
564
|
+
--ak-success-bg: rgba(47, 172, 120, 0.12);
|
|
565
|
+
--ak-warning: #b86f00;
|
|
566
|
+
--ak-warning-bg: rgba(244, 152, 0, 0.14);
|
|
567
|
+
--ak-danger: #c8102e;
|
|
568
|
+
--ak-danger-bg: rgba(200, 42, 54, 0.10);
|
|
569
|
+
|
|
570
|
+
/* ─── theme · rich-text · Rich text(游戏内 <color> 标签)· 亮色下微调以满足 AA */
|
|
571
|
+
--ak-rt-vup: #007bb5;
|
|
572
|
+
--ak-rt-vdown: #d0421c;
|
|
573
|
+
--ak-rt-rem: #b86f00;
|
|
574
|
+
--ak-rt-kw: #0077b3;
|
|
575
|
+
--ak-rt-imp: #d40000;
|
|
576
|
+
--ak-rt-drop: #1d78b8;
|
|
577
|
+
--ak-rt-enemy: #c22f2f;
|
|
578
|
+
--ak-rt-gild: #1f8f5f;
|
|
579
|
+
--ak-rt-acrem: #727272;
|
|
580
|
+
--ak-rt-level: #9a7b00;
|
|
581
|
+
|
|
582
|
+
/* ─── theme · rarity-text · Rarity text-safe(用于文字/描边) */
|
|
583
|
+
--ak-rarity-1-text: #6f6f6f;
|
|
584
|
+
--ak-rarity-2-text: #7f8a00;
|
|
585
|
+
--ak-rarity-3-text: #1d78b8;
|
|
586
|
+
--ak-rarity-4-text: #7d4fc2;
|
|
587
|
+
--ak-rarity-5-text: #a87a00;
|
|
588
|
+
--ak-rarity-6-text: #d45f00;
|
|
589
|
+
|
|
590
|
+
/* ─── theme · shadow · 阴影 */
|
|
591
|
+
--ak-shadow-sm: 0 1px 2px rgba(0,0,0,.08);
|
|
592
|
+
--ak-shadow-md: 0 4px 12px rgba(0,0,0,.10), 0 1px 3px rgba(0,0,0,.06);
|
|
593
|
+
--ak-shadow-lg: 0 12px 32px rgba(0,0,0,.14), 0 2px 6px rgba(0,0,0,.08);
|
|
594
|
+
--ak-shadow-accent: 0 0 0 3px var(--ak-accent-subtle);
|
|
595
|
+
|
|
596
|
+
/* ─── theme · decoration · 装饰:白线稿反相 / 斜纹 / 网格 / 网点 / 滚动条 */
|
|
597
|
+
--ak-glyph-filter: invert(1); /* 游戏白色线稿图标在亮色下反相为黑 */
|
|
598
|
+
--ak-glyph-filter-inverse: none; /* 同一套白线稿落在反色块(--ak-bg-inverse 底:.ak-phase-tabs 选中项那种)上时用——亮色下反色块是深底,白线稿不动;暗色下反色块是白底,要反相。组件走这个令牌,别按 :root[data-theme] 分支:跟随系统的暗色没有 data-theme,会漏 */
|
|
599
|
+
--ak-stripe-color: rgba(0,0,0,.08);
|
|
600
|
+
--ak-grid-color: rgba(0,0,0,.06);
|
|
601
|
+
--ak-halftone-color: rgba(0,0,0,.14);
|
|
602
|
+
--ak-scrollbar: #c4c6c8;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
/* ═══ 2a′. 作用域主题:2a 里引用语义令牌的几个,在作用域上按作用域的主题重新解析 ═══ */
|
|
606
|
+
.ak-scope[data-theme] {
|
|
607
|
+
/* ─── control */
|
|
608
|
+
|
|
609
|
+
/* ─── control · select-arrow · 下拉箭头 ▾:裸 <select> 与 .ak-select 同一枚(两条 45° 渐变拼成实心三角,颜色随主题的 --ak-fg-muted) */
|
|
610
|
+
--ak-select-arrow: linear-gradient(45deg, transparent 50%, var(--ak-fg-muted) 50%), linear-gradient(135deg, var(--ak-fg-muted) 50%, transparent 50%);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
/* ═══ 2d. CHROME · 页眉 / 头图 / 画布 的主题接口 ═══ */
|
|
614
|
+
:root {
|
|
615
|
+
/* ─── chrome · 2d. CHROME · 页眉 / 头图 / 画布 的主题接口(活动主题只改这里)
|
|
616
|
+
* 皮肤的「框」(页眉主行 + 二级栏 + 窄屏工具卡片)在两套主题下都是黑的:官网导航栏、游戏主界面顶栏、
|
|
617
|
+
* 干员档案页的顶部黑边都是"黑框白纸 / 黑框黑纸"——所以 chrome 令牌不随明暗主题变,只跟着活动主题变。
|
|
618
|
+
* prts.wiki 大活期间会换头图 / 顶栏角饰 / 站标 / 侧栏配色(现网 ext.gadget.seventhStyle 就是改这些):
|
|
619
|
+
* 新皮肤把这些位置抽成下面这组变量,Gadget / MediaWiki:Common.css 只需在 :root(或 html.ak-theme-xxx)上覆盖,
|
|
620
|
+
* 不必碰选择器。skin.css 里的 .ak-header 把语义令牌重映射到 --ak-chrome-*,页眉内的按钮 / 输入 / 头像 / 菜单自动跟随。
|
|
621
|
+
* 页眉与头图的关系:头图 .ak-keyart 从页面顶端铺起,页眉是压在它上面的一块均匀黑玻璃(--ak-chrome-bg + 毛玻璃)——
|
|
622
|
+
* 玻璃保证页眉可读,画从玻璃后面透出来;照片一律走 --ak-keyart-image,--ak-chrome-image 只放画在玻璃之上的深色角饰 / 底纹。
|
|
623
|
+
* --ak-logo-image(不设默认值):站标,设置后 .ak-header__logo img 用 content 替换(Chromium / WebKit;Firefox 请改 $wgLogos)。 */
|
|
624
|
+
--ak-theme-accent: var(--ak-cyan-500); /* 活动主色:页眉标语 / 悬停、侧栏与目录分组条、页脚斜纹、窄屏卡片顶条 …(正文里的链接 / 选中仍是 --ak-accent;想一起换就连 --ak-accent 也覆盖) */
|
|
625
|
+
--ak-theme-accent-fg: #000;
|
|
626
|
+
--ak-chrome-bg: rgba(8, 9, 10, .9); /* 页眉玻璃:半透明 + 毛玻璃,头图 / 滚过来的正文在下面均匀透出。活动主题想让头图多透一点可调 alpha 到 .78–.85;别低于 .72(白色画面之下 #F2F2F2 仍 ≥7:1) */
|
|
627
|
+
--ak-chrome-bg-solid: #0e0f10; /* 不透明处:窄屏工具卡片、飞出菜单 */
|
|
628
|
+
--ak-chrome-fg: #f2f2f2;
|
|
629
|
+
--ak-chrome-fg-2: rgba(255, 255, 255, .74);
|
|
630
|
+
--ak-chrome-fg-muted: rgba(255, 255, 255, .5);
|
|
631
|
+
--ak-chrome-line: rgba(255, 255, 255, .14); /* 页眉底线 / 分隔线 */
|
|
632
|
+
--ak-chrome-line-strong: rgba(255, 255, 255, .32);
|
|
633
|
+
--ak-chrome-hover: rgba(255, 255, 255, .08);
|
|
634
|
+
--ak-chrome-field: rgba(255, 255, 255, .07); /* 搜索触发器底 */
|
|
635
|
+
--ak-chrome-image: none; /* 顶栏角饰 / 底纹:url(left.png), url(right.png)(现网 PRTSheadleft 的活动徽章 / Garanheadright 的波纹那种)。画在玻璃之上、不会被压暗——只放深色低对比素材,照片请走 --ak-keyart-image */
|
|
636
|
+
--ak-chrome-image-position: right top;
|
|
637
|
+
--ak-chrome-image-size: auto 100%;
|
|
638
|
+
--ak-chrome-image-repeat: no-repeat;
|
|
639
|
+
--ak-chrome-texture: .55; /* 右侧半调网点强度 0–1(游戏顶栏 img_back / 官网左缘网点),0 关闭 */
|
|
640
|
+
--ak-keyart-image: none; /* 头图(Key Visual):从页面顶端铺起、页眉压在它上面的一条通栏画;--ak-keyart-h 为 0 时不占位(只在页眉后面透) */
|
|
641
|
+
--ak-keyart-h: 0px; /* 页眉之下可见的那段高度 */
|
|
642
|
+
--ak-keyart-position: center 30%; /* -position / -size 相对整块(页眉高 + -h)计算 */
|
|
643
|
+
--ak-keyart-size: cover;
|
|
644
|
+
--ak-keyart-bg: transparent; /* 画未铺满 / 未加载时的底色;默认透明,没有头图时页眉背后什么也不多画 */
|
|
645
|
+
--ak-keyart-fade: 96px; /* 底部渐隐进画布的高度,0 关闭 */
|
|
646
|
+
--ak-canvas-image: none; /* 页面画布底纹 / 底图(body 背景,叠在 --ak-bg-canvas 之上;现网 body 的 bkg 图位置) */
|
|
647
|
+
--ak-canvas-position: center top;
|
|
648
|
+
--ak-canvas-size: auto;
|
|
649
|
+
--ak-canvas-repeat: repeat;
|
|
650
|
+
--ak-canvas-attachment: scroll;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/* ═══ 高对比偏好:只有亮色吃得到(暗色块选择器特指度更高,压过这里的 :root——沿用原行为;.ak-scope[data-theme="light"] 与 2b′ 同特指度、本块在后,作用域亮色同样吃得到) ═══ */
|
|
654
|
+
@media (prefers-contrast: more) {
|
|
655
|
+
:root,
|
|
656
|
+
.ak-scope[data-theme="light"] {
|
|
657
|
+
/* ─── theme */
|
|
658
|
+
|
|
659
|
+
/* ─── theme · foreground */
|
|
660
|
+
--ak-fg-muted: var(--ak-fg-secondary);
|
|
661
|
+
|
|
662
|
+
/* ─── theme · border */
|
|
663
|
+
--ak-border: var(--ak-border-strong);
|
|
664
|
+
}
|
|
665
|
+
}
|