@ebay/skin
Version:
Skin - CSS modules that represent the brand eBay
330 lines (329 loc) • 8.57 kB
CSS
:root {
--bubble-shadow: 0 2px 7px rgb(0 0 0 / 0.15), 0 5px 17px rgb(0 0 0 / 0.2);
--state-layer-neutral-on-strong: rgb(var(--color-neutral-900-rgb), 0);
--state-layer-neutral: rgb(var(--color-neutral-900-rgb), 0);
}
.combobox {
box-sizing: border-box;
line-height: normal;
position: relative;
}
span.combobox {
display: inline-block;
vertical-align: bottom;
}
.combobox__value {
flex: 1 0 auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.combobox__options--fix-width[role="listbox"] {
width: 100%;
}
.combobox__listbox {
background-color: var(--color-background-elevated);
border-radius: var(--border-radius-50);
box-shadow: var(--bubble-shadow);
box-sizing: border-box;
display: none;
left: 0;
max-height: 400px;
overflow-y: auto;
position: absolute;
top: 0;
width: fit-content;
z-index: 2;
}
.combobox__listbox--set-position {
min-width: 100%;
top: calc(100% + 4px);
width: auto;
}
.combobox__listbox--fixed {
position: fixed;
}
.combobox__listbox--reverse,
[dir="rtl"] .combobox__listbox {
left: unset;
right: 0;
}
[dir="rtl"] .combobox__listbox--reverse {
left: 0;
right: unset;
}
.combobox__control > button,
.combobox__control > svg.icon {
margin-inline-start: 8px;
}
.combobox__option[role^="option"] {
background-color: initial;
border-color: var(--color-background-primary);
border-style: solid;
border-width: 1px;
box-sizing: border-box;
color: var(--color-foreground-primary);
cursor: default;
display: inline-grid;
font-family: inherit;
grid-template-columns: auto auto;
justify-content: space-between;
padding: 8px 15px;
width: 100%;
}
.combobox__option[role^="option"]:focus {
outline-offset: -4px;
}
.combobox__option[role^="option"] {
overflow: hidden;
position: relative;
}
.combobox__option[role^="option"]:after {
background-color: var(--color-state-layer-neutral);
content: "";
inset: 0;
pointer-events: none;
position: absolute;
}
.combobox__option[role^="option"]:not(
[disabled],
[aria-disabled="true"]
):hover:after,
.combobox__option[role^="option"][href]:hover:after {
background-color: var(--color-state-layer-hover);
}
.combobox__option[role^="option"]:not(
[disabled],
[aria-disabled="true"]
):focus-visible:after,
.combobox__option[role^="option"][href]:focus-visible:after {
background-color: var(--color-state-layer-focus);
}
.combobox__option[role^="option"]:not(
[disabled],
[aria-disabled="true"]
):active:after,
.combobox__option[role^="option"][href]:active:after {
background-color: var(--color-state-layer-pressed);
}
.combobox__option[role^="option"][hidden] {
display: none;
}
.combobox__option[role^="option"]:active {
font-weight: 700;
}
.combobox__option[role^="option"]:disabled,
.combobox__option[role^="option"][aria-disabled="true"] {
background-color: unset;
color: var(
--listbox-option-disabled-foreground-color,
var(--color-foreground-disabled)
);
font-weight: unset;
}
.combobox__option[role^="option"]:first-child {
border-top-left-radius: var(
--combobox-listbox-border-radius,
var(--border-radius-50)
);
border-top-right-radius: var(
--combobox-listbox-border-radius,
var(--border-radius-50)
);
}
.combobox__option[role^="option"]:last-child {
border-bottom-left-radius: var(
--combobox-listbox-border-radius,
var(--border-radius-50)
);
border-bottom-right-radius: var(
--combobox-listbox-border-radius,
var(--border-radius-50)
);
}
.combobox__option[role^="option"]:not(:last-child) {
margin-bottom: 1px;
}
.combobox__option[role^="option"] svg.icon {
align-self: center;
fill: currentColor;
margin: 0 auto;
opacity: 0;
stroke: currentColor;
stroke-width: 0;
}
.combobox__option--active[role^="option"] {
overflow: hidden;
position: relative;
}
.combobox__option--active[role^="option"]:after {
background-color: var(--color-state-layer-neutral);
background-color: var(--color-state-layer-pressed);
content: "";
inset: 0;
pointer-events: none;
position: absolute;
}
.combobox__option--active[role^="option"] svg.icon {
opacity: 1;
}
.combobox__control button.icon-btn {
height: 38px;
padding: 0;
position: absolute;
right: 1px;
top: 1px;
width: 38px;
}
.combobox__control button.icon-btn svg {
inset: auto 0;
margin: 0;
}
.combobox--expanded .combobox__listbox {
display: block;
}
.combobox--expanded svg.icon--12 {
transform: rotate(180deg);
}
.combobox__control > svg.icon--12 {
color: var(--combobox-textbox-icon-color, var(--color-foreground-primary));
pointer-events: none;
position: absolute;
right: 17px;
top: calc(50% - 8px);
}
.combobox__control > input {
appearance: none;
background-color: var(
--combobox-textbox-background-color,
var(--color-background-secondary)
);
border-color: var(
--combobox-textbox-border-color,
var(--color-border-medium)
);
border-radius: var(
--combobox-textbox-border-radius,
var(--border-radius-50)
);
border-style: solid;
border-width: 1px;
box-sizing: border-box;
font-family: inherit;
font-size: inherit;
height: 40px;
margin-left: 0;
margin-right: 0;
padding: 0 32px 0 16px;
}
.combobox__control > input,
.combobox__control > input[readonly] {
color: var(
--combobox-textbox-foreground-color,
var(--color-foreground-primary)
);
}
.combobox__control > input[readonly] {
cursor: default;
text-shadow: 0 0 0 inherit;
--webkit-user-select: none;
}
.combobox__control > input[readonly]::-moz-selection,
.combobox__control > input[readonly]::selection {
background-color: var(
--combobox-textbox-readonly-selection-background,
var(--color-background-primary)
);
}
.combobox__control > input[aria-disabled="true"],
.combobox__control > input[disabled] {
border-color: var(
--combobox-textbox-disabled-border-color,
var(--color-background-disabled)
);
color: var(
--combobox-textbox-disabled-foreground-color,
var(--color-foreground-disabled)
);
}
.combobox__control > input[aria-disabled="true"][readonly],
.combobox__control > input[disabled][readonly] {
text-shadow: 0 0 0 var(--color-foreground-disabled);
}
.combobox__control > input[aria-disabled="true"] + svg,
.combobox__control > input[disabled] + svg {
opacity: 0.5;
}
.combobox__control > input[aria-invalid="true"] {
border-color: var(
--combobox-textbox-invalid-foreground-color,
var(--color-border-attention)
);
}
.combobox__control > input::-ms-clear {
display: none;
}
.combobox__control--borderless > input {
background-color: initial;
border-color: transparent;
padding-left: 0;
}
.combobox__control > input:focus {
background-color: var(
--combobox-textbox-focus-background-color,
var(--color-background-primary)
);
border-color: var(
--combobox-textbox-focus-border-color,
var(--color-foreground-primary)
);
}
.combobox__control--borderless > input:focus {
border-color: transparent;
outline: none;
}
.combobox--fluid,
.combobox--fluid .combobox__control > input {
width: 100%;
}
.combobox--large .combobox__control > input {
font-size: var(--font-size-medium);
height: 48px;
}
.combobox__control > input[disabled] {
background-color: var(
--combobox-textbox-disabled-background-color,
var(--color-background-secondary)
);
}
.combobox__option--active[role="option"] {
color: var(
--combobox-listbox-option-hover-foreground-color,
var(--color-foreground-primary)
);
font-weight: 700;
}
@media (-ms-high-contrast: active), all and (-ms-high-contrast: none) {
.combobox__value,
::-ms-backdrop {
min-width: 100%;
}
}
[dir="rtl"] .combobox__control > input {
padding: 0 16px 0 32px;
}
[dir="rtl"] .combobox__control > button,
[dir="rtl"] .combobox__control > svg.icon {
right: unset;
}
[dir="rtl"] .combobox__control > svg.icon {
left: 16px;
margin-top: 1.3px;
}
[dir="rtl"] .combobox__control > button {
left: 0;
}
[dir="rtl"] .combobox__control button.icon-btn {
left: 1px;
right: inherit;
}