@innovaccer/design-system
Version:
React components library project for Innovaccer Design System
246 lines (202 loc) • 5.58 kB
CSS
.MetricInput-input::-ms-clear {
display: none;
}
.MetricInput {
display: flex;
width: 100%;
flex-direction: row;
align-items: center;
box-sizing: border-box;
border-radius: var(--border-radius-10);
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
background: var(--white);
transition: var(--duration--fast-01) var(--standard-productive-curve);
}
.MetricInput--regular {
height: var(--spacing-80);
}
.MetricInput--large {
height: 40px;
}
.MetricInput--small {
height: var(--spacing-60);
}
.MetricInput:hover {
background: var(--secondary-lightest);
cursor: text;
}
.MetricInput:focus-within {
background: var(--white);
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
}
.MetricInput:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
outline: var(--border-width-05) solid var(--primary-focus);
outline-offset: var(--spacing-05);
}
.MetricInput:focus-within .MetricInput-icon {
color: var(--primary);
}
.MetricInput--disabled {
background: var(--secondary-lightest);
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary-light);
pointer-events: none;
}
.MetricInput--readOnly {
background: var(--secondary-lightest);
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
pointer-events: none;
}
.MetricInput--disabled .MetricInput-icon {
color: var(--inverse-lightest);
}
.MetricInput--error,
.MetricInput--error:hover {
background: var(--white);
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--alert);
}
.MetricInput--error:focus-within {
box-shadow: inset 0 0 0 var(--border-width-2-5) var(--secondary);
}
.MetricInput--error:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
outline: var(--border-width-05) solid var(--alert);
outline-offset: var(--spacing-05);
}
.MetricInput--error:focus-within .MetricInput-icon {
color: var(--alert);
}
/* Content wrapper — holds icon, prefix, input, suffix */
.MetricInput-content {
flex: 1;
display: flex;
align-items: center;
min-width: 0;
overflow: hidden;
}
.MetricInput-content--regular {
padding: var(--spacing-15) var(--spacing-15);
gap: var(--spacing-05);
}
.MetricInput-content--large {
padding: var(--spacing-20) var(--spacing-15);
gap: var(--spacing-15);
}
.MetricInput-content--small {
padding: var(--spacing-10) var(--spacing-15);
gap: var(--spacing-05);
}
.MetricInput-input {
display: flex;
width: 100%;
font-family: var(--font-family);
font-weight: var(--font-weight-normal);
font-size: var(--font-size);
line-height: var(--font-height-s);
color: var(--night);
padding: 0;
border: none;
background: transparent;
}
.MetricInput-input--large {
line-height: var(--font-height-m);
font-size: var(--font-size-m);
}
.MetricInput-input--regular {
line-height: var(--font-height);
font-size: var(--font-size);
}
.MetricInput-input--small {
line-height: var(--font-height-s);
font-size: var(--font-size-s);
font-weight: var(--font-weight-medium);
}
.MetricInput-input::placeholder {
color: var(--inverse-lighter);
}
.MetricInput-input:focus {
outline: 0;
}
.MetricInput-input:disabled .MetricInput-input::placeholder {
color: var(--inverse-lighter);
}
.MetricInput-icon--regular {
margin-right: var(--spacing-20);
line-height: var(--font-height-s);
}
.MetricInput-icon--large {
margin-right: var(--spacing-30);
line-height: var(--font-height-m);
}
.MetricInput-icon--small {
margin-right: var(--spacing-10);
}
.MetricInput-input::-webkit-inner-spin-button,
.MetricInput-input::-webkit-outer-spin-button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
margin: 0;
}
/* Arrow buttons (decrement on left, increment on right) */
.MetricInput-arrowButton {
flex-shrink: 0;
align-self: stretch;
width: var(--spacing-60);
background: var(--secondary-light);
color: var(--inverse);
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
padding: 0;
margin: 0;
user-select: none;
}
.MetricInput-arrowButton--left {
border-right: var(--border);
border-radius: var(--border-radius-10) 0 0 var(--border-radius-10);
}
.MetricInput-arrowButton--right {
border-left: var(--border);
border-radius: 0 var(--border-radius-10) var(--border-radius-10) 0;
}
.MetricInput-arrowButton:hover {
background: var(--secondary);
}
.MetricInput-arrowButton:active {
background: var(--secondary-dark);
}
.MetricInput-arrowButton:focus {
outline: 0;
}
.MetricInput-arrowButton:focus-visible {
outline: var(--border-width-05) solid var(--primary-focus);
outline-offset: var(--spacing-05);
}
@media (forced-colors: active) {
/* box-shadow is stripped — restore a real border for the wrapper boundary */
.MetricInput {
border: var(--border-width-2-5) solid ButtonText;
box-shadow: none;
}
.MetricInput--disabled {
border-color: GrayText;
}
/* Wrapper focus rings */
.MetricInput:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
outline: var(--border-width-05) solid Highlight;
outline-offset: var(--spacing-05);
}
.MetricInput--error:focus-within:not(:has(.MetricInput-arrowButton:focus-visible)) {
outline: var(--border-width-05) solid Highlight;
outline-offset: var(--spacing-05);
}
/* Arrow button states */
.MetricInput-arrowButton:disabled {
color: GrayText;
}
.MetricInput-arrowButton:focus-visible {
outline: var(--border-width-05) solid Highlight;
outline-offset: var(--spacing-05);
}
}