121
GitHub
Forms

Slider

Captures numeric values across a bounded range.

FrameworksAstro · React · Elements

Registry commandlumen add Slider

InteractionNative markup

01

See it in context

Preview

80
02

Copy a working example

Usage

astro
---
import { Slider } from '@santi020k/lumen-astro'
---

<div style="display: grid; gap: 0.75rem; max-width: 20rem;">
  <label for="ex-slider-opacity">Opacity</label>
  <Slider id="ex-slider-opacity" name="opacity" min="0" max="100" value="80" aria-describedby="ex-slider-opacity-value" />
  <output id="ex-slider-opacity-value" for="ex-slider-opacity" aria-live="polite">80</output>

  <label for="ex-slider-volume">Volume</label>
  <Slider id="ex-slider-volume" name="volume" min="0" max="100" step="5" value="45" />
</div>

<script>
  const slider = document.querySelector<HTMLInputElement>('#ex-slider-opacity')
  const output = document.querySelector<HTMLOutputElement>('#ex-slider-opacity-value')

  if (slider && output) {
    const updateValue = () => {
      output.value = slider.value

      output.textContent = slider.value
    }

    updateValue()

    slider.addEventListener('input', updateValue)
  }
</script>
---
import { Slider } from '@santi020k/lumen-astro'
---

<div style="display: grid; gap: 0.75rem; max-width: 20rem;">
  <label for="ex-slider-opacity">Opacity</label>
  <Slider id="ex-slider-opacity" name="opacity" min="0" max="100" value="80" aria-describedby="ex-slider-opacity-value" />
  <output id="ex-slider-opacity-value" for="ex-slider-opacity" aria-live="polite">80</output>

  <label for="ex-slider-volume">Volume</label>
  <Slider id="ex-slider-volume" name="volume" min="0" max="100" step="5" value="45" />
</div>

<script>
  const slider = document.querySelector<HTMLInputElement>('#ex-slider-opacity')
  const output = document.querySelector<HTMLOutputElement>('#ex-slider-opacity-value')

  if (slider && output) {
    const updateValue = () => {
      output.value = slider.value

      output.textContent = slider.value
    }

    updateValue()

    slider.addEventListener('input', updateValue)
  }
</script>
03

Choose your target

Add this component

Choose the package for your runtime. All adapters share the Lumen stylesheet. Use the matching registry command when you want a local wrapper for that framework.

bash@santi020k/lumen-astro
pnpm add @santi020k/lumen-astro
pnpm add @santi020k/lumen-astro
bashAstro wrapper
lumen add Slider
lumen add Slider

API reference

Lumen-specific props and runtime attributes for the Astro primitive. React props follow the same names; Elements use equivalent kebab-case attributes where custom elements expose them.

AttributeValuesDefaultDescription
typeHTML input type"range"Sets the native input type.
class, classNamestring""Merges custom classes with the generated ui-* root classes.
...native attributesHTML attributes-Forwards standard attributes to the root element unless the component consumes them.