@roadtrip/css
Version:
CSS framework for Roadtrip Design System
190 lines (156 loc) • 3.53 kB
CSS
/*
* Carousel
*
* Index
* - Container
* - Bullets
* - Arrows
* - Slide
* - Image
*
*/
/* CONTAINER
-------------------- */
.carousel.swiper-container {
position: relative;
z-index: 1;
display: block;
padding: 0;
margin-right: auto;
margin-left: auto;
overflow: hidden;
list-style: none;
user-select: none;
}
.carousel .swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.carousel .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 0.125rem;
}
.carousel.swiper-container-horizontal > .swiper-pagination-bullets {
bottom: 0.5rem;
}
/* BULLETS
-------------------- */
.carousel .swiper-pagination-bullets {
right: 0;
display: inline-table;
width: auto ;
padding: 0 0.75rem;
margin: 0 auto;
vertical-align: middle;
background-color: var(--road-overlay-inverse);
border-radius: 40px;
backdrop-filter: blur(4px);
}
.carousel .swiper-pagination-bullet {
width: 1.5rem;
height: 0.25rem;
vertical-align: middle;
background: var(--road-overlay);
border-radius: 0;
opacity: 1;
}
.carousel .swiper-pagination-bullet-active {
background: var(--road-primary);
}
.carousel .swiper-pagination-progressbar {
background: var(--road-grey-70);
}
.carousel .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
background: var(--road-grey-10);
}
.carousel .swiper-scrollbar {
background: var(--road-grey-70);
}
.carousel .swiper-scrollbar-drag {
background: var(--road-grey-10);
}
/* ARROWS
-------------------- */
.carousel .swiper-button-prev,
.carousel .swiper-button-next {
display: none;
}
@media (min-width: 768px) {
.carousel .swiper-button-prev,
.carousel .swiper-button-next {
display: flex;
width: 3rem;
height: 3rem;
background: var(--road-overlay);
border: 1px solid var(--road-overlay-inverse);
border-radius: 3rem;
}
.carousel .swiper-button-prev {
transform: rotate(180deg);
}
.carousel .swiper-button-prev .swiper-icon,
.carousel .swiper-button-next .swiper-icon {
width: 2rem;
height: 2rem;
fill: var(--road-on-overlay);
}
}
.swiper-button-prev::after,
.swiper-button-next::after {
display: none;
}
/**
* Hover state
*/
@media (hover: hover) {
.carousel .swiper-button-prev:hover,
.carousel .swiper-button-next:hover {
background: var(--road-surface);
}
.carousel .swiper-button-prev:hover .swiper-icon,
.carousel .swiper-button-next:hover .swiper-icon {
fill: var(--road-on-surface);
}
}
.carousel .swiper-button-prev,
.carousel .swiper-container-rtl .swiper-button-next {
left: 1rem;
}
.carousel .swiper-button-next,
.carousel .swiper-container-rtl .swiper-button-prev {
right: 1rem;
}
@media (min-width: 768px) {
.carousel .swiper-button-prev,
.carousel .swiper-container-rtl .swiper-button-next {
left: 1.5rem;
}
.carousel .swiper-button-next,
.carousel .swiper-container-rtl .swiper-button-prev {
right: 1.5rem;
}
}
/* SLIDE
-------------------- */
.carousel .slide-zoom {
display: block;
width: 100%;
text-align: center;
}
.carousel .swiper-slide {
position: relative;
box-sizing: border-box;
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
font-size: 18px;
text-align: center;
}
/* IMAGE
-------------------- */
.carousel .swiper-slide img {
width: auto;
max-width: 100%;
height: auto;
max-height: 100%;
pointer-events: none;
}