@postnord/web-components
Version:
PostNord Web Components
211 lines (201 loc) • 5.37 kB
CSS
/* Global utility variables */
/* Input styles */
/* Transition variables */
pn-page-nav {
display: block;
position: relative;
font-size: clamp(0.8em, 2vw, 1em);
z-index: 5;
}
.pn-page-nav-wrapper {
transform: translateZ(0);
font-size: inherit;
max-width: 100%;
overflow: hidden;
position: relative;
display: inline-flex;
border-radius: 3em;
}
.pn-page-nav {
display: flex;
align-items: center;
border-radius: 3em;
min-height: 3em;
background: #0d234b;
border: 0.0625em solid #d3cecb;
position: relative;
overflow-x: auto;
scroll-snap-type: x mandatory;
}
.pn-page-nav::-webkit-scrollbar {
display: none;
}
.pn-page-nav ul.pn-page-nav-items {
display: flex;
list-style-type: none;
padding: 0.25em;
margin: 0;
position: relative;
}
.pn-page-nav-items > .pn-pn-bg {
position: absolute;
top: 50%;
transform: translateY(-50%);
will-change: transform;
left: 0;
border-radius: 3em;
transition: width 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97), transform 0.25s cubic-bezier(0.29, 0.15, 0.24, 0.97), background 0.15s, opacity 0.15s, box-shadow 0.15s;
}
.pn-page-nav-items > .pn-pn-bg.pn-pn-active {
box-shadow: 0px 0.3px 0.9px rgba(0, 0, 0, 0.1), 0px 1.6px 3.6px rgba(0, 0, 0, 0.13);
background: #005d92;
z-index: 1;
}
.pn-page-nav-items > .pn-pn-bg.pn-pn-hover {
background: #ffffff;
opacity: 0;
border: 0.0625em solid transparent;
z-index: 0;
}
.pn-page-nav-items > .pn-pn-bg.hidden {
opacity: 0;
}
@media (hover: hover) {
ul.pn-page-nav-items:focus-within .pn-pn-hover,
ul.pn-page-nav-items:hover .pn-pn-hover {
opacity: 0.12;
}
}
/*---------------------------------------ARROWS-------------------------------------------*/
pn-page-nav .pn-pn-arrows {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: 0;
height: 100%;
width: 100%;
z-index: 3;
display: flex;
justify-content: space-between;
align-items: center;
pointer-events: none;
padding: 0.125em 0.1em;
}
pn-page-nav .pn-pn-arrows svg {
width: 1.5em;
}
pn-page-nav .pn-pn-arrows svg.pn-icon-svg path {
fill: #005d92;
}
pn-page-nav .pn-pn-arrows > * {
transition: transform 0.2s, opacity 0.2s, background 0.1s, box-shadow 0.1s;
pointer-events: all;
height: 100%;
aspect-ratio: 1;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;
outline: none;
cursor: pointer;
opacity: 0;
will-change: transform;
-webkit-tap-highlight-color: transparent;
border-radius: 50%;
border: 0.0625em solid #0d234b;
}
pn-page-nav .pn-pn-arrows > *.pn-pn-arrow-left {
transform: translateX(-100%);
}
pn-page-nav .pn-pn-arrows > *.pn-pn-arrow-right {
transform: translateX(100%);
}
@media screen and (max-width: 30em) {
pn-page-nav .pn-pn-arrows > * {
border: none;
}
pn-page-nav .pn-pn-arrows > * pn-icon .pn-icon-svg {
width: 100%;
height: 2em;
animation: arrow 0.6s ease-in-out alternate infinite;
}
pn-page-nav .pn-pn-arrows > * pn-icon .pn-icon-svg path {
fill: #ffffff;
}
pn-page-nav .pn-pn-arrows > *.pn-pn-arrow-left {
background: linear-gradient(to left, transparent, #0d234b 60%);
border-radius: 50% 0 0 50%;
}
pn-page-nav .pn-pn-arrows > *.pn-pn-arrow-right {
background: linear-gradient(to right, transparent, #0d234b 40%);
border-radius: 0 50% 50% 0;
}
}
pn-page-nav .pn-pn-arrows.pn-pn-left-visible .pn-pn-arrow-left, pn-page-nav .pn-pn-arrows.pn-pn-right-visible .pn-pn-arrow-right {
opacity: 1;
transform: translateX(0);
}
@keyframes arrow {
to {
transform: translateX(10%);
}
}
/*---------------------------------------/ARROWS-------------------------------------------*/
/*---------------------------------------DROPDOWN-------------------------------------------*/
button.pn-page-nav-dropdown-button {
font-size: 1em;
border-radius: 3em 0 0 3em;
background: #0d234b;
color: #ffffff;
padding: 0.5em 1em 0.5em 1.5em;
cursor: pointer;
display: flex;
align-items: center;
border: none;
transition: background 0.15s;
outline: none;
height: 100%;
position: relative;
margin: 0 0.5em 0 0;
font-weight: 500;
}
button.pn-page-nav-dropdown-button pn-icon {
margin-left: 0.5em;
}
button.pn-page-nav-dropdown-button:hover, button.pn-page-nav-dropdown-button:focus {
background: #263655;
}
button.pn-page-nav-dropdown-button:focus {
box-shadow: inset 0 0 0 0.1em #005d92, inset 0 0 0 0.2em #d3cecb;
}
button.pn-page-nav-dropdown-button.pn-page-nav-dropdown-active {
background: #005d92;
}
button.pn-page-nav-dropdown-button.pn-page-nav-dropdown-active:hover, button.pn-page-nav-dropdown-button.pn-page-nav-dropdown-active:focus {
background: #005d92;
}
.pn-page-nav-divider {
height: 60%;
background: #d3cecb;
width: 0.1em;
position: absolute;
right: 0;
transform: translateX(50%);
}
ul.pn-page-nav-dropdown {
position: absolute;
left: 0;
top: 110%;
background: #0d234b;
border-radius: 0.5em;
margin: 0;
padding: 0;
list-style-type: none;
box-shadow: 0px 6.4000000954px 14.3999996185px 0px rgba(0, 0, 0, 0.1294117647), 0px 1.2000000477px 3.5999999046px 0px rgba(0, 0, 0, 0.1019607843);
font-size: inherit;
display: none;
}
ul.pn-page-nav-dropdown.pn-page-nav-dropdown-open {
display: block;
}
/*---------------------------------------/DROPDOWN-------------------------------------------*/