<section class="c-scrolling-banner " aria-label="Promozioni" aria-roledescription="carousel">
<div class="jsScrollingBanner owl-carousel">
<div class="c-scrolling-banner__slide u-bg-color-sky-120">
<div class="c-scrolling-banner__image">
<img src="../../images/svgs/stk_write_us.svg" alt="" width="60">
</div>
<div class="c-scrolling-banner__text">
<p>Lorem ipsum dolor sit amet, <strong>consectetur adipiscing</strong> elit sed do.</p>
</div>
<div class="c-scrolling-banner__cta"><a href="#" class="c-link c-link--white c-link--small">
Iscriviti
</a></div>
</div>
<div class="c-scrolling-banner__slide u-bg-color-night-100">
<div class="c-scrolling-banner__image">
<img src="../../images/svgs/stk_write_us.svg" alt="" width="60">
</div>
<div class="c-scrolling-banner__text">
<p><strong>Ut enim ad minim</strong> veniam, quis nostrud exercitation ullamco.</p>
</div>
</div>
<div class="c-scrolling-banner__slide u-bg-color-sun-120 u-color-night-120">
<div class="c-scrolling-banner__image">
<img src="../../images/svgs/stk_write_us.svg" alt="" width="60">
</div>
<div class="c-scrolling-banner__text">
<p><strong>Duis aute irure</strong> dolor in reprehenderit in voluptate velit.</p>
</div>
<div class="c-scrolling-banner__cta"><a href="#" class="c-link c-link--white c-link--small">
Scopri le offerte
</a></div>
</div>
</div>
</section>
<section class="c-scrolling-banner {{ modifier }}" aria-label="{{ ariaLabel }}" aria-roledescription="carousel">
<div class="jsScrollingBanner owl-carousel">
{{#each slides}}
<div class="c-scrolling-banner__slide{{#if cssClass}} {{ cssClass }}{{/if}}">
{{#if img}}
<div class="c-scrolling-banner__image">
<img src="{{ path img.src }}" alt="" width="60">
</div>
{{/if}}
<div class="c-scrolling-banner__text">{{{ text }}}</div>
{{#if cta}}
<div class="c-scrolling-banner__cta">{{> @link cta }}</div>
{{/if}}
</div>
{{/each}}
</div>
</section>
{
"ariaLabel": "Promozioni",
"slides": [
{
"cssClass": "u-bg-color-sky-120",
"img": {
"src": "/images/svgs/stk_write_us.svg"
},
"text": "<p>Lorem ipsum dolor sit amet, <strong>consectetur adipiscing</strong> elit sed do.</p>",
"cta": {
"text": "Iscriviti",
"url": "#",
"modifier": "c-link c-link--white c-link--small"
}
},
{
"cssClass": "u-bg-color-night-100",
"img": {
"src": "/images/svgs/stk_write_us.svg"
},
"text": "<p><strong>Ut enim ad minim</strong> veniam, quis nostrud exercitation ullamco.</p>"
},
{
"cssClass": "u-bg-color-sun-120 u-color-night-120",
"img": {
"src": "/images/svgs/stk_write_us.svg"
},
"text": "<p><strong>Duis aute irure</strong> dolor in reprehenderit in voluptate velit.</p>",
"cta": {
"text": "Scopri le offerte",
"url": "#",
"modifier": "c-link c-link--white c-link--small"
}
}
]
}
/*------------------------------------*\
Scrolling banner
Slideshow orizzontale (Owl Carousel):
- transizione slide sinistra/destra
- indicatori dot circolari
- frecce laterali
- autoplay 4s
\*------------------------------------*/
// Usato come contenuto della variante foldable-banner--carousel: lo sfondo
// e il padding li fornisce il foldable-banner esterno; qui solo il layout
// della singola slide (immagine + testo + cta opzionale).
$scrollingBannerArrowSize: 28px;
.c-scrolling-banner {
position: relative;
}
// Owl affianca le slide in .owl-item con altezza pari al loro contenuto:
// sul mobile (testi di lunghezza diversa) le slide risultano disallineate.
// Con flex sullo stage tutte le .owl-item prendono l'altezza della più alta.
.c-scrolling-banner .owl-stage {
display: flex;
}
.c-scrolling-banner .owl-item {
display: flex;
}
/*------------------------------------*\
Slide (immagine + testo + cta)
\*------------------------------------*/
.c-scrolling-banner__slide {
display: flex;
// Riempie l'.owl-item (flex) in larghezza; l'altezza piena è data dallo
// stretch flex, così la slide occupa tutta l'altezza della più alta.
width: 100%;
gap: remify(16px);
align-items: center;
justify-content: center;
// Default non trasparente; sovrascrivibile per slide con classi utility
// (es. u-bg-color-* / u-color-*) passate via prop `cssClass`.
background-color: primary(sky, 120);
// Colore testo di default ereditato da testo e cta; una utility u-color-*
// sulla slide lo sovrascrive (design-tokens.css vince per ordine).
color: secondary(basic-white, 100);
// Spazio interno + margine per non finire sotto le frecce laterali.
padding-block: remify(16px);
padding-inline: remify($scrollingBannerArrowSize + 24px);
@include min-screen(bp(tablet)) {
padding-block: remify(24px);
}
}
.c-scrolling-banner__image {
display: none;
@include min-screen(bp(phablet)) {
display: block;
}
img {
max-width: remify(60px);
height: auto;
}
}
.c-scrolling-banner__text {
@include font-scale(level-1-5);
color: inherit;
@include min-screen(bp(tablet)) {
@include font-scale(level-2);
}
a {
color: currentColor;
}
}
.c-scrolling-banner__cta {
flex-shrink: 0;
}
/*------------------------------------*\
Frecce laterali (Owl nav)
\*------------------------------------*/
.c-scrolling-banner__nav {
.c-scrolling-banner__arrow {
position: absolute;
top: 50%;
transform: translateY(-50%);
display: flex;
align-items: center;
justify-content: center;
width: remify($scrollingBannerArrowSize);
height: remify($scrollingBannerArrowSize);
padding: 0;
border: none;
border-radius: 50%;
background: rgba(secondary(basic-white, 100), .25);
color: secondary(basic-white, 100);
cursor: pointer;
z-index: 2;
transition: background .25s ease;
&:hover {
background: rgba(secondary(basic-white, 100), .4);
}
&.disabled {
display: none;
}
// Glifo ‹ / › wrappato in span: line-height:1 + flex centrano il
// carattere nel cerchio in modo affidabile.
span {
display: block;
font-size: remify(20px);
line-height: 1;
position: relative;
top: remify(-2px);
}
}
.c-scrolling-banner__arrow--prev {
left: remify(12px);
}
.c-scrolling-banner__arrow--next {
right: remify(12px);
}
}
/*------------------------------------*\
Indicatori (Owl dots)
\*------------------------------------*/
.c-scrolling-banner__dots {
position: absolute;
bottom: remify(10px);
left: 50%;
transform: translateX(-50%);
display: flex;
gap: remify(7px);
z-index: 1;
.c-scrolling-banner__dot span {
display: block;
width: remify(8px);
height: remify(8px);
border-radius: 50%;
background: rgba(secondary(basic-white, 100), .45);
transition: background .25s ease, transform .25s ease;
}
.c-scrolling-banner__dot.active span {
background: secondary(basic-white, 100);
transform: scale(1.25);
}
}
No notes defined.