refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识

- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css,
  js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img,
  fonts→assets/fonts; 删除 assets/vendor
- libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向
- 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入
  路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_*
- 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化
- 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→
  window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel,
  .zib-slider→.aksrt-slider, zib_menu_options meta 键等
- 自有 CSS 改名: legacy-utilities/compat-vars/footer shell
- admin SPA 重建; 契约测试同步(路径/断言/文件更名)
- 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用)

验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过;
契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
This commit is contained in:
kate522 committed 2026-08-22 16:16:30 +08:00
1 parent 4f2391fb64
commit 9375b1c30c
591 files changed
+1690 -11041

No files matched your search

+1 -1
View File
@@ -1,4 +1,4 @@
/* ========== AJAX 加载指示器 — 对齐 zibll loading spinner ========== */
/* ========== AJAX 加载指示器 — 对齐 legacy loading spinner ========== */
.aksrt-loading {
display: flex;
align-items: center;
+7 -7
View File
@@ -37,7 +37,7 @@ body {
background-color: var(--surface-page);
}
/* zibll compat: global link composite transition */
/* legacy compat: global link composite transition */
a[href] {
transition: color 0.2s, background 0.3s, opacity 0.3s, box-shadow 0.3s, transform 0.3s;
}
@@ -79,9 +79,9 @@ a[href] {
flex: 1;
}
/* Zibll dual-column float math expects a padding-free main.container.
/* legacy dual-column float math expects a padding-free main.container.
* Bootstrap 5 also defines .container (max-width ladder + padding-x).
* Force Zibll geometry after Bootstrap so negative-margin sidebars land correctly. */
* Force legacy geometry after Bootstrap so negative-margin sidebars land correctly. */
.container,
main.container,
.site-main.container {
@@ -96,7 +96,7 @@ main.container,
--bs-gutter-y: 0;
}
/* Header multifunc icon cards need horizontal gutter (zibll content rows).
/* Header multifunc icon cards need horizontal gutter (legacy content rows).
* Global .container padding is 0 for dual-column float math. */
.header-slider-card.container {
padding-left: 15px;
@@ -106,7 +106,7 @@ main.container,
/* Header multifunc icon cards: pin typography baseline so cards render
* identically on all pages. .px12-sm is only defined globally in
* zibll-utilities.css, which is @import'd by the single-post aggregator;
* legacy-utilities.css, which is @import'd by the single-post aggregator;
* vendor CSS pins it at <=640px / .sidebar / .mobile-nav-widget only. */
.header-slider-card .icon-cover-card {
font-size: 12px;
@@ -175,7 +175,7 @@ main.container,
}
/* Soft pad only when the float dual-column is collapsed.
* Match Zibll bootstrap container pad (15px) rather than 10px. */
* Match legacy bootstrap container pad (15px) rather than 10px. */
@media (max-width: 991.98px) {
.container,
main.container {
@@ -246,7 +246,7 @@ main.container,
}
/* No-wrap inline name rows — keep the level icon on the same line as the name.
* The non-standard <name> element (zibll compat) plus .user-name / author-hero /
* The non-standard <name> element (legacy compat) plus .user-name / author-hero /
* uc-header name rows must not flex-wrap, or the badge drops to a new line.
* The comment header may still wrap (avatar + name + like can overflow on
* narrow viewports), so it keeps flex-wrap but the inner <name> never does. */
+3 -3
View File
@@ -1,4 +1,4 @@
/* ========== 面包屑导航 — 对齐 zibll .breadcrumb (main.css) ========== */
/* ========== 面包屑导航 — 对齐 legacy .breadcrumb (main.css) ========== */
/* Single source for breadcrumb chrome. Do not re-define in layout.css. */
.breadcrumb,
@@ -24,7 +24,7 @@ ul.breadcrumb,
display: block;
}
/* Zibll uses flat li + li:before separators (not flex-gap nodes) */
/* legacy uses flat li + li:before separators (not flex-gap nodes) */
.breadcrumb > li,
ul.breadcrumb > li,
.breadcrumb-nav li,
@@ -69,7 +69,7 @@ ul.breadcrumb > li:last-child,
color: var(--main-color, var(--color-ink-2, #4e5358));
}
/* Cover / video footer breadcrumb — Zibll single-cover-con / single-video */
/* Cover / video footer breadcrumb — legacy single-cover-con / single-video */
.single-cover-con .breadcrumb,
.single-cover-con ul.breadcrumb,
.single-cover-con .breadcrumb-nav,
+10 -10
View File
@@ -1,7 +1,7 @@
/**
* AKSRT Card Primitives — 1:1 Zibll Alignment
* AKSRT Card Primitives — 1:1 legacy Alignment
*
* 对齐 zibll 的 .theme-box / .box-bg / .box-body / .box-header:
* 对齐 legacy 的 .theme-box / .box-bg / .box-body / .box-header:
* 阴影优先,无边框,8px 圆角,15px 内边距。
*
* @package AKSRT
@@ -9,7 +9,7 @@
/* ============================================================
* .aksrt-theme-box — 完整卡片原语(阴影 + 圆角 + 表面)
* 对齐 zibll .theme-box + .box-bg
* 对齐 legacy .theme-box + .box-bg
* ============================================================ */
.aksrt-theme-box {
border: none;
@@ -33,7 +33,7 @@
/* ============================================================
* .aksrt-box-body / .aksrt-box-header — 内边距区段
* 对齐 zibll .box-body / .box-header { padding: 15px }
* 对齐 legacy .box-body / .box-header { padding: 15px }
* ============================================================ */
.aksrt-box-body,
.aksrt-box-header {
@@ -55,7 +55,7 @@
/* ============================================================
* .aksrt-muted-box — 柔和背景嵌套
* 对齐 zibll .muted-box
* 对齐 legacy .muted-box
* ============================================================ */
.aksrt-muted-box {
background-color: var(--surface-2);
@@ -71,10 +71,10 @@
}
/* ============================================================
* Zibll 兼容别名
* legacy 兼容别名
* ============================================================ */
/* Zibll .theme-box is ONLY a spacing utility (margin-bottom: 20px).
* Background/shadow live on .main-bg / .main-shadow / .box-bg / .zib-widget.
/* legacy .theme-box is ONLY a spacing utility (margin-bottom: 20px).
* Background/shadow live on .main-bg / .main-shadow / .box-bg / .aksrt-panel.
* Do NOT turn every theme-box into a card — article-header also uses it. */
.theme-box,
.mb20 {
@@ -158,9 +158,9 @@ body.dark-theme .aksrt-theme-box:hover {
}
/* ============================================================
* .zib-widget — zibll sidebar/widget surface
* .aksrt-panel — legacy sidebar/widget surface
* ============================================================ */
.zib-widget {
.aksrt-panel {
clear: both;
background-color: var(--surface-1);
padding: var(--card-padding);
+1 -1
View File
@@ -2,7 +2,7 @@
* AKSRT Comment Tools
*
* 评论相关样式(工具栏下拉、内容中的代码块/图片等)全部由 vendor
* zibll main.min.css 提供,本文件不复制以免覆盖正版样式。
* legacy main.min.css 提供,本文件不复制以免覆盖正版样式。
* 仅保留页面级的投稿表单 / 分享按钮 / TOC 样式。
*/
+4 -4
View File
@@ -1,17 +1,17 @@
/* ============================================================
* AKSRT Comments — 补充层
*
* 评论区的全部样式以 vendor 的 Zibll 正版样式为准:
* assets/vendor/zibll/css/main.min.css(含 #comments/#postcomments
* 评论区的全部样式以 vendor 的 legacy 正版样式为准:
* assets/css/main.min.css(含 #comments/#postcomments
* 桌面规则与移动端媒体查询:.mobile-fixed/.virtual-input/.pagenav/
* .tab-nav-theme/.dropdown-menu/.line-form/.placeholder 等)
* + bootstrap 3(.list-unstyled/.list-inline)
*
* 本文件只补 AKSRT 特有标记的样式,禁止复制 Zibll 规则——
* 本文件只补 AKSRT 特有标记的样式,禁止复制 legacy 规则——
* 带 #comments id 前缀的副本会覆盖 vendor 正版样式造成 UI 偏差。
* ============================================================ */
/* 身份徽章(AKSRT 渲染于 <name> 内,对应 zibll 的认证/等级徽章位) */
/* 身份徽章(AKSRT 渲染于 <name> 内,对应 legacy 的认证/等级徽章位) */
#comments .comment-header .aksrt-identity-chip {
display: inline-flex;
align-items: center;
@@ -1,28 +1,28 @@
/**
* Zibll Variable Compatibility Layer — Global Bridge
* legacy Variable Compatibility Layer — Global Bridge
*
* Maps Zibll CSS variable names to AKSRT design tokens.
* This file allows existing Zibll-style markup and third-party components
* that reference Zibll variables to work correctly in AKSRT.
* Maps legacy CSS variable names to AKSRT design tokens.
* This file allows existing legacy-style markup and third-party components
* that reference legacy variables to work correctly in AKSRT.
*
* @package AKSRT
*/
/* ============================================================
* Global bridge (all pages)
* Maps Zibll variables → AKSRT tokens so any Zibll-style markup works.
* Maps legacy variables → AKSRT tokens so any legacy-style markup works.
* ============================================================ */
:root {
/* Layout (zibll typo preserved for compat) */
/* Layout (legacy typo preserved for compat) */
--mian-max-width: var(--container, 1200px);
/* Theme color — now matches zibll #f04494 */
/* Theme color — now matches legacy #f04494 */
--theme-color: var(--color-primary, #f04494);
--focus-color: var(--color-primary, #f04494);
/* zibll focus glow = fixed #fd53a1 @ 0.4 (not the faint primary-soft) */
/* legacy focus glow = fixed #fd53a1 @ 0.4 (not the faint primary-soft) */
--focus-shadow-color: rgba(253, 83, 161, 0.4);
/* zibll --focus-color-opacityX — theme-color at fixed alphas.
/* legacy --focus-color-opacityX — theme-color at fixed alphas.
Tracks the runtime theme via --color-primary-rgb (injected by
AKSRT_Scripts::inline_css_vars); fallback RGB = #f04494. */
--focus-color-opacity1: rgba(var(--color-primary-rgb, 240, 68, 148), 0.1);
@@ -59,20 +59,20 @@
--footer-bg: var(--surface-1);
--footer-color: var(--color-ink-4);
/* Cards — 对齐 zibll 70% */
/* Cards — 对齐 legacy 70% */
--posts-card-scale: 70%;
--posts-list-scale: 70%;
--single-cover-scale: 35%;
}
/* zibll --this-* context-coloring DEFAULTS live with the .but system in
/* legacy --this-* context-coloring DEFAULTS live with the .but system in
* assets/css/core/buttons.css — they must precede the .b-*/.jb-* color
* modifiers in source order for the cascade to resolve colored variants
* correctly, so they cannot sit in this later-loaded bridge file.
* (Scoped to .but/.badg there, never :root, so .float-btn stays intact.) */
/* ============================================================
* Dark mode bridge — 对齐 zibll dark theme
* Dark mode bridge — 对齐 legacy dark theme
* ============================================================ */
html.dark,
body.dark-theme {
+1 -1
View File
@@ -1,4 +1,4 @@
/* ========== 空状态 — 对齐 zibll empty state ========== */
/* ========== 空状态 — 对齐 legacy empty state ========== */
.empty-state {
text-align: center;
padding: 60px 20px;
@@ -1,5 +1,5 @@
/* ============================================================
* 21. 弹窗登录/注册 — 1:1 Zibll modal
* 21. 弹窗登录/注册 — 1:1 legacy modal
* ============================================================ */
.aksrt-modal-auth {
position: fixed;
@@ -59,7 +59,7 @@
}
}
/* Zibll lazySizes state and animation contract. */
/* legacy lazySizes state and animation contract. */
.lazyloaded {
transition: 0.3s;
--lazy-animation: lazy_blur;
@@ -112,7 +112,7 @@ img.lazyloaded:not(.lazyloadafter) {
/* ============================================================
* 16. FPS 加速模式:低端设备禁用 backdrop-filter
* 模仿 zibll 的 body.fps-accelerat 模式
* 模仿 legacy 的 body.fps-accelerat 模式
* ============================================================ */
body.fps-accelerat .site-nav,
body.fps-accelerat .footer-tabbar,
@@ -131,7 +131,7 @@ body.dialog-open .site-nav {
/* ============================================================
* 17. .blur-bg 通用工具类
* 模仿 zibll 的 .blur-bg,可在任意元素上应用毛玻璃效果
* 模仿 legacy 的 .blur-bg,可在任意元素上应用毛玻璃效果
* ============================================================ */
.aksrt-blur-bg {
background: var(--blur-bg);
@@ -151,7 +151,7 @@ body.dialog-open .site-nav {
/* ============================================================
* 19. 全站动效节奏统一
* 模仿 zibll 的统一 hover / slide / blur / drawer 语言
* 模仿 legacy 的统一 hover / slide / blur / drawer 语言
* ============================================================ */
/* --- 全局过渡基线 --- */
@@ -420,7 +420,7 @@ html.dark * {
}
/* ============================================================
* 底部弹出 Sheet — 对齐 zibll .modal.bottom
* 底部弹出 Sheet — 对齐 legacy .modal.bottom
* ============================================================ */
.aksrt-modal--bottom .aksrt-modal-auth__card,
.modal.bottom .modal-dialog {
+1 -1
View File
@@ -2,4 +2,4 @@
@import url("footer/part-2.css");
@import url("footer/part-3.css");
@import url("footer/part-4.css");
@import url("footer/zibll-shell.css");
@import url("footer/shell.css");
+3 -3
View File
@@ -1,6 +1,6 @@
/* ============================================================
* AKSRT Footer utilities — float buttons start + device helpers
* Main template_1 shell: zibll-shell.css
* Main template_1 shell: shell.css
* Tabbar / float details: part-2.css+
* ============================================================ */
@@ -19,9 +19,9 @@
}
/* ============================================================
* 浮动右侧按钮组(模仿 zibll float-right)— continued in part-2
* 浮动右侧按钮组(模仿 legacy float-right)— continued in part-2
* ============================================================ */
/* 对齐 zibll: bottom 60px, z-index 1030 */
/* 对齐 legacy: bottom 60px, z-index 1030 */
.float-right-btns {
position: fixed;
right: 20px;
+3 -3
View File
@@ -1,6 +1,6 @@
}
/* 对齐 zibll: 40px, 1.4em icon */
/* 对齐 legacy: 40px, 1.4em icon */
.float-btn {
display: flex;
align-items: center;
@@ -81,7 +81,7 @@ body.dark-theme #float-theme-toggle .float-btn__icon-sun {
}
/* ============================================================
* 移动端底部 Tab 栏(模仿 zibll footer-tabbar)
* 移动端底部 Tab 栏(模仿 legacy footer-tabbar)
* ============================================================ */
.footer-tabbar {
display: none;
@@ -166,7 +166,7 @@ body.dark-theme #float-theme-toggle .float-btn__icon-sun {
position: relative;
}
/* 对齐 zibll: 24px 图标 */
/* 对齐 legacy: 24px 图标 */
.tabbar-item i {
font-size: var(--tabbar-icon-size, 24px);
line-height: 1;
@@ -1,6 +1,6 @@
/**
* Footer — Zibll template_1 shell
* Contract: zibll/css/main.css footer block + zib_footer_con markup
* Footer — legacy template_1 shell
* Contract: legacy/css/main.css footer block + legacy markup
*/
.footer {
color: var(--footer-color, var(--color-ink-4));
@@ -55,7 +55,7 @@
display: inline-block;
}
/* title-h-left underline bar (Zibll) */
/* title-h-left underline bar (legacy) */
.footer .title-h-left {
position: relative;
margin: 8px 0 10px;
@@ -108,7 +108,7 @@
vertical-align: 0.2em;
}
/* Circular contact buttons — Zibll .toggle-radius + .footer-contact > a */
/* Circular contact buttons — legacy .toggle-radius + .footer-contact > a */
.footer .toggle-radius {
background: var(--this-bg, var(--main-border-color, var(--surface-2, #f0f0f0)));
width: 29px;
@@ -213,7 +213,7 @@
margin-top: 10px;
}
/* Device visibility — Zibll hidden-xs */
/* Device visibility — legacy hidden-xs */
@media (max-width: 767px) {
.footer .hidden-xs,
.hidden-xs {
+1 -1
View File
@@ -1,7 +1,7 @@
/**
* Header account popover.
*
* The shared Zibll navigation styles provide the popover shell. This module
* The shared legacy navigation styles provide the popover shell. This module
* owns AKSRT-specific account content such as check-in, wallet and VIP rows.
*/
@@ -1,11 +1,11 @@
/**
* Homepage Fixed Layout — Zibll Visual Parity
* Homepage Fixed Layout — legacy Visual Parity
*
* Implements Zibll's homepage visual language:
* Implements legacy's homepage visual language:
* - System font stack with Chinese fallbacks
* - 1200px container, 311px sidebar
* - Post cards: list mode (190px thumb) + card mode (3-col grid)
* - Zibll shadow/radius/spacing values
* - legacy shadow/radius/spacing values
* - scale(1.02) thumbnail hover
* - Lazy-load animations (blur/fade/scale)
* - Full responsive: 1200/991/767/640px breakpoints
@@ -32,7 +32,7 @@
background: transparent;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
/* Slightly looser than stock zibll short pages: air between stream and footer */
/* Slightly looser than stock legacy short pages: air between stream and footer */
padding-bottom: 28px;
}
@@ -77,7 +77,7 @@
12. SIDEBAR
================================================================ */
.aksrt-homepage__aside > .zib-widget,
.aksrt-homepage__aside > .aksrt-panel,
.aksrt-homepage__aside > .widget {
margin-bottom: 15px;
padding: 15px;
@@ -87,7 +87,7 @@
box-shadow: var(--shadow-sm);
}
.aksrt-homepage__aside > .zib-widget:last-child,
.aksrt-homepage__aside > .aksrt-panel:last-child,
.aksrt-homepage__aside > .widget:last-child {
margin-bottom: 0;
}
+8 -8
View File
@@ -57,7 +57,7 @@
* body.site-layout-2 = sidebar right
* body.site-layout-3 = sidebar left
*
* This intentionally uses Zibll's float/negative-margin ownership model.
* This intentionally uses legacy's float/negative-margin ownership model.
* Below 992px the sidebar is hidden and the content margins collapse.
* ============================================================ */
@@ -68,7 +68,7 @@ main.content-shell,
}
/* content-shell is a padding shell for non-dual pages; when it also hosts
* the float dual-column, kill horizontal padding so negative-margin math matches Zibll. */
* the float dual-column, kill horizontal padding so negative-margin math matches legacy. */
main.container.content-shell,
main.content-shell.container,
.site-main.container.content-shell {
@@ -92,7 +92,7 @@ main.content-shell::after,
* Critical: .content-layout must NOT set width:100%. Under box-sizing:border-box
* a 100% width + margin-right gutter keeps the border-box at full container
* width, so the gutter never shrinks the content box and .sidebar (margin-left:-311px)
* sits under the main column (overlap). Zibll only sets margin on .content-layout;
* sits under the main column (overlap). legacy only sets margin on .content-layout;
* width stays auto so margin carves out the column. */
.content-wrap {
float: left;
@@ -118,10 +118,10 @@ main.content-shell::after,
max-width: 100%;
}
/* Base sidebar column (Zibll .sidebar defaults) — layout variants override below */
/* Base sidebar column (legacy .sidebar defaults) — layout variants override below */
.sidebar {
float: left;
width: 311px; /* Zibll hard 311px; --sidebar-width kept in sync via runtime vars */
width: 311px; /* legacy hard 311px; --sidebar-width kept in sync via runtime vars */
width: var(--sidebar-width, 311px);
min-width: 0;
position: relative;
@@ -152,7 +152,7 @@ body.site-layout-1 .content-layout--no-sidebar,
margin-right: 0 !important;
}
/* Sidebar RIGHT (layout 2) — Zibll: margin-right: calc(311px + 15px) only */
/* Sidebar RIGHT (layout 2) — legacy: margin-right: calc(311px + 15px) only */
body.site-layout-2 .content-layout,
.site-layout-2 .content-layout {
margin-right: calc(311px + 15px);
@@ -207,7 +207,7 @@ body.site-layout-3 .sidebar,
}
}
/* Mobile collapse (Zibll max-width: 991px) */
/* Mobile collapse (legacy max-width: 991px) */
@media (max-width: 991.98px) {
body.site-layout-2 .content-layout,
body.site-layout-3 .content-layout,
@@ -586,7 +586,7 @@ body.site-layout-3 .sidebar,
pointer-events: none;
}
/* ========== 移动端/平板隐藏侧栏(与 zibll 一致:991px 以下隐藏) ========== */
/* ========== 移动端/平板隐藏侧栏(与 legacy 一致:991px 以下隐藏) ========== */
@media (max-width: 991px) {
.content-layout__aside {
display: none;
@@ -1,7 +1,7 @@
/**
* Zibll utility class bridge
* legacy utility class bridge
*
* Single / author / meta markup still uses Zibll utility class names
* Single / author / meta markup still uses legacy utility class names
* (.flex / .ac / .jsb / .abs-right / .muted-2-color / …). Without these
* helpers the author bar and meta row collapse into a vertical mess.
*
@@ -31,7 +31,7 @@
.jse { justify-content: space-evenly; }
.flex.jsa,
.jsa { justify-content: space-around; }
/* Nested flex1 (zibll .flex .flex1) — allow both direct and descendant */
/* Nested flex1 (legacy .flex .flex1) — allow both direct and descendant */
.flex > .flex1,
.flex .flex1 { flex: 1; overflow: hidden; min-width: 0; }
.relative-h { position: relative; height: 100%; }
@@ -65,7 +65,7 @@
top: 0;
}
/* zibll .abs-center: full-width vertical center (translateY only).
/* legacy .abs-center: full-width vertical center (translateY only).
* Header search and slide-text rely on this model. Point-center
* (left:50% + translate(-50%,-50%)) is NOT used for these layers. */
.abs-center {
@@ -78,7 +78,7 @@
z-index: 1;
}
/* Zibll abs-center position variants (main.css) */
/* legacy abs-center position variants (main.css) */
.abs-center.left-top,
.abs-center.right-top {
transform: unset;
@@ -127,7 +127,7 @@
text-align: right;
}
/* Graphic ratio box (cover / related thumbs) — Zibll .graphic */
/* Graphic ratio box (cover / related thumbs) — legacy .graphic */
.graphic,
.page-cover {
text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
@@ -155,7 +155,7 @@
max-width: 100%;
}
/* title-h-left underline bar (Zibll) */
/* title-h-left underline bar (legacy) */
.title-h-left {
position: relative;
padding-bottom: 8px;
@@ -175,7 +175,7 @@
box-shadow: 1px 1px 3px -1px var(--theme-color, var(--focus-color, #f04494));
}
/* line-form-line — Zibll absolute bottom rule (author meta separator) */
/* line-form-line — legacy absolute bottom rule (author meta separator) */
.line-form-line,
.line-form-line:before {
position: absolute;
+8 -8
View File
@@ -1,10 +1,10 @@
/* ============================================================
* 徽章弹窗(zibll medal 1:1 风格)
* 徽章弹窗(legacy medal 1:1 风格)
* ------------------------------------------------------------
* 共享于用户中心与公开主页的服务端 HTML 徽章弹窗。
* ============================================================ */
/* ---------- 顶部资料卡入口(zibll user-medal-info parity) ---------- */
/* ---------- 顶部资料卡入口(legacy user-medal-info parity) ---------- */
.aksrt-medal-entry,
.uc-header__meta-item {
display: inline-flex;
@@ -99,7 +99,7 @@
border-radius: 0 0 1000px 1000px;
}
/* ---------- 卡片网格(zibll .medal-list-box / .medal-list) ---------- */
/* ---------- 卡片网格(legacy .medal-list-box / .medal-list) ---------- */
.medal-list-box {
display: grid;
grid-template-columns: repeat(5, 1fr);
@@ -156,7 +156,7 @@
color: var(--focus-color);
}
/* 未获得:灰度 + 透明(zibll .no-has) */
/* 未获得:灰度 + 透明(legacy .no-has) */
.medal-card.no-has {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
@@ -181,7 +181,7 @@
color: var(--focus-color);
}
/* ---------- 单徽章详情卡(zibll .medal-single-card) ---------- */
/* ---------- 单徽章详情卡(legacy .medal-single-card) ---------- */
.medal-single-card {
position: relative;
overflow: hidden;
@@ -295,7 +295,7 @@
padding: 2px;
}
/* 底部操作区(zibll .modal-buts.but-average 语义) */
/* 底部操作区(legacy .modal-buts.but-average 语义) */
.medal-modal__buts {
display: flex;
margin: 12px -4px -12px;
@@ -322,13 +322,13 @@
}
.medal-modal__back:hover { color: var(--focus-color); }
/* ---------- 细滚动条(zibll .mini-scrollbar) ---------- */
/* ---------- 细滚动条(legacy .mini-scrollbar) ---------- */
.mini-scrollbar { scrollbar-width: thin; scrollbar-color: var(--muted-border-color, rgba(136, 136, 136, 0.3)) transparent; }
.mini-scrollbar::-webkit-scrollbar { width: 5px; height: 5px; }
.mini-scrollbar::-webkit-scrollbar-thumb { background: var(--muted-border-color, rgba(136, 136, 136, 0.3)); border-radius: 10px; }
.mini-scrollbar::-webkit-scrollbar-track { background: transparent; }
/* ---------- 响应式(zibll: 桌面 5 列 / 移动 4 列) ---------- */
/* ---------- 响应式(legacy: 桌面 5 列 / 移动 4 列) ---------- */
@media (max-width: 768px) {
.medal-list-box { grid-template-columns: repeat(4, 1fr); }
.medal-list-box--grant { grid-template-columns: 1fr; }
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Zibll-compatible frontend notifications.
* legacy-compatible frontend notifications.
*
* @package AKSRT
*/
+4 -4
View File
@@ -2,7 +2,7 @@
* AKSRT Overlay / Glass Primitives
*
* Provides backdrop-filter glass surfaces used by header, footer-tabbar,
* floating buttons and search overlays — matching zibll's blur system.
* floating buttons and search overlays — matching legacy's blur system.
*
* @package AKSRT
*/
@@ -19,7 +19,7 @@
/* ============================================================
* Glass on site-nav (when using fixed/sticky mode)
* Applied via .site-nav--blur already; this adds the zibll-grade
* Applied via .site-nav--blur already; this adds the legacy-grade
* saturate(5) blur(20px) instead of the lighter saturate(1.5) blur(18px).
* ============================================================ */
.site-nav--glass {
@@ -41,7 +41,7 @@ html.dark .site-nav--glass.is-scrolled {
/* ============================================================
* Glass on footer-tabbar (already uses backdrop-filter in footer.css;
* this class can be toggled to match zibll's exact blur spec)
* this class can be toggled to match legacy's exact blur spec)
* ============================================================ */
.footer-tabbar--glass {
-webkit-backdrop-filter: saturate(5) blur(20px);
@@ -66,7 +66,7 @@ html.dark .footer-tabbar--glass {
}
/* ============================================================
* Scroll shadow on glass header (zibll: .body-scroll .header)
* Scroll shadow on glass header (legacy: .body-scroll .header)
* ============================================================ */
body.has-scrolled .site-nav--glass {
box-shadow: 0 4px 10px rgba(20, 28, 48, 0.06);
+1 -1
View File
@@ -1,4 +1,4 @@
/* ========== 分页 — 对齐 zibll pagination ========== */
/* ========== 分页 — 对齐 legacy pagination ========== */
.content-stream__footer-nav {
width: 100%;
}
+3 -3
View File
@@ -1,5 +1,5 @@
/**
* Zibll 9.0 article list/card contract.
* legacy 9.0 article list/card contract.
* Source baseline: css/main.css (SHA-256 recorded in tests/visual).
*/
@@ -84,7 +84,7 @@
height: 100% !important;
}
.list .item-thumbnail .zib-slider,
.list .item-thumbnail .aksrt-slider,
.list .item-thumbnail.new-swiper {
position: absolute;
width: 100%;
@@ -614,7 +614,7 @@
padding: 10px;
}
.zib-widget .posts-item.no_margin {
.aksrt-panel .posts-item.no_margin {
padding: 10px 0;
}
}
+1 -1
View File
@@ -11,7 +11,7 @@
}
/* ============================================================
* v2 双栏布局 — 模仿 zibll pay-box
* v2 双栏布局 — 模仿 legacy pay-box
* ============================================================ */
.resource-download-box--v2 {
position: relative;
+4 -4
View File
@@ -202,7 +202,7 @@
}
/* ============================================================
* 渐变价格标签(模仿 zibll 渐变 pay-tag)
* 渐变价格标签(模仿 legacy 渐变 pay-tag)
* ============================================================ */
.resource-download-box__price--gradient {
background: linear-gradient(135deg, #EF4444 0%, #F97316 100%);
@@ -235,7 +235,7 @@
}
/* ============================================================
* 下载框整体增强 — 模仿 zibll pay-box 视觉重量
* 下载框整体增强 — 模仿 legacy pay-box 视觉重量
* ============================================================ */
.resource-download-box {
position: relative;
@@ -254,7 +254,7 @@
}
/* ============================================================
* 付费类型徽章 — 模仿 zibll 渐变 pay-tag
* 付费类型徽章 — 模仿 legacy 渐变 pay-tag
* ============================================================ */
.resource-pay-type-badge {
display: inline-flex;
@@ -287,7 +287,7 @@
}
/* ============================================================
* 原价划线 — 模仿 zibll .original-price
* 原价划线 — 模仿 legacy .original-price
* ============================================================ */
.resource-original-price {
font-size: 13px;
+1 -1
View File
@@ -1,4 +1,4 @@
/* ========== 侧边栏 — 对齐 zibll sidebar ========== */
/* ========== 侧边栏 — 对齐 legacy sidebar ========== */
/* Width/float geometry is owned by body.site-layout-* in layout.css.
* Keep only non-layout chrome here. */
.sidebar {
+1 -1
View File
@@ -1,4 +1,4 @@
@import url("zibll-utilities.css");
@import url("legacy-utilities.css");
@import url("single-post/shell.css");
@import url("single-post/content.css");
@import url("single-post/code-blocks.css");
@@ -104,7 +104,7 @@
margin-bottom: 16px;
}
/* Zibll .post-actions — text/icon column buttons, not pill chips */
/* legacy .post-actions — text/icon column buttons, not pill chips */
.post-actions-card,
.post-actions {
position: relative;
@@ -124,7 +124,7 @@
margin-bottom: 12px;
}
/* Legacy card-buttons flex only for non-zibll card variant */
/* Legacy card-buttons flex only for non-legacy card variant */
.post-actions-card__buttons {
display: flex;
justify-content: center;
@@ -132,7 +132,7 @@
margin-bottom: 12px;
}
/* Zibll: .article .action { width:80px; padding:10px 0; inline-block; opacity:.7 } */
/* legacy: .article .action { width:80px; padding:10px 0; inline-block; opacity:.7 } */
.article .action,
.post-actions .action {
width: 80px;
@@ -406,7 +406,7 @@ html.dark .post-drop-meta__item:hover {
color: #fff;
}
/* ===== Author Card — 对齐 zibll 卡片容器 ===== */
/* ===== Author Card — 对齐 legacy 卡片容器 ===== */
.author-box {
margin-bottom: 16px;
padding: 18px;
@@ -554,7 +554,7 @@ html.dark .post-drop-meta__item:hover {
/* ===== Zibll single-metabox / author bar ===== */
/* ===== legacy single-metabox / author bar ===== */
.article-avatar .user-info {
width: 100%;
}
@@ -622,7 +622,7 @@ html.dark .post-drop-meta__item:hover {
--body-bg-color: rgba(0, 0, 0, 0.3);
}
/* line-form-line owned by zibll-utilities.css — only context here */
/* line-form-line owned by legacy-utilities.css — only context here */
.article-avatar .line-form-line {
display: block;
}
@@ -635,7 +635,7 @@ html.dark .post-drop-meta__item:hover {
.article-tags .but.c-red { color: #f44336; }
/* ===== Zibll user-card after-box ===== */
/* ===== legacy user-card after-box ===== */
.user-card.author { margin-bottom: 16px; overflow: hidden; }
.user-card.author .user-avatar { display: flex; justify-content: center; }
.user-card.author .user-avatar .avatar,
+5 -5
View File
@@ -1,6 +1,6 @@
/* ========== Single Post ========== */
/* Zibll .article — card body padding wins over .box-body (main.css order) */
/* legacy .article — card body padding wins over .box-body (main.css order) */
.article,
article.article.box-body,
.article.main-bg.box-body {
@@ -31,7 +31,7 @@ article.article.box-body,
border-radius: 0;
}
/* 标题 — 对齐 zibll: 22px, bold, line-height 1.4 */
/* 标题 — 对齐 legacy: 22px, bold, line-height 1.4 */
.entry-title,
.article-title {
font-size: 22px;
@@ -79,7 +79,7 @@ article.article.box-body,
overflow: hidden;
}
/* 内容区 — 对齐 zibll: 16px, line-height 2 */
/* 内容区 — 对齐 legacy: 16px, line-height 2 */
.entry-content,
.wp-posts-content {
font-size: 16px;
@@ -90,7 +90,7 @@ article.article.box-body,
min-height: 90px;
}
/* Zibll content heading bars */
/* legacy content heading bars */
.wp-posts-content > h1:not([class]),
.wp-posts-content > h2:not([class]),
.wp-posts-content > h3:not([class]),
@@ -265,7 +265,7 @@ article.article.box-body,
margin: 1.5em 0;
}
/* 行内代码 — 对齐 zibll: 粉色文字 + 粉色背景 */
/* 行内代码 — 对齐 legacy: 粉色文字 + 粉色背景 */
:is(.entry-content, .wp-posts-content) code {
font-family: var(--font-mono);
font-size: 0.9em;
+7 -7
View File
@@ -3,14 +3,14 @@
* The cover stays inside the content column with a fixed aspect ratio box.
* ============================================================ */
/* ===== Cover (in-column ratio box) — Zibll .single-cover ===== */
/* ===== Cover (in-column ratio box) — legacy .single-cover ===== */
.single-cover {
position: relative;
overflow: hidden;
border-radius: var(--main-radius, var(--radius, 8px));
box-shadow: 0 0 10px var(--main-shadow, rgba(116, 116, 116, 0.08));
margin-bottom: 20px;
/* Zibll: padding-bottom: calc(var(--single-cover-scale) + 50px) */
/* legacy: padding-bottom: calc(var(--single-cover-scale) + 50px) */
padding-bottom: calc(var(--single-cover-scale, 35%) + 50px);
}
@@ -46,7 +46,7 @@
font-weight: 700;
}
/* Legacy overlay helpers (kept for non-zibll markup) */
/* Legacy overlay helpers (kept for non-legacy markup) */
.single-cover__overlay {
position: absolute;
inset: 0;
@@ -180,7 +180,7 @@
position: relative;
}
/* line-form-line geometry owned by zibll-utilities.css (absolute full-width bottom).
/* line-form-line geometry owned by legacy-utilities.css (absolute full-width bottom).
* Here only ensure the meta row has height so the rule sits correctly. */
.article-header .article-avatar .relative {
margin-top: 20px;
@@ -210,7 +210,7 @@
/* ===== Video footer (Zibll single-video-footer) ===== */
/* ===== Video footer (legacy single-video-footer) ===== */
.single-head-cover .single-video-footer { padding: 12px 4px 4px; }
.single-head-cover .single-video-footer .article-title {
font-size: clamp(1.1rem, 2.4vw, 1.45rem); font-weight: 700; margin: 8px 0 0; line-height: 1.35;
@@ -226,8 +226,8 @@
.single-head-cover .cover-meta.single-metabox {
display: flex; flex-wrap: wrap; gap: 8px 12px; font-size: 12px; color: var(--color-ink-4);
}
/* Pay box root — Zibll #posts-pay.zib-widget.pay-box */
#posts-pay.zib-widget,
/* Pay box root — legacy #posts-pay.aksrt-panel.pay-box */
#posts-pay.aksrt-panel,
#posts-pay.pay-box,
.aksrt-single-pay-box {
margin: 16px 0 20px;
@@ -1,4 +1,4 @@
/* ===== Zibll article-nav (prev/next) ===== */
/* ===== legacy article-nav (prev/next) ===== */
.article-nav {
display: block;
width: 100%;
@@ -83,7 +83,7 @@
overflow: hidden;
}
/* ===== Related Posts — 对齐 zibll 卡片容器 ===== */
/* ===== Related Posts — 对齐 legacy 卡片容器 ===== */
.related-box {
margin-bottom: 16px;
overflow: hidden;
@@ -156,7 +156,7 @@
/* ===== Comment Card Spacing ===== */
.comments-card { margin-bottom: 16px; }
/* ===== Content Height Clamp (Zibll) ===== */
/* ===== Content Height Clamp (legacy) ===== */
.limit-height,
.wp-posts-content.limit-height {
position: relative;
@@ -539,7 +539,7 @@ body.single .sidebar .posts-nav-box.toc-widget[data-affix="true"] {
/* ===== Related list (Zibll-like) ===== */
/* ===== Related list (legacy-like) ===== */
.relates .title-theme,
.related-box .title-theme {
font-size: 14px;
@@ -577,9 +577,9 @@ body.single .sidebar .posts-nav-box.toc-widget[data-affix="true"] {
}
/* ===== Related (Zibll .relates / .relates-thumb) ===== */
/* ===== Related (legacy .relates / .relates-thumb) ===== */
.relates .title-theme { margin-bottom: 0; }
.relates .zib-widget { padding: 12px 15px; }
.relates .aksrt-panel { padding: 12px 15px; }
.relates ul.no-thumb { list-style: none; margin: 0; padding: 0; }
.relates ul.no-thumb li { padding: 6px 0; border-bottom: 1px dashed var(--color-line, rgba(0,0,0,.06)); }
.relates ul.no-thumb li:last-child { border-bottom: 0; }
+3 -3
View File
@@ -1,5 +1,5 @@
/* Single page shell — relies on body.site-layout-1/2/3 float dual-column
* defined in layout.css (Zibll 1:1). Page-owned overrides stay minimal. */
* defined in layout.css (legacy 1:1). Page-owned overrides stay minimal. */
/* Single article stack lives inside .content-layout as direct children;
* do not re-enable the legacy primary/aside grid here. */
@@ -25,13 +25,13 @@ body.single main.container .content-layout > .breadcrumbs-wrap {
padding-top: 2px;
}
/* Sticky TOC widget in sidebar — parent .sidebar is position:unset like Zibll */
/* Sticky TOC widget in sidebar — parent .sidebar is position:unset like legacy */
body.single .sidebar .posts-nav-box.toc-widget {
position: sticky;
top: calc(var(--nav-height, 60px) + 16px);
}
body.single .sidebar .zib-widget,
body.single .sidebar .aksrt-panel,
body.single .sidebar .widget {
margin-bottom: 15px;
}
+1 -1
View File
@@ -1,4 +1,4 @@
/* ========== 骨架屏加载 — 对齐 zibll skeleton loading ========== */
/* ========== 骨架屏加载 — 对齐 legacy skeleton loading ========== */
.skeleton {
position: relative;
overflow: hidden;
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* VIP pay modal + hover cards (zibll payvip-modal / vip-card).
* VIP pay modal + hover cards (legacy payvip-modal / vip-card).
*/
.aksrt-vip-modal-panel {