UNPKG

@indiekit/frontend

Version:

Frontend components for Indiekit

112 lines (93 loc) 2.45 kB
.input { appearance: none; background-color: var(--color-background); border: var(--input-border-width) solid var(--color-outline-variant); border-radius: var(--border-radius-small); font: var(--font-body); inline-size: 100%; margin-block-end: var(--input-border-width-focus-offset); padding-block: calc(var(--space-s) / 2); padding-inline: var(--space-s); &:focus-visible { border-color: var(--color-on-background); border-width: var(--input-border-width-focus); inset-block-start: calc(var(--input-border-width-focus-offset) * -1); margin-block-end: calc(var(--input-border-width-focus-offset) * -1); padding-inline-start: calc( var(--space-s) - var(--input-border-width-focus-offset) ); } &:disabled, &[readonly] { background: var(--color-offset); border-color: var(--color-offset); color: var(--color-on-offset); } &[type="color"] { max-inline-size: 6ch; min-block-size: 3rem; padding: var(--border-width-thickest); &::-webkit-color-swatch-wrapper { padding: 0; } &:focus-visible { min-block-size: calc(3rem + var(--input-border-width-focus-offset)); } } &[type="datetime-local"], &[type="date"], &[type="time"] { min-block-size: 2.5rem; padding-block: 0.25rem; &::-webkit-datetime-edit-year-field:focus, &::-webkit-datetime-edit-month-field:focus, &::-webkit-datetime-edit-day-field:focus, &::-webkit-datetime-edit-hour-field:focus, &::-webkit-datetime-edit-minute-field:focus { background-color: var(--color-selection); } } &[type="file"] { background: none; border: 0; padding: 0; &:focus-visible { inset-block-start: 0; margin-block-end: var(--input-border-width-focus-offset); } } } .input--error { border-color: var(--color-error); } .input--width-25 { max-inline-size: 44ch; } .input--width-10 { max-inline-size: 19ch; } .input--width-5 { max-inline-size: 11ch; } .input--width-2 { max-inline-size: 6ch; } /* Show an input and button combined */ .input-button-group { align-items: end; display: flex; flex-wrap: wrap; gap: var(--space-2xs); & *:first-child { flex: 999 1 auto; inline-size: auto; max-inline-size: 100%; } & .input:focus-visible { margin-inline-end: calc(var(--input-border-width-focus) * -1); } & *:last-child { flex: 1 1 auto; margin-block-start: 0; } }