formstone
Version:
Library of modular front end components.
211 lines (157 loc) • 4.98 kB
text/less
/**
* @theme
* @name Light
* @component Pagination
*/
.fs-pagination {
@import "_config.less";
@theme_name: fs-light;
// Config
@fs-pagination-height: 40px;
@fs-pagination-background-color: @fs-light-white;
@fs-pagination-border-width: 1px;
@fs-pagination-border-color: @fs-light-primary_600;
@fs-pagination-border-radius: 2px;
@fs-pagination-font-size: 14px;
@fs-pagination-text-color: @fs-light-primary_600;
@fs-pagination-margin: 0 0 10px 0;
@fs-pagination-page-padding: 0 7px;
@fs-pagination-page-margin: 5px;
// Controls
@fs-pagination-control-caret-color: @fs-light-primary_900;
@fs-pagination-control-caret-size: 7px;
@fs-pagination-control-caret-width: (@fs-pagination-control-caret-size * 1.5);
@fs-pagination-control-caret-margin: (@fs-pagination-height - (@fs-pagination-control-caret-size * 2.2)) / 2;
@fs-pagination-control-border-width: 2px;
@fs-pagination-control-border-radius: 4px;
// Hover
@fs-pagination-hover-background: @fs-light-primary_100;
@fs-pagination-hover-text-color: @fs-light-primary_900;
@fs-pagination-control-hover-background: @fs-light-primary_100;
// Active
@fs-pagination-active-background: @fs-light-primary_100;
@fs-pagination-active-text-color: @fs-light-primary_900;
&.@{theme_name} {
position: relative;
background: @fs-pagination-background-color;
border: @fs-pagination-border-width solid @fs-pagination-border-color;
border-radius: @fs-pagination-border-radius;
display: flex;
flex-wrap: nowrap;
margin: @fs-pagination-margin;
.no-touchevents &:hover {
// border-color: @fs-pagination-hover-border-color;
}
}
&.@{theme_name} &-pages {
flex-grow: 1;
text-align: center;
}
&.@{theme_name} &-page,
&.@{theme_name} &-ellipsis,
&.@{theme_name} &-control,
&-mobile.@{theme_name} &-position {
color: @fs-pagination-text-color;
font-size: @fs-pagination-font-size;
text-decoration: none;
}
&.@{theme_name} &-page,
&.@{theme_name} &-ellipsis {
height: @fs-pagination-height - (@fs-pagination-page-margin * 2);
line-height: @fs-pagination-height - (@fs-pagination-page-margin * 2);
margin: @fs-pagination-page-margin 0;
padding: @fs-pagination-page-padding;
}
&.@{theme_name} &-control,
&-mobile.@{theme_name} &-position {
height: @fs-pagination-height;
line-height: @fs-pagination-height;
}
&.@{theme_name} &-page {
border-radius: @fs-pagination-border-radius;
}
.no-touchevents .@{theme_name} &-page:hover,
.no-touchevents .@{theme_name} &-page:focus {
background: @fs-pagination-hover-background;
color: @fs-pagination-hover-text-color;
}
&.@{theme_name} &-active,
&.@{theme_name} &-first,
&.@{theme_name} &-last,
&.@{theme_name} &-visible {
}
&.@{theme_name} &-active {
color: @fs-pagination-active-text-color;
background: @fs-pagination-active-background;
}
&.@{theme_name} &-control {
width: @fs-pagination-height;
position: relative;
background: @fs-pagination-background-color;
border: @fs-pagination-control-border-width solid @fs-pagination-background-color;
border-radius: @fs-pagination-control-border-radius;
display: block;
opacity: 0;
overflow: hidden;
text-indent: 200%;
visibility: hidden;
white-space: nowrap;
&:before {
height: 0px;
width: 0px;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
content: '';
}
&_previous {
order: -1;
&:before {
border-top: @fs-pagination-control-caret-size solid transparent;
border-bottom: @fs-pagination-control-caret-size solid transparent;
border-right: @fs-pagination-control-caret-width solid @fs-pagination-control-caret-color;
border-left: none;
margin-left: @fs-pagination-control-caret-margin;
margin-right: auto;
}
}
&_next {
order: 1;
&:before {
border-top: @fs-pagination-control-caret-size solid transparent;
border-bottom: @fs-pagination-control-caret-size solid transparent;
border-left: @fs-pagination-control-caret-width solid @fs-pagination-control-caret-color;
border-right: none;
margin-right: @fs-pagination-control-caret-margin;
margin-left: auto;
}
}
&:focus,
.no-touchevents &:hover {
background: @fs-pagination-control-hover-background;
}
}
&.@{theme_name} &-control&-visible {
opacity: 1;
visibility: visible;;
}
&.@{theme_name} &-position,
&.@{theme_name} &-select {
}
&-mobile.@{theme_name} &-pages {
}
&-mobile.@{theme_name} &-position {
position: relative;
flex-grow: 1;
text-align: center;
}
&-mobile.@{theme_name} &-select {
}
&-mobile.@{theme_name} &-current,
&-mobile.@{theme_name} &-total {
color: @fs-pagination-active-text-color;
}
}