react-responsive-pagination
Version:
React component for responsive pagination
224 lines (211 loc) • 6.89 kB
CSS
/*
Bootstrap theme [auto light / dark]
Want to override color variables? See reference at:
https://github.com/jonelantha/react-responsive-pagination/tree/main/packages/react-responsive-pagination/themes/bootstrap-light-dark.md
*/
.pagination {
--pagination-color: var(--pagination-color-light, #0d6efd);
--pagination-bg: var(--pagination-bg-light, #fff);
--pagination-border-color: var(--pagination-border-color-light, #dee2e6);
--pagination-font-weight: var(--pagination-font-weight-light, 400);
--pagination-hover-color: var(
--pagination-hover-color-light,
var(--pagination-color)
);
--pagination-hover-bg: var(--pagination-hover-bg-light, #e9ecef);
--pagination-hover-border-color: var(
--pagination-hover-border-color-light,
var(--pagination-border-color)
);
--pagination-focus-color: var(
--pagination-focus-color-light,
var(--pagination-hover-color)
);
--pagination-focus-bg: var(
--pagination-focus-bg-light,
var(--pagination-hover-bg)
);
--pagination-active-color: var(--pagination-active-color-light, #fff);
--pagination-active-bg: var(--pagination-active-bg-light, #0d6efd);
--pagination-active-border-color: var(
--pagination-active-border-color-light,
var(--pagination-active-bg)
);
--pagination-active-font-weight: var(
--pagination-active-font-weight-light,
var(--pagination-font-weight)
);
--pagination-disabled-color: var(--pagination-disabled-color-light, #6c757d);
--pagination-disabled-bg: var(
--pagination-disabled-bg-light,
var(--pagination-bg)
);
--pagination-disabled-border-color: var(
--pagination-disabled-border-color-light,
var(--pagination-border-color)
);
--pagination-focus-box-shadow: var(
--pagination-focus-box-shadow-light,
0 0 0 0.25rem rgba(13, 110, 253, 0.25)
);
}
@media (prefers-color-scheme: dark) {
.pagination:not([data-pagination-subtheme='light'] *) {
--pagination-color: var(--pagination-color-dark, #6ea8fe);
--pagination-bg: var(--pagination-bg-dark, #212529);
--pagination-border-color: var(--pagination-border-color-dark, #495057);
--pagination-font-weight: var(--pagination-font-weight-dark, 400);
--pagination-hover-color: var(
--pagination-hover-color-dark,
var(--pagination-color)
);
--pagination-hover-bg: var(--pagination-hover-bg-dark, #343a40);
--pagination-hover-border-color: var(
--pagination-hover-border-color-dark,
var(--pagination-border-color)
);
--pagination-focus-color: var(
--pagination-focus-color-dark,
var(--pagination-hover-color)
);
--pagination-focus-bg: var(
--pagination-focus-bg-dark,
var(--pagination-hover-bg)
);
--pagination-active-color: var(--pagination-active-color-dark, #fff);
--pagination-active-bg: var(--pagination-active-bg-dark, #0d6efd);
--pagination-active-border-color: var(
--pagination-active-border-color-dark,
var(--pagination-active-bg)
);
--pagination-active-font-weight: var(
--pagination-active-font-weight-dark,
var(--pagination-font-weight)
);
--pagination-disabled-color: var(
--pagination-disabled-color-dark,
rgba(222, 226, 230, 0.75)
);
--pagination-disabled-bg: var(
--pagination-disabled-bg-dark,
var(--pagination-bg)
);
--pagination-disabled-border-color: var(
--pagination-disabled-border-color-dark,
var(--pagination-border-color)
);
--pagination-focus-box-shadow: var(
--pagination-focus-box-shadow-dark,
0 0 0 0.25rem rgba(13, 110, 253, 0.25)
);
}
}
.pagination {
font-family: var(
--pagination-font-family,
system-ui,
-apple-system,
'Segoe UI',
Roboto,
'Helvetica Neue',
'Noto Sans',
'Liberation Sans',
Arial,
sans-serif,
'Apple Color Emoji',
'Segoe UI Emoji',
'Segoe UI Symbol',
'Noto Color Emoji'
);
font-weight: var(--pagination-font-weight);
line-height: var(--pagination-line-height, 1.5);
display: flex;
padding-left: 0;
margin-top: var(--pagination-margin-top, 0);
margin-bottom: var(--pagination-margin-bottom, 0);
list-style: none;
justify-content: var(
--pagination-justify-content,
var(--pagination-justify-content-fb)
);
}
.pagination .page-link {
position: relative;
display: block;
padding: var(--pagination-padding-y, 0.375rem) var(--pagination-padding-x, 0.75rem);
font-size: var(--pagination-font-size, 1rem);
color: var(--pagination-color);
text-decoration: none;
background-color: var(--pagination-bg);
border: var(--pagination-border-width, 1px) solid var(--pagination-border-color);
transition:
color 0.15s ease-in-out,
background-color 0.15s ease-in-out,
border-color 0.15s ease-in-out,
box-shadow 0.15s ease-in-out;
}
@media (prefers-reduced-motion: reduce) {
.pagination .page-link {
transition: none;
}
}
@media (hover: hover) {
.pagination .page-link:hover {
z-index: 2;
color: var(--pagination-hover-color);
background-color: var(--pagination-hover-bg);
border-color: var(--pagination-hover-border-color);
}
}
.pagination .page-link:focus {
z-index: 3;
color: var(--pagination-focus-color);
background-color: var(--pagination-focus-bg);
outline: 0;
box-shadow: var(--pagination-focus-box-shadow);
}
.pagination .active > .page-link {
z-index: 3;
color: var(--pagination-active-color);
background-color: var(--pagination-active-bg);
border-color: var(--pagination-active-border-color);
font-weight: var(--pagination-active-font-weight);
}
.pagination .disabled > .page-link {
color: var(--pagination-disabled-color);
pointer-events: none;
background-color: var(--pagination-disabled-bg);
border-color: var(--pagination-disabled-border-color);
}
.pagination .page-item:not(:first-child) .page-link {
margin-left: -1px;
}
.pagination .page-item:first-child .page-link {
border-top-left-radius: var(--pagination-border-radius, 0.375rem);
border-bottom-left-radius: var(--pagination-border-radius, 0.375rem);
}
.pagination .page-item:last-child .page-link {
border-top-right-radius: var(--pagination-border-radius, 0.375rem);
border-bottom-right-radius: var(--pagination-border-radius, 0.375rem);
}
.pagination.pagination-lg {
--pagination-padding-x: 1.5rem;
--pagination-padding-y: 0.75rem;
--pagination-font-size: 1.25rem;
--pagination-border-radius: 0.5rem;
}
.pagination.pagination-sm {
--pagination-padding-x: 0.5rem;
--pagination-padding-y: 0.25rem;
--pagination-font-size: 0.875rem;
--pagination-border-radius: 0.25rem;
}
.pagination.justify-content-start {
--pagination-justify-content-fb: flex-start;
}
.pagination.justify-content-end {
--pagination-justify-content-fb: flex-end;
}
.pagination.justify-content-center {
--pagination-justify-content-fb: center;
}