chore(branding): remove leftover upstream theme identifiers

The theme was renamed Zibll/子比 → AKSRT → Jio, but upstream branding
survived the sweeps in CSS classes, the SVG sprite prefix, a persisted
widget field ID, JS events, admin Vue class names, test infrastructure
and docblocks.

Renames:
- zib-widget / zib-widget-wrap / zib-slider → jio-widget-box /
  jio-widget-box-wrap / jio-slider-box (jio-widget is taken by the modern
  widget shell, jio-box-* by the card primitives)
- zib-partners-scroll + zps-* → jio-partners-scroll + jps-*
- zib-combo-info-card + zci-* → jio-combo-info-card + jci-*
- zibsvg- → jiosvg-, including the exported picker helpers and the
  fa-zibsvg- family-prefix guard
- zibpay_type → pay_type; the dual-read fallback in PostQuery collapses
  to a single key
- [zibajax="submit"] dropped (no PHP emitter); zib_ajax.success →
  jio_ajax.success
- aks-* admin Vue classes → jio-*
- zib_palette() → palette()

User-facing vendor traces are gone: the floating "more" button default no
longer ships a zibll.com link or 子比主题 marketing copy, the notice
widget ships no preset promo entries, and the four 官网教程 links are
removed from the post-list admin schema.

Test infrastructure renamed to neutral names (docker-compose.reference.yml,
Caddyfile, article-baseline.json, modern-widgets-contract.test.cjs) with
their DB/volume/env/slug identifiers following.

Kept intentionally, documented in tests/fixtures/README.md: the golden
fixture reference fingerprint (a SHA-256 record of an external directory,
read by validate-widget-golden / generate-widget-golden-fixture /
audit-widget-system), the doesNotMatch guards that prove the old tokens are
gone, and the reference theme's own meta key in the visual fixtures.

No backward-compat or data migration: saved widget configs holding old
icon keys or the old field ID silently lose them, per the project's
rewrite-over-compatibility rule.

Verified: 132/132 node contract tests, php tests/widget-system/run.php
(146 assertions), audit-admin-contracts, audit-psr4-paths and
validate-widget-golden all green; tracked bundles regenerated and in sync.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Opus 5 committed 2026-11-02 00:06:54 +08:00
1 parent 42cc64106d
commit 427968a721
188 files changed
+915 -967

No files matched your search

