UNPKG

@ebay/skin

Version:

Skin - CSS modules that represent the brand eBay

330 lines (329 loc) 8.57 kB
: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; }