@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
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/module.css — B10 模组卡 Module · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B10. 模组卡 —— 同现网 {{模组}}(Template:模组 输出的 .equiptemplate)一张卡装完:型号 + 名称 + 基础信息(故事,默认只露 3 行)+ 三阶段属性 / 特性追加 · 天赋更新 + 解锁任务 + 解锁需求与材料
|
|
3
|
+
* 结构:.ak-module[data-color=red] > .ak-module__img + .ak-module__main( .ak-module__head( .ak-module__type + h3.ak-module__name + [.ak-module__hint] ) + .ak-module__story + label.ak-module__more( input[type=checkbox][data-toggle-class=is-open][data-toggle-target=.ak-module__main] + .off + .on ) )
|
|
4
|
+
* + .ak-module__body( table.ak-module__stages + .ak-module__tasks + table.ak-module__unlock )
|
|
5
|
+
* --_bar = 型号色:模板参数 类型颜色 red / blue / green / yellow / purple → data-color(同游戏模组类型底色);ORIGINAL 原型证章不写 = 灰。左侧粗色条与 1px 框直角拼接(tokens §Shape)。
|
|
6
|
+
* 「全文阅读」是 checkbox 开关(preview.js 的 data-toggle-class 约定),无 JS 时故事只露 3 行——正文仍在 DOM 里可搜索 */
|
|
7
|
+
.ak-module { --_bar: var(--ak-fg-muted); display: grid; grid-template-columns: 96px 1fr; gap: 12px 16px; padding: 14px; margin: 0 0 var(--ak-space-4); background: var(--ak-bg-surface); border: 1px solid var(--ak-border); border-left-width: var(--ak-bar-w-lg); border-image: linear-gradient(to right, var(--_bar) 8px, var(--ak-border) 8px) 1 1 1 8; }
|
|
8
|
+
.ak-module[data-color="red"] { --_bar: var(--ak-red-600); } .ak-module[data-color="blue"] { --_bar: var(--ak-blue-500); } .ak-module[data-color="green"] { --_bar: var(--ak-green-500); } .ak-module[data-color="yellow"] { --_bar: var(--ak-yellow-600); } .ak-module[data-color="purple"] { --_bar: var(--ak-purple-500); }
|
|
9
|
+
.ak-module__img { width: 96px; height: 96px; background: #1d1f20; display: grid; place-items: center; overflow: hidden; }
|
|
10
|
+
.ak-module__img img { max-width: 92%; max-height: 92%; }
|
|
11
|
+
.ak-module__main { min-width: 0; }
|
|
12
|
+
.ak-module__head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; margin-bottom: 8px; }
|
|
13
|
+
.ak-module__type { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 8px; background: var(--_bar); color: #fff; font: 800 var(--ak-fs-sm)/1 var(--ak-font-display); letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
|
|
14
|
+
.ak-module__type img { height: 16px; width: auto; }
|
|
15
|
+
.ak-module__type small { font-family: var(--ak-font-label); font-size: .72em; font-weight: 600; letter-spacing: .1em; opacity: .85; }
|
|
16
|
+
.ak-module__name, :is(h1, h2, h3, h4, h5, h6).ak-module__name { font-weight: 800; font-size: var(--ak-fs-body-lg); margin: 0; }
|
|
17
|
+
.ak-module__hint { font: 600 var(--ak-fs-xs)/1 var(--ak-font-label); letter-spacing: .06em; color: var(--ak-fg-muted); cursor: help; border: 1px solid var(--ak-border-strong); padding: 3px 6px; }
|
|
18
|
+
.ak-module__story { font-size: var(--ak-fs-sm); color: var(--ak-fg-secondary); line-height: 1.7; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
|
|
19
|
+
.ak-module__main.is-open .ak-module__story { display: block; -webkit-line-clamp: unset; }
|
|
20
|
+
.ak-module__story p { margin: 0 0 .6em; } .ak-module__story p:last-child { margin: 0; }
|
|
21
|
+
.ak-module__more { display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; font: 600 var(--ak-fs-xs)/1 var(--ak-font-body); color: var(--ak-link); cursor: pointer; }
|
|
22
|
+
.ak-module__more > input { position: absolute; opacity: 0; width: 0; height: 0; }
|
|
23
|
+
.ak-module__more > input:checked ~ .off, .ak-module__more > input:not(:checked) ~ .on { display: none; }
|
|
24
|
+
.ak-module__more:hover { text-decoration: underline; }
|
|
25
|
+
.ak-module__more:has(> input:focus-visible) { outline: 2px solid var(--ak-focus); outline-offset: 2px; } /* 开关本身是 0×0 的隐形复选框,键盘焦点画在整个 label 上 */
|
|
26
|
+
.ak-module__body { grid-column: 1 / -1; display: grid; gap: 12px; }
|
|
27
|
+
.ak-module__stages, .ak-module__unlock { width: 100%; border-collapse: collapse; font-size: var(--ak-fs-sm); line-height: 1.6; border: 1px solid var(--ak-border); }
|
|
28
|
+
.ak-module__stages th, .ak-module__stages td, .ak-module__unlock th, .ak-module__unlock td { padding: 8px 10px; border-top: 1px solid var(--ak-border-subtle); vertical-align: middle; text-align: left; }
|
|
29
|
+
.ak-module__stages thead th, .ak-module__unlock thead th { background: var(--ak-bg-surface-2); font: 700 var(--ak-fs-xs)/1.3 var(--ak-font-body); color: var(--ak-fg-secondary); border-top: 0; border-bottom: 1px solid var(--ak-border-strong); white-space: nowrap; }
|
|
30
|
+
.ak-module__stages tbody tr:first-child > *, .ak-module__unlock tbody tr:first-child > * { border-top: 0; }
|
|
31
|
+
.ak-module__stages .lv, .ak-module__unlock .lv { width: 96px; white-space: nowrap; }
|
|
32
|
+
.ak-module__stages .stats { width: 150px; }
|
|
33
|
+
.ak-module__lv { display: inline-flex; align-items: center; gap: 8px; font: 800 var(--ak-fs-xs)/1 var(--ak-font-label); letter-spacing: .1em; }
|
|
34
|
+
.ak-module__lv > i { display: inline-flex; gap: 2px; }
|
|
35
|
+
.ak-module__lv > i > b { width: 12px; height: 6px; background: var(--ak-bg-surface-3); }
|
|
36
|
+
.ak-module__lv > i > b.on { background: var(--_bar); }
|
|
37
|
+
.ak-module__stats { display: flex; flex-wrap: wrap; gap: 2px 12px; font-variant-numeric: tabular-nums; }
|
|
38
|
+
.ak-module__stats > span { white-space: nowrap; } /* 「攻击 +50」是一个整体,换行只在项与项之间 */
|
|
39
|
+
.ak-module__kicker { display: inline-block; margin-right: 6px; padding: 3px 6px; vertical-align: 1px; background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); font: 700 10px/1 var(--ak-font-label); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
|
|
40
|
+
.ak-module__tasks { padding: 8px 12px; background: var(--ak-bg-surface-2); font-size: var(--ak-fs-sm); }
|
|
41
|
+
.ak-module__tasks > ul { margin: 4px 0 0; padding-left: 18px; }
|
|
42
|
+
.ak-module__tasks li { margin: 2px 0; }
|
|
43
|
+
.ak-module__req { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
|
|
44
|
+
.ak-module__req .ak-trust, .ak-module__req .ak-elite { font-size: var(--ak-fs-xs); }
|
|
45
|
+
.ak-module__stage { display: inline-flex; gap: 2px; } /* 兼容旧结构(三段进度条) */
|
|
46
|
+
.ak-module__stage > i { width: 22px; height: 6px; background: var(--ak-bg-surface-3); }
|
|
47
|
+
.ak-module__stage > i.on { background: var(--ak-accent); }
|
|
48
|
+
.ak-module__mission { font-size: var(--ak-fs-xs); color: var(--ak-fg-secondary); }
|
|
49
|
+
@media (max-width: 639px) { .ak-module { grid-template-columns: 64px 1fr; padding: 10px; } .ak-module__img { width: 64px; height: 64px; } .ak-module__stages .stats { width: auto; } .ak-module__stages .lv, .ak-module__unlock .lv { width: auto; } }
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/news.css — B17 Breaking-news 横幅 News · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B17. Breaking-news 横幅(游戏内主界面)*/
|
|
3
|
+
.ak-news { display: flex; align-items: stretch; background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); font-size: var(--ak-fs-sm); overflow: hidden; }
|
|
4
|
+
.ak-news__label { background: var(--ak-red-700); color: #fff; padding: 6px 14px; font: 800 var(--ak-fs-xs)/1.4 var(--ak-font-display); letter-spacing: .1em; text-transform: uppercase; display: flex; align-items: center; } /* 矩形红块(不斜切) */
|
|
5
|
+
.ak-news__text { padding: 6px 14px; align-self: center; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* 正文是普通行内流(不是 flex:否则文字节点 / <a> / <b> 各自成 item,手机上 white-space: normal 时会被拆成一列列换行);min-width: 0 让它能缩到比内容窄,省略号才生效 */
|
|
6
|
+
.ak-news__text a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/op-card.css — B4 干员卡 Operator card · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B4. 干员卡(游戏内干员列表卡) */
|
|
3
|
+
.ak-op-card { --_w: 128px; width: var(--_w); position: relative; background: var(--ak-bg-surface); border: 1px solid var(--ak-border); overflow: hidden; text-decoration: none; color: var(--ak-fg); display: block; transition: transform var(--ak-dur-normal) var(--ak-ease), border-color var(--ak-dur-normal), box-shadow var(--ak-dur-normal); }
|
|
4
|
+
.ak-op-card:hover { transform: translateY(-3px); border-color: var(--ak-accent); box-shadow: var(--ak-shadow-md); text-decoration: none; color: var(--ak-fg); }
|
|
5
|
+
.ak-op-card:is(:visited, :active) { color: var(--ak-fg); } /* 同 :hover:整块是链接,宿主的 a:visited / a:active (0,1,1) 压得过 .ak-op-card */
|
|
6
|
+
.ak-op-card__portrait { display: block; position: relative; aspect-ratio: 1; background: #1d1f20 linear-gradient(180deg, #2b2d2f, #141516); overflow: hidden; }
|
|
7
|
+
.ak-op-card__portrait > img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
8
|
+
.ak-op-card__portrait::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(180deg, transparent, rgba(0,0,0,.75)); }
|
|
9
|
+
.ak-op-card__rarity { position: absolute; left: 4px; top: 4px; z-index: 1; height: 12px; }
|
|
10
|
+
.ak-op-card__rarity img { height: 100%; width: auto; display: block; }
|
|
11
|
+
.ak-op-card__rarity > .ak-rarity { display: flex; height: 100%; font-size: 8px; } /* 没有星级原图时的 CSS 星形:原图 12px 高里星形只占 ~7px,8px 字号(星 .9em)与它等大,在 12px 高里居中 */
|
|
12
|
+
.ak-op-card__prof { position: absolute; left: 4px; bottom: 4px; z-index: 1; width: 26px; height: 26px; background: rgba(0,0,0,.6); display: grid; place-items: center; }
|
|
13
|
+
.ak-op-card__prof img { width: 22px; height: 22px; }
|
|
14
|
+
.ak-op-card__elite { position: absolute; right: 4px; bottom: 4px; z-index: 1; height: 16px; }
|
|
15
|
+
.ak-op-card__elite img { height: 100%; width: auto; }
|
|
16
|
+
.ak-op-card__badge { position: absolute; right: 4px; top: 4px; z-index: 1; } /* 右上角空着的那一角:额外角标(首页「兑」字标 / 模组类型小图标),Vue 的 #badge 插槽包在这里 */
|
|
17
|
+
.ak-op-card__name { display: block; padding: 6px 8px 7px; font-weight: 700; font-size: var(--ak-fs-sm); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-top: 3px solid var(--ak-r, var(--ak-border)); }
|
|
18
|
+
.ak-op-card__sub { display: block; font: 600 10px/1 var(--ak-font-label); color: var(--ak-fg-muted); margin-top: 3px; letter-spacing: .06em; text-transform: uppercase; }
|
|
19
|
+
.ak-op-card--sm { --_w: 88px; } .ak-op-card--sm .ak-op-card__name { font-size: var(--ak-fs-xs); padding: 4px 6px; }
|
|
20
|
+
.ak-op-card--lg { --_w: 180px; }
|
|
21
|
+
.ak-op-card--rail { border-left-width: 3px; border-image: linear-gradient(to right, var(--ak-r) 3px, var(--ak-border) 3px) 1 1 1 3; } /* 稀有度色条与 1px 框直角拼接 */
|
|
22
|
+
.ak-op-card--rail:hover { border-image-source: linear-gradient(to right, var(--ak-r) 3px, var(--ak-accent) 3px); }
|
|
23
|
+
.ak-op-card--rail .ak-op-card__name { border-top: 0; }
|
|
24
|
+
.ak-op-card.is-current { border-color: var(--ak-accent); box-shadow: inset 0 0 0 1px var(--ak-accent); } /* 当前项(异格一览里正在看的这位,同 operator.html 的 .op-alter 规则);Vue 同时给 aria-current */
|
|
25
|
+
.ak-op-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: var(--ak-space-3); }
|
|
26
|
+
.ak-op-grid > .ak-op-card { --_w: auto; width: auto; }
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/op-row.css — B4 干员横向条目 Operator row · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* 干员横向条目(列表/表格内) */
|
|
3
|
+
.ak-op-row { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; }
|
|
4
|
+
.ak-op-row .ak-avatar { --_s: 36px; border-left-width: 3px; border-image: linear-gradient(to right, var(--ak-r, var(--ak-border)) 3px, var(--ak-border) 3px) 1 1 1 3; }
|
|
5
|
+
.ak-op-row__name { font-weight: 700; line-height: 1.2; }
|
|
6
|
+
.ak-op-row__meta { font-size: var(--ak-fs-xs); color: var(--ak-fg-muted); display: flex; gap: 6px; align-items: center; }
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/phase-tabs.css — B3 精英化阶段选择器 Phase tabs · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* 精英化阶段选择器(E0 / E1 / E2) */
|
|
3
|
+
.ak-phase-tabs { display: inline-flex; border: 1px solid var(--ak-border-strong); }
|
|
4
|
+
.ak-phase-tabs > button { all: unset; cursor: pointer; padding: 4px 10px; display: inline-flex; align-items: center; gap: 4px; font: 700 var(--ak-fs-xs)/1 var(--ak-font-label); color: var(--ak-fg-muted); }
|
|
5
|
+
.ak-phase-tabs > button + button { border-left: 1px solid var(--ak-border-strong); }
|
|
6
|
+
.ak-phase-tabs > button > img { height: 14px; filter: var(--ak-glyph-filter); opacity: .6; }
|
|
7
|
+
.ak-phase-tabs > button.is-active { background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); }
|
|
8
|
+
.ak-phase-tabs > button.is-active > img { filter: var(--ak-glyph-filter-inverse); opacity: 1; } /* 选中项是反色块:亮色下深底白线稿不动、暗色下白底要反相——走令牌。先前按 :root[data-theme="dark"] 分支,跟随系统的暗色没有 data-theme,漏成白图标落在白底上 */
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/pot-list.css — B3 潜能提升一览 Potential list · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* 潜能提升一览(干员页「潜能提升」节,同现网 {{潜能提升}} 的五格表):潜能 2–6 各一格 = 图标 + 小标 + 效果;.is-on 标出当前潜能已生效的项(属性面板选了潜能后由脚本点亮) */
|
|
3
|
+
.ak-pot-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--ak-border); border: 1px solid var(--ak-border); }
|
|
4
|
+
.ak-pot { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: center; padding: 8px 12px; background: var(--ak-bg-surface); font-size: var(--ak-fs-sm); line-height: 1.4; }
|
|
5
|
+
.ak-pot__label { display: block; margin-bottom: 2px; font: 700 var(--ak-fs-overline)/1 var(--ak-font-label); letter-spacing: var(--ak-tracking-overline); text-transform: uppercase; color: var(--ak-fg-muted); }
|
|
6
|
+
.ak-pot.is-on { box-shadow: inset 0 3px 0 var(--ak-accent); }
|
|
7
|
+
.ak-pot.is-on .ak-pot__label { color: var(--ak-accent); }
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/potential.css — B3 潜能 / 专精 Potential · Specialization · 依赖:tokens.css · decor/ */
|
|
2
|
+
.ak-potential, .ak-spec { display: inline-grid; place-items: center; background: #1d1f20; padding: 2px; vertical-align: middle; }
|
|
3
|
+
.ak-potential > img, .ak-spec > img { height: 20px; width: auto; display: block; }
|
|
4
|
+
.ak-potential--bare, .ak-spec--bare { background: none; padding: 0; }
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/profession.css — B2 职业 / 分支 Profession · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B2. 职业 / 分支图标 */
|
|
3
|
+
.ak-prof { --_s: 32px; display: inline-grid; place-items: center; width: var(--_s); height: var(--_s); flex: none; }
|
|
4
|
+
.ak-prof > img { width: 82%; height: 82%; object-fit: contain; filter: var(--ak-glyph-filter); }
|
|
5
|
+
.ak-prof--box { background: #1d1f20; }
|
|
6
|
+
.ak-prof--box > img { filter: none; }
|
|
7
|
+
.ak-prof--sm { --_s: 22px; } .ak-prof--lg { --_s: 48px; } .ak-prof--xl { --_s: 72px; }
|
|
8
|
+
.ak-prof--outline { border: 1px solid var(--ak-border-strong); }
|
|
9
|
+
.ak-subprof { --_s: 26px; display: inline-grid; place-items: center; width: var(--_s); height: var(--_s); flex: none; }
|
|
10
|
+
.ak-subprof > img { width: 90%; height: 90%; object-fit: contain; filter: var(--ak-glyph-filter); }
|
|
11
|
+
.ak-prof-label { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
|
|
12
|
+
.ak-prof-label .ak-en { color: var(--ak-fg-muted); font-size: .8em; }
|
|
13
|
+
/* 8 职业色(用于图表/筛选高亮,非官方,源自社区常用配色并降饱和) */
|
|
14
|
+
:root { --ak-prof-pioneer: #c9a94b; --ak-prof-warrior: #c96a4b; --ak-prof-tank: #5e8fc9; --ak-prof-sniper: #4bb3c9; --ak-prof-caster: #9b6fc9; --ak-prof-medic: #5fc98c; --ak-prof-support: #c95fa2; --ak-prof-special: #8a8f99; }
|
|
15
|
+
[data-prof="pioneer"] { --ak-p: var(--ak-prof-pioneer); } [data-prof="warrior"] { --ak-p: var(--ak-prof-warrior); } [data-prof="tank"] { --ak-p: var(--ak-prof-tank); } [data-prof="sniper"] { --ak-p: var(--ak-prof-sniper); }
|
|
16
|
+
[data-prof="caster"] { --ak-p: var(--ak-prof-caster); } [data-prof="medic"] { --ak-p: var(--ak-prof-medic); } [data-prof="support"] { --ak-p: var(--ak-prof-support); } [data-prof="special"] { --ak-p: var(--ak-prof-special); }
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/range.css — B9 攻击范围 Range · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B9. 攻击范围格 —— 同现网 prts.wiki Widget:Range/* 的画法:自身格 = 实心蓝方块,攻击格 = 灰色 2px 空心框,不在范围内的格不画;
|
|
3
|
+
* 格 22px + 间隙 4px(= 现网 26px 格距),只画范围的外接矩形(1-1 就是 1×2,不要补空格撑成 3×3)。
|
|
4
|
+
* i.self 自身 · i.on 可攻击 · i.off(或不写 class)空格。颜色两个钩子:--ak-range-self(自身)/ --ak-range-cell(攻击格描边) */
|
|
5
|
+
.ak-range { --_cell: 22px; --_gap: 4px; --_bw: 2px; display: inline-grid; gap: var(--_gap); grid-template-columns: repeat(var(--cols, 5), var(--_cell)); vertical-align: top; }
|
|
6
|
+
.ak-range > i { display: block; width: var(--_cell); height: var(--_cell); box-sizing: border-box; background: transparent; border: 0; }
|
|
7
|
+
.ak-range > i.on { border: var(--_bw) solid var(--ak-range-cell, var(--ak-fg-subtle)); }
|
|
8
|
+
.ak-range > i.self { background: var(--ak-range-self, var(--ak-blue-500)); }
|
|
9
|
+
.ak-range--lg { --_cell: 28px; --_gap: 5px; }
|
|
10
|
+
.ak-range--sm { --_cell: 14px; --_gap: 2px; --_bw: 1.5px; } /* 技能卡侧槽 / 表格里用 */
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/rarity.css — B1 稀有度 Rarity · 色轨 · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B1. 稀有度 ─ 星级 & 色阶 */
|
|
3
|
+
.ak-rarity { display: inline-flex; align-items: center; gap: 1px; height: 1em; vertical-align: middle; --_c: var(--ak-yellow-500); }
|
|
4
|
+
.ak-rarity > i { width: .9em; height: .9em; background: var(--_c); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
|
|
5
|
+
.ak-rarity--white { --_c: var(--ak-fg); }
|
|
6
|
+
.ak-rarity--r1 { --_c: var(--ak-rarity-1-text); } .ak-rarity--r2 { --_c: var(--ak-rarity-2-text); } .ak-rarity--r3 { --_c: var(--ak-rarity-3-text); }
|
|
7
|
+
.ak-rarity--r4 { --_c: var(--ak-rarity-4-text); } .ak-rarity--r5 { --_c: var(--ak-rarity-5-text); } .ak-rarity--r6 { --_c: var(--ak-rarity-6-text); }
|
|
8
|
+
.ak-rarity--lg { font-size: 1.4em; } .ak-rarity--sm { font-size: .8em; }
|
|
9
|
+
/* 使用游戏原图 */
|
|
10
|
+
.ak-rarity-img { display: inline-block; height: 14px; width: auto; vertical-align: middle; }
|
|
11
|
+
/* 稀有度色轨(用于表格/卡片的左边缘、文字色、背景色) */
|
|
12
|
+
[data-rarity="1"] { --ak-r: var(--ak-rarity-1); --ak-r-text: var(--ak-rarity-1-text); }
|
|
13
|
+
[data-rarity="2"] { --ak-r: var(--ak-rarity-2); --ak-r-text: var(--ak-rarity-2-text); }
|
|
14
|
+
[data-rarity="3"] { --ak-r: var(--ak-rarity-3); --ak-r-text: var(--ak-rarity-3-text); }
|
|
15
|
+
[data-rarity="4"] { --ak-r: var(--ak-rarity-4); --ak-r-text: var(--ak-rarity-4-text); }
|
|
16
|
+
[data-rarity="5"] { --ak-r: var(--ak-rarity-5); --ak-r-text: var(--ak-rarity-5-text); }
|
|
17
|
+
[data-rarity="6"] { --ak-r: var(--ak-rarity-6); --ak-r-text: var(--ak-rarity-6-text); }
|
|
18
|
+
.ak-r-text { color: var(--ak-r-text); } .ak-r-bg { background: var(--ak-r); color: #1d1f20; } .ak-r-border { border-color: var(--ak-r) !important; }
|
|
19
|
+
.ak-r-bar { border-left: var(--ak-bar-w) solid var(--ak-r); }
|
|
20
|
+
.ak-r-chip { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; font: 700 var(--ak-fs-xs)/1 var(--ak-font-label); background: var(--ak-r); color: #1d1f20; }
|
|
21
|
+
.ak-r-swatch { display: inline-block; width: 1em; height: 1em; background: var(--ak-r); vertical-align: -.15em; margin-right: .3em; }
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/rich-text.css — B7 游戏内富文本 Rich text · 数值变化 · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B7. 游戏内富文本(<@ba.vup> 等 → span 类) */
|
|
3
|
+
.ak-rt-vup, .ba-vup, .ak-buff { color: var(--ak-rt-vup); font-weight: 600; }
|
|
4
|
+
.ak-rt-vdown, .ba-vdown, .ak-debuff { color: var(--ak-rt-vdown); font-weight: 600; }
|
|
5
|
+
.ak-rt-rem, .ba-rem { color: var(--ak-rt-rem); font-weight: 600; }
|
|
6
|
+
.ak-rt-kw, .ba-kw { color: var(--ak-rt-kw); font-weight: 600; }
|
|
7
|
+
.ak-rt-imp, .ba-imp, .tu-imp { color: var(--ak-rt-imp); font-weight: 700; }
|
|
8
|
+
.ak-rt-drop, .ba-drop { color: var(--ak-rt-drop); }
|
|
9
|
+
.ak-rt-enemy, .ba-enemy { color: var(--ak-rt-enemy); font-weight: 600; }
|
|
10
|
+
.ak-rt-gild, .ba-gild { color: var(--ak-rt-gild); }
|
|
11
|
+
.ak-rt-acrem, .ba-acrem { color: var(--ak-rt-acrem); }
|
|
12
|
+
.ak-rt-level, .ba-level { color: var(--ak-rt-level); font-weight: 700; }
|
|
13
|
+
.ak-rt-talpu, .ba-talpu { color: var(--ak-rt-vup); } /* 潜能加成 (+1%) */
|
|
14
|
+
.ak-rt-term, .ba-term { border-bottom: 1px dashed currentColor; cursor: help; } /* <$ba.stun> 术语 */
|
|
15
|
+
.ak-rt-pn, .ba-pn { font-style: italic; }
|
|
16
|
+
/* 数值变化对比 */
|
|
17
|
+
.ak-delta-up::after { content: "▲"; font-size: .7em; margin-left: 2px; color: var(--ak-rt-vup); }
|
|
18
|
+
.ak-delta-down::after { content: "▼"; font-size: .7em; margin-left: 2px; color: var(--ak-rt-vdown); }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/skill-levels.css — B6 技能等级选择器 Skill levels · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* 技能等级选择器 1-7 + M1-M3 */
|
|
3
|
+
.ak-skill-levels { display: inline-flex; border: 1px solid var(--ak-border-strong); }
|
|
4
|
+
.ak-skill-levels > button { all: unset; cursor: pointer; width: 30px; height: 26px; display: grid; place-items: center; font: 700 var(--ak-fs-xs)/1 var(--ak-font-label); color: var(--ak-fg-muted); }
|
|
5
|
+
.ak-skill-levels > button + button { border-left: 1px solid var(--ak-border); }
|
|
6
|
+
.ak-skill-levels > button.is-mastery { color: var(--ak-rt-vup); }
|
|
7
|
+
.ak-skill-levels > button.is-active { background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); }
|
|
8
|
+
.ak-skill-levels > button.is-mastery.is-active { background: var(--ak-blue-500); color: #fff; }
|
|
9
|
+
.ak-skill-levels > button.is-mastery > img { height: 14px; filter: var(--ak-glyph-filter); }
|
|
10
|
+
.ak-skill-levels > button.is-mastery.is-active > img { filter: none; }
|
|
11
|
+
/* 键盘焦点:上面的 all: unset 把全局 :focus-visible 焦点环也清掉了,补回来(内缩 2px——按钮一个挨一个,外扩会被邻格盖住);禁用同按钮 */
|
|
12
|
+
.ak-skill-levels > button:focus-visible { outline: 2px solid var(--ak-focus); outline-offset: -2px; }
|
|
13
|
+
.ak-skill-levels > button:disabled { opacity: .45; cursor: not-allowed; }
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/skill-matrix.css — B6d 技能参数矩阵 Skill matrix · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B6d. 技能参数矩阵——另一种对比法:等级横着放、参数竖着放(游戏内技能详情 / 各类工具箱的写法),和 B6b 的全等级表二选一
|
|
3
|
+
* 描述只写一遍,变量位 .ak-var 写区间(200%→320%);每个变量一行、每级一列,较上一级有变化的格子 .is-up 正常色、没变的淡掉——
|
|
4
|
+
* 一眼看出「哪一级涨了什么、涨了多少」,十行重复的句子不用读十遍;手机上也不用横向滚。
|
|
5
|
+
* 可选 JS(preview.js 有示例):悬停 / 点某一列 → 整列 .is-hl,描述里的 .ak-var 换成该级的值,离开还原区间。
|
|
6
|
+
* 结构:.ak-skill-sheet > .ak-skill--wide + .ak-skill-sheet__tpl( 描述 + .ak-var[data-var] ) + table.ak-skill-matrix( thead th 等级(th.m-start = 专精 Ⅰ);tbody tr[data-var] > th 参数名 + td.is-up / td ) */
|
|
7
|
+
.ak-skill-sheet__tpl { padding: 10px 12px; font-size: var(--ak-fs-sm); line-height: 1.7; border-bottom: 1px solid var(--ak-border-subtle); }
|
|
8
|
+
.ak-var { font-weight: 700; color: var(--ak-rt-vup); border-bottom: 1px dotted currentColor; white-space: nowrap; }
|
|
9
|
+
.ak-skill-matrix { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: var(--ak-fs-sm); }
|
|
10
|
+
.ak-skill-matrix th, .ak-skill-matrix td { padding: 5px 4px; text-align: center; border-top: 1px solid var(--ak-border-subtle); font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
11
|
+
.ak-skill-matrix thead th { background: var(--ak-bg-surface-2); font: 800 var(--ak-fs-xs)/1.3 var(--ak-font-body); color: var(--ak-fg-secondary); border-top: 0; border-bottom: 1px solid var(--ak-border-strong); }
|
|
12
|
+
.ak-skill-matrix thead th img { height: 13px; width: auto; vertical-align: -2px; margin-right: 2px; filter: var(--ak-glyph-filter); }
|
|
13
|
+
.ak-skill-matrix thead th.is-mastery { color: var(--ak-rt-vup); }
|
|
14
|
+
.ak-skill-matrix tbody th { text-align: left; font-weight: 600; color: var(--ak-fg-secondary); padding-left: 12px; white-space: normal; }
|
|
15
|
+
.ak-skill-matrix col.label { width: 120px; }
|
|
16
|
+
.ak-skill-matrix td { font-weight: 700; color: var(--ak-fg-subtle); } /* 正文字体(表格数字硬规则,见 table-numerals.css(B99))*/
|
|
17
|
+
.ak-skill-matrix td.is-up { color: var(--ak-fg); } /* 较上一级有变化(第 1 级也算) */
|
|
18
|
+
.ak-skill-matrix .m-start { border-left: 1px solid var(--ak-border-strong); } /* 7 与专精 Ⅰ 之间一道分隔 */
|
|
19
|
+
.ak-skill-matrix .is-hl { background: var(--ak-accent-subtle); }
|
|
20
|
+
.ak-skill-matrix thead th.is-hl { color: var(--ak-accent); }
|
|
21
|
+
.ak-skill-matrix tbody th .ak-sp-init, .ak-skill-matrix tbody th .ak-sp-cost, .ak-skill-matrix tbody th .ak-sp-dur { font-weight: 700; } /* 字体由 B99 兜底回正文 */
|
|
22
|
+
/* 列头按钮(Vue 版 AkSkillMatrix 输出:键盘也能逐列预览 / 钉住,aria-pressed = 钉住的列):去掉按钮外观,字随列头;全局焦点环被 all: unset 清掉了,补回来 */
|
|
23
|
+
.ak-skill-matrix thead th > button { all: unset; cursor: pointer; }
|
|
24
|
+
.ak-skill-matrix thead th > button:focus-visible { outline: 2px solid var(--ak-focus); outline-offset: 2px; }
|
|
25
|
+
@media (max-width: 639px) { .ak-skill-matrix col.label { width: 72px; } .ak-skill-matrix tbody th { padding-left: 8px; font-size: var(--ak-fs-xs); } .ak-skill-matrix th, .ak-skill-matrix td { padding: 5px 2px; font-size: var(--ak-fs-xs); } }
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/skill-sheet.css — B6b 技能全等级表 Skill sheet · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B6b. 技能全等级表——prts.wiki 现网的「等级 × 描述 / 初始 / 消耗 / 持续」对比:一张表看完 1–7 + 专精 Ⅰ–Ⅲ,不靠等级切换器来回点
|
|
3
|
+
* 结构:.ak-skill-sheet > .ak-skill.ak-skill--wide(表头:图标 / 名称 / SP 类型 / 开放条件 / 范围)+ table.ak-skill-table + .ak-skill-sheet__note */
|
|
4
|
+
.ak-skill-sheet { border: 1px solid var(--ak-border); background: var(--ak-bg-surface); margin: 0 0 var(--ak-space-4); }
|
|
5
|
+
.ak-skill-sheet > .ak-skill { border: 0; border-bottom: 1px solid var(--ak-border); }
|
|
6
|
+
.ak-skill-sheet > .ak-skill .ak-skill__desc { grid-column: 1 / -1; }
|
|
7
|
+
.ak-skill-sheet > .ak-skill > .ak-skill__icon + :not(.ak-skill__desc) { justify-content: center; } /* 表头里没有 SP 芯片行(数值在表格列里),名称行居中对齐图标 */
|
|
8
|
+
.ak-skill-table { width: 100%; border-collapse: collapse; font-size: var(--ak-fs-sm); line-height: 1.6; }
|
|
9
|
+
.ak-skill-table th, .ak-skill-table td { padding: 6px 10px; border-top: 1px solid var(--ak-border-subtle); vertical-align: middle; text-align: center; }
|
|
10
|
+
.ak-skill-table thead th { background: var(--ak-bg-surface-2); font: 700 var(--ak-fs-xs)/1.3 var(--ak-font-body); color: var(--ak-fg-secondary); border-top: 0; border-bottom: 1px solid var(--ak-border-strong); white-space: nowrap; }
|
|
11
|
+
.ak-skill-table thead th .ak-sp-cost, .ak-skill-table thead th .ak-sp-init, .ak-skill-table thead th .ak-sp-dur { font-weight: 700; } /* 列头直接用同一套芯片做图例(字体由 B99 兜底回正文)*/
|
|
12
|
+
.ak-skill-table tbody tr:first-child > * { border-top: 0; }
|
|
13
|
+
.ak-skill-table .lv { width: 56px; font: 800 var(--ak-fs-sm)/1 var(--ak-font-body); white-space: nowrap; }
|
|
14
|
+
.ak-skill-table .desc { text-align: left; }
|
|
15
|
+
.ak-skill-table .num { width: 52px; font-weight: 700; font-variant-numeric: tabular-nums; } /* 正文字体(表格数字硬规则,见 table-numerals.css(B99))*/
|
|
16
|
+
.ak-skill-table .num:empty::before { content: "—"; color: var(--ak-fg-subtle); font-weight: 400; }
|
|
17
|
+
.ak-skill-table tr.is-mastery .lv { color: var(--ak-rt-vup); }
|
|
18
|
+
.ak-skill-table tr.is-mastery .lv img { height: 14px; width: auto; vertical-align: -3px; margin-right: 3px; filter: var(--ak-glyph-filter); }
|
|
19
|
+
.ak-skill-table tr:not(.is-mastery) + tr.is-mastery > * { border-top-color: var(--ak-border-strong); } /* 7 级与专精之间一道略深的分隔 */
|
|
20
|
+
.ak-skill-table tr.is-hl > * { background: var(--ak-accent-subtle); } /* 可选:高亮某一行(当前等级) */
|
|
21
|
+
.ak-skill-sheet__note { padding: 8px 12px; font-size: var(--ak-fs-xs); color: var(--ak-fg-muted); line-height: 1.7; border-top: 1px solid var(--ak-border-subtle); }
|
|
22
|
+
.ak-skill-sheet__note p { margin: 0; }
|
|
23
|
+
/* 窄屏:数值列收窄、列头芯片只留图形(文字 font-size:0,mask 图形是固定像素不受影响);表头卡的右侧槽换到第二行 */
|
|
24
|
+
@media (max-width: 639px) {
|
|
25
|
+
.ak-skill-table th, .ak-skill-table td { padding: 6px 5px; }
|
|
26
|
+
.ak-skill-table .lv { width: 40px; } .ak-skill-table .num { width: 38px; }
|
|
27
|
+
.ak-skill-table thead th .ak-sp-cost, .ak-skill-table thead th .ak-sp-init, .ak-skill-table thead th .ak-sp-dur { font-size: 0; gap: 0; padding: 0 7px; }
|
|
28
|
+
.ak-skill--wide { grid-template-columns: 64px 1fr; }
|
|
29
|
+
.ak-skill__aside { grid-column: 1 / -1; grid-row: auto; justify-content: space-between; }
|
|
30
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/skill.css — B6 技能卡 Skill · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B6. 技能(图标 + SP 类型 + 触发类型)
|
|
3
|
+
* 结构:.ak-skill > .ak-skill__icon + <div>( .ak-skill__head( __name [+ __alias] + .ak-sp + .ak-sp-trigger ) + .ak-skill__stats( .ak-sp-cost .ak-sp-init ) ) [+ .ak-skill__aside] + .ak-skill__desc
|
|
4
|
+
* 右栏撑满图标高度并上下两端对齐:名称行贴图标顶边、SP 芯片行贴图标底边(不再悬在中间) */
|
|
5
|
+
.ak-skill { display: grid; grid-template-columns: 64px 1fr; gap: 12px 14px; padding: 12px; background: var(--ak-bg-surface); border: 1px solid var(--ak-border); position: relative; }
|
|
6
|
+
.ak-skill > .ak-skill__icon + :not(.ak-skill__desc) { display: flex; flex-direction: column; justify-content: space-between; gap: 6px; min-height: 68px; min-width: 0; }
|
|
7
|
+
.ak-skill.is-selected { border-color: var(--ak-blue-500); box-shadow: inset 0 0 0 2px var(--ak-blue-500); }
|
|
8
|
+
.ak-skill.is-selected::before { content: ""; position: absolute; left: 0; top: 0; border-style: solid; border-width: 12px 12px 0 0; border-color: var(--ak-blue-500) transparent transparent; }
|
|
9
|
+
.ak-skill__icon { --_sp: var(--ak-sp-auto); position: relative; width: 64px; height: 64px; background: #1d1f20; border: 2px solid var(--_sp); overflow: hidden; }
|
|
10
|
+
.ak-skill__icon > img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
11
|
+
.ak-skill__icon::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: var(--_sp); }
|
|
12
|
+
.ak-skill__icon--auto { --_sp: var(--ak-sp-auto); } .ak-skill__icon--attack { --_sp: var(--ak-sp-attack); } .ak-skill__icon--hit { --_sp: var(--ak-sp-hit); } .ak-skill__icon--passive { --_sp: var(--ak-sp-passive); }
|
|
13
|
+
.ak-skill__icon.is-locked > img { filter: grayscale(1) brightness(.4); }
|
|
14
|
+
.ak-skill__icon.is-locked::before { content: "🔒"; position: absolute; inset: 0; display: grid; place-items: center; font-size: 20px; z-index: 1; }
|
|
15
|
+
.ak-skill__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
16
|
+
.ak-skill__name, :is(h1, h2, h3, h4, h5, h6).ak-skill__name { font-weight: 800; font-size: var(--ak-fs-body-lg); line-height: var(--ak-lh-tight); margin: 0; } /* 标签限定那条 (0,1,1):压过宿主正文的 .mw-body h4(Vector);行高自己写,不靠正文标题规则 */
|
|
17
|
+
/* 技能名后的别名(干员页全等级表的表头):英文名 .ak-en(Bender 大写,再小一号)+ 日文名,灰色小字、与技能名基线对齐
|
|
18
|
+
* 结构:.ak-skill__alias > span.ak-en + span(日文名) */
|
|
19
|
+
.ak-skill__alias { display: inline-flex; gap: 8px; align-items: baseline; font-size: var(--ak-fs-xs); color: var(--ak-fg-muted); }
|
|
20
|
+
.ak-skill__alias .ak-en { font-size: 10px; }
|
|
21
|
+
.ak-skill__meta { display: flex; gap: 6px; flex-wrap: wrap; font-size: var(--ak-fs-xs); }
|
|
22
|
+
.ak-skill__desc { grid-column: 1 / -1; font-size: var(--ak-fs-sm); color: var(--ak-fg-secondary); line-height: 1.7; }
|
|
23
|
+
.ak-skill__stats { grid-column: 1 / -1; display: flex; align-items: center; gap: 12px 16px; flex-wrap: wrap; font-size: var(--ak-fs-sm); font-variant-numeric: tabular-nums; } /* 正文字体;SP 芯片自带 Bender;与图标底边对齐由上面的 space-between 负责(不要再给它 ak-mt-*) */
|
|
24
|
+
.ak-skill__stats b { font-weight: 800; }
|
|
25
|
+
.ak-skill__aside { grid-column: 3; grid-row: 1; align-self: center; display: flex; align-items: center; gap: 12px; } /* 技能卡右侧槽:攻击范围 / 开放条件(需要 .ak-skill--wide 的三栏网格) */
|
|
26
|
+
.ak-skill--wide { grid-template-columns: 64px 1fr auto; }
|
|
27
|
+
.ak-skill__open { font: 600 var(--ak-fs-xs)/1 var(--ak-font-label); letter-spacing: .06em; color: var(--ak-fg-muted); display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
|
|
28
|
+
.ak-skill__open img { height: 12px; filter: var(--ak-glyph-filter); }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/sp.css — B6 SP 类型 / 触发 / 数值芯片 · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* SP 类型标签(游戏内:绿=自动 橙=攻击 黄=受击 灰=被动) */
|
|
3
|
+
.ak-sp { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; font: 700 var(--ak-fs-xs)/1 var(--ak-font-body); color: #1d1f20; background: var(--ak-sp-auto); }
|
|
4
|
+
.ak-sp--attack { background: var(--ak-sp-attack); } .ak-sp--hit { background: var(--ak-sp-hit); } .ak-sp--passive { background: var(--ak-sp-passive); color: #fff; }
|
|
5
|
+
.ak-sp-trigger { display: inline-flex; align-items: center; height: 20px; padding: 0 8px; font: 700 var(--ak-fs-xs)/1 var(--ak-font-body); background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); }
|
|
6
|
+
.ak-sp-trigger--auto { background: var(--ak-gray-500); color: #fff; }
|
|
7
|
+
/* SP 数值芯片(游戏内 skill_sp_cost_bkg 荧光绿闪电 / 初始技力 ▶ / 持续 ⏱)
|
|
8
|
+
* 三枚同高同内距、图形用单色 SVG mask(不用 emoji——彩色闪电字形基线不稳,两枚芯片会错半像素),盒子与数字严格对齐 */
|
|
9
|
+
.ak-sp-cost, .ak-sp-init, .ak-sp-dur { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 8px 0 6px; font: 800 12px/1 var(--ak-font-label); font-variant-numeric: tabular-nums; vertical-align: middle; white-space: nowrap; }
|
|
10
|
+
.ak-sp-cost::before, .ak-sp-init::before, .ak-sp-dur::before { content: ""; flex: none; width: 10px; height: 11px; background: currentColor; -webkit-mask: var(--_g) center / contain no-repeat; mask: var(--_g) center / contain no-repeat; }
|
|
11
|
+
.ak-sp-cost { --_g: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 16'%3E%3Cpolygon points='8,0 1,9.5 5.5,9.5 4,16 11,6.5 6.5,6.5'/%3E%3C/svg%3E"); background: var(--ak-lime-400); color: #1d1f20; }
|
|
12
|
+
.ak-sp-init { --_g: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpolygon points='0,0 10,6 0,12'/%3E%3C/svg%3E"); background: var(--ak-gray-800); color: #fff; }
|
|
13
|
+
.ak-sp-init::before { width: 8px; height: 10px; }
|
|
14
|
+
.ak-sp-dur { --_g: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='5.5' fill='none' stroke='%23000' stroke-width='2'/%3E%3Cpath d='M7 3.5v3.8l2.6 1.6' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); background: var(--ak-bg-surface-3); color: var(--ak-fg); }
|
|
15
|
+
.ak-sp-dur::before { width: 11px; height: 11px; }
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/stage.css — B13 关卡 / 关卡编号 / 理智 Stage · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B13. 关卡卡 / 关卡编号 */
|
|
3
|
+
.ak-stage { --_bd: var(--ak-border); display: grid; grid-template-columns: max-content 1fr; gap: 12px; align-items: center; padding: 10px 14px; background: var(--ak-bg-surface); border: 1px solid var(--_bd); text-decoration: none; color: inherit; position: relative; }
|
|
4
|
+
.ak-stage:hover { --_bd: var(--ak-accent); text-decoration: none; color: inherit; }
|
|
5
|
+
.ak-stage__code { font: 800 var(--ak-fs-h3)/1 var(--ak-font-display); letter-spacing: -.02em; min-width: 72px; }
|
|
6
|
+
.ak-stage__code small { display: block; font: 600 9px/1 var(--ak-font-label); letter-spacing: .12em; color: var(--ak-fg-muted); margin-top: 3px; }
|
|
7
|
+
.ak-stage__name { font-weight: 700; }
|
|
8
|
+
.ak-stage__meta { display: flex; gap: 10px; font: 600 var(--ak-fs-xs)/1 var(--ak-font-label); color: var(--ak-fg-muted); margin-top: 4px; }
|
|
9
|
+
.ak-stage__meta b { color: var(--ak-fg); }
|
|
10
|
+
.ak-stage--hard, .ak-stage--ex, .ak-stage--story { border-left-width: 4px; border-image: linear-gradient(to right, var(--_bar) 4px, var(--_bd) 4px) 1 1 1 4; } /* 关卡类型色条与框直角拼接 */
|
|
11
|
+
.ak-stage--hard { --_bar: var(--ak-red-600); }
|
|
12
|
+
.ak-stage--ex { --_bar: var(--ak-red-700); }
|
|
13
|
+
.ak-stage--story { --_bar: var(--ak-fg-muted); }
|
|
14
|
+
.ak-stage-code { --_fg: var(--ak-fg-inverse); display: inline-block; font: 800 1em/1 var(--ak-font-display); letter-spacing: -.02em; padding: 2px 6px; background: var(--ak-bg-inverse); color: var(--_fg); }
|
|
15
|
+
.ak-stage-code--hard { --_fg: #fff; background: var(--ak-red-700); }
|
|
16
|
+
/* 理智 / 消耗 */
|
|
17
|
+
.ak-sanity { display: inline-flex; align-items: center; gap: 4px; font: 800 var(--ak-fs-sm)/1 var(--ak-font-label); }
|
|
18
|
+
.ak-sanity::before { content: ""; width: 12px; height: 14px; background: currentColor; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
|
|
19
|
+
/* 链接版关卡号(Vue AkStageCode)自己标 ak-not-prose 躲开正文 a:visited / a:hover 的链接色——not-prose 基线只管子孙里的 a,标在链接自身时要在这里去掉 UA 默认下划线,悬停再给回 */
|
|
20
|
+
a.ak-stage-code.ak-not-prose { text-decoration: none; }
|
|
21
|
+
a.ak-stage-code:is(:visited, :hover, :active) { color: var(--_fg); } /* 反白字不能被宿主 / 正文的 a:visited、a:hover (0,1,1) 换成链接色或继承色 */
|
|
22
|
+
a.ak-stage-code.ak-not-prose:hover { text-decoration: underline; text-underline-offset: 2px; }
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/table-numerals.css — B99 硬规则:表格数据里的数字回正文字体(放在方舟组件最后) · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B99. 硬规则:表格数据里的数字一律不用 Bender 系(--ak-font-label)——Bender 数字比例宽度、子集无 tnum、小字号发虚,成列就对不齐。
|
|
3
|
+
* 表格组件(.ak-skill-table / .ak-skill-matrix / .ak-talent-table / .wikitable / .ak-kv)自身已按正文字体写;这里兜底:
|
|
4
|
+
* 带数字的 HUD 类掉进 td / th / 键值表 dd 时回正文字体,字重 / 字号 / 字距 / 颜色 / 底色照旧(优先级 0,2,1,压过单类选择器)。
|
|
5
|
+
* 面板级 HUD 数值(.ak-attrs / .ak-stat / 技能卡芯片 / 素材列表的数量角标)不在表格里,不受影响 */
|
|
6
|
+
:is(td, th, .ak-kv > dd) :is(.ak-num, .ak-code-id, .ak-trust, .ak-item__count, .ak-elite, .ak-level, .ak-sanity, .ak-sp-cost, .ak-sp-init, .ak-sp-dur, .ak-countdown, .ak-stage__meta, .ak-event__time, .ak-timeline__date),
|
|
7
|
+
:is(td, th, .ak-kv > dd):is(.ak-num, .ak-code-id) { font-family: var(--ak-font-body); }
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/talent-table.css — B6c 天赋条件表 Talent table · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B6c. 天赋条件表——prts.wiki 现网的「条件 × 描述」对比(精英阶段 / 模组等级),潜能加成用表头右侧的开关切换描述
|
|
3
|
+
* 结构:table.ak-talent-table > thead( th.name th.cond th.desc( label.ak-check.ak-talent-table__toggle > input[data-toggle-class=is-pot] ) ) + tbody > tr( td.name[rowspan] td.cond td.desc( .ak-talent-table__base + .ak-talent-table__pot ) ) */
|
|
4
|
+
.ak-talent-table { width: 100%; border-collapse: collapse; font-size: var(--ak-fs-sm); line-height: 1.6; background: var(--ak-bg-surface); border: 1px solid var(--ak-border); margin: 0 0 var(--ak-space-3); }
|
|
5
|
+
.ak-talent-table th, .ak-talent-table td { padding: 6px 10px; border-top: 1px solid var(--ak-border-subtle); vertical-align: middle; text-align: left; }
|
|
6
|
+
.ak-talent-table thead th { background: var(--ak-bg-surface-2); font: 700 var(--ak-fs-xs)/1.3 var(--ak-font-body); color: var(--ak-fg-secondary); border-top: 0; border-bottom: 1px solid var(--ak-border-strong); white-space: nowrap; }
|
|
7
|
+
.ak-talent-table tbody tr:first-child > * { border-top: 0; }
|
|
8
|
+
.ak-talent-table .name { width: 112px; font-weight: 800; }
|
|
9
|
+
.ak-talent-table td.name { border-right: 1px solid var(--ak-border-subtle); vertical-align: top; padding-top: 8px; }
|
|
10
|
+
.ak-talent-table .cond { width: 168px; white-space: nowrap; color: var(--ak-fg-secondary); }
|
|
11
|
+
.ak-talent-table .cond .ak-elite { vertical-align: middle; font-size: var(--ak-fs-sm); } /* 字体由 B99 兜底回正文 */
|
|
12
|
+
.ak-talent-table__toggle { float: right; margin-left: 12px; font-weight: 400; text-transform: none; letter-spacing: 0; }
|
|
13
|
+
.ak-talent-table__toggle > input { width: 16px; height: 16px; }
|
|
14
|
+
.ak-talent-table__toggle .ak-potential > img { height: 14px; } /* 开关里的潜能图标跟字高(潜能组件默认 20px) */
|
|
15
|
+
.ak-talent-table__pot { display: none; }
|
|
16
|
+
.ak-talent-table.is-pot .ak-talent-table__base { display: none; }
|
|
17
|
+
.ak-talent-table.is-pot .ak-talent-table__pot { display: inline; }
|
|
18
|
+
/* 算法标记(现网「算法」开关):勾上后描述里每个加成项前标出它进公式的方式——同现网的四枚小图标:绿 + 直接加算 · 蓝 + 直接乘算(直接乘算之间为加法计算)· 橙 + 最终加算 · 橙 × 最终乘算
|
|
19
|
+
* 结构:td.desc 里 <i class="ak-calc ak-calc--mul" title="直接乘算"></i> 紧贴数值;表头再挂一枚 label.ak-talent-table__toggle > input[data-toggle-class=is-calc];tfoot > tr.ak-talent-table__legend 是图例行,只在 .is-calc 时显示 */
|
|
20
|
+
.ak-calc { display: none; width: 14px; height: 14px; margin: 0 2px 0 1px; vertical-align: -2px; font: 800 11px/14px var(--ak-font-label); text-align: center; color: #fff; }
|
|
21
|
+
.ak-calc--add { background: var(--ak-green-500); } .ak-calc--add::before { content: "+"; }
|
|
22
|
+
.ak-calc--mul { background: var(--ak-blue-500); } .ak-calc--mul::before { content: "+"; }
|
|
23
|
+
.ak-calc--fadd { background: var(--ak-orange-500); color: #1d1f20; } .ak-calc--fadd::before { content: "+"; }
|
|
24
|
+
.ak-calc--fmul { background: var(--ak-orange-500); color: #1d1f20; } .ak-calc--fmul::before { content: "×"; }
|
|
25
|
+
.ak-talent-table.is-calc .ak-calc, .ak-talent-table__legend .ak-calc { display: inline-block; }
|
|
26
|
+
.ak-talent-table__legend { display: none; }
|
|
27
|
+
.ak-talent-table.is-calc .ak-talent-table__legend { display: table-row; }
|
|
28
|
+
.ak-talent-table__legend > td { font-size: var(--ak-fs-xs); color: var(--ak-fg-muted); background: var(--ak-bg-surface-2); }
|
|
29
|
+
.ak-talent-table__legend > td > span { display: inline-flex; align-items: center; margin-right: 14px; white-space: nowrap; }
|
|
30
|
+
@media (max-width: 639px) { .ak-talent-table .name { width: 72px; } .ak-talent-table .cond { width: auto; white-space: normal; } .ak-talent-table__toggle { float: none; display: inline-flex; margin: 4px 12px 0 0; } }
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/talent.css — B6c 天赋卡 Talent · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* 天赋(卡片式摘要:用于列表/侧栏;干员页正文用 talent-table.css 的条件表) */
|
|
3
|
+
.ak-talent { padding: 10px 12px; border-left: var(--ak-bar-w) solid var(--ak-accent); background: var(--ak-bg-surface-2); margin-bottom: 8px; }
|
|
4
|
+
.ak-talent__name { margin: 0 0 4px; font-weight: 800; display: flex; gap: 8px; align-items: center; margin-bottom: 4px; }
|
|
5
|
+
.ak-talent__req { font: 600 10px/1 var(--ak-font-label); color: var(--ak-fg-muted); display: inline-flex; gap: 4px; align-items: center; letter-spacing: .06em; }
|
|
6
|
+
.ak-talent__req img { height: 12px; filter: var(--ak-glyph-filter); }
|
|
7
|
+
.ak-talent__desc { font-size: var(--ak-fs-sm); color: var(--ak-fg-secondary); }
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/trust.css — B3 信赖 Trust · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* 信赖 */
|
|
3
|
+
.ak-trust { display: inline-flex; align-items: center; gap: 6px; font-family: var(--ak-font-label); font-weight: 700; }
|
|
4
|
+
.ak-trust::before { content: ""; width: 12px; height: 12px; background: var(--ak-red-500); clip-path: polygon(50% 100%, 0 38%, 15% 10%, 50% 30%, 85% 10%, 100% 38%); }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*! PRTS Design · arknights/voice.css — B11 语音条目 Voice · 依赖:tokens.css · decor/ */
|
|
2
|
+
/* B11. 语音条目 */
|
|
3
|
+
.ak-voice { display: grid; grid-template-columns: 36px 1fr; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--ak-border-subtle); align-items: start; }
|
|
4
|
+
.ak-voice__play { all: unset; width: 32px; height: 32px; display: grid; place-items: center; background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); cursor: pointer; }
|
|
5
|
+
.ak-voice__play::before { content: ""; width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; margin-left: 2px; }
|
|
6
|
+
.ak-voice__play.is-playing::before { width: 10px; height: 12px; border: 0; border-left: 3px solid currentColor; border-right: 3px solid currentColor; margin: 0; }
|
|
7
|
+
.ak-voice__play:hover { background: var(--ak-accent); color: var(--ak-accent-fg); }
|
|
8
|
+
.ak-voice__title { font: 700 var(--ak-fs-xs)/1 var(--ak-font-body); color: var(--ak-fg-muted); margin-bottom: 4px; display: flex; gap: 8px; align-items: center; }
|
|
9
|
+
.ak-voice__lang { font: 600 10px/1 var(--ak-font-label); letter-spacing: .1em; padding: 2px 5px; border: 1px solid var(--ak-border-strong); }
|
|
10
|
+
.ak-voice__text { font-size: var(--ak-fs-sm); line-height: 1.7; }
|
|
11
|
+
.ak-voice__wave { display: inline-flex; gap: 2px; align-items: flex-end; height: 14px; }
|
|
12
|
+
.ak-voice__wave > i { width: 2px; background: var(--ak-accent); height: 40%; }
|
|
13
|
+
.is-playing ~ * .ak-voice__wave > i { animation: ak-bars 1s ease-in-out infinite; }
|
|
14
|
+
.ak-voice__cond { font: 600 10px/1 var(--ak-font-label); letter-spacing: .06em; padding: 3px 5px; background: var(--ak-bg-surface-3); color: var(--ak-fg-muted); white-space: nowrap; } /* 解锁条件(提升至精英阶段1以查看 / 提升信赖至40%以查看) */
|
|
15
|
+
.ak-voice-list { border: 1px solid var(--ak-border); background: var(--ak-bg-surface); margin: 0 0 var(--ak-space-4); }
|
|
16
|
+
.ak-voice-list > .ak-voice:last-child { border-bottom: 0; }
|
|
17
|
+
.ak-voice-list > .ak-voice:hover { background: var(--ak-bg-hover); }
|
|
18
|
+
.ak-voice__play:disabled { cursor: not-allowed; opacity: .35; background: var(--ak-bg-inverse); color: var(--ak-fg-inverse); } /* 没有音频地址:压暗,悬停不反色 */
|
|
19
|
+
/* 语种切换条(= 干员页的 .op-voice-langs,收进组件):.ak-overline 标签 + 一排 .ak-chip[aria-pressed](名字 + <small> CV 名)+ 附注;切语种只换台词 / 徽标 / 音频 */
|
|
20
|
+
.ak-voice-langs { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin: 0 0 var(--ak-space-3); }
|
|
21
|
+
.ak-voice-langs .ak-chip small { font: 600 10px/1 var(--ak-font-label); color: inherit; opacity: .7; }
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*! PRTS Design · base/catlinks.css — Category links 页面底部分类栏 · 依赖:tokens.css */
|
|
2
|
+
/* ─── Category links(页面底部分类栏)─────────────────────────────────────
|
|
3
|
+
* MW 输出:div.catlinks > div.mw-normal-catlinks( a[分类] + ":" 文本节点 + ul > li > a ) [+ div.mw-hidden-catlinks( "隐藏分类:" 文本 + ul )]
|
|
4
|
+
* 设计(参考 fz.wiki):不再做芯片盒;一行 = 树状图标 + overline 小标签 + 普通下划线链接。
|
|
5
|
+
* 「:」来自 colon-separator 消息、是裸文本节点:容器 font-size:0 吞掉它(无 JS 亦生效),子元素再恢复字号;
|
|
6
|
+
* skin.js / preview.js 的 tidyCatlinks() 会进一步移除该文本并把「隐藏分类」文字标签包成 span.ak-catlinks__label。 */
|
|
7
|
+
.catlinks { margin: var(--ak-space-3) 0 0; padding: 0 var(--ak-space-1); font-size: var(--ak-fs-sm); line-height: 1.5; clear: both; border: 0; background: transparent; }
|
|
8
|
+
.ak-body--flat + .catlinks { border-top: 1px solid var(--ak-border); padding-top: var(--ak-space-3); }
|
|
9
|
+
.catlinks > div { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-height: 24px; }
|
|
10
|
+
.catlinks > div + div { margin-top: 4px; }
|
|
11
|
+
.catlinks > div::before { /* 「分类」标签图标:OOUI / Codex 的 tag(cdxIconTag,两边同一份图形),
|
|
12
|
+
和皮肤其余 .ak-icon 同源,不必再自带第三方 SVG */
|
|
13
|
+
content: ""; flex: none; width: 16px; height: 16px; background: currentColor; color: var(--ak-fg-muted);
|
|
14
|
+
-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23000' d='M9 1.28A1 1 0 0 0 8.35 1H2a1 1 0 0 0-1 1v6.35a1 1 0 0 0 .28.65L11 18.72a1 1 0 0 0 1.37 0l6.38-6.38a1 1 0 0 0-.03-1.34zM5 7a2 2 0 1 1 2-2 2 2 0 0 1-2 2'/%3E%3C/svg%3E") center/contain no-repeat;
|
|
15
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23000' d='M9 1.28A1 1 0 0 0 8.35 1H2a1 1 0 0 0-1 1v6.35a1 1 0 0 0 .28.65L11 18.72a1 1 0 0 0 1.37 0l6.38-6.38a1 1 0 0 0-.03-1.34zM5 7a2 2 0 1 1 2-2 2 2 0 0 1-2 2'/%3E%3C/svg%3E") center/contain no-repeat;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.catlinks .mw-hidden-catlinks::before { color: var(--ak-fg-subtle); }
|
|
19
|
+
.catlinks .mw-normal-catlinks { font-size: 0; } /* 吞掉「:」文本节点 */
|
|
20
|
+
.catlinks .mw-normal-catlinks > a, .catlinks .mw-normal-catlinks > ul { font-size: var(--ak-fs-sm); }
|
|
21
|
+
/* 标签:分类(链到 Special:Categories)/ 隐藏分类(JS 包成 span) */
|
|
22
|
+
.catlinks .mw-normal-catlinks > a, .catlinks .ak-catlinks__label { font: 700 var(--ak-fs-overline)/1 var(--ak-font-label); letter-spacing: var(--ak-tracking-overline); text-transform: uppercase; color: var(--ak-fg-muted); text-decoration: none; margin-right: 2px; }
|
|
23
|
+
.catlinks .mw-normal-catlinks > a:hover { color: var(--ak-accent); text-decoration: none; }
|
|
24
|
+
.catlinks .mw-hidden-catlinks { color: var(--ak-fg-muted); }
|
|
25
|
+
.catlinks .mw-hidden-catlinks .ak-catlinks__label { color: var(--ak-fg-subtle); }
|
|
26
|
+
/* 链接:就用全局 a / a:hover / a:visited,这里不重写颜色——MW 核心 interface-category.less 只给 .catlinks / li
|
|
27
|
+
* 画框和竖线,不碰链接色,没什么要压的;重写一遍 `.catlinks li a { color }`(0,1,2)反而会盖掉 a:visited(0,1,1),分类链接永远不褪色 */
|
|
28
|
+
.catlinks ul { display: contents; margin: 0; padding: 0; list-style: none; }
|
|
29
|
+
.catlinks li, .catlinks li:first-child { display: inline; margin: 0; padding: 0; border: 0; line-height: inherit; }
|
|
30
|
+
.catlinks li::before { display: none !important; }
|
|
31
|
+
.catlinks li a.mw-redirect { font-style: italic; }
|
|
32
|
+
.catlinks .mw-hidden-catlinks li a { color: var(--ak-fg-secondary); }
|
|
33
|
+
.catlinks .mw-hidden-catlinks li a:hover { color: var(--ak-link-hover); }
|
|
34
|
+
.catlinks > .mw-hidden-cats-hidden, .catlinks.catlinks-allhidden { display: none; } /* 特异性需高于 .catlinks > div 的 flex */
|
|
35
|
+
.mw-indicators { display: flex; gap: var(--ak-space-2); float: right; font-size: var(--ak-fs-xs); }
|
|
36
|
+
.mw-indicator { display: inline-flex; align-items: center; }
|
|
37
|
+
#siteSub, .printfooter, .mw-jump-link { display: none; }
|
|
38
|
+
#contentSub, #contentSub2 { font-size: var(--ak-fs-xs); color: var(--ak-fg-muted); margin: 0 0 var(--ak-space-3); }
|
|
39
|
+
#contentSub .subpages a { color: var(--ak-fg-muted); }
|
|
40
|
+
.mw-empty-elt { display: none; }
|
|
41
|
+
.noprint {}
|
|
42
|
+
.mw-redirectedfrom { color: var(--ak-fg-muted); font-size: var(--ak-fs-xs); }
|
|
43
|
+
.redirectMsg { font-size: var(--ak-fs-body-lg); }
|
|
44
|
+
.redirectText { list-style: none; padding: 0; }
|
|
45
|
+
.mw-parser-output .center, .mw-parser-output .mw-halign-center { text-align: center; }
|
|
46
|
+
.mw-parser-output .floatright, .mw-parser-output .floatleft { margin: .3em 0 .5em 1em; }
|
|
47
|
+
.mw-parser-output .floatleft { margin: .3em 1em .5em 0; }
|
|
48
|
+
.mw-parser-output .clear, .clearfix::after { clear: both; }
|
|
49
|
+
.clearfix::after { content: ""; display: table; }
|
|
50
|
+
.mw-parser-output .nowrap { white-space: nowrap; }
|
|
51
|
+
.mw-parser-output .noresize { max-width: none; }
|
|
52
|
+
.mw-parser-output .plainlist ul, .mw-parser-output .plainlist ol { list-style: none; padding: 0; margin: 0; }
|
|
53
|
+
.mw-parser-output .plainlist li::before { display: none; }
|
|
54
|
+
.mw-parser-output .hlist ul { display: inline; padding: 0; margin: 0; }
|
|
55
|
+
.mw-parser-output .hlist li { display: inline; }
|
|
56
|
+
.mw-parser-output .hlist li::before { display: none; }
|
|
57
|
+
.mw-parser-output .hlist li:not(:last-child)::after { content: " · "; color: var(--ak-fg-subtle); }
|
|
58
|
+
.mw-parser-output .toccolours { border: 1px solid var(--ak-border); background: var(--ak-bg-surface-2); padding: var(--ak-space-2) var(--ak-space-3); }
|
|
59
|
+
.mw-parser-output .infobox { border: 1px solid var(--ak-border); background: var(--ak-bg-surface); font-size: var(--ak-fs-sm); }
|
|
60
|
+
.mw-parser-output .navbox { border: 1px solid var(--ak-border); background: var(--ak-bg-surface); font-size: var(--ak-fs-xs); margin: var(--ak-space-4) 0 0; clear: both; }
|
|
61
|
+
.mw-parser-output .navbox th, .mw-parser-output .navbox-title, .mw-parser-output .navbox-group { background: var(--ak-bg-surface-2); padding: .3em .6em; }
|
|
62
|
+
.mw-parser-output .navbox-title { border-left: var(--ak-bar-w) solid var(--ak-accent); text-align: left; font-weight: 700; }
|
|
63
|
+
.mw-parser-output .navbox-list { padding: .3em .6em; }
|
|
64
|
+
.mw-parser-output .navbox-even { background: var(--ak-bg-surface-2); }
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! PRTS Design · base/collapsible.css — Collapsible(jquery.makeCollapsible) · 依赖:tokens.css */
|
|
2
|
+
/* ─── Collapsible (jquery.makeCollapsible) ─────────────────────────────── */
|
|
3
|
+
.mw-collapsible-toggle { float: right; font-size: var(--ak-fs-xs); font-weight: 400; user-select: none; }
|
|
4
|
+
.mw-collapsible-toggle a { color: var(--ak-link); }
|
|
5
|
+
.mw-collapsible-toggle-default::before { content: "["; color: var(--ak-fg-subtle); }
|
|
6
|
+
.mw-collapsible-toggle-default::after { content: "]"; color: var(--ak-fg-subtle); }
|
|
7
|
+
.mw-collapsed > .mw-collapsible-content { display: none; }
|
|
8
|
+
.mw-collapsible.ak-collapse-box { border: 1px solid var(--ak-border); background: var(--ak-bg-surface); margin: var(--ak-space-4) 0; }
|
|
9
|
+
.mw-collapsible.ak-collapse-box > .mw-collapsible-toggle { float: none; display: block; padding: var(--ak-space-2) var(--ak-space-4); background: var(--ak-bg-surface-2); }
|
|
10
|
+
.mw-collapsible.ak-collapse-box > .mw-collapsible-content { padding: var(--ak-space-3) var(--ak-space-4); }
|