@postnord/web-components
Version:
PostNord Web Components
124 lines (121 loc) • 3.63 kB
CSS
/* Global utility variables */
/* Input styles */
/* Transition variables */
pn-segmented-control {
position: relative;
display: inline-block;
max-width: 100%;
overflow: hidden;
border-radius: 3em;
transform: translateZ(0);
transition-property: outline-color;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
outline: 0.2rem solid transparent;
outline-offset: 0.2rem;
}
pn-segmented-control:focus-within, pn-segmented-control:active {
outline-color: #005d92;
}
pn-segmented-control .pn-segmented-control {
display: flex;
align-items: center;
border-radius: 3em;
min-height: 3em;
padding: 0.25em;
background: #f3f2f2;
position: relative;
overflow-x: auto;
scroll-snap-type: x mandatory;
}
pn-segmented-control .pn-segmented-control:hover .pn-sc-bg[data-hover] {
opacity: 1;
}
pn-segmented-control .pn-segmented-control::-webkit-scrollbar {
display: none;
}
pn-segmented-control .pn-segmented-control .pn-sc-bg {
position: absolute;
top: 50%;
transform: translateY(-50%);
will-change: transform;
left: 0;
border-radius: inherit;
transition-property: width, transform, background-color, opacity, box-shadow;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
pn-segmented-control .pn-segmented-control .pn-sc-bg[data-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);
border: 0.0625em solid #005d92;
background-color: #ffffff;
z-index: 1;
}
pn-segmented-control .pn-segmented-control .pn-sc-bg[data-hover] {
background-color: #e0f8ff;
opacity: 0;
border: 0.25em solid transparent;
z-index: 0;
}
pn-segmented-control .pn-segmented-control .pn-sc-bg[data-hover][data-disabled] {
border-color: #e9e6e5;
background-color: #e9e6e5;
}
pn-segmented-control .pn-segmented-control .pn-sc-bg[data-disabled] {
border-color: #e9e6e5;
background-color: #e9e6e5;
}
/*---------------------------------------ARROWS-------------------------------------------*/
pn-segmented-control .pn-sc-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;
}
pn-segmented-control .pn-sc-arrows svg {
width: 1.5em;
}
pn-segmented-control .pn-sc-arrows svg.pn-icon-svg path {
fill: #005d92;
}
pn-segmented-control .pn-sc-arrows > .pn-sc-arrow {
cursor: pointer;
pointer-events: all;
width: 2.5em;
height: 2.5em;
background: #ffffff;
border: none;
outline: none;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
will-change: transform;
-webkit-tap-highlight-color: transparent;
transition-property: transform, opacity, background-color, box-shadow;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
pn-segmented-control .pn-sc-arrows > .pn-sc-arrow.pn-sc-arrow-left {
transform: translateX(-100%);
border-radius: 0 50% 50% 0;
padding: 0 0.3em 0 0;
box-shadow: 0.2rem 0.3rem 0.2rem rgba(0, 0, 0, 0.4);
}
pn-segmented-control .pn-sc-arrows > .pn-sc-arrow.pn-sc-arrow-right {
transform: translateX(100%);
border-radius: 50% 0 0 50%;
box-shadow: -0.2rem 0.3rem 0.2rem rgba(0, 0, 0, 0.4);
}
pn-segmented-control .pn-sc-arrows.pn-sc-left-visible .pn-sc-arrow-left, pn-segmented-control .pn-sc-arrows.pn-sc-right-visible .pn-sc-arrow-right {
opacity: 1;
transform: translateX(0);
}
/*---------------------------------------/ARROWS-------------------------------------------*/