@roadtrip/css
Version:
CSS framework for Roadtrip Design System
184 lines (154 loc) • 3.23 kB
CSS
/*
* 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;
}