UNPKG

@roadtrip/css

Version:

CSS framework for Roadtrip Design System

184 lines (154 loc) 3.23 kB
/* * Checkbox * * * Index * - Input * - Value * - Slider * - Progress * - Cursor * */ :root { --min: 0; --max: 10; --value: 0; } .form-range { position: relative; display: flex; flex-direction: column; width: 100%; margin-bottom: 6px; } /* INPUT -------------------- */ .form-range-input { position: relative; z-index: 1; width: 100%; background: transparent; outline: 0; appearance: none; } /* VALUE -------------------- */ .form-range > output::after { display: block; font-size: var(--road-label-medium); color: var(--road-on-surface); text-align: right; content: counter(variable); counter-reset: variable var(--value); } /* SLIDER -------------------- */ .form-range-progress { position: relative; z-index: 0; display: block; width: 100%; margin-top: -1rem; } .form-range-input::-webkit-slider-runnable-track { border: 0; appearance: none; } .form-range-input::-moz-range-track { height: 0.5rem; border: 0; appearance: none; } .form-range-progress::before { display: block; height: 0.5rem; content: ""; background-color: var(--road-on-surface-disabled); border: 0; border-radius: 1.125rem; } /* PROGRESS -------------------- */ .form-range-progress::after { position: absolute; top: 0; right: 0; left: 0; display: block; width: calc((var(--value) * 100%) / var(--max)); height: 0.5rem; content: ""; background: var(--road-primary); border-radius: 1.125rem; } /* DISABLED -------------------- */ .form-range-input:disabled { pointer-events: none; } .form-range.disabled { cursor: not-allowed; } .form-range-progress.disabled::after { background: var(--road-surface-disabled); } .form-range.disabled .form-range-input::-webkit-slider-thumb, .form-range.disabled .form-range-input::-moz-range-thumb { pointer-events: none; background: var(--road-on-surface-disabled); box-shadow: none; } /* CURSOR -------------------- */ .form-range-input::-webkit-slider-thumb { position: relative; z-index: 1; width: 1.625rem; height: 1.625rem; cursor: grab; background: var(--road-surface); border: none; border-radius: 1.625rem; box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24); appearance: none; } .form-range-input::-moz-range-thumb { position: relative; z-index: 1; box-sizing: border-box; width: 1.625rem; height: 1.625rem; margin-top: -0.625rem; cursor: grab; background: var(--road-surface); border: none; border-radius: 1.625rem; box-shadow: 0 0.1875rem 0.375rem rgba(0, 0, 0, 0.24); appearance: none; } /** * Focus state */ .form-range-input.focus-visible::-webkit-slider-thumb, .form-range-input:active::-webkit-slider-thumb { background: var(--road-input-surface-variant); border: 0.5rem solid var(--road-grey-100-new); } .form-range-input.focus-visible::-moz-range-thumb, .form-range-input:active::-moz-range-thumb { background: var(--road-input-surface-variant); border: 0.5rem solid var(--road-grey-100-new); } /* DATALIST -------------------- */ datalist { display: flex; justify-content: space-between; } datalist option { width: 32px; margin: 0; font-size: var(--road-label-medium); text-align: center; }