UNPKG

@roadtrip/css

Version:

CSS framework for Roadtrip Design System

194 lines (157 loc) 3.98 kB
/* * Select * * Index * - Select * - Select label * - Select error * */ .form-group { position: relative; display: block; margin-bottom: 1rem; font-family: var(--road-font); color: var(--road-on-surface); } /* SELECT -------------------- */ .form-select { box-sizing: border-box; display: block; width: 100%; height: auto; padding: 0.75rem 3rem 0 1rem; margin: 0; font-size: var(--road-body-medium); line-height: 1.5; color: var(--road-on-surface); background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NCA2NCIgZmlsbD0icmdiYSgyMywgMzAsIDUyLCAwLjcyKSI+PHBhdGggZD0iTTIzIDI2bDkgMTIgOS0xMnoiLz48L3N2Zz4=") no-repeat right 0.5rem center/2rem 2rem; background-color: var(--road-surface); border: 1px solid var(--road-input-outline); border-radius: 0.25rem; box-shadow: none; appearance: none; } .form-select:-moz-focusring { color: transparent; text-shadow: 0 0 0 #000000; } .form-select::-ms-expand { /* IE fix remove native arrow */ display: none; } /** * Placeholder */ .form-select::placeholder { color: var(--road-on-surface-extra-weak); } /** * Hover state */ @media (hover: hover) { .form-select:not(:disabled):hover { border-color: var(--road-input-outline-variant); } } /** * Focus state */ .form-select:focus ~ .form-select-label, .form-select[required]:valid ~ .form-select-label, .form-select.has-value ~ .form-select-label { transform: scale(0.625) translateY(-0.625rem); } .form-select:focus { border-color: var(--road-input-outline-variant); } /** * Disabled state */ .form-select:disabled, .form-select[readonly] { cursor: not-allowed; background-color: var(--road-surface-disabled); } /* LABEL -------------------- */ .form-select-label { position: absolute; top: 0.75rem; left: 1rem; display: block; font-size: var(--road-label-medium); line-height: 1.5; color: var(--road-on-surface-extra-weak); pointer-events: none; transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms; transform-origin: 0 0; } .form-select:required ~ .form-select-label::after{ color: var(--road-on-danger-surface); content: " *"; } /* SIZES -------------------- */ .form-select-xl { min-height: 3.5rem; padding: 1rem 1rem 0; } .form-select-xl ~ .form-select-label { top: 1rem; } .form-select-xl:focus ~ .form-select-label, .form-select-xl[required]:valid ~ .form-select-label, .form-select-xl.has-value ~ .form-select-label, .form-select-xl[type="date"] ~ .form-select-label, .form-select-xl[type="time"] ~ .form-select-label { transform: scale(0.75) translateY(-0.625rem); } .form-select-xl:placeholder-shown ~ .form-select-label { transform: scale(0.75) translateY(-0.625rem); } .form-select-lg { min-height: 3rem; } .form-select-md { min-height: 2.5rem; padding: 1rem 1rem 0; font-size: var(--road-body-small); } .form-select-md ~ .form-select-label { top: 0.5rem; } .form-select-md:focus ~ .form-select-label, .form-select-md[required]:valid ~ .form-select-label, .form-select-md.has-value ~ .form-select-label, .form-select-md[type="date"] ~ .form-select-label, .form-select-md[type="time"] ~ .form-select-label { transform: scale(0.75) translateY(-0.625rem); } .form-select-md:placeholder-shown ~ .form-select-label { transform: scale(0.75) translateY(-0.625rem); } /* ERROR -------------------- */ .form-select .invalid-feedback { display: none; width: 100%; margin-top: 0.5rem; font-size: var(--road-body-small); color: var(--road-on-danger-surface); } .form-select.is-invalid, .was-validated .form-select:invalid { border-color: var(--road-on-danger-surface); } .form-select.is-invalid ~ .invalid-feedback, .was-validated .form-select:invalid ~ .invalid-feedback { display: block; } /* Helper -------------------- */ .form-group .helper { margin-top: 0.5rem; font-size: var(--road-body-small); color: var(--road-on-surface-weak); }