@postnord/web-components
Version:
PostNord Web Components
557 lines (555 loc) • 15.9 kB
CSS
/* Global utility variables */
/* Input styles */
/* Transition variables */
pn-action-menu {
--pn-menu-height: unset;
display: inline-block;
position: relative;
}
pn-action-menu .pn-action-menu {
position: relative;
}
pn-action-menu .pn-action-menu-container {
--pn-action-menu-offset: 0;
scroll-behavior: smooth;
list-style: none;
text-align: left;
position: absolute;
z-index: 100;
top: calc(100% + 0.5em);
left: var(--pn-action-menu-offset);
right: 0;
background-color: #ffffff;
box-shadow: 0em 0.075em 0.225em 0em rgba(0, 0, 0, 0.1), 0em 0.4em 0.9em 0em rgba(0, 0, 0, 0.13);
border-radius: 0.5em;
margin: 0;
padding: 0;
width: 16em;
visibility: hidden;
overflow: hidden;
}
pn-action-menu .pn-action-menu-container[data-open] {
visibility: visible;
overflow: unset;
}
pn-action-menu .pn-action-menu-container[data-left] {
right: 0;
left: unset;
}
pn-action-menu .pn-action-menu-container[data-upwards] {
top: unset;
bottom: calc(100% + 0.5em);
transform-origin: bottom left;
}
pn-action-menu .pn-action-menu-container[data-moving] {
overflow: hidden;
visibility: visible;
pointer-events: none;
}
pn-action-menu .pn-action-menu-container {
/** Special rules for the small menu */
}
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-list {
border-radius: 0.5em;
visibility: hidden;
transition-property: visibility;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-list {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-list {
transition-delay: 0.2s;
}
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-list[data-current] {
overflow-x: auto;
visibility: visible;
transition-delay: 0s;
}
pn-action-menu .pn-action-menu-container[data-small][data-moving] > .pn-action-menu-list {
visibility: visible;
}
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-item {
position: unset;
}
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-sub {
left: 0;
height: 100%;
box-shadow: unset;
transform: translateX(0);
visibility: hidden;
}
pn-action-menu .pn-action-menu-container[data-small] .pn-action-menu-sub[data-current] {
visibility: visible;
overflow-x: auto;
}
pn-action-menu .pn-action-menu-container::-webkit-scrollbar {
background-color: #ffffff;
width: 0.875em;
border-radius: 0.5em;
}
pn-action-menu .pn-action-menu-container::-webkit-scrollbar-track {
background-color: #ffffff;
border-radius: 0.5em;
}
pn-action-menu .pn-action-menu-container::-webkit-scrollbar-thumb {
cursor: pointer;
background-color: #969087;
border-radius: 1em;
border: 0.25em solid #ffffff;
}
pn-action-menu .pn-action-menu-container::-webkit-scrollbar-thumb:hover {
background-color: #5e554a;
}
pn-action-menu .pn-action-menu-container::-webkit-scrollbar-corner, pn-action-menu .pn-action-menu-container::-webkit-scrollbar-button {
display: none;
}
pn-action-menu .pn-action-menu-list {
margin: 0;
padding: 0;
list-style: none;
height: var(--pn-menu-height);
}
pn-action-menu .pn-action-menu-list::-webkit-scrollbar {
background-color: #ffffff;
width: 0.875em;
border-radius: 0.5em;
}
pn-action-menu .pn-action-menu-list::-webkit-scrollbar-track {
background-color: #ffffff;
border-radius: 0.5em;
}
pn-action-menu .pn-action-menu-list::-webkit-scrollbar-thumb {
cursor: pointer;
background-color: #969087;
border-radius: 1em;
border: 0.25em solid #ffffff;
}
pn-action-menu .pn-action-menu-list::-webkit-scrollbar-thumb:hover {
background-color: #5e554a;
}
pn-action-menu .pn-action-menu-list::-webkit-scrollbar-corner, pn-action-menu .pn-action-menu-list::-webkit-scrollbar-button {
display: none;
}
pn-action-menu .pn-action-menu-group {
margin: 0;
padding: 0;
list-style: none;
}
pn-action-menu .pn-action-menu-group-label {
display: block;
color: #2d2013;
font-weight: 700;
font-size: 0.875em;
padding: 1em 1em 0.5em;
}
pn-action-menu .pn-action-menu-group-helpertext {
display: block;
color: #5e554a;
font-weight: 400;
margin: 0.25em 0 0;
}
pn-action-menu .pn-action-menu-sub {
z-index: 110;
position: absolute;
top: 0;
width: 100%;
min-width: 12em;
margin: 0;
padding: 0;
list-style: none;
background: #ffffff;
border-radius: 0.5em;
box-shadow: 0em 0.075em 0.225em 0em rgba(0, 0, 0, 0.1), 0em 0.4em 0.9em 0em rgba(0, 0, 0, 0.13);
transform: translateX(-0.5em);
opacity: 0;
visibility: hidden;
}
pn-action-menu .pn-action-menu-sub::-webkit-scrollbar {
background-color: #ffffff;
width: 0.875em;
border-radius: 0.5em;
}
pn-action-menu .pn-action-menu-sub::-webkit-scrollbar-track {
background-color: #ffffff;
border-radius: 0.5em;
}
pn-action-menu .pn-action-menu-sub::-webkit-scrollbar-thumb {
cursor: pointer;
background-color: #969087;
border-radius: 1em;
border: 0.25em solid #ffffff;
}
pn-action-menu .pn-action-menu-sub::-webkit-scrollbar-thumb:hover {
background-color: #5e554a;
}
pn-action-menu .pn-action-menu-sub::-webkit-scrollbar-corner, pn-action-menu .pn-action-menu-sub::-webkit-scrollbar-button {
display: none;
}
pn-action-menu .pn-action-menu-sub {
transition-property: transform, opacity, visibility;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-sub {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-sub {
transition-delay: 0s, 0s, 0.2s;
}
pn-action-menu .pn-action-menu-sub[data-open=true] {
transform: translateX(0);
opacity: 1;
visibility: visible;
transition-delay: 0s, 0s, 0s;
}
pn-action-menu .pn-action-menu-sub[data-open=false] {
pointer-events: none;
}
pn-action-menu .pn-action-menu-sub[data-x=left] {
left: -100%;
}
pn-action-menu .pn-action-menu-sub[data-x=center] {
left: 0;
}
pn-action-menu .pn-action-menu-sub[data-x=right] {
left: 100%;
}
pn-action-menu .pn-action-menu-sub[data-y=top] {
top: unset;
bottom: 0;
}
pn-action-menu .pn-action-menu-sub[data-y=bottom] {
top: 0;
}
pn-action-menu .pn-action-menu-item {
position: relative;
}
pn-action-menu .pn-action-menu-item:first-child > .pn-action-menu-item-content > .pn-action-menu-button {
border-top-left-radius: 0.5em;
border-top-right-radius: 0.5em;
}
pn-action-menu .pn-action-menu-item:last-child > .pn-action-menu-item-content > .pn-action-menu-button {
border-bottom-right-radius: 0.5em;
border-bottom-left-radius: 0.5em;
}
pn-action-menu .pn-action-menu-item-text {
display: flex;
flex-direction: column;
margin-right: auto;
}
pn-action-menu .pn-action-menu-item-label {
color: #005d92;
font-weight: 500;
text-decoration: none;
}
pn-action-menu .pn-action-menu-item-suffix {
margin-left: auto;
font-weight: 400;
color: #5e554a;
}
pn-action-menu .pn-action-menu-item-helpertext {
color: #5e554a;
font-weight: 400;
}
pn-action-menu .pn-action-menu-item-content {
display: flex;
align-items: center;
flex-direction: row;
flex: 1 1 100%;
gap: 0.5em;
position: relative;
}
pn-action-menu .pn-action-menu-item-content[data-close] {
border-bottom: 0.0625em solid #d3cecb;
}
pn-action-menu .pn-action-menu-item-content > pn-icon {
padding: 0 0.25em;
}
pn-action-menu .pn-action-menu-item[data-group], pn-action-menu .pn-action-menu-item[data-sub] {
flex-direction: column;
}
pn-action-menu .pn-action-menu-button {
cursor: pointer;
position: relative;
-webkit-tap-highlight-color: transparent;
line-height: 1.5;
padding: 0.75em 1em;
border: 0;
width: 100%;
text-align: left;
text-decoration-color: transparent;
overflow: hidden;
display: flex;
align-items: center;
flex: 1 1 100%;
gap: 0.5em;
font-size: 1em;
min-height: 1.5em;
background-color: #ffffff;
transition-property: background-color, color, outline-color, text-decoration-color;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-button {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-button .pn-ripple {
animation: ripple 0.4s cubic-bezier(0.7, 0, 0.3, 1);
position: absolute;
border-radius: 50%;
background-color: #0d234b;
transform: translate(-50%, -50%) scale(0);
opacity: 0.1;
pointer-events: none;
z-index: 3;
}
@keyframes ripple {
to {
transform: translate(-50%, -50%) scale(1);
opacity: 0;
}
}
pn-action-menu .pn-action-menu-button {
outline: 0.2rem solid transparent;
outline-offset: 0.2rem;
}
pn-action-menu .pn-action-menu-button:focus-visible {
outline-color: #005d92;
}
pn-action-menu .pn-action-menu-button {
outline-offset: -0.2rem;
}
pn-action-menu .pn-action-menu-button > pn-icon .pn-icon-svg > path {
transform-origin: center;
transform: rotate(0deg);
}
pn-action-menu .pn-action-menu-button > pn-icon[data-suffix][data-active] .pn-icon-svg > path {
transform: rotate(180deg);
}
pn-action-menu .pn-action-menu-button > pn-icon:last-child {
margin-left: auto;
}
pn-action-menu .pn-action-menu-button:disabled {
pointer-events: none;
color: #5e554a;
background-color: #f3f2f2;
}
pn-action-menu .pn-action-menu-button:hover {
background-color: #effbff;
}
pn-action-menu .pn-action-menu-button:focus {
background-color: #e0f8ff;
}
pn-action-menu .pn-action-menu-button[href]:hover, pn-action-menu .pn-action-menu-button[href]:focus {
text-decoration-color: #005d92;
}
pn-action-menu .pn-action-menu-button {
/*
&::before {
content: '';
position: absolute;
left: 0;
top: 0;
width: 0.25em;
height: 100%;
background-color: transparent;
@include main.pn-transition('background-color');
}
&[aria-expanded='true']::before {
background-color: main.$blue700;
}
*/
}
pn-action-menu .pn-action-menu-checkbox {
background-color: #ffffff;
flex: 0 0 1.5em;
width: 1.5em;
height: 1.5em;
border: 0.0625em solid #969087;
border-radius: 0.25em;
margin-left: auto;
outline: 0.2rem solid transparent;
outline-offset: 0.2rem;
transition-property: background-color, border-color, outline-color;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-checkbox {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-checkbox svg polyline {
stroke: #ffffff;
stroke-linecap: round;
stroke-dasharray: 23;
transition-property: stroke-dashoffset;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-checkbox svg polyline {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-checkbox svg polyline {
transition-delay: 0s;
}
pn-action-menu .pn-action-menu-checkbox svg polyline.pn-action-menu-checkbox-checkmark-path {
stroke-dashoffset: 23;
}
pn-action-menu .pn-action-menu-radio {
display: flex;
gap: 0.75em;
padding: 0;
margin-left: auto;
}
pn-action-menu .pn-action-menu-radio-outer {
background-color: #ffffff;
border: 0.0625em solid #969087;
border-radius: 50%;
height: 1.5em;
width: 1.5em;
display: flex;
justify-content: center;
align-items: center;
outline: 0.2rem solid transparent;
outline-offset: 0.2rem;
transition-property: border-color, background-color, outline-color;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-radio-outer {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-radio-inner {
transform: scale(0);
height: 0.75em;
width: 0.75em;
background-color: #005d92;
border-radius: 50%;
transform-origin: center center;
transition-property: background-color, transform;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu-radio-inner {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-action-menu .pn-action-menu-input {
position: absolute;
z-index: 10;
cursor: pointer;
height: 100%;
width: 100%;
top: 0;
left: 0;
margin: 0;
opacity: 0;
-webkit-tap-highlight-color: transparent;
}
pn-action-menu .pn-action-menu-input:checked + .pn-action-menu-button {
background-color: #effbff;
}
pn-action-menu .pn-action-menu-input:checked + .pn-action-menu-button .pn-action-menu-checkbox {
border-color: #005d92;
background-color: #005d92;
}
pn-action-menu .pn-action-menu-input:checked + .pn-action-menu-button .pn-action-menu-checkbox polyline.pn-action-menu-checkbox-checkmark-path {
transition-delay: 0.2s;
stroke-dashoffset: 0;
}
pn-action-menu .pn-action-menu-input:checked + .pn-action-menu-button .pn-action-menu-radio-outer {
border-color: #005d92;
}
pn-action-menu .pn-action-menu-input:checked + .pn-action-menu-button .pn-action-menu-radio-inner {
transform: scale(1);
background-color: #005d92;
}
pn-action-menu .pn-action-menu-input:checked:hover {
background-color: #e0f8ff;
}
pn-action-menu .pn-action-menu-input:focus-visible + .pn-action-menu-button {
background-color: #e0f8ff;
}
pn-action-menu .pn-action-menu-input:disabled {
pointer-events: none;
}
pn-action-menu .pn-action-menu-input:disabled + .pn-action-menu-button {
pointer-events: none;
color: #5e554a;
background-color: #f3f2f2;
}
pn-action-menu .pn-action-menu-input:disabled + .pn-action-menu-button .pn-action-menu-item-label {
color: #5e554a;
}
pn-action-menu .pn-action-menu-input:disabled + .pn-action-menu-button .pn-action-menu-checkbox {
background-color: #f3f2f2;
}
pn-action-menu .pn-action-menu-input:disabled + .pn-action-menu-button .pn-action-menu-radio-outer {
border-color: #969087;
background-color: #f3f2f2;
}
pn-action-menu .pn-action-menu-input:disabled + .pn-action-menu-button .pn-icon-svg path {
fill: #5e554a;
}
pn-action-menu .pn-action-menu-input:disabled:checked + .pn-action-menu-button .pn-action-menu-radio-inner {
background-color: #969087;
}
pn-action-menu .pn-action-menu-input:disabled:checked + .pn-action-menu-button .pn-action-menu-checkbox {
border-color: #969087;
background-color: #969087;
}
pn-action-menu .pn-action-menu-input:hover + .pn-action-menu-button {
background-color: #e0f8ff;
}
pn-action-menu .pn-action-menu-input:hover + .pn-action-menu-button .pn-action-menu-radio-outer {
border-color: #005d92;
background-color: #e0f8ff;
}
pn-action-menu .pn-action-menu-input:focus-visible + .pn-action-menu-button {
background-color: #e0f8ff;
}
pn-action-menu .pn-action-menu-input:focus-visible + .pn-action-menu-button .pn-action-menu-checkbox,
pn-action-menu .pn-action-menu-input:focus-visible + .pn-action-menu-button .pn-action-menu-radio .pn-action-menu-radio-outer {
outline-color: #005d92;
}
pn-action-menu .pn-action-menu-p {
margin: 0;
}
pn-action-menu .pn-action-menu > pn-button[data-default-icon] .pn-button[aria-expanded=true] .pn-icon-svg {
transform: rotate(180deg);
transition-delay: 0s;
}
pn-action-menu .pn-action-menu > pn-button[data-default-icon] .pn-button .pn-icon-svg {
transform: rotate(0deg);
transition-delay: 0.2s;
transition-property: transform;
transition-duration: 0.2s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-action-menu .pn-action-menu > pn-button[data-default-icon] .pn-button .pn-icon-svg {
transition-duration: 0s;
transition-delay: 0s;
}
}