@@ -12,292 +12,149 @@ body.dark-theme .header-components-search__input {
}
/* ============================================================
* Layer 3: 图标卡片(模仿 zibll — 骑在 hero 底部边界线上)
*
* 关键技术:卡片在 DOM 中位于轮播之后,
* 使用 margin-top: -40px 向上拉,使其骑在 hero 底部边界线上
* 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)
* ============================================================ */
. header-slider-card ,
. header-components-card {
position : relative ;
z-index : 1 ;
margin-top : -40 px ;
z-index : 1 ;
}
. header-components-card__container {
max-width : var ( - - container , 1280 px ) ;
margin : 0 auto ;
padding : 0 16 px ;
. header-slider-card . zib-widget ,
. header-components-card . zib-widget {
margin-bottom : 0 ;
}
/* 卡片行:flex 水平排列 */
. header-components-card__row {
display : flex ;
gap : 10 px ;
padding-top : 4 px ; /* 为 hover 上浮留出空间 */
/* Individual card surface = .zib-widget (from card-primitives); shared mode uses outer .zib-widget.padding-10 */
. header-slider-card . icon-cover-card . zib-widget ,
. header-components-card . icon-cover-card . zib-widget {
margin-bottom : 0 ;
}
/* 每个卡片项等宽 */
. header-components-card__item {
flex : 1 ;
min-width : 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 ( 20 px ) ;
backdrop-filter : saturate ( 5 ) blur ( 20 px ) ;
}
/* 共享背景模式:一个大卡片包裹 */
. header-components-card__wrap--shared {
background : var ( - - surface - page ) ;
border-radius : 8 px ;
padding : 10 px ;
box-shadow : 0 2 px 12 px rgba ( 0 , 0 , 0 , 0.08 ) ;
border : 1 px solid var ( - - color - line ) ;
. filter-blur . header-slider-card . zib-widget ,
. filter-blur . header-components-card . zib-widget {
background : var ( - - blur - bg , rgba ( 255 , 255 , 255 , 0.75 ) ) ;
}
/* 独立背景模式:每个卡片有自己的背景 */
. header-components-card__item-bg {
background : var ( - - surface - page ) ;
border-radius : 8 px ;
padding : 12 px 14 px ;
box-shadow : 0 2 px 12 px rgba ( 0 , 0 , 0 , 0.08 ) ;
border : 1 px solid var ( - - color - line ) ;
height : 100 % ;
transition : transform 0.2 s ease , box-shadow 0.2 s ease ;
. 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 ) ) ;
}
. header-components-card__item-bg : hover {
transform : none ;
box-shadow : 0 2 px 12 px rgba ( 0 , 0 , 0 , 0.08 ) ;
}
/* 毛玻璃效果 */
. filter-blur . header-components-card__wrap--shared ,
. filter-blur . header-components-card__item-bg {
background : rgba ( 255 , 255 , 255 , 0.75 ) ;
backdrop-filter : saturate ( 3 ) blur ( 20 px ) ;
-webkit- backdrop-filter : saturate ( 3 ) blur ( 20 px ) ;
border-color : rgba ( 255 , 255 , 255 , 0.3 ) ;
}
. theme-dark . filter-blur . header-components-card__wrap--shared ,
html . dark . filter-blur . header-components-card__wrap--shared ,
body . dark-theme . filter-blur . header-components-card__wrap--shared ,
. theme-dark . filter-blur . header-components-card__item-bg ,
html . dark . filter-blur . header-components-card__item-bg ,
body . dark-theme . filter-blur . header-components-card__item-bg {
background : rgba ( 30 , 30 , 30 , 0.75 ) ;
border-color : rgba ( 255 , 255 , 255 , 0.1 ) ;
}
/* ============================================================
* 单个图标卡片样式(模仿 zibll icon-cover-card)
* 结构:左侧圆形图标 + 右侧标题/描述
* ============================================================ */
. icon-cover-card {
display : flex ;
align-items : center ;
gap : 10 px ;
padding : 8 px ;
border-radius : 6 px ;
text-decoration : none ;
color : var ( - - color - ink ) ;
transition : background 0.15 s ease ;
}
a . icon-cover-card : hover {
background : var ( - - surface -3 ) ;
text-decoration : none ;
color : var ( - - color - ink ) ;
}
/* 图标容器 — 圆形 */
. icon-cover-icon {
display : inline-flex ;
align-items : center ;
justify-content : center ;
width : 40 px ;
height : 40 px ;
min-width : 40 px ;
border-radius : 50 % ;
font-size : 18 px ;
flex-shrink : 0 ;
}
/* 方形图标 */
. icon-cover-icon . radius4 {
border-radius : 6 px ;
}
/* 图标颜色类(模仿 zibll 的调色板) */
. icon-cover-icon . c-blue {
background : rgba ( 66 , 133 , 244 , 0.12 ) ;
color : #4285f4 ;
}
. icon-cover-icon . c-yellow {
background : rgba ( 251 , 188 , 4 , 0.12 ) ;
color : #fbbc04 ;
}
. icon-cover-icon . c-green {
background : rgba ( 52 , 168 , 83 , 0.12 ) ;
color : #34a853 ;
}
. icon-cover-icon . c-red {
background : rgba ( 234 , 67 , 53 , 0.12 ) ;
color : #ea4335 ;
}
. icon-cover-icon . c-orange {
background : rgba ( 255 , 152 , 0 , 0.12 ) ;
color : #ff9800 ;
}
. icon-cover-icon . c-cyan {
background : rgba ( 0 , 188 , 212 , 0.12 ) ;
color : #00bcd4 ;
}
. icon-cover-icon . c-pink {
background : rgba ( 233 , 30 , 99 , 0.12 ) ;
color : #e91e63 ;
}
/* 渐变图标背景 */
. icon-cover-icon . jb-cyan {
background : linear-gradient ( 135 deg , #4facfe , #00f2fe ) ;
color : #fff ;
}
. icon-cover-icon . jb-green {
background : linear-gradient ( 135 deg , #43e97b , #38f9d7 ) ;
color : #fff ;
}
. icon-cover-icon . jb-orange {
background : linear-gradient ( 135 deg , #fa709a , #fee140 ) ;
color : #fff ;
}
/* 文字区 */
. icon-cover-desc {
flex : 1 ;
min-width : 0 ;
overflow : hidden ;
}
. icon-cover-title {
font-size : 13 px ;
font-weight : 600 ;
line-height : 1.3 ;
color : var ( - - color - ink ) ;
white-space : nowrap ;
overflow : hidden ;
text-overflow : ellipsis ;
}
. icon-cover-subtitle {
font-size : 11 px ;
color : var ( - - color - ink -4 ) ;
margin-top : 2 px ;
white-space : nowrap ;
overflow : hidden ;
text-overflow : ellipsis ;
line-height : 1.3 ;
}
/* ============================================================
* 响应式
* ============================================================ */
@ media ( max-width : 767px ) {
. header-components-card {
margin-top : -35 px ;
}
. header-components-card__row {
flex-wrap : wrap ;
gap : 6 px ;
}
/* 移动端 2 列 */
. header-components-card__item {
flex : 0 0 calc ( 50 % - 3 px ) ;
}
. header-components-card__item-bg {
padding : 10 px ;
}
. header-components-card__wrap--shared {
padding : 6 px ;
}
. icon-cover-card {
gap : 6 px ;
padding : 6 px ;
}
. icon-cover-icon {
width : 32 px ;
height : 32 px ;
min-width : 32 px ;
font-size : 14 px ;
}
. icon-cover-title {
font-size : 12 px ;
}
. icon-cover-subtitle {
display : none ;
}
}
@ media ( max-width : 480px ) {
. icon-cover-card {
gap : 4 px ;
padding : 2 px ;
}
. icon-cover-icon {
width : 28 px ;
height : 28 px ;
min-width : 28 px ;
font-size : 12 px ;
}
}
/* ============================================================
* Container-level blur: PC/Mobile split (colors only; no top offsets)
* ============================================================ */
/* Device-split blur (AKSRT extension of zibll filter-blur) */
@ media ( min-width : 768px ) {
. has-blur-pc . header-components-card__wrap--shared ,
. has-blur-pc . header-components-card__item-bg {
background : rgba ( 255 , 255 , 255 , 0.75 ) ;
backdrop-filter : saturate ( 3 ) blur ( 20 px ) ;
-webkit- backdrop-filter : saturate ( 3 ) blur ( 20 px ) ;
border-color : rgba ( 255 , 255 , 255 , 0.3 ) ;
. has-blur-pc . header-slider-card . zib-widget ,
. has-blur-pc . header-components-card . zib-widget {
-webkit- backdrop-filter : saturate ( 5 ) blur ( 20 px ) ;
backdrop-filter : saturate ( 5 ) blur ( 20 px ) ;
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-components-card__wrap--shared ,
html . dark . has-blur-pc . header-components-card__wrap--shared ,
. theme-dark . has-blur-pc . header-components-card__item-bg ,
html . dark . has-blur-pc . header-components-card__item-bg {
background : rgba ( 30 , 30 , 30 , 0.75 ) ;
border-color : rgba ( 255 , 255 , 255 , 0.1 ) ;
. 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-components-card__wrap--shared ,
. has-blur-mobile . header-components-card__item-bg {
background : rgba ( 255 , 255 , 255 , 0.75 ) ;
backdrop-filter : saturate ( 3 ) blur ( 20 px ) ;
-webkit- backdrop-filter : saturate ( 3 ) blur ( 20 px ) ;
border-color : rgba ( 255 , 255 , 255 , 0.3 ) ;
. has-blur-mobile . header-slider-card . zib-widget ,
. has-blur-mobile . header-components-card . zib-widget {
-webkit- backdrop-filter : saturate ( 5 ) blur ( 20 px ) ;
backdrop-filter : saturate ( 5 ) blur ( 20 px ) ;
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-components-card__wrap--shared ,
html . dark . has-blur-mobile . header-components-card__wrap--shared ,
. theme-dark . has-blur-mobile . header-components-card__item-bg ,
html . dark . has-blur-mobile . header-components-card__item-bg {
background : rgba ( 30 , 30 , 30 , 0.75 ) ;
border-color : rgba ( 255 , 255 , 255 , 0.1 ) ;
. 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 ,
. header-components-card . icon-cover-card . zib-widget {
padding : 10 px ;
}
. header-slider-card . icon-cover-card . padding-10 ,
. header-components-card . icon-cover-card . padding-10 {
padding : 2 px ;
}
. header-slider-card ,
. header-components-card {
margin-top : -35 px ;
}
}
/* icon-cover-card itself is a flex row — do NOT re-skin as a bordered box here.
* Surface comes from .zib-widget / .padding-10; icon badge from .badg.cir + c-*/ jb- * . * /
. header-slider-card . icon-cover-card ,
. header-components-card . icon-cover-card {
display : flex ;
align-items : center ;
gap : 0 ;
/* padding comes from .zib-widget or .padding-10 class on the same node */
}
. header-slider-card a . main-color ,
. header-components-card a . main-color {
color : inherit ;
text-decoration : none ;
display : block ;
}
. header-slider-card a . main-color : hover ,
. header-components-card a . main-color : hover {
color : inherit ;
text-decoration : none ;
}
/* Let .badg.cir + color modifiers drive icon look; only size/image tweaks here */
. header-slider-card . icon-cover-icon . badg . cir ,
. header-components-card . icon-cover-icon . badg . cir {
display : inline-flex ;
justify-content : center ;
align-items : center ;
flex-shrink : 0 ;
}
. header-slider-card . icon-cover-icon img ,
. header-components-card . icon-cover-icon img {
width : 70 % ;
height : 70 % ;
object-fit : contain ;
}
. header-slider-card . icon-cover-desc ,
. header-components-card . icon-cover-desc {
min-width : 0 ;
overflow : hidden ;
}
. header-slider-card . icon-cover-desc . font-bold ,
. header-components-card . icon-cover-desc . font-bold {
font-weight : bold ;
}