@layer fc.components {
.fc-slider {
--fc-slider-thumb: 1.25rem;
--fc-slider-track: 0.375rem;
--fc-slider-fill: var(--fc-color-accent-border);
--fc-slider-rest: var(--fc-color-border-strong);
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: center;
column-gap: var(--fc-space-3);
max-inline-size: 100%;
}
.fc-slider__input {
-webkit-appearance: none;
appearance: none;
inline-size: 100%;
block-size: var(--fc-size-target-comfortable);
margin: 0;
padding: 0;
border: 0;
background: transparent;
cursor: pointer;
touch-action: pan-y;
}
.fc-slider__input::-webkit-slider-runnable-track {
block-size: var(--fc-slider-track);
border-radius: var(--fc-radius-full);
background: linear-gradient(to right, var(--fc-slider-fill) var(--fc-slider-pct, 0%), var(--fc-slider-rest) var(--fc-slider-pct, 0%));
}
.fc-slider__input:dir(rtl)::-webkit-slider-runnable-track {
background: linear-gradient(to left, var(--fc-slider-fill) var(--fc-slider-pct, 0%), var(--fc-slider-rest) var(--fc-slider-pct, 0%));
}
.fc-slider__input::-moz-range-track {
block-size: var(--fc-slider-track);
border-radius: var(--fc-radius-full);
background-color: var(--fc-slider-rest);
}
.fc-slider__input::-moz-range-progress {
block-size: var(--fc-slider-track);
border-radius: var(--fc-radius-full);
background-color: var(--fc-slider-fill);
}
.fc-slider__input::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
inline-size: var(--fc-slider-thumb);
block-size: var(--fc-slider-thumb);
margin-block-start: calc((var(--fc-slider-track) - var(--fc-slider-thumb)) / 2);
background-color: var(--fc-slider-fill);
border: var(--fc-border-width-thick) solid var(--fc-color-bg-surface);
border-radius: var(--fc-radius-full);
box-shadow: var(--fc-shadow-raised);
transition: scale var(--fc-duration-fast) var(--fc-easing-standard);
}
.fc-slider__input::-moz-range-thumb {
inline-size: var(--fc-slider-thumb);
block-size: var(--fc-slider-thumb);
background-color: var(--fc-slider-fill);
border: var(--fc-border-width-thick) solid var(--fc-color-bg-surface);
border-radius: var(--fc-radius-full);
box-shadow: var(--fc-shadow-raised);
}
@media (hover: hover) {
.fc-slider__input:hover {
--fc-slider-fill: var(--fc-color-accent-bg-hover);
}
}
.fc-slider__input:active::-webkit-slider-thumb {
scale: 1.15;
}
.fc-slider__input:active {
--fc-slider-fill: var(--fc-color-accent-bg-active);
}
.fc-slider__input:disabled {
--fc-slider-fill: var(--fc-color-disabled-fg);
--fc-slider-rest: var(--fc-color-disabled-border);
cursor: not-allowed;
}
.fc-slider__input[aria-invalid="true"] {
--fc-slider-fill: var(--fc-color-danger-bg);
}
.fc-slider__value {
min-inline-size: 3ch;
color: var(--fc-color-text-default);
font-size: var(--fc-font-size-sm);
font-variant-numeric: tabular-nums;
text-align: end;
}
.fc-slider__marks {
display: flex;
grid-column: 1;
justify-content: space-between;
margin: 0;
padding: 0;
padding-inline: calc(var(--fc-slider-thumb) / 2);
list-style: none;
color: var(--fc-color-text-muted);
font-size: var(--fc-font-size-xs);
font-variant-numeric: tabular-nums;
}
.fc-slider__marks > li {
inline-size: 0;
display: flex;
justify-content: center;
white-space: nowrap;
}
@media (prefers-reduced-motion: reduce) {
.fc-slider__input:active::-webkit-slider-thumb {
scale: 1;
}
}
@media (forced-colors: active) {
.fc-slider__input::-webkit-slider-runnable-track {
background: CanvasText;
}
.fc-slider__input::-webkit-slider-thumb {
background-color: Highlight;
border-color: Canvas;
}
.fc-slider__input::-moz-range-track {
background-color: CanvasText;
}
.fc-slider__input::-moz-range-thumb,
.fc-slider__input::-moz-range-progress {
background-color: Highlight;
}
.fc-slider__input:disabled::-webkit-slider-thumb {
background-color: GrayText;
}
}
}