@ebay/skin
Version:
Skin - CSS modules that represent the brand eBay
205 lines (177 loc) • 4.95 kB
CSS
:root {
--input-default-height: 40px;
--input-large-height: 48px;
}
.textbox {
align-items: center;
background-color: var(
--textbox-background-color,
var(--color-background-secondary)
);
border-color: var(--textbox-border-color, var(--color-border-medium));
border-radius: var(--textbox-border-radius, var(--border-radius-50));
border-style: solid;
border-width: 1px;
box-sizing: border-box;
color: var(--textbox-foreground-color, var(--color-foreground-primary));
display: inline-flex;
font-size: var(--font-size-body);
gap: var(--spacing-100);
overflow: hidden;
position: relative;
width: fit-content;
}
.textbox button.icon-btn {
background-color: initial;
padding: 0;
}
.textbox--focus,
.textbox:has(> .textbox__control:focus):not(.textbox--readonly):not(
:has(> .textbox__control[readonly])
) {
background-color: var(
--textbox-focus-background-color,
var(--color-background-primary)
);
border-color: var(--textbox-focus-border-color, var(--color-border-strong));
box-shadow: 0 0 0 1px var(--color-border-strong);
}
.textbox--readonly,
.textbox:has(> .textbox__control[readonly]) {
background-color: initial;
border: none;
}
.textbox--disabled,
.textbox:has(> .textbox__control[disabled]) {
border-color: var(
--textbox-disabled-border-color,
var(--color-background-disabled)
);
color: var(
--textbox-disabled-foreground-color,
var(--color-foreground-disabled)
);
}
.textbox--invalid,
.textbox:has(> .textbox__control[aria-invalid="true"]) {
border-color: var(
--textbox-invalid-border-color,
var(--color-border-attention)
);
}
.textbox__control {
background-color: initial;
border: none;
box-sizing: border-box;
color: inherit;
}
textarea.textbox__control {
font-family: inherit;
min-height: 200px;
overflow: auto;
padding: var(--spacing-200);
resize: vertical;
vertical-align: middle;
}
input.textbox__control {
font-family: inherit;
padding: 0;
vertical-align: middle;
}
input.textbox__control:first-child:not([readonly]) {
padding-inline-start: var(--spacing-200);
}
input.textbox__control:last-child:not([readonly]) {
padding-inline-end: var(--spacing-200);
}
input.textbox__control,
textarea.textbox__control {
appearance: none;
flex-grow: 1;
font-size: 1em;
height: 40px;
margin: 0;
outline: none;
}
input.textbox__control[disabled],
textarea.textbox__control[disabled] {
border-color: var(
--textbox-disabled-border-color,
var(--color-background-disabled)
);
color: var(
--textbox-disabled-foreground-color,
var(--color-foreground-disabled)
);
}
input.textbox__control[disabled]::-webkit-input-placeholder,
textarea.textbox__control[disabled]::-webkit-input-placeholder {
color: var(
--textbox-disabled-placeholder-color,
var(--color-foreground-ghost)
);
}
input.textbox__control[disabled]::-moz-placeholder,
textarea.textbox__control[disabled]::-moz-placeholder {
color: var(
--textbox-disabled-placeholder-color,
var(--color-foreground-ghost)
);
}
input.textbox__control[disabled]:-ms-input-placeholder,
textarea.textbox__control[disabled]:-ms-input-placeholder {
color: var(
--textbox-disabled-placeholder-color,
var(--color-foreground-ghost)
);
}
input.textbox__control[aria-invalid="true"],
textarea.textbox__control[aria-invalid="true"] {
border-color: var(
--textbox-invalid-foreground-color,
var(--color-border-attention)
);
}
input.textbox__control::placeholder,
textarea.textbox__control::placeholder {
color: var(--textbox-placeholder-color, var(--color-foreground-secondary));
font-weight: 200;
opacity: 1;
}
input.textbox__control {
height: calc(var(--input-default-height) - 2px);
}
.textbox--large input.textbox__control {
height: calc(var(--input-large-height) - 2px);
}
.textbox .icon-btn > svg,
.textbox > svg {
color: var(--textbox-icon-color, var(--color-foreground-secondary));
display: inline-flex;
fill: var(--textbox-icon-color, var(--color-foreground-secondary));
height: 1lh;
pointer-events: none;
}
.textbox > span:first-child,
.textbox > svg:first-child {
flex-shrink: 0;
margin-inline-start: var(--spacing-200);
}
.textbox > span:last-child,
.textbox > svg:last-child {
margin-inline-end: var(--spacing-200);
}
.textbox .icon-btn:last-child {
margin-inline-start: calc(var(--spacing-100) * -1);
}
.textbox .icon-btn:first-child {
margin-inline-end: calc(var(--spacing-100) * -1);
}
input.textbox__control[readonly]:focus,
textarea.textbox__control[readonly]:focus {
text-decoration: underline;
}
.textbox--fluid,
.textbox--fluid .textbox__control {
width: 100%;
}