formstone
Version:
Library of modular front end components.
184 lines (140 loc) • 4.71 kB
text/less
/**
* @theme
* @name Light
* @component Carousel
*/
.fs-carousel {
@import "_config.less";
@theme_name: fs-light;
// Config
@fs-carousel-transition-duration: 0.5s;
@fs-carousel-transition-timing: ease;
// Controls
@fs-carousel-control-background: @fs-light-white;
@fs-carousel-control-height: 40px;
@fs-carousel-control-width: 40px;
@fs-carousel-control-transition-duration: 0.15s;
@fs-carousel-control-transition-timing: ease;
@fs-carousel-control-border-radius: 100%;
@fs-carousel-control-left: 20px;
@fs-carousel-control-right: 20px;
@fs-carousel-control-disabled-opacity: 0;
// Control Carets
@fs-carousel-control-caret-color: @fs-light-primary_900;
@fs-carousel-control-caret-size: 7px;
@fs-carousel-control-caret-width: (@fs-carousel-control-caret-size * 1.5);
@fs-carousel-control-caret-margin: (@fs-carousel-control-width - (@fs-carousel-control-caret-size * 1.8)) / 2;
@fs-carousel-control-hover-background: @fs-light-primary_100;
// Carousel pagination
@fs-carousel-pagination-margin: 10px 0 0;
@fs-carousel-pagination-padding: 0;
@fs-carousel-page-background: @fs-light-primary_900;
@fs-carousel-page-border-radius: 100%;
@fs-carousel-page-margin: 0 3px;
@fs-carousel-page-opacity: 0.5;
@fs-carousel-page-height: 10px;
@fs-carousel-page-width: 10px;
// Canister
&.@{theme_name}&-enabled &-canister {
position: relative;
backface-visibility: hidden;
margin: 0;
overflow: hidden;
transition: transform @fs-carousel-transition-duration @fs-carousel-transition-timing;
transform: translate3d(0, 0, 0);
}
&.@{theme_name}&-enabled&-auto_height &-canister {
transition:
height @fs-carousel-transition-duration @fs-carousel-transition-timing,
transform @fs-carousel-transition-duration @fs-carousel-transition-timing;
}
// Controls
&.@{theme_name}&-enabled &-control {
width: @fs-carousel-control-width;
height: @fs-carousel-control-height;
position: absolute;
top: 0;
bottom: 0;
background: @fs-carousel-control-background;
border-radius: @fs-carousel-control-border-radius;
display: block;
margin: auto;
opacity: @fs-carousel-control-disabled-opacity;
overflow: hidden;
text-indent: 200%;
transition:
opacity @fs-carousel-control-transition-duration @fs-carousel-control-transition-timing,
visibility @fs-carousel-control-transition-duration @fs-carousel-control-transition-timing;
visibility: hidden;
white-space: nowrap;
&:before {
width: 0;
height: 0;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: '';
margin: auto;
}
}
&.@{theme_name}&-enabled &-control&-visible {
opacity: 1;
visibility: visible;
.no-touchevents &:hover {
background: @fs-carousel-control-hover-background;
}
}
&.@{theme_name}&-enabled &-control_previous,
&.@{theme_name}&-enabled&-rtl &-control_next {
right: auto;
left: @fs-carousel-control-left;
&:before {
border-top: @fs-carousel-control-caret-size solid transparent;
border-bottom: @fs-carousel-control-caret-size solid transparent;
border-right: @fs-carousel-control-caret-width solid @fs-carousel-control-caret-color;
border-left: none;
margin-left: @fs-carousel-control-caret-margin;
margin-right: auto;
}
}
&.@{theme_name}&-enabled &-control_next,
&.@{theme_name}&-enabled&-rtl &-control_previous {
left: auto;
right: @fs-carousel-control-right;
&:before {
border-top: @fs-carousel-control-caret-size solid transparent;
border-bottom: @fs-carousel-control-caret-size solid transparent;
border-left: @fs-carousel-control-caret-width solid @fs-carousel-control-caret-color;
border-right: none;
margin-right: @fs-carousel-control-caret-margin;
margin-left: auto;
}
}
&.@{theme_name}&-enabled &-control_disabled {
opacity: 0;
}
// Pagination
&.@{theme_name}&-enabled &-pagination {
width: 100%;
margin: @fs-carousel-pagination-margin;
padding: @fs-carousel-pagination-padding;
text-align: center;
}
&.@{theme_name}&-enabled &-page {
width: @fs-carousel-page-width;
height: @fs-carousel-page-height;
background: @fs-carousel-page-background;
border-radius: @fs-carousel-page-border-radius;
margin: @fs-carousel-page-margin;
opacity: @fs-carousel-page-opacity;
overflow: hidden;
text-indent: 200%;
white-space: nowrap;
}
&.@{theme_name}&-enabled &-page&-active,
.no-touchevents .@{theme_name}&-enabled &-page:hover {
opacity: 1;
}
}