Files
bulma/sass/components/pagination.scss
Jeremy Thomas b73e183091 Init dark theme
2022-12-14 17:15:51 +00:00

262 lines
7.0 KiB
SCSS

@import "../utilities/controls";
@import "../utilities/mixins";
$pagination-color: getVar("text-strong") !default;
$pagination-border-color: getVar("border") !default;
$pagination-margin: -0.25rem !default;
$pagination-min-width: $control-height !default; // TODO
$pagination-item-font-size: 1em !default;
$pagination-item-margin: 0.25rem !default;
$pagination-item-padding-left: 0.5em !default;
$pagination-item-padding-right: 0.5em !default;
$pagination-nav-padding-left: 0.75em !default;
$pagination-nav-padding-right: 0.75em !default;
$pagination-hover-color: getVar("link-hover") !default;
$pagination-hover-border-color: getVar("link-hover-border") !default;
$pagination-focus-color: getVar("link-focus") !default;
$pagination-focus-border-color: getVar("link-focus-border") !default;
$pagination-active-color: getVar("link-active") !default;
$pagination-active-border-color: getVar("link-active-border") !default;
$pagination-disabled-color: getVar("text-light") !default;
$pagination-disabled-background-color: getVar("border") !default;
$pagination-disabled-border-color: getVar("border") !default;
$pagination-current-color: getVar("link-invert") !default;
$pagination-current-background-color: getVar("link") !default;
$pagination-current-border-color: getVar("link") !default;
$pagination-ellipsis-color: getVar("grey-light") !default;
$pagination-shadow-inset: inset 0 1px 2px rgba(getVar("shadow-color-rgb"), 0.2) !default;
:root {
@include register-vars(
(
pagination-color: #{$pagination-color},
pagination-border-color: #{$pagination-border-color},
pagination-margin: #{$pagination-margin},
pagination-min-width: #{$pagination-min-width},
pagination-item-font-size: #{$pagination-item-font-size},
pagination-item-margin: #{$pagination-item-margin},
pagination-item-padding-left: #{$pagination-item-padding-left},
pagination-item-padding-right: #{$pagination-item-padding-right},
pagination-nav-padding-left: #{$pagination-nav-padding-left},
pagination-nav-padding-right: #{$pagination-nav-padding-right},
pagination-hover-color: #{$pagination-hover-color},
pagination-hover-border-color: #{$pagination-hover-border-color},
pagination-focus-color: #{$pagination-focus-color},
pagination-focus-border-color: #{$pagination-focus-border-color},
pagination-active-color: #{$pagination-active-color},
pagination-active-border-color: #{$pagination-active-border-color},
pagination-disabled-color: #{$pagination-disabled-color},
pagination-disabled-background-color: #{$pagination-disabled-background-color},
pagination-disabled-border-color: #{$pagination-disabled-border-color},
pagination-current-color: #{$pagination-current-color},
pagination-current-background-color: #{$pagination-current-background-color},
pagination-current-border-color: #{$pagination-current-border-color},
pagination-ellipsis-color: #{$pagination-ellipsis-color},
pagination-shadow-inset: #{$pagination-shadow-inset},
)
);
}
.#{$class-prefix}pagination {
@extend %block;
font-size: getVar("size-normal");
margin: getVar("pagination-margin");
// Sizes
&.is-small {
font-size: getVar("size-small");
}
&.is-medium {
font-size: getVar("size-medium");
}
&.is-large {
font-size: getVar("size-large");
}
&.is-rounded {
.#{$class-prefix}pagination-previous,
.#{$class-prefix}pagination-next {
padding-left: 1em;
padding-right: 1em;
border-radius: getVar("radius-rounded");
}
.#{$class-prefix}pagination-link {
border-radius: getVar("radius-rounded");
}
}
}
.#{$class-prefix}pagination,
.#{$class-prefix}pagination-list {
align-items: center;
display: flex;
justify-content: center;
text-align: center;
}
.#{$class-prefix}pagination-previous,
.#{$class-prefix}pagination-next,
.#{$class-prefix}pagination-link,
.#{$class-prefix}pagination-ellipsis {
@extend %control;
@extend %unselectable;
font-size: getVar("pagination-item-font-size");
justify-content: center;
margin: getVar("pagination-item-margin");
padding-left: getVar("pagination-item-padding-left");
padding-right: getVar("pagination-item-padding-right");
text-align: center;
}
.#{$class-prefix}pagination-previous,
.#{$class-prefix}pagination-next,
.#{$class-prefix}pagination-link {
border-color: getVar("pagination-border-color");
color: getVar("pagination-color");
min-width: getVar("pagination-min-width");
&:hover {
border-color: getVar("pagination-hover-border-color");
color: getVar("pagination-hover-color");
}
&:focus {
border-color: getVar("pagination-focus-border-color");
}
&:active {
box-shadow: getVar("pagination-shadow-inset");
}
&[disabled],
&.is-disabled {
background-color: getVar("pagination-disabled-background-color");
border-color: getVar("pagination-disabled-border-color");
box-shadow: none;
color: getVar("pagination-disabled-color");
opacity: 0.5;
}
}
.#{$class-prefix}pagination-previous,
.#{$class-prefix}pagination-next {
padding-left: getVar("pagination-nav-padding-left");
padding-right: getVar("pagination-nav-padding-right");
white-space: nowrap;
}
.#{$class-prefix}pagination-link {
&.is-current {
background-color: getVar("pagination-current-background-color");
border-color: getVar("pagination-current-border-color");
color: getVar("pagination-current-color");
}
}
.#{$class-prefix}pagination-ellipsis {
color: getVar("pagination-ellipsis-color");
pointer-events: none;
}
.#{$class-prefix}pagination-list {
flex-wrap: wrap;
li {
list-style: none;
}
}
@include mobile {
.#{$class-prefix}pagination {
flex-wrap: wrap;
}
.#{$class-prefix}pagination-previous,
.#{$class-prefix}pagination-next {
flex-grow: 1;
flex-shrink: 1;
}
.#{$class-prefix}pagination-list {
li {
flex-grow: 1;
flex-shrink: 1;
}
}
}
@include tablet {
.#{$class-prefix}pagination-list {
flex-grow: 1;
flex-shrink: 1;
justify-content: flex-start;
order: 1;
}
.#{$class-prefix}pagination-previous,
.#{$class-prefix}pagination-next,
.#{$class-prefix}pagination-link,
.#{$class-prefix}pagination-ellipsis {
margin-bottom: 0;
margin-top: 0;
}
.#{$class-prefix}pagination-previous {
order: 2;
}
.#{$class-prefix}pagination-next {
order: 3;
}
.#{$class-prefix}pagination {
justify-content: space-between;
margin-bottom: 0;
margin-top: 0;
&.is-centered {
.#{$class-prefix}pagination-previous {
order: 1;
}
.#{$class-prefix}pagination-list {
justify-content: center;
order: 2;
}
.#{$class-prefix}pagination-next {
order: 3;
}
}
&.is-right {
.#{$class-prefix}pagination-previous {
order: 1;
}
.#{$class-prefix}pagination-next {
order: 2;
}
.#{$class-prefix}pagination-list {
justify-content: flex-end;
order: 3;
}
}
}
}