fix(header): unify top icon-card size and layout

Add a single always-loaded header-cards.css that normalizes the
顶部多功能组件图标卡片 geometry (equal-width cells, fixed 45px icon
badge, zibll mobile padding) across all pages, and enqueue it from
ScriptsPart1b. Remove the orphan header-components.css + subdirectory
that were never enqueued. Repoint the icon-card contract test at the
new stylesheet.
This commit is contained in:
2026-08-19 18:34:48 +08:00
parent e2b5018fc1
commit f7cedc7163
10 changed files with 147 additions and 1540 deletions
+143
View File
@@ -0,0 +1,143 @@
/* ============================================================
* Header icon cards — unified geometry (zibll 1:1)
*
* The top multi-function component ("顶部多功能组件") renders its icon
* cards through one path: aksrt_header_slide() →
* aksrt_icon_cover_card() (see inc/helpers/homepage/header-components.php
* and inc/helpers/aksrt-icon-cards.php). This file is the single source of
* truth for their size/layout, loaded after Zibll main.min.css on every
* page so cards stay identical across home / archive / single / search.
*
* DOM: .header-slider-card.container
* > (.zib-widget.padding-10 | div)
* > .flex.jse.flex-row.gutters-5.flex-col-sm-2
* > (.flex1 | .relative-h)
* > [.main-color] .icon-cover-card.aksrt-icon-cover-card.flex.ac.(zib-widget|padding-10)
* > .icon-cover-icon.badg.cir.(c-*|jb-*)[.radius4] (the badge)
* > .icon-cover-desc.ml10.flex1.px12-sm
* ============================================================ */
/* --- Equal-width cells + zibll gutters (both header wrapper aliases) --- */
.header-slider-card .flex,
.header-components-card .flex {
display: flex;
}
.header-slider-card .flex.jse,
.header-components-card .flex.jse,
.header-slider-card .jse,
.header-components-card .jse {
justify-content: space-evenly;
}
.header-slider-card .flex-row,
.header-components-card .flex-row {
flex-direction: row;
}
.header-slider-card .flex.ac,
.header-components-card .flex.ac,
.header-slider-card .ac,
.header-components-card .ac {
align-items: center;
}
.header-slider-card .gutters-5,
.header-components-card .gutters-5,
.header-slider-card .flex.jse.flex-row,
.header-components-card .flex.jse.flex-row {
margin: -5px;
}
.header-slider-card .gutters-5 > *,
.header-components-card .gutters-5 > *,
.header-slider-card .flex.jse.flex-row > *,
.header-components-card .flex.jse.flex-row > * {
padding: 5px !important;
box-sizing: border-box;
}
/* Higher-specificity scope selector wins over the single-post-only
* zibll-utilities.css `.flex1{flex:1 1 auto}` so every card is equal-width:
* zibll uses `flex:1; overflow:hidden`. */
.header-slider-card .flex1,
.header-components-card .flex1,
.header-slider-card .flex .flex1,
.header-components-card .flex .flex1 {
flex: 1 1 0;
overflow: hidden;
min-width: 0;
}
.header-slider-card .relative-h,
.header-components-card .relative-h {
position: relative;
height: 100%;
}
.header-slider-card,
.header-components-card {
position: relative;
margin-top: -40px;
z-index: 1;
width: 100%;
}
.header-slider-card .zib-widget,
.header-components-card .zib-widget {
margin-bottom: 0;
}
/* --- Card box: compact zibll proportions in every context --- */
.icon-cover-card.aksrt-icon-cover-card {
padding: 10px;
font-size: 16px;
line-height: 1.6;
height: 100%;
box-sizing: border-box;
}
/* --- Icon badge: fixed size so a custom (non-FA) icon cannot stretch it --- */
.icon-cover-card .icon-cover-icon {
display: flex;
align-items: center;
justify-content: center;
width: 45px;
height: 45px;
min-width: 45px;
font-size: 25px;
flex: 0 0 auto;
box-sizing: border-box;
}
.icon-cover-card .icon-cover-icon > img,
.icon-cover-card .icon-cover-icon > svg {
width: 1.6em;
height: 1.6em;
max-width: 1.6em;
max-height: 1.6em;
object-fit: contain;
}
/* --- Text column: equal truncation --- */
.icon-cover-card .icon-cover-desc {
min-width: 0;
}
/* --- Mobile: two columns + zibll padding overrides --- */
@media (max-width: 767px) {
.header-slider-card,
.header-components-card {
margin-top: -35px;
}
.header-slider-card .flex.flex-row.flex-col-sm-2,
.header-components-card .flex.flex-row.flex-col-sm-2 {
flex-wrap: wrap;
}
.header-slider-card .flex.flex-row.flex-col-sm-2 > *,
.header-components-card .flex.flex-row.flex-col-sm-2 > * {
flex-basis: 50%;
}
.header-slider-card .icon-cover-card.zib-widget,
.header-components-card .icon-cover-card.zib-widget {
padding: 10px;
}
.header-slider-card .icon-cover-card.padding-10,
.header-components-card .icon-cover-card.padding-10 {
padding: 2px;
}
}
-64
View File
@@ -1,64 +0,0 @@
@import url("header-components/base.css");
@import url("header-components/widget-device-visibility.css");
@import url("header-components/admin-hint.css");
@import url("header-components/dark-theme.css");
@import url("header-components/card-device-visibility.css");
@import url("header-components/search-keywords-row.css");
/* === homepage icon-card seams (must not rely solely on @import cache) === */
.header-slider-card .flex,
.header-components-card .flex { display: flex; }
.header-slider-card .flex.jse,
.header-components-card .flex.jse,
.header-slider-card .jse,
.header-components-card .jse { justify-content: space-evenly; }
.header-slider-card .flex-row,
.header-components-card .flex-row { flex-direction: row; }
.header-slider-card .flex.ac,
.header-components-card .flex.ac,
.header-slider-card .ac,
.header-components-card .ac { align-items: center; }
.header-slider-card .gutters-5,
.header-components-card .gutters-5,
.header-slider-card .flex.jse.flex-row,
.header-components-card .flex.jse.flex-row {
margin: -5px;
}
.header-slider-card .gutters-5 > *,
.header-components-card .gutters-5 > *,
.header-slider-card .flex.jse.flex-row > *,
.header-components-card .flex.jse.flex-row > * {
padding: 5px !important;
box-sizing: border-box;
}
.header-slider-card .flex1,
.header-components-card .flex1,
.header-slider-card .flex .flex1,
.header-components-card .flex .flex1 {
flex: 1 1 0;
overflow: hidden;
min-width: 0;
}
.header-slider-card,
.header-components-card {
position: relative;
margin-top: -40px;
z-index: 1;
width: 100%;
}
.header-slider-card.container,
.header-components-card.container {
width: 100%;
max-width: var(--container, var(--mian-max-width, 1200px));
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
box-sizing: border-box;
}
.filter-blur .header-slider-card .zib-widget,
.filter-blur .header-components-card .zib-widget {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
background: var(--blur-bg, rgba(255, 255, 255, 0.75));
}
@@ -1,76 +0,0 @@
/* Admin hint */
.header-components__admin-hint {
margin: 16px auto 0;
padding: 8px 14px;
border-radius: var(--radius-pill, 999px);
background: rgba(0, 0, 0, 0.32);
color: rgba(255, 255, 255, 0.95);
font: 500 13px/1.4 var(--font-ui);
display: inline-flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
justify-content: center;
}
.header-components__admin-link {
color: #fff;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 2px;
font-weight: 600;
}
.header-components__admin-link:hover {
color: #ffe082;
}
/* Legacy form-class helpers (unused by zibll-aligned search; kept for admin-only markup) */
.header-components-search__form {
display: flex;
align-items: center;
background: rgba(255, 255, 255, 0.95);
border-radius: 50px;
padding: 4px 4px 4px 20px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
backdrop-filter: blur(10px);
transition: box-shadow 0.3s ease, transform 0.2s ease;
}
.header-components-search__form:focus-within {
box-shadow: 0 6px 30px rgba(0, 0, 0, 0.2);
transform: translateY(-1px);
}
.header-components-search__icon {
color: var(--color-ink-3, #999);
font-size: 16px;
margin-right: 12px;
flex-shrink: 0;
}
.header-components-search__input {
flex: 1;
border: none !important;
background: transparent !important;
box-shadow: none !important;
font-size: 15px;
padding: 10px 0;
color: var(--color-ink);
}
.header-components-search__input:focus {
outline: none;
}
.header-components-search__input::placeholder {
color: var(--color-ink-4, #aaa);
}
.header-components-search__btn {
border-radius: 50px;
padding: 10px 24px;
font-size: 14px;
font-weight: 500;
flex-shrink: 0;
}
@@ -1,192 +0,0 @@
/* ============================================================
* AKSRT Header Slider — v6.0 Zibll-Aligned
*
* Three layers:
* - Layer 1: Swiper full-bleed background
* - Layer 2: Search overlay (before_html + form + after_html)
* - Layer 3: Icon cards (negative margin)
*
* Title/subtitle for the hero live in .header-slider-search-more.before
* (document flow with the search form). .slide-text is decorative only.
* ============================================================ */
/* ============================================================
* .new-swiper base (zibll)
* ============================================================ */
.aksrt-slider-wrapper {
position: relative;
margin-bottom: 20px;
border-radius: var(--main-radius, var(--radius, 8px));
overflow: hidden;
box-shadow: 0 0 10px var(--main-shadow, rgba(116, 116, 116, 0.08));
}
.new-swiper {
position: relative;
overflow: hidden;
--pc-height: auto;
--m-height: auto;
}
.new-swiper .swiper-wrapper {
height: var(--pc-height);
}
.new-swiper .swiper-slide {
position: relative;
overflow: hidden;
}
.new-swiper .swiper-slide img {
width: 100%;
height: 100%;
object-fit: cover;
}
.new-swiper .pagination-thumbnail-item {
width: 60px;
height: 40px;
border-radius: 4px;
overflow: hidden;
opacity: 0.5;
transition: opacity 0.3s, border-color 0.3s;
border: 2px solid transparent;
cursor: pointer;
display: inline-block;
}
.new-swiper .pagination-thumbnail-item img {
width: 100%;
height: 100%;
object-fit: cover;
}
.new-swiper .pagination-thumbnail-item-active {
opacity: 1;
border-color: #fff;
}
.new-swiper [data-swiper-parallax] {
transition: none;
}
.new-swiper.scale-height .swiper-wrapper {
height: 0;
padding-bottom: var(--scale-ratio, 45%);
}
/* ============================================================
* Slide text — decorative layer (zibll .s-desc / .slide-text)
* Main hero title is NOT here; it is search before_html.
* ============================================================ */
.aksrt-slide-text,
.s-desc,
.slide-text {
position: absolute;
color: #fff;
bottom: 0;
padding: 1.8em 2.5em;
background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), transparent);
width: 100%;
font-size: 16px;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
z-index: 1;
border-radius: 0 0 var(--main-radius, 8px) var(--main-radius, 8px);
}
/* zibll: .slide-text unsets bottom bar, uses abs-center placement */
.aksrt-slide-text,
.slide-text:not(.s-desc) {
background: unset;
bottom: unset;
--text-size-pc: 20px;
font-size: var(--text-size-pc);
opacity: 1;
transition: opacity 1s;
}
.aksrt-slide-text__title,
.slide-title {
font-family: var(--font-ui);
font-size: inherit;
font-weight: 600;
margin: 0;
line-height: 1.35;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.s-desc .aksrt-slide-text__title,
.s-desc .slide-title {
font-size: 16px;
font-weight: normal;
}
.aksrt-slide-text__desc,
.slide-desc {
margin: 0.6em 0 0;
line-height: 1.5;
font-size: 60%;
color: rgba(255, 255, 255, 0.95);
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.scale-height {
--scale-height: 40%;
--pc-height: 100%;
--m-height: 100%;
width: 100%;
height: auto;
aspect-ratio: 5 / 2;
padding-bottom: 0;
}
@supports not (aspect-ratio: 1 / 1) {
.scale-height {
height: 0;
padding-bottom: var(--scale-height);
box-sizing: content-box;
aspect-ratio: auto;
}
}
.scale-height .swiper-wrapper,
.scale-height .swiper-slide img {
position: absolute;
}
@media (max-width: 767px) {
.new-swiper .swiper-wrapper {
height: var(--m-height);
}
.slide-text:not(.s-desc) {
--text-size-m: 13px;
font-size: var(--text-size-m);
}
}
/* ============================================================
* Container
* ============================================================ */
.header-slider-container,
.header-components-container {
position: relative;
isolation: isolate;
width: 100%;
margin-bottom: 20px;
}
/* Device visibility for hero/banner slides */
@media (max-width: 767.98px) {
.hero-slide--pc-only,
.banner-slide--pc-only {
display: none !important;
}
}
@media (min-width: 768px) {
.hero-slide--mobile-only,
.banner-slide--mobile-only {
display: none !important;
}
}
@@ -1,175 +0,0 @@
/* ===== Card device visibility ===== */
@media (min-width: 768px) {
.hide-cards-pc .header-components-card { display: none; }
}
@media (max-width: 767px) {
.hide-cards-mobile .header-components-card { display: none; }
}
.theme-dark .header-components-search .line-form,
html.dark .header-components-search .line-form {
background: rgba(30, 30, 30, 0.86);
color: #ddd;
}
/* zibll base padding; leave room for abs-right submit */
.header-components-search .search-input-text,
.header-slider-search .search-input-text {
position: relative;
padding: 5px 42px 5px 10px;
}
.header-components-search .line-form-input {
width: 100%;
padding: 0.65em 0 0.2em 0;
font-size: 16px;
border: none !important;
outline: 0 !important;
background: transparent !important;
box-shadow: none !important;
opacity: 0.92;
color: var(--color-ink);
}
.theme-dark .header-components-search .line-form-input,
html.dark .header-components-search .line-form-input {
color: #f2f2f2;
}
.header-components-search .line-form-input::placeholder {
color: transparent;
}
.header-components-search .line-form-line,
.header-components-search .line-form-line::before {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 1px;
transition: 0.4s;
background: rgba(255, 255, 255, 0.34);
}
.header-components-search .line-form-line::before {
content: "";
width: 0;
background: rgba(255, 255, 255, 0.92);
}
.header-components-search .line-form-input:focus ~ .line-form-line::before,
.header-components-search .line-form-input:not(:placeholder-shown) ~ .line-form-line::before {
width: 100%;
}
.header-components-search .scale-placeholder {
position: absolute;
left: 0;
bottom: 0.72em;
opacity: 0.68;
transition: transform 0.2s, font-size 0.2s, color 0.2s, opacity 0.2s;
pointer-events: none;
transform-origin: left top;
}
.header-components-search .scale-placeholder.is-focus,
.header-components-search .line-form-input:focus ~ .scale-placeholder,
.header-components-search .line-form-input:not(:placeholder-shown) ~ .scale-placeholder {
transform: translateY(-1.45em);
font-size: 12px;
color: #fff;
opacity: 0.92;
}
/* zibll: .header-slider-search .line-form .abs-right { margin-top:0; margin-right:-6px; } */
.header-components-search .line-form .abs-right,
.header-slider-search .line-form .abs-right {
position: absolute;
right: 0.7em;
top: 50%;
transform: translateY(-50%);
margin-top: 0;
margin-right: -6px;
z-index: 1;
}
.header-components-search__submit {
width: 34px;
height: 34px;
border: none;
border-radius: 999px;
background: var(--color-primary, var(--color-primary));
color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
}
.header-components-search__submit svg {
width: 15px;
height: 15px;
}
/* Search add-ons: category dropdown */
.header-components-search__cat {
appearance: none;
-webkit-appearance: none;
background: transparent;
border: none;
border-right: 1px solid rgba(255, 255, 255, 0.25);
color: inherit;
font-size: 13px;
padding: 0 12px;
min-width: 90px;
max-width: 140px;
cursor: pointer;
outline: none;
height: 40px;
}
.header-components-search__cat option {
color: #333;
background: #fff;
}
/* Search add-ons: type switcher */
.header-components-search__types {
display: flex;
align-items: center;
gap: 4px;
padding: 0 8px;
border-right: 1px solid rgba(255, 255, 255, 0.25);
}
.header-components-search__type-label {
display: inline-flex;
align-items: center;
cursor: pointer;
font-size: 12px;
padding: 3px 8px;
border-radius: 100px;
transition: background 0.2s, color 0.2s;
white-space: nowrap;
}
.header-components-search__type-radio {
display: none;
}
.header-components-search__type-radio:checked + .header-components-search__type-text {
color: var(--color-primary, #4a90d9);
font-weight: 600;
}
/* has-addons: pill adjustments */
.line-form.has-addons {
display: flex;
align-items: center;
}
.line-form.has-addons .search-input-text {
flex: 1;
min-width: 0;
}
@@ -1,174 +0,0 @@
/* Dark theme */
.theme-dark .header-components-search__form,
html.dark .header-components-search__form,
body.dark-theme .header-components-search__form {
background: rgba(30, 30, 30, 0.9);
}
.theme-dark .header-components-search__input,
html.dark .header-components-search__input,
body.dark-theme .header-components-search__input {
color: #eee;
}
/* ============================================================
* Layer 3: Icon cards — 1:1 zibll header-slider-card
* DOM: .header-slider-card.container > (.zib-widget.padding-10|div)
* > .flex.jse.flex-row.gutters-5.flex-col-sm-2
* > (.flex1|.relative-h) > [.main-color >] .icon-cover-card.flex.ac.(zib-widget|padding-10)
*
* IMPORTANT: gutters/flex helpers must live here (not only zibll-utilities.css).
* zibll-utilities was single-post-only, so homepage cards stuck together while
* other pages that load utilities showed 10px gaps — exact user screenshot bug.
* ============================================================ */
/* Self-contained zibll flex + gutters for header cards (page-type independent) */
.header-slider-card .flex,
.header-components-card .flex {
display: flex;
}
.header-slider-card .flex.jse,
.header-components-card .flex.jse,
.header-slider-card .jse,
.header-components-card .jse {
justify-content: space-evenly;
}
.header-slider-card .flex-row,
.header-components-card .flex-row {
flex-direction: row;
}
.header-slider-card .flex.ac,
.header-components-card .flex.ac,
.header-slider-card .ac,
.header-components-card .ac {
align-items: center;
}
/* zibll: .gutters-5 { margin:-5px } > * { padding:5px } → 10px visual gap.
* Use both gutters model AND flex gap so homepage (which used to miss
* zibll-utilities) and any future cascade zero-padding still show seams. */
.header-slider-card .gutters-5,
.header-components-card .gutters-5,
.header-slider-card .flex.jse.flex-row,
.header-components-card .flex.jse.flex-row {
margin: -5px;
gap: 0; /* spacing comes from child padding to match zibll exactly */
}
.header-slider-card .gutters-5 > *,
.header-components-card .gutters-5 > *,
.header-slider-card .flex.jse.flex-row > *,
.header-components-card .flex.jse.flex-row > * {
padding: 5px !important;
box-sizing: border-box;
}
.header-slider-card .flex1,
.header-components-card .flex1,
.header-slider-card .flex .flex1,
.header-components-card .flex .flex1 {
flex: 1 1 0;
overflow: hidden;
min-width: 0;
}
.header-slider-card .relative-h,
.header-components-card .relative-h {
position: relative;
height: 100%;
}
.header-slider-card,
.header-components-card {
position: relative;
margin-top: -40px;
z-index: 1;
/* Sit in normal flow after the slide shell; container is full-bleed */
width: 100%;
}
/* Ensure .container max-width + horizontal padding match site main (zibll .container) */
.header-slider-card.container,
.header-components-card.container {
width: 100%;
max-width: var(--container, var(--mian-max-width, 1200px));
margin-left: auto;
margin-right: auto;
padding-left: 15px;
padding-right: 15px;
box-sizing: border-box;
}
.header-slider-card .zib-widget,
.header-components-card .zib-widget {
margin-bottom: 0;
}
/* zibll filter-blur glass on card surfaces + search form */
.filter-blur .header-slider-search .line-form,
.filter-blur .header-components-search .line-form,
.filter-blur .header-slider-card .zib-widget,
.filter-blur .header-components-card .zib-widget {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
}
.filter-blur .header-slider-card .zib-widget,
.filter-blur .header-components-card .zib-widget {
background: var(--blur-bg, rgba(255, 255, 255, 0.75));
}
.theme-dark .filter-blur .header-slider-card .zib-widget,
html.dark .filter-blur .header-slider-card .zib-widget,
body.dark-theme .filter-blur .header-slider-card .zib-widget,
.theme-dark .filter-blur .header-components-card .zib-widget,
html.dark .filter-blur .header-components-card .zib-widget,
body.dark-theme .filter-blur .header-components-card .zib-widget {
background: var(--blur-bg, rgba(30, 30, 30, 0.75));
}
/* Device-split blur (AKSRT extension of zibll filter-blur) */
@media (min-width: 768px) {
.has-blur-pc .header-slider-card .zib-widget,
.has-blur-pc .header-components-card .zib-widget {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
background: var(--blur-bg, rgba(255, 255, 255, 0.75));
}
.has-blur-pc .header-components-search .line-form,
.has-blur-pc .header-slider-search .line-form {
background: rgba(255, 255, 255, 0.75);
}
.theme-dark .has-blur-pc .header-slider-card .zib-widget,
html.dark .has-blur-pc .header-slider-card .zib-widget,
.theme-dark .has-blur-pc .header-components-card .zib-widget,
html.dark .has-blur-pc .header-components-card .zib-widget {
background: var(--blur-bg, rgba(30, 30, 30, 0.75));
}
}
@media (max-width: 767px) {
.has-blur-mobile .header-slider-card .zib-widget,
.has-blur-mobile .header-components-card .zib-widget {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
background: var(--blur-bg, rgba(255, 255, 255, 0.75));
}
.has-blur-mobile .header-components-search .line-form,
.has-blur-mobile .header-slider-search .line-form {
background: rgba(255, 255, 255, 0.75);
}
.theme-dark .has-blur-mobile .header-slider-card .zib-widget,
html.dark .has-blur-mobile .header-slider-card .zib-widget,
.theme-dark .has-blur-mobile .header-components-card .zib-widget,
html.dark .has-blur-mobile .header-components-card .zib-widget {
background: var(--blur-bg, rgba(30, 30, 30, 0.75));
}
.header-slider-card .icon-cover-card.zib-widget {
padding: 10px;
}
.header-slider-card .icon-cover-card.padding-10 {
padding: 2px;
}
.header-slider-card,
.header-components-card {
margin-top: -35px;
}
}
@@ -1,463 +0,0 @@
/* Search keywords row + zibll mobile search top offsets */
.header-components-search__keywords,
.header-slider-search .search-keywords {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 10px;
justify-content: center;
text-align: center;
}
/* zibll: .header-slider-search .search_keywords, .header-slider-search .search-type-but-average .but */
.header-components-search__kw-tag,
.header-slider-search .search_keywords,
.header-slider-search .search-keywords .but,
.header-slider-search .search-type-but-average .but {
--this-bg: rgba(255, 255, 255, 0.8);
--this-color: #888;
display: inline-block;
padding: 3px 5px;
font-size: 0.85em;
line-height: 1.4;
border-radius: 100px;
background: var(--this-bg);
color: var(--this-color);
text-decoration: none;
transition: background 0.2s;
}
.header-slider-search .search-type-but-average .but.active {
--this-bg: var(--focus-color, var(--color-primary));
--this-color: #fff;
}
.filter-blur .header-slider-search .search_keywords,
.filter-blur .header-slider-search .search-keywords .but,
.filter-blur .header-slider-search .search-type-but-average .but,
.filter-blur .header-components-search__kw-tag {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
}
.header-components-search__kw-tag:hover,
.header-slider-search .search_keywords:hover,
.header-slider-search .search-keywords .but:hover {
background: rgba(255, 255, 255, 0.95);
}
/* Hide default keywords title row inside hero overlay (zibll header search has no title line). */
.header-slider-search .search-keywords > p {
display: none;
}
.header-slider-search .search-keywords {
text-align: center;
}
/* zibll mobile (max-width: 767px) search / card offsets */
@media (max-width: 767px) {
.header-slider-container .new-swiper.slide-header .swiper-wrapper,
.new-swiper.slide-index.slide-header .swiper-wrapper {
height: var(--m-height);
}
.header-components:not(.new-swiper) {
height: var(--m-height);
}
.header-components--gradient {
height: var(--m-height);
}
.header-slider-search,
.header-components-search,
.header-slider-search.abs-center,
.header-components-search.abs-center {
font-size: 12px;
top: calc(50% - 40px);
width: 100%;
max-width: 840px;
padding: 0 20px;
}
.card-1 .header-slider-search,
.card-1 .header-components-search,
.card-2 .header-slider-search,
.card-2 .header-components-search {
top: calc(50% - 1px);
}
.card-5 .header-slider-search,
.card-5 .header-components-search,
.card-6 .header-slider-search,
.card-6 .header-components-search {
top: calc(50% - 83px);
}
.card-7 .header-slider-search,
.card-7 .header-components-search,
.card-8 .header-slider-search,
.card-8 .header-components-search {
top: calc(50% - 120px);
}
.header-slider-search-more.before {
margin-bottom: 1em;
}
.header-slider-search .line-form,
.header-components-search .line-form {
font-size: 14px;
padding: 4px 12px;
}
.header-slider-search .scale-placeholder.is-focus,
.header-slider-search .line-form-input:focus ~ .scale-placeholder,
.header-components-search .scale-placeholder.is-focus,
.header-components-search .line-form-input:focus ~ .scale-placeholder {
transform: translateY(-32px);
font-size: 12px;
color: #fff;
}
.header-slider-card,
.header-components-card {
margin-top: -35px;
}
.header-slider-card .icon-cover-card.zib-widget {
padding: 10px;
}
.header-slider-card .icon-cover-card.padding-10 {
padding: 2px;
}
/* zibll ~640px: slide-header text padding 52px */
.header-components.slide-header .slide-text,
.header-components.slide-header .header-components__content.slide-text {
padding-top: 52px;
}
.s-desc,
.slide-text {
padding: 0.7em;
}
}
@media (max-width: 640px) {
.header-components.slide-header .slide-text,
.header-components.slide-header .header-components__content.slide-text {
padding-top: 52px;
}
}
/* Nav transparent helpers (when hero is present) */
.site-nav.nav-transparent {
background-color: transparent;
border-bottom-color: transparent;
color: #fff;
}
.site-nav.nav-transparent .site-brand,
.site-nav.nav-transparent .site-brand__name {
color: #fff;
}
.site-nav.nav-transparent .icon-btn {
color: rgba(255, 255, 255, 0.9);
}
.site-nav.nav-transparent .icon-btn:hover {
background: rgba(255, 255, 255, 0.15);
color: #fff;
}
.site-nav.nav-transparent ul.nav-desktop a {
color: rgba(255, 255, 255, 0.85);
}
.site-nav.nav-transparent ul.nav-desktop a:hover {
color: #fff;
background: rgba(255, 255, 255, 0.15);
}
.site-nav.nav-transparent ul.nav-desktop .current-menu-item > a,
.site-nav.nav-transparent ul.nav-desktop .current_page_item > a {
background: rgba(255, 255, 255, 0.2);
color: #fff;
}
.site-nav.nav-transparent .nav-auth .btn-outline {
border-color: rgba(255, 255, 255, 0.6);
color: #fff;
}
.site-nav.nav-transparent .nav-auth .btn-outline:hover {
background: rgba(255, 255, 255, 0.15);
border-color: #fff;
}
.site-nav.nav-transparent .nav-user__toggle {
border-color: rgba(255, 255, 255, 0.5);
}
.site-nav.nav-transparent.is-scrolled {
background-color: var(--surface-page);
border-bottom-color: var(--color-line);
color: var(--color-ink);
}
.site-nav.nav-transparent.is-scrolled .site-brand,
.site-nav.nav-transparent.is-scrolled .site-brand__name {
color: var(--color-ink);
}
.site-nav.nav-transparent.is-scrolled .icon-btn {
color: var(--color-ink-3);
}
.site-nav.nav-transparent.is-scrolled ul.nav-desktop a {
color: var(--color-ink-3);
}
.site-nav.nav-transparent.is-scrolled .nav-auth .btn-outline {
border-color: var(--color-line);
color: var(--color-ink);
}
.site-nav.nav-transparent.is-scrolled .nav-user__toggle {
border-color: var(--color-line);
}
/* Swiper nav / pagination (header) */
.header-components .swiper-button-prev,
.header-components .swiper-button-next {
width: 30px;
height: 40px;
color: #fff;
text-shadow: 0 0 6px #444;
opacity: 0;
transition: opacity 0.3s, background-color 0.3s;
z-index: 10;
}
.header-components .swiper-button-prev::after,
.header-components .swiper-button-next::after {
font-size: 16px;
font-weight: 700;
}
.header-components:hover .swiper-button-prev,
.header-components:hover .swiper-button-next {
opacity: 0.8;
}
.header-components .swiper-button-prev:hover,
.header-components .swiper-button-next:hover {
opacity: 1;
background-color: rgba(0, 0, 0, 0.3);
}
.header-components .swiper-pagination-bullet {
width: 10px;
height: 10px;
background: transparent;
border: 2px solid rgba(255, 255, 255, 0.6);
opacity: 0.7;
border-radius: 20px;
transition: 0.4s;
}
.header-components .swiper-pagination-bullet-active {
background: #fff;
border-color: #fff;
opacity: 1;
}
@media (max-width: 640px) {
.header-components .swiper-button-prev,
.header-components .swiper-button-next {
display: none;
}
}
/* ============================================================
* Banner Module — zibll .s-desc style (unchanged geometry)
* ============================================================ */
.banner-module {
position: relative;
width: 100%;
border-radius: var(--main-radius, var(--radius, 8px));
overflow: hidden;
box-shadow: 0 0 10px var(--main-shadow, rgba(116, 116, 116, 0.08));
margin-bottom: 20px;
background: var(--main-bg-color, var(--surface-1));
}
.banner-module__swiper {
position: relative;
width: 100%;
height: auto;
aspect-ratio: 5 / 2;
overflow: hidden;
}
@supports not (aspect-ratio: 1 / 1) {
.banner-module__swiper {
height: 0;
padding-bottom: 40%;
box-sizing: content-box;
}
}
.banner-module__swiper .swiper-wrapper {
position: absolute;
inset: 0;
width: 100%;
height: 100% !important;
}
.banner-module__swiper .swiper-slide {
position: relative;
overflow: hidden;
cursor: pointer;
width: 100%;
height: 100% !important;
}
.banner-module__slide-bg {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.banner-module__slide-bg img,
.banner-module__slide-bg .fit-cover {
display: block;
width: 100%;
height: 100%;
max-width: none;
object-fit: cover;
border-radius: 0;
}
.banner-module__slide-fallback {
width: 100%;
height: 100%;
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-active, var(--color-primary-dark)));
}
.banner-module__slide-overlay {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: auto;
height: 45%;
background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), transparent);
pointer-events: none;
border-radius: 0 0 var(--main-radius, 8px) var(--main-radius, 8px);
z-index: 1;
}
.banner-module__content {
position: absolute;
bottom: 0;
left: 0;
right: 0;
z-index: 2;
color: #fff;
max-width: none;
padding: 1.8em 2.5em;
font-size: 16px;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.banner-module__title {
font-family: var(--font-ui);
font-size: 16px;
font-weight: normal;
margin: 0 0 4px;
line-height: 1.4;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.banner-module__subtitle {
font-size: 14px;
margin: 0;
opacity: 0.95;
line-height: 1.5;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.banner-module .swiper-button-prev,
.banner-module .swiper-button-next {
width: 30px;
height: 40px;
border-radius: 0;
background: transparent;
color: #fff;
text-shadow: 0 0 6px #444;
opacity: 0;
pointer-events: none;
z-index: 10;
transition: opacity 0.3s, background-color 0.3s;
}
.banner-module .swiper-button-prev::after,
.banner-module .swiper-button-next::after {
font-size: 16px;
font-weight: 700;
}
.banner-module:hover .swiper-button-prev,
.banner-module:hover .swiper-button-next {
opacity: 0.8;
pointer-events: auto;
}
.banner-module .swiper-button-prev:hover,
.banner-module .swiper-button-next:hover {
opacity: 1;
background-color: rgba(0, 0, 0, 0.3);
transform: none;
}
@media (max-width: 767px) {
.banner-module {
border-radius: var(--main-radius, 8px);
}
.banner-module__swiper {
aspect-ratio: 2 / 1;
height: auto;
}
@supports not (aspect-ratio: 1 / 1) {
.banner-module__swiper {
height: 0;
padding-bottom: 50%;
box-sizing: content-box;
}
}
.banner-module__content {
padding: 1em 1.2em;
font-size: 14px;
}
.banner-module__title {
font-size: 14px;
}
.banner-module .swiper-button-prev,
.banner-module .swiper-button-next {
display: none;
}
}
@@ -1,393 +0,0 @@
/* Widget device visibility */
@media (max-width: 767.98px) {
.aksrt-widget--mobile-only {
display: none !important;
}
}
@media (min-width: 768px) {
.aksrt-widget--pc-only {
display: none !important;
}
}
/* Fixed homepage hero under-nav is owned by Zibll main.css. */
/* ============================================================
* Layer 1: Swiper shell — zibll .new-swiper.slide-header
* Height lives on CSS vars of .new-swiper; wrapper height = --pc-height / --m-height
* ============================================================ */
.header-slider-container .new-swiper.slide-header,
.new-swiper.slide-index.slide-header {
position: relative;
width: 100%;
overflow: hidden;
padding-top: 0;
border-radius: 0;
background: #111;
/* Defaults if PHP did not set style vars */
--pc-height: 550px;
--m-height: 280px;
}
.header-slider-container .new-swiper.slide-header .swiper-wrapper,
.new-swiper.slide-index.slide-header .swiper-wrapper {
height: var(--pc-height);
display: flex;
}
.header-slider-container .new-swiper.slide-header .swiper-slide,
.new-swiper.slide-index.slide-header .swiper-slide {
position: relative;
height: 100%;
overflow: hidden;
width: 100%;
flex-shrink: 0;
}
/* zibll: slide media fill wrapper height */
.header-slider-container .new-swiper.slide-header .swiper-slide img,
.header-slider-container .new-swiper.slide-header .swiper-slide video,
.new-swiper.slide-index.slide-header .swiper-slide img,
.new-swiper.slide-index.slide-header .swiper-slide video {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 0 !important;
display: block;
}
.header-slider-container .new-swiper.slide-header .swiper-slide > a,
.header-slider-container .new-swiper.slide-header .swiper-slide > span,
.new-swiper.slide-index.slide-header .swiper-slide > a,
.new-swiper.slide-index.slide-header .swiper-slide > span {
display: block;
width: 100%;
height: 100%;
position: relative;
}
/* Keep legacy .header-components shell for gradient fallback only */
.header-components:not(.new-swiper) {
position: relative;
width: 100%;
--pc-height: 550px;
--m-height: 280px;
height: var(--pc-height);
max-height: none;
overflow: hidden;
background: #111;
}
.header-components.slide-header:not(.new-swiper) {
padding-top: 0;
border-radius: 0;
}
/* zibll: .slide-header .slide-text { padding-top: 70px; } — nav clearance only */
.header-components.slide-header .slide-text,
.header-components.slide-header .header-components__content.slide-text {
padding-top: 70px;
}
/* Gradient fallback */
.header-components--gradient {
background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-active, var(--color-primary-dark)) 100%);
display: block;
position: relative;
height: var(--pc-height);
}
.header-components--gradient::before {
content: "";
position: absolute;
inset: 0;
background: radial-gradient(ellipse 80% 60% at 20% 20%, rgba(255, 255, 255, 0.15), transparent),
radial-gradient(ellipse 50% 50% at 80% 80%, rgba(0, 0, 0, 0.2), transparent);
pointer-events: none;
}
.header-components:not(.new-swiper) .swiper-wrapper {
position: absolute;
inset: 0;
height: 100%;
width: 100%;
}
.header-components:not(.new-swiper) .swiper-slide {
position: relative;
height: 100%;
overflow: hidden;
cursor: pointer;
}
/* Legacy BEM slide bg — only when old markup still present */
.header-components__slide-bg {
position: absolute;
inset: 0;
overflow: hidden;
}
.header-components__slide-bg img,
.header-components__slide-bg .fit-cover {
width: 100%;
height: 100%;
object-fit: cover;
}
.header-components__slide-fallback {
width: 100%;
height: 100%;
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
}
.header-components__video {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 0;
}
.header-components__layer {
position: absolute;
inset: 0;
background-size: cover;
background-repeat: no-repeat;
background-position: center;
pointer-events: none;
}
.header-components__layer--free-size {
background-size: auto;
}
.header-components__layer--parallax {
will-change: transform, opacity;
opacity: var(--layer-parallax-opacity, 0.6);
transform: translateY(calc(var(--scroll-y, 0) * var(--layer-parallax-scale, 0.3) * 1px));
}
/* Text parallax — keep abs-center vertical model (translateY only when abs-center is full-width) */
.has-text-parallax {
will-change: transform;
}
.header-components__content[style*="--hero-text-size-pc"] .slide-title,
.header-components__content[style*="--text-size-pc"] .slide-title {
font-size: inherit;
}
.header-components__slide-overlay {
position: absolute;
inset: 0;
background: linear-gradient(
to bottom,
rgba(0, 0, 0, 0.05) 0%,
rgba(0, 0, 0, 0.12) 55%,
rgba(0, 0, 0, 0.28) 100%
);
z-index: 1;
pointer-events: none;
}
/* Bottom-bar .s-desc mode */
.header-components__content.s-desc,
.header-components__content.slide-text.s-desc {
top: auto;
bottom: 0;
left: 0;
right: 0;
transform: none;
width: 100%;
max-width: none;
text-align: left;
padding: 1.8em 2.5em;
background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), transparent);
border-radius: 0 0 var(--main-radius, 8px) var(--main-radius, 8px);
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
font-size: 16px;
}
.header-components__content.s-desc .header-components__title,
.header-components__content.s-desc .slide-title {
font-size: 16px;
font-weight: normal;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
letter-spacing: 0;
}
.header-components__content.slide-text {
background: unset;
}
/* ============================================================
* Layer 2: Search — zibll .header-slider-search
* Full-width abs-center + fine-tuned top (NOT point-centered).
* Title/subtitle are in .header-slider-search-more.before (flow).
* ============================================================ */
.header-slider-search.abs-center,
.header-components-search.abs-center {
position: absolute;
left: 0;
right: 0;
width: 100%;
top: calc(50% - 10px);
transform: translateY(-50%);
z-index: 2;
margin: auto;
max-width: 840px;
padding: 0 20px;
font-size: 17px;
color: #fff;
box-sizing: border-box;
}
.header-slider-search,
.header-components-search {
max-width: 840px;
margin: auto;
padding: 0 20px;
font-size: 17px;
top: calc(50% - 10px);
z-index: 2;
}
.card-0 .header-slider-search,
.card-0 .header-components-search {
top: calc(50% + 20px);
}
.header-slider-search .search-input,
.header-components-search .search-input {
max-width: 800px;
margin: 0 auto;
}
.header-slider-search-more {
color: #fff;
}
.header-slider-search-more.before {
margin-bottom: 1.8em;
}
.header-slider-search .search-form,
.header-components-search .search-form {
margin: 0;
display: block;
background: transparent;
border-radius: 0;
padding: 0;
box-shadow: none;
-webkit-backdrop-filter: none;
backdrop-filter: none;
transform: none;
}
.header-slider-search .line-form,
.header-components-search .line-form {
background: rgba(255, 255, 255, 0.8);
border-radius: 100px;
padding: 0.5em 1.2em;
z-index: 1;
color: #555;
border: none;
box-shadow: none;
position: relative;
}
.has-blur-pc .header-slider-search .line-form,
.has-blur-mobile .header-slider-search .line-form,
.filter-blur .header-slider-search .line-form,
.has-blur-pc .header-components-search .line-form,
.has-blur-mobile .header-components-search .line-form,
.filter-blur .header-components-search .line-form {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
}
.header-slider-search .line-form .icon,
.header-slider-search .line-form a,
.header-components-search .line-form .icon,
.header-components-search .line-form a {
color: #555;
}
/* ============================================================
* Layer 3: Icon cards — margin-top:-40px (zibll)
* ============================================================ */
.header-slider-card,
.header-components-card {
position: relative;
margin-top: -40px;
z-index: 1;
}
.header-components-card .zib-widget,
.header-components-card .aksrt-theme-box,
.header-components-card .icon-cover-card {
margin-bottom: 0;
}
.has-blur-pc .header-components-card .zib-widget,
.has-blur-pc .header-components-card .aksrt-theme-box,
.has-blur-mobile .header-components-card .zib-widget,
.filter-blur .header-components-card .zib-widget {
-webkit-backdrop-filter: saturate(5) blur(20px);
backdrop-filter: saturate(5) blur(20px);
background: var(--blur-bg);
}
.header-components.slide-header .swiper-slide img,
.header-components.slide-header .header-components__slide-bg img {
border-radius: 0 !important;
}
/* Decorative slide text content (not the main hero stack) */
.header-components__content.slide-text:not(.s-desc) {
/* Placement comes from .abs-center + optional alignment modifiers */
z-index: 1;
color: #fff;
max-width: none;
width: 100%;
}
.header-components__title,
.header-components .slide-title {
font-family: var(--font-ui);
font-weight: 600;
margin: 0;
line-height: 1.35;
letter-spacing: 0;
color: #fff;
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.header-components__subtitle,
.header-components .slide-desc {
margin: 0.6em 0 0;
line-height: 1.5;
color: rgba(255, 255, 255, 0.95);
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
.header-components__description {
font-size: 0.85em;
margin: 0.4em 0 0;
line-height: 1.5;
color: rgba(255, 255, 255, 0.85);
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
}
/* zibll: header-slider-search .search-input-text .line-form-line { display:none } */
.header-slider-search .search-input-text .line-form-line,
.header-components-search .search-input-text .line-form-line {
display: none;
}
.header-slider-search .search-type-but-average {
margin-bottom: 2em;
}
+1
View File
@@ -106,6 +106,7 @@ trait ScriptsPart1b {
// AKSRT domain styles load after Zibll main.css. The old aggregate is
// intentionally not used because it contains the removed navigation CSS.
$enqueue_module('base');
$enqueue_module('header-cards');
$enqueue_module('card-primitives');
$enqueue_module('overlay-primitives');
$enqueue_module('layout');
@@ -25,13 +25,13 @@ test('icon card renderers keep vertical and horizontal Zibll DOM contracts separ
});
test('homepage horizontal cards use the shared compact card contract and retain Zibll responsive rules', () => {
const css = read('assets/css/frontend/header-components/dark-theme.css');
const css = read('assets/css/frontend/header-cards.css');
const baseCss = read('assets/css/frontend/base.css');
const widgetCss = read('assets/widgets/frontend.css');
assert.match(baseCss, /\.icon-cover-card\.aksrt-icon-cover-card\s*\{\s*padding:\s*10px;\s*font-size:\s*16px;/);
assert.match(css, /\.header-slider-card \.icon-cover-card\.zib-widget \{\s*padding: 10px;/);
assert.match(css, /\.header-slider-card \.icon-cover-card\.padding-10 \{\s*padding: 2px;/);
assert.match(css, /\.icon-cover-card\.zib-widget[\s\S]*?padding:\s*10px;/);
assert.match(css, /\.icon-cover-card\.padding-10[\s\S]*?padding:\s*2px;/);
assert.doesNotMatch(css, /\.header-slider-card \.icon-cover-icon\.badg\.cir/);
assert.doesNotMatch(css, /\.header-slider-card \.icon-cover-icon img/);
assert.doesNotMatch(widgetCss, /aksrt-widget-icon-cards \.icon-cover-card/);