fix(visual): 1:1 banner/hero/modal + strip non-zibll card chrome
Align banner s-desc caption/scale-height, hero search pill and -40px cards, modal colorful header/spring scale; remove white/pink card borders and hover lifts across mainline surfaces.
This commit is contained in:
1 parent
b821378a7d
commit
188611b075
46 files changed
+494
-215
No files matched your search
@@ -317,20 +317,30 @@
|
||||
}
|
||||
|
||||
/* ============================================================
|
||||
* Banner Module — 内联轮播条(模仿 zibll)
|
||||
* Banner Module — 1:1 Zibll (.s-desc / widget slider card)
|
||||
* 圆角 = --main-radius,阴影 = main-shadow,文案底渐变条
|
||||
* ============================================================ */
|
||||
.banner-module {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
border-radius: 12px;
|
||||
border-radius: var(--main-radius, var(--radius, 8px));
|
||||
overflow: hidden;
|
||||
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
|
||||
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: clamp(180px, 22vw, 300px);
|
||||
height: 0;
|
||||
padding-bottom: 40%;
|
||||
}
|
||||
|
||||
.banner-module__swiper .swiper-wrapper {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.banner-module__swiper .swiper-slide {
|
||||
@@ -352,99 +362,108 @@
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.banner-module__slide-fallback {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark, #5a8bc4));
|
||||
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-active, var(--color-primary-dark)));
|
||||
}
|
||||
|
||||
.banner-module__slide-overlay {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: linear-gradient(
|
||||
to bottom,
|
||||
rgba(0, 0, 0, 0) 0%,
|
||||
rgba(0, 0, 0, 0.15) 50%,
|
||||
rgba(0, 0, 0, 0.5) 100%
|
||||
);
|
||||
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: 24px;
|
||||
left: 24px;
|
||||
right: 24px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 2;
|
||||
color: #fff;
|
||||
max-width: 680px;
|
||||
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-display, var(--font-ui));
|
||||
font-size: clamp(1.125rem, 2vw, 1.5rem);
|
||||
font-weight: 700;
|
||||
font-family: var(--font-ui);
|
||||
font-size: 16px;
|
||||
font-weight: normal;
|
||||
margin: 0 0 4px;
|
||||
line-height: 1.3;
|
||||
text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
line-height: 1.4;
|
||||
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.banner-module__subtitle {
|
||||
font-size: clamp(0.8125rem, 1.2vw, 0.9375rem);
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
opacity: 0.9;
|
||||
opacity: 0.95;
|
||||
line-height: 1.5;
|
||||
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
||||
text-shadow: 0 0 8px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Swiper 导航箭头 */
|
||||
.banner-module .swiper-button-prev,
|
||||
.banner-module .swiper-button-next {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 50%;
|
||||
background: rgba(255, 255, 255, 0.85);
|
||||
color: var(--color-ink);
|
||||
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 ease, transform 0.2s ease;
|
||||
transition: opacity 0.3s, background-color 0.3s;
|
||||
}
|
||||
|
||||
.banner-module .swiper-button-prev::after,
|
||||
.banner-module .swiper-button-next::after {
|
||||
font-size: 14px;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.banner-module:hover .swiper-button-prev,
|
||||
.banner-module:hover .swiper-button-next {
|
||||
opacity: 1;
|
||||
opacity: 0.8;
|
||||
pointer-events: auto;
|
||||
}
|
||||
|
||||
.banner-module .swiper-button-prev:hover,
|
||||
.banner-module .swiper-button-next:hover {
|
||||
transform: scale(1.1);
|
||||
background: #fff;
|
||||
opacity: 1;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
transform: none;
|
||||
}
|
||||
|
||||
/* Banner 响应式 */
|
||||
@media (max-width: 767px) {
|
||||
.banner-module {
|
||||
border-radius: 8px;
|
||||
border-radius: var(--main-radius, 8px);
|
||||
}
|
||||
|
||||
.banner-module__swiper {
|
||||
height: clamp(120px, 30vw, 180px);
|
||||
padding-bottom: 50%;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.banner-module__content {
|
||||
bottom: 12px;
|
||||
left: 12px;
|
||||
right: 12px;
|
||||
padding: 1em 1.2em;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.banner-module__title {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.banner-module .swiper-button-prev,
|
||||
@@ -452,4 +471,3 @@
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user