@postnord/web-components
Version:
PostNord Web Components
221 lines (220 loc) • 5.17 kB
CSS
/* Global utility variables */
/* Input styles */
/* Transition variables */
pn-modal .pn-modal {
--pn-modal-max-width: 45em;
z-index: 10000;
position: fixed;
top: 0;
inset-block-start: 0;
inset-block-end: 0;
margin: auto;
padding: 0;
max-width: var(--pn-modal-max-width);
overflow: hidden;
border: 0;
border-radius: 1.5em;
box-shadow: 0 0.25em 0.875em rgba(0, 0, 0, 0.18), 0 1.625em 3.5em rgba(0, 0, 0, 0.22);
background-color: #ffffff;
display: none;
opacity: 0;
transform: translate(0%, 20%);
outline: 0.2rem solid transparent;
outline-offset: 0.2rem;
}
pn-modal .pn-modal:focus-visible {
outline-color: #ffffff;
}
pn-modal .pn-modal {
transition-property: opacity, overlay, display, transform, outline-color, border-radius;
transition-duration: 0.4s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-modal .pn-modal {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-modal .pn-modal {
transition-behavior: allow-discrete;
}
pn-modal .pn-modal[data-allow-overflow] {
overflow: unset;
}
pn-modal .pn-modal[data-allow-overflow] .pn-modal-container {
overflow: unset;
}
pn-modal .pn-modal[data-allow-overflow] .pn-modal-picture {
border-top-right-radius: 1.5em;
}
pn-modal .pn-modal[data-image] {
padding-top: 0;
}
pn-modal .pn-modal[data-sheet] {
margin: 0 0 0 auto;
height: 100%;
max-height: unset;
border-radius: 1.5em 0 0 1.5em;
transform: translate(20%, 0%);
}
pn-modal .pn-modal[data-sheet] .pn-modal-container {
max-height: unset;
}
pn-modal .pn-modal[open] {
display: flex;
opacity: 1;
transform: translate(0%, 0%);
}
@starting-style {
pn-modal .pn-modal[open] {
display: flex;
opacity: 0;
transform: translate(0%, 20%);
}
}
pn-modal .pn-modal[open][data-sheet] {
transform: translate(0%, 0%);
}
@starting-style {
pn-modal .pn-modal[open][data-sheet] {
transform: translate(20%, 0%);
}
}
pn-modal .pn-modal::backdrop {
background-color: rgba(0, 0, 0, 0);
transition-property: opacity, background-color, overlay, display;
transition-duration: 0.4s;
transition-timing-function: cubic-bezier(0.7, 0, 0.3, 1);
}
@media (prefers-reduced-motion: reduce) {
pn-modal .pn-modal::backdrop {
transition-duration: 0s;
transition-delay: 0s;
}
}
pn-modal .pn-modal::backdrop {
transition-behavior: allow-discrete;
}
pn-modal .pn-modal[open]::backdrop {
background-color: rgba(0, 0, 0, 0.55);
}
@starting-style {
pn-modal .pn-modal[open]::backdrop {
background-color: rgba(0, 0, 0, 0);
}
}
pn-modal .pn-modal-container {
max-height: 85vh;
display: flex;
flex-direction: column;
align-items: stretch;
overflow: hidden auto;
}
pn-modal .pn-modal-container::-webkit-scrollbar {
background-color: #ffffff;
width: 0.875em;
border-radius: 0.5em;
}
pn-modal .pn-modal-container::-webkit-scrollbar-track {
background-color: #ffffff;
border-radius: 0.5em;
}
pn-modal .pn-modal-container::-webkit-scrollbar-thumb {
cursor: pointer;
background-color: #969087;
border-radius: 1em;
border: 0.25em solid #ffffff;
}
pn-modal .pn-modal-container::-webkit-scrollbar-thumb:hover {
background-color: #5e554a;
}
pn-modal .pn-modal-container::-webkit-scrollbar-corner, pn-modal .pn-modal-container::-webkit-scrollbar-button {
display: none;
}
pn-modal .pn-modal-close-button {
position: absolute;
z-index: 10;
right: 0.75em;
top: 0.75em;
}
pn-modal .pn-modal-header {
display: flex;
flex-direction: column;
gap: 0.5em;
padding: clamp(1em, 5vw, 1.5em);
}
pn-modal .pn-modal-header[hidden] {
display: none;
}
pn-modal .pn-modal-header:not([hidden]) + .pn-modal-content:not([hidden]) {
padding-top: 0;
}
pn-modal .pn-modal-label {
line-height: 1.5;
padding-right: 1.5em;
margin: 0;
}
pn-modal .pn-modal-text {
margin: 0;
}
pn-modal .pn-modal-content {
padding: clamp(1em, 5vw, 1.5em);
}
pn-modal .pn-modal-image {
position: relative;
display: flex;
flex-direction: column;
}
pn-modal .pn-modal-image[hidden] {
display: none;
}
pn-modal .pn-modal-picture {
margin: 0;
padding: 0;
display: block;
overflow: hidden;
border-radius: 1.5em 0 0 0;
}
pn-modal .pn-modal-picture > *[slot=image] {
display: block;
height: 100%;
width: 100%;
object-fit: cover;
}
pn-modal .pn-modal-buttons {
background-color: #ffffff;
padding: clamp(1em, 5vw, 1.5em);
display: flex;
justify-content: flex-end;
gap: 0.5em;
border-radius: 0 0 1.5em 1.5em;
}
pn-modal .pn-modal-buttons[data-divider] {
border-top: 0.0625em solid #d3cecb;
margin-top: auto;
}
pn-modal .pn-modal-buttons > [slot=buttons]:not(pn-button) {
display: flex;
justify-content: flex-end;
gap: 0.5em;
}
pn-modal .pn-modal-buttons > [slot=buttons]:not(pn-button) > [data-left] {
margin-right: auto;
}
pn-modal .pn-modal-buttons > [data-left] {
margin-right: auto;
}
pn-modal .pn-modal-buttons:empty {
display: none;
}
@media (max-width: 55em) {
pn-modal .pn-modal {
max-height: 95vh;
margin-bottom: 0;
bottom: 0;
transform: translate(0%, 20%);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}