Range slider output
Keep a range input and its visible formatted value synchronized for pricing and preference controls.
[data-sc-effect="range-slider-output"] { display: grid; gap: .5rem; }
[data-sc-effect="range-slider-output"] input { accent-color: #155eef; }
[data-sc-effect="range-slider-output"] output { color: #155eef; font-weight: 800; font-variant-numeric: tabular-nums; }
const rangeRoot = document.querySelector('[data-sc-effect="range-slider-output"]'); const range = rangeRoot.querySelector('input[type="range"]'); const output = rangeRoot.querySelector('output'); const updateRange = () => { output.value = `${range.value}%`; output.textContent = `${range.value}%`; }; range.addEventListener('input', updateRange); updateRange();