+102 -102
View File
@@ -3957,11 +3957,11 @@ body:has(.modal.in) .float-btn,
}
/**------小工具:复合信息卡片模块--------**/
.zib-combo-info-card {
--zci-radius: 12px;
--zci-band-h: 80px;
.jio-combo-info-card {
--jci-radius: 12px;
--jci-band-h: 80px;
}
.zib-combo-info-card .zci-card {
.jio-combo-info-card .jci-card {
position: relative;
height: 100%;
min-height: 180px;
@@ -3971,62 +3971,62 @@ body:has(.modal.in) .float-btn,
transition: transform 0.25s ease, box-shadow 0.25s ease;
box-shadow: 0 1px 3px var(--main-shadow);
}
.zib-combo-info-card .zci-card:hover {
.jio-combo-info-card .jci-card:hover {
transform: translateY(-3px);
box-shadow: 0 12px 32px var(--main-shadow);
}
.zib-combo-info-card .zci-card::before {
.jio-combo-info-card .jci-card::before {
content: '';
position: absolute;
left: 0;
right: 0;
top: 0;
height: calc(var(--zci-band-h) * 1.5);
height: calc(var(--jci-band-h) * 1.5);
opacity: 0;
transition: opacity 0.3s ease;
pointer-events: none;
}
.zib-combo-info-card.zci-has-band .zci-card::before {
.jio-combo-info-card.jci-has-band .jci-card::before {
opacity: 1;
}
/* 色带配色(仅保留关键的渐变,无法用主题变量简写) */
.zib-combo-info-card .zci-card.zci-band-blue::before {
.jio-combo-info-card .jci-card.jci-band-blue::before {
background: linear-gradient(170deg, rgba(114, 160, 255, 0.3), rgba(196, 174, 255, 0.2) 15%, transparent 60%);
}
.zib-combo-info-card .zci-card.zci-band-cyan::before {
.jio-combo-info-card .jci-card.jci-band-cyan::before {
background: linear-gradient(170deg, rgba(82, 196, 214, 0.3), rgba(130, 200, 255, 0.18) 15%, transparent 60%);
}
.zib-combo-info-card .zci-card.zci-band-green::before {
.jio-combo-info-card .jci-card.jci-band-green::before {
background: linear-gradient(170deg, rgba(92, 209, 158, 0.3), rgba(180, 230, 170, 0.2) 15%, transparent 60%);
}
.zib-combo-info-card .zci-card.zci-band-yellow::before {
.jio-combo-info-card .jci-card.jci-band-yellow::before {
background: linear-gradient(170deg, rgba(255, 190, 102, 0.3), rgba(255, 220, 132, 0.22) 15%, transparent 60%);
}
.zib-combo-info-card .zci-card.zci-band-pink::before {
.jio-combo-info-card .jci-card.jci-band-pink::before {
background: linear-gradient(170deg, rgba(255, 146, 181, 0.3), rgba(255, 190, 220, 0.2) 15%, transparent 60%);
}
.zib-combo-info-card .zci-card.zci-band-purple::before {
.jio-combo-info-card .jci-card.jci-band-purple::before {
background: linear-gradient(170deg, rgba(170, 140, 255, 0.36), rgba(220, 180, 255, 0.22) 15%, transparent 60%);
}
.zib-combo-info-card .zci-card.zci-band-gray::before {
.jio-combo-info-card .jci-card.jci-band-gray::before {
background: linear-gradient(170deg, rgba(140, 150, 170, 0.22), rgba(190, 195, 210, 0.14) 15%, transparent 60%);
}
/* 内容区:只控 padding 和层级,flex 布局由 HTML class 完成 */
.zib-combo-info-card .zci-body {
.jio-combo-info-card .jci-body {
position: relative;
z-index: 1;
padding: 20px;
}
.zci-tags {
.jci-tags {
margin: -4px;
margin-bottom: 10px;
}
.zci-tags > span {
.jci-tags > span {
margin: 4px;
}
/* 图标盒子:尺寸与圆角,背景沿用卡片主色自动适配暗色 */
.zib-combo-info-card .zci-icon {
.jio-combo-info-card .jci-icon {
width: 44px;
height: 44px;
border-radius: 8px;
@@ -4034,65 +4034,65 @@ body:has(.modal.in) .float-btn,
font-size: 42px;
}
.zib-combo-info-card .zci-icon img {
.jio-combo-info-card .jci-icon img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
/* 标题字号(font-bold / text-ellipsis-2 / mb10 已走工具类) */
.zib-combo-info-card .zci-title {
.jio-combo-info-card .jci-title {
font-size: 16px;
}
/* CTA 行动链接:仅保留颜色 + hover 行为 + 箭头动效 */
.zib-combo-info-card .zci-cta {
.jio-combo-info-card .jci-cta {
margin-top: 20px;
color: var(--this-color, --key-color);
font-weight: 500;
transition: 0.2s;
}
.zib-combo-info-card .zci-cta:hover {
.jio-combo-info-card .jci-cta:hover {
gap: 10px;
color: var(--focus-color);
text-decoration: none;
}
.zib-combo-info-card .zci-cta .zci-arrow {
.jio-combo-info-card .jci-cta .jci-arrow {
transform: rotate(-45deg);
font-size: 11px;
transition: transform 0.25s ease;
}
.zib-combo-info-card .zci-cta:hover .zci-arrow {
.jio-combo-info-card .jci-cta:hover .jci-arrow {
transform: rotate(-45deg) translateX(2px);
}
@media (max-width: 767px) {
.zib-combo-info-card .zci-card {
.jio-combo-info-card .jci-card {
min-height: 160px;
}
.zib-combo-info-card .zci-body {
.jio-combo-info-card .jci-body {
padding: 14px;
}
.col-xs-12 .zci-card .zci-body {
.col-xs-12 .jci-card .jci-body {
padding: 20px;
}
.zib-combo-info-card .zci-title {
.jio-combo-info-card .jci-title {
font-size: 15px;
}
}
.sidebar .zib-combo-info-card > * {
.sidebar .jio-combo-info-card > * {
width: 100% !important;
}
.sidebar .zib-combo-info-card .zci-card {
.sidebar .jio-combo-info-card .jci-card {
min-height: 160px;
}
.sidebar .zib-combo-info-card .zci-body {
.sidebar .jio-combo-info-card .jci-body {
padding: 14px;
}
.sidebar .col-xs-12 .zci-card .zci-body {
.sidebar .col-xs-12 .jci-card .jci-body {
padding: 20px;
}
.sidebar .zib-combo-info-card .zci-title {
.sidebar .jio-combo-info-card .jci-title {
font-size: 15px;
}
@@ -4422,52 +4422,52 @@ body:has(.modal.in) .float-btn,
}
/**------小工具:横向滚动合作伙伴模块--------**/
.zib-partners-scroll {
--zps-card-w: 220px;
--zps-card-h: 90px;
--zps-card-radius: 10px;
--zps-speed: 3;
--zps-gap: 10px;
.jio-partners-scroll {
--jps-card-w: 220px;
--jps-card-h: 90px;
--jps-card-radius: 10px;
--jps-speed: 3;
--jps-gap: 10px;
position: relative;
width: 100%;
overflow: hidden;
}
.zib-partners-scroll .zps-row {
.jio-partners-scroll .jps-row {
position: relative;
overflow: hidden;
margin-bottom: var(--zps-gap);
margin-bottom: var(--jps-gap);
}
.zib-partners-scroll .zps-row:last-child {
.jio-partners-scroll .jps-row:last-child {
margin-bottom: 0;
}
.zib-partners-scroll .zps-track {
.jio-partners-scroll .jps-track {
display: flex;
width: max-content;
will-change: transform;
animation: zps-scroll-left var(--zps-duration, 30s) linear infinite;
animation: jps-scroll-left var(--jps-duration, 30s) linear infinite;
animation-play-state: paused;
}
.zib-partners-scroll .zps-dir-right .zps-track {
animation-name: zps-scroll-right;
.jio-partners-scroll .jps-dir-right .jps-track {
animation-name: jps-scroll-right;
}
.zib-partners-scroll .zps-track[data-zps-ready] {
.jio-partners-scroll .jps-track[data-jps-ready] {
animation-play-state: running;
}
.zib-partners-scroll .zps-group {
gap: var(--zps-gap);
padding-right: var(--zps-gap);
.jio-partners-scroll .jps-group {
gap: var(--jps-gap);
padding-right: var(--jps-gap);
}
.zib-partners-scroll.zps-pause-hover .zps-row:hover .zps-track {
.jio-partners-scroll.jps-pause-hover .jps-row:hover .jps-track {
animation-play-state: paused;
}
.zib-partners-scroll .zps-item {
width: var(--zps-card-w);
height: var(--zps-card-h);
.jio-partners-scroll .jps-item {
width: var(--jps-card-w);
height: var(--jps-card-h);
overflow: hidden;
padding: 8px 10px;
color: inherit;
}
.zib-partners-scroll .zps-img {
.jio-partners-scroll .jps-img {
max-width: 100%;
max-height: 100%;
width: auto;
@@ -4475,71 +4475,71 @@ body:has(.modal.in) .float-btn,
object-fit: contain;
display: block;
}
.zib-partners-scroll.zps-card-bg .zps-item {
.jio-partners-scroll.jps-card-bg .jps-item {
background: var(--main-bg-color);
border-radius: var(--zps-card-radius);
border-radius: var(--jps-card-radius);
}
.jio-panel .zib-partners-scroll.zps-card-bg .zps-item {
.jio-panel .jio-partners-scroll.jps-card-bg .jps-item {
background: var(--muted-border-color);
}
/* 图文卡片模式 */
.zib-partners-scroll.zps-style-card .zps-card-icon {
width: calc(var(--zps-card-h) - 30px);
height: calc(var(--zps-card-h) - 30px);
.jio-partners-scroll.jps-style-card .jps-card-icon {
width: calc(var(--jps-card-h) - 30px);
height: calc(var(--jps-card-h) - 30px);
min-width: 40px;
min-height: 40px;
overflow: hidden;
}
.zib-partners-scroll.zps-style-card .zps-img {
.jio-partners-scroll.jps-style-card .jps-img {
object-fit: cover;
border-radius: calc(var(--zps-card-radius) - 4px);
border-radius: calc(var(--jps-card-radius) - 4px);
width: 100%;
}
/* 纯 Logo 模式:高度固定、宽度自适应,图片保持原始比例 */
.zib-partners-scroll.zps-style-logo .zps-item {
.jio-partners-scroll.jps-style-logo .jps-item {
width: auto;
min-width: 0;
justify-content: center;
padding: 0 20px;
}
.zib-partners-scroll.zps-style-logo .zps-img {
height: calc(var(--zps-card-h) - 24px);
max-height: calc(var(--zps-card-h) - 24px);
.jio-partners-scroll.jps-style-logo .jps-img {
height: calc(var(--jps-card-h) - 24px);
max-height: calc(var(--jps-card-h) - 24px);
width: auto;
max-width: none;
filter: grayscale(40%);
transition: filter 0.25s ease, transform 0.25s ease;
}
.zib-partners-scroll.zps-style-logo .zps-item:hover .zps-img {
.jio-partners-scroll.jps-style-logo .jps-item:hover .jps-img {
filter: grayscale(0);
transform: scale(1.04);
}
/* 精简胶囊模式 */
.zib-partners-scroll.zps-style-chip .zps-item {
.jio-partners-scroll.jps-style-chip .jps-item {
min-height: 40px;
width: auto;
height: auto;
padding: 8px 14px;
}
.zib-partners-scroll.zps-card-bg.zps-style-chip .zps-item {
.jio-partners-scroll.jps-card-bg.jps-style-chip .jps-item {
padding: 8px 16px 8px 10px;
}
.zib-partners-scroll.zps-style-chip .zps-chip-icon .zps-img {
.jio-partners-scroll.jps-style-chip .jps-chip-icon .jps-img {
height: 22px;
border-radius: 4px;
}
.zib-partners-scroll.zps-card-bg.zps-style-chip .zps-chip-icon .zps-img {
border-radius: calc(var(--zps-card-radius) - 4px);
.jio-partners-scroll.jps-card-bg.jps-style-chip .jps-chip-icon .jps-img {
border-radius: calc(var(--jps-card-radius) - 4px);
}
.zib-partners-scroll.zps-style-chip .zps-chip-title {
.jio-partners-scroll.jps-style-chip .jps-chip-title {
max-width: 180px;
}
.zps-end-fade {
.jps-end-fade {
position: relative;
--zps-end-fade-color: var(--body-bg-color);
--jps-end-fade-color: var(--body-bg-color);
}
.zps-end-fade::before,
.zps-end-fade::after {
.jps-end-fade::before,
.jps-end-fade::after {
content: '';
z-index: 1;
position: absolute;
@@ -4547,48 +4547,48 @@ body:has(.modal.in) .float-btn,
width: 160px;
height: 100%;
}
.zps-end-fade::before {
.jps-end-fade::before {
left: -10px;
background: linear-gradient(to left, rgba(255, 255, 255, 0), var(--zps-end-fade-color) 90%);
background: linear-gradient(to left, rgba(255, 255, 255, 0), var(--jps-end-fade-color) 90%);
}
.zps-end-fade::after {
.jps-end-fade::after {
right: -10px;
background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--zps-end-fade-color) 90%);
background: linear-gradient(to right, rgba(255, 255, 255, 0), var(--jps-end-fade-color) 90%);
}
.jio-panel .zps-end-fade {
--zps-end-fade-color: var(--main-bg-color);
.jio-panel .jps-end-fade {
--jps-end-fade-color: var(--main-bg-color);
}
@keyframes zps-scroll-left {
@keyframes jps-scroll-left {
from {
transform: translate3d(0, 0, 0);
}
to {
transform: translate3d(var(--zps-shift, -50%), 0, 0);
transform: translate3d(var(--jps-shift, -50%), 0, 0);
}
}
@keyframes zps-scroll-right {
@keyframes jps-scroll-right {
from {
transform: translate3d(var(--zps-shift, -50%), 0, 0);
transform: translate3d(var(--jps-shift, -50%), 0, 0);
}
to {
transform: translate3d(0, 0, 0);
}
}
@media (max-width: 767px) {
.zib-partners-scroll {
--zps-card-w: 160px;
--zps-card-h: 70px;
.jio-partners-scroll {
--jps-card-w: 160px;
--jps-card-h: 70px;
}
.zib-partners-scroll.zps-style-logo .zps-item {
.jio-partners-scroll.jps-style-logo .jps-item {
padding: 0 12px;
}
.zps-end-fade::after {
.jps-end-fade::after {
width: 60px;
}
}
@media (prefers-reduced-motion: reduce) {
.zib-partners-scroll .zps-track {
.jio-partners-scroll .jps-track {
animation: none !important;
}
}
@@ -4810,7 +4810,7 @@ body:has(.modal.in) .float-btn,
line-height: 1.42857143;
}
.posts-nav-box .zib-widget {
.posts-nav-box .jio-widget-box {
clear: both;
margin-bottom: 20px;
padding: 15px;
@@ -5134,7 +5134,7 @@ body:has(.modal.in) .float-btn,
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}
/*-----zib.media-文件管理-图片上传---*/
/*-----媒体文件管理-图片上传---*/
.mini-media-my-box .drop-mask {
position: absolute;
background: rgba(33, 55, 81, 0.7);
@@ -5755,8 +5755,8 @@ body:has(.modal.in) .float-btn,
.payment-method-radio img {
height: 35px;
/* 抵消 bootstrap 全局 img{display:block;max-width:100%;height:auto}
(Jio bootstrap 将 BS3 .img-responsive 选择器组误并入了裸 img,
Zibll 的裸 img 不在该组):flex 压缩时 max-width:100% 会把图标
(本主题 bootstrap 将 BS3 .img-responsive 选择器组误并入了裸 img):
flex 压缩时 max-width:100% 会把图标
钳制到被压窄的项宽(实测 5 渠道 400px 弹窗图标被压成 16x35 细
条),flex:none 防不住 max-width,必须显式还原。 */
width: auto;
@@ -11210,7 +11210,7 @@ body.error404 {
margin-bottom: 30px;
}
.mobile-navbar .posts-nav-box .zib-widget {
.mobile-navbar .posts-nav-box .jio-widget-box {
background: var(--muted-border-color);
box-shadow: none;
}
@@ -11991,7 +11991,7 @@ body.error404 {
}
/* =============================================================================
* 销售页小工具(主题并入,源自 zibaut-access widgets.css)
* 销售页小工具(销售页访问控制相关样式并入)
* ============================================================================= */
/* =============================================================
@@ -14150,7 +14150,7 @@ body.error404 {
/*--------------OVER---over---------OVER---over---------OVER---over---------OVER---over-----------*/
/*--------------FA5 family-prefix compatibility---------FA5 family-prefix compatibility-------------*/
/* zibll-legacy "fa fab / fa far" double-prefix values beat FA5's own single-class
/* Legacy "fa fab / fa far" double-prefix values beat FA5's own single-class
declarations in the cascade, blanking brand icons and bolding regular ones. */
.fa.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
.fa.far{font-weight:400}