@ebay/skin
Version:
Skin - CSS modules that represent the brand eBay
333 lines (332 loc) • 11.3 kB
CSS
:root {
--dialog-scrim-color-hide: rgb(17 24 32 / 0);
--dialog-scrim-color-show: rgb(17 24 32 / 0.7);
--dialog-lightbox-max-width: 616px;
--dialog-lightbox-wide-max-width: 896px;
--dialog-lightbox-narrow-max-width: 480px;
}
.lightbox-dialog[role="dialog"] {
align-items: flex-start;
background-color: var(--dialog-scrim-color-show);
inset: 0;
justify-content: center;
position: fixed;
will-change: background-color;
z-index: 100000;
}
.lightbox-dialog[role="dialog"]:not([hidden]) {
display: flex;
}
.lightbox-dialog__window {
background-color: var(
--dialog-window-background-color,
var(--color-background-primary)
);
border-radius: var(--lightbox-border-radius, var(--border-radius-150));
display: flex;
flex: 1 0 auto;
flex-direction: column;
margin: auto auto 16px;
max-height: 90%;
max-width: calc(100% - 32px);
min-height: 55px;
min-width: 208px;
will-change: opacity, transform;
}
.lightbox-dialog__header {
display: flex;
flex-shrink: 0;
margin: var(--spacing-200) var(--spacing-200) 0;
position: relative;
}
.lightbox-dialog__header h1,
.lightbox-dialog__header h2,
.lightbox-dialog__header h3,
.lightbox-dialog__header h4,
.lightbox-dialog__header h5,
.lightbox-dialog__header h6 {
align-self: center;
flex: 1 1 auto;
margin: 0;
overflow-wrap: anywhere;
}
.lightbox-dialog__header > :last-child:not(:only-child) {
margin-inline-start: var(--spacing-200);
}
.lightbox-dialog__main {
box-sizing: border-box;
flex: 1 1 auto;
min-height: 18px;
overflow: auto;
padding: var(--spacing-200);
position: relative;
}
.lightbox-dialog__main > :first-child {
margin-top: 0;
}
.lightbox-dialog__main > :last-child {
margin-bottom: 0;
}
.lightbox-dialog__footer {
border-top: 1px solid
var(--dialog-lightbox-separator-color, var(--color-border-subtle));
display: flex;
flex-direction: column;
justify-content: center;
padding: var(--spacing-200);
position: relative;
}
.lightbox-dialog__footer > :not(:first-child) {
margin-top: var(--spacing-200);
}
.lightbox-dialog__image {
background-position: 50%;
background-repeat: no-repeat;
background-size: cover;
border-radius: var(--border-radius-100) var(--border-radius-100) 0 0;
height: 218px;
position: absolute;
width: 100%;
}
.lightbox-dialog--expressive .lightbox-dialog__window {
padding-bottom: var(--spacing-100);
}
.lightbox-dialog--expressive .lightbox-dialog__header > * {
margin-top: 218px;
}
.lightbox-dialog--expressive .lightbox-dialog__header {
margin: var(--spacing-300) var(--spacing-300) 0;
}
.lightbox-dialog--expressive .lightbox-dialog__footer,
.lightbox-dialog--expressive .lightbox-dialog__main {
padding: var(--spacing-200) var(--spacing-300);
}
button.icon-btn.lightbox-dialog__close,
button.icon-btn.lightbox-dialog__prev {
align-self: flex-start;
border: 0;
height: 32px;
min-width: 32px;
position: relative;
width: 32px;
z-index: 1;
}
button.icon-btn.lightbox-dialog__prev {
margin-inline-end: var(--spacing-200);
}
.lightbox-dialog--expressive button.icon-btn.lightbox-dialog__close,
.lightbox-dialog--expressive button.icon-btn.lightbox-dialog__prev {
align-self: self-start;
margin: 0;
}
.lightbox-dialog--expressive button.icon-btn.lightbox-dialog__prev + * {
margin-left: -32px;
}
.lightbox-dialog__title:not(:first-child) {
margin-left: var(--spacing-200);
}
.lightbox-dialog__title--center {
text-align: center;
}
.lightbox-dialog--hide.lightbox-dialog--mask-fade,
.lightbox-dialog--hide.lightbox-dialog--mask-fade-slow {
transition: background-color var(--motion-duration-short-3)
var(--motion-easing-continuous);
}
.lightbox-dialog--hide .lightbox-dialog__window--fade {
transition: opacity var(--motion-duration-short-3)
var(--motion-easing-continuous);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate {
transition:
transform var(--motion-duration-medium-3) var(--motion-easing-soft-exit),
opacity var(--motion-duration-short-3) var(--motion-easing-continuous);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate > * {
transition: opacity var(--motion-duration-short-2)
var(--motion-easing-continuous);
}
.lightbox-dialog--show.lightbox-dialog--mask-fade,
.lightbox-dialog--show.lightbox-dialog--mask-fade-slow {
transition: background-color var(--motion-duration-short-3)
var(--motion-easing-continuous);
}
.lightbox-dialog--show .lightbox-dialog__window--fade {
transition: opacity var(--motion-duration-short-3)
var(--motion-easing-continuous);
}
.lightbox-dialog--show .lightbox-dialog__window--animate {
transition:
transform var(--motion-duration-medium-3) var(--motion-easing-standard),
opacity var(--motion-duration-short-3) var(--motion-easing-continuous);
}
.lightbox-dialog--show .lightbox-dialog__window--animate > * {
transition: opacity var(--motion-duration-medium-2)
var(--motion-easing-continuous) var(--motion-duration-short-3);
}
.lightbox-dialog--hide.lightbox-dialog--hide,
.lightbox-dialog--hide.lightbox-dialog--show-init,
.lightbox-dialog--show-init.lightbox-dialog--hide,
.lightbox-dialog--show-init.lightbox-dialog--show-init {
display: flex;
}
.lightbox-dialog--hide.lightbox-dialog--mask-fade,
.lightbox-dialog--hide.lightbox-dialog--mask-fade-slow,
.lightbox-dialog--show-init.lightbox-dialog--mask-fade,
.lightbox-dialog--show-init.lightbox-dialog--mask-fade-slow {
background-color: var(--dialog-scrim-color-hide);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate,
.lightbox-dialog--hide .lightbox-dialog__window--animate > *,
.lightbox-dialog--hide .lightbox-dialog__window--fade,
.lightbox-dialog--show-init .lightbox-dialog__window--animate,
.lightbox-dialog--show-init .lightbox-dialog__window--animate > *,
.lightbox-dialog--show-init .lightbox-dialog__window--fade {
opacity: 0;
}
.lightbox-dialog--hide-init.lightbox-dialog--hide-init,
.lightbox-dialog--hide-init.lightbox-dialog--show,
.lightbox-dialog--show.lightbox-dialog--hide-init,
.lightbox-dialog--show.lightbox-dialog--show {
display: flex;
}
.lightbox-dialog--hide-init.lightbox-dialog--mask-fade,
.lightbox-dialog--hide-init.lightbox-dialog--mask-fade-slow,
.lightbox-dialog--show.lightbox-dialog--mask-fade,
.lightbox-dialog--show.lightbox-dialog--mask-fade-slow {
background-color: var(--dialog-scrim-color-show);
}
.lightbox-dialog--hide-init .lightbox-dialog__window--animate,
.lightbox-dialog--hide-init .lightbox-dialog__window--animate > *,
.lightbox-dialog--hide-init .lightbox-dialog__window--fade,
.lightbox-dialog--show .lightbox-dialog__window--animate,
.lightbox-dialog--show .lightbox-dialog__window--animate > *,
.lightbox-dialog--show .lightbox-dialog__window--fade {
opacity: 1;
}
@media (prefers-reduced-motion) {
.lightbox-dialog--hide.lightbox-dialog--mask-fade,
.lightbox-dialog--hide.lightbox-dialog--mask-fade-slow {
transition: background-color var(--motion-duration-short-3)
var(--motion-easing-soft-exit);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate,
.lightbox-dialog--hide .lightbox-dialog__window--fade {
transition: opacity var(--motion-duration-short-3)
var(--motion-easing-soft-exit);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate > * {
transition: opacity var(--motion-duration-short-2)
var(--motion-soft-exit);
}
.lightbox-dialog--show.lightbox-dialog--mask-fade,
.lightbox-dialog--show.lightbox-dialog--mask-fade-slow {
transition: background-color var(--motion-duration-medium-2)
var(--motion-easing-soft-enter);
}
.lightbox-dialog--show .lightbox-dialog__window--animate,
.lightbox-dialog--show .lightbox-dialog__window--fade {
transition: opacity var(--motion-duration-medium-2)
var(--motion-easing-soft-enter);
}
.lightbox-dialog--show .lightbox-dialog__window--animate > * {
transition: opacity var(--motion-duration-medium-2)
var(--motion-easing-soft-enter) var(--motion-duration-short-3);
}
}
.lightbox-dialog--hide-init .lightbox-dialog__window--animate,
.lightbox-dialog--show .lightbox-dialog__window--animate {
transform: translateY(0);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate,
.lightbox-dialog--show-init .lightbox-dialog__window--animate {
transform: translateY(100%);
}
.lightbox-dialog__handle:after {
background-color: var(--dialog-handle-color, var(--color-border-medium));
border-radius: 3px;
content: "";
display: block;
height: 2px;
width: 24px;
}
[dir="rtl"] button.icon-btn.lightbox-dialog__prev .icon--16 {
transform: rotate(180deg);
}
.lightbox-dialog--fullscreen .lightbox-dialog__window,
.lightbox-dialog--large .lightbox-dialog__window {
align-self: center;
height: 70%;
margin: var(--spacing-100);
max-height: 95%;
}
@media (max-width: 512px) {
.lightbox-dialog--large .lightbox-dialog__window {
height: 95%;
max-height: 95%;
width: 100%;
}
.lightbox-dialog--fullscreen .lightbox-dialog__window {
border-radius: 0;
height: 100%;
margin: 0;
max-height: 100%;
max-width: 100%;
width: 100%;
}
}
@media (min-width: 512px) {
.lightbox-dialog__window {
border-radius: var(--lightbox-border-radius, var(--border-radius-100));
margin: auto;
max-width: 88%;
}
.lightbox-dialog--narrow .lightbox-dialog__window {
max-width: var(--dialog-lightbox-narrow-max-width);
}
.lightbox-dialog__window .lightbox-dialog__footer {
flex-direction: row;
justify-content: flex-end;
}
.lightbox-dialog__window .lightbox-dialog__footer > :not(:first-child) {
margin-left: var(--spacing-100);
margin-top: 0;
}
.lightbox-dialog--hide-init .lightbox-dialog__window--animate,
.lightbox-dialog--show .lightbox-dialog__window--animate {
transform: scale(1);
}
.lightbox-dialog--hide .lightbox-dialog__window--animate,
.lightbox-dialog--show-init .lightbox-dialog__window--animate {
transform: scale(0.75);
}
}
@media (min-width: 512px) and (prefers-reduced-motion) {
.lightbox-dialog--hide .lightbox-dialog__window--animate,
.lightbox-dialog--hide-init .lightbox-dialog__window--animate,
.lightbox-dialog--show .lightbox-dialog__window--animate,
.lightbox-dialog--show-init .lightbox-dialog__window--animate {
transform: scale(1);
}
}
@media (min-width: 768px) {
.lightbox-dialog__window {
max-width: var(--dialog-lightbox-max-width);
}
.lightbox-dialog--wide .lightbox-dialog__window {
max-width: 88%;
}
.lightbox-dialog--wide .lightbox-dialog__image {
height: 256px;
}
.lightbox-dialog--wide.lightbox-dialog--expressive
.lightbox-dialog__header
> * {
margin-top: 256px;
}
}
@media (min-width: 1024px) {
.lightbox-dialog--wide .lightbox-dialog__window {
max-width: var(--dialog-lightbox-wide-max-width);
}
}