UNPKG

@ebay/skin

Version:

Skin - CSS modules that represent the brand eBay

254 lines (228 loc) 6.99 kB
:root { --state-layer-neutral-on-strong: rgb(var(--color-neutral-900-rgb), 0); --state-layer-neutral: rgb(var(--color-neutral-900-rgb), 0); } @keyframes fill-horizontal-background { 0% { background-size: 0 100%; } 99% { background-color: var(--color-background-primary); } to { background-color: var(--color-background-strong); background-size: 100% 100%; } } @keyframes chevron-bounce-open { 0% { transform: translateY(0); } 50% { transform: translateY(-7px); } to { transform: translateY(0); } } @keyframes chevron-bounce-close { 0% { transform: translateY(0); } 50% { transform: translateY(7px); } to { transform: translateY(0); } } a.filter-chip, button.filter-chip { align-items: center; background-color: var(--color-background-primary); background-position: 50%; background-repeat: no-repeat; background-size: 0 100%; border: 1px solid var(--color-border-medium); border-radius: var(--border-radius-100); box-shadow: none; box-sizing: border-box; color: var(--color-foreground-primary); display: inline-flex; font-size: var(--font-size-body); gap: var(--spacing-75); height: var(--spacing-400); justify-content: space-between; max-width: 296px; min-width: 32px; padding: 0 var(--spacing-150); text-decoration: none; transition: all var(--motion-duration-short-3) var(--motion-easing-quick-enter); vertical-align: bottom; } a.filter-chip:active, button.filter-chip:active { transform: scale(0.97); } a.filter-chip, button.filter-chip { overflow: hidden; position: relative; } a.filter-chip:after, button.filter-chip:after { background-color: var(--color-state-layer-neutral); content: ""; inset: 0; pointer-events: none; position: absolute; } a.filter-chip:not([disabled], [aria-disabled="true"]):hover:after, a.filter-chip[href]:hover:after, button.filter-chip:not([disabled], [aria-disabled="true"]):hover:after, button.filter-chip[href]:hover:after { background-color: var(--color-state-layer-hover); } a.filter-chip:not([disabled], [aria-disabled="true"]):focus-visible:after, a.filter-chip[href]:focus-visible:after, button.filter-chip:not([disabled], [aria-disabled="true"]):focus-visible:after, button.filter-chip[href]:focus-visible:after { background-color: var(--color-state-layer-focus); } a.filter-chip:not([disabled], [aria-disabled="true"]):active:after, a.filter-chip[href]:active:after, button.filter-chip:not([disabled], [aria-disabled="true"]):active:after, button.filter-chip[href]:active:after { background-color: var(--color-state-layer-pressed); } a.filter-chip--expressive, button.filter-chip--expressive { border-radius: var(--border-radius-150); height: 40px; } .filter-chip__media { align-items: center; border-radius: var(--spacing-400); border-radius: 8px; display: flex; justify-content: center; margin-inline-start: -8px; overflow: hidden; position: relative; } .filter-chip__media:after { background: rgba(0, 0, 0, 0.05); content: ""; display: block; inset: 0; pointer-events: none; position: absolute; } .filter-chip__media > img { display: inline-block; height: var(--spacing-400); max-height: 100%; max-width: 100%; object-fit: contain; object-fit: cover; width: var(--spacing-400); } a.filter-chip--selected, button.filter-chip.filter-chip--selected, button.filter-chip[aria-pressed="true"] { animation: fill-horizontal-background 0s var(--motion-easing-quick-enter) forwards; background-image: linear-gradient( to right, var(--color-background-strong) 0, var(--color-background-strong) 100% ); color: var(--color-foreground-on-strong); overflow: hidden; position: relative; } a.filter-chip--selected:after, button.filter-chip.filter-chip--selected:after, button.filter-chip[aria-pressed="true"]:after { background-color: var(--color-state-layer-neutral-on-strong); content: ""; inset: 0; pointer-events: none; position: absolute; } a.filter-chip--selected:not([disabled], [aria-disabled="true"]):hover:after, a.filter-chip--selected[href]:hover:after, button.filter-chip.filter-chip--selected:not( [disabled], [aria-disabled="true"] ):hover:after, button.filter-chip.filter-chip--selected[href]:hover:after, button.filter-chip[aria-pressed="true"]:not( [disabled], [aria-disabled="true"] ):hover:after, button.filter-chip[aria-pressed="true"][href]:hover:after { background-color: var(--color-state-layer-hover-on-strong); } a.filter-chip--selected:not( [disabled], [aria-disabled="true"] ):focus-visible:after, a.filter-chip--selected[href]:focus-visible:after, button.filter-chip.filter-chip--selected:not( [disabled], [aria-disabled="true"] ):focus-visible:after, button.filter-chip.filter-chip--selected[href]:focus-visible:after, button.filter-chip[aria-pressed="true"]:not( [disabled], [aria-disabled="true"] ):focus-visible:after, button.filter-chip[aria-pressed="true"][href]:focus-visible:after { background-color: var(--color-state-layer-focus-on-strong); } a.filter-chip--selected:not([disabled], [aria-disabled="true"]):active:after, a.filter-chip--selected[href]:active:after, button.filter-chip.filter-chip--selected:not( [disabled], [aria-disabled="true"] ):active:after, button.filter-chip.filter-chip--selected[href]:active:after, button.filter-chip[aria-pressed="true"]:not( [disabled], [aria-disabled="true"] ):active:after, button.filter-chip[aria-pressed="true"][href]:active:after { background-color: var(--color-state-layer-pressed-on-strong); } button.filter-chip--animated.filter-chip--selected, button.filter-chip--animated[aria-pressed="true"] { animation-duration: var(--motion-duration-medium-2); transition: color var(--motion-duration-instant) var(--motion-easing-standard); } button.filter-chip[aria-expanded="false"]:active .filter-chip__trailing { animation: chevron-bounce-close var(--motion-duration-medium-1) var(--motion-easing-standard); rotate: 180deg; } button.filter-chip[aria-expanded="false"] .filter-chip__trailing { rotate: 0deg; transition: none; } button.filter-chip[aria-expanded="true"]:active .filter-chip__trailing { animation: chevron-bounce-open var(--motion-duration-medium-1) var(--motion-easing-standard) var(--motion-duration-short-1); rotate: 0deg; } button.filter-chip[aria-expanded="true"] .filter-chip__trailing { rotate: 180deg; transition: none; } .filter-chip__text { overflow: hidden; padding: var(--spacing-75) 0; text-overflow: ellipsis; white-space: nowrap; }