Slider component is an interactive control for selecting numeric values in a range from 0 to 100. It offers an intuitive drag-and-drop interface, ideal for settings like volume, brightness, opacity, or any value that benefits from continuous visual adjustment.tsx
import { Slider, useSlider } from "@arkyn/components";
value and onChange properties. The component is always controlled.tsx
const [value, setValue] = useSlider(25);<Slider value={value} onChange={setValue} />;
Disabled slider at 60%
tsx
const [value, setValue] = useSlider(25);<Slider value={value} onChange={setValue} disabled />;
onDragging callback to detect when the user is dragging the slider.tsx
const [value, setValue] = useSlider(50);const [isDragging, setIsDragging] = useState(false);const handleDragging = (dragging) => {setIsDragging(dragging);if (dragging) {console.log("Started dragging");// Pause automatic updates// Show tooltip with value} else {console.log("Finished dragging");// Resume updates// Save final value}};<Slider value={value} onChange={setValue} onDragging={handleDragging} />;
tsx
// Convert to specific rangefunction convertRange(value: number, min: number, max: number) {return (value / 100) * (max - min) + min;}// Convert back to 0-100function convertToSlider(value: number, min: number, max: number) {return ((value - min) / (max - min)) * 100;}// Example: Slider for price ($10 to $500)const [priceSliderValue, setPriceSliderValue] = useSlider(20); // 20% = $108const actualPrice = convertRange(priceSliderValue, 10, 500);<div><label>Price: {actualPrice.toFixed(2)}</label><Slider value={priceSliderValue} onChange={setPriceSliderValue} /></div>;
value - number (required)
Current slider value (0-100)onChange - (value: number) => void (required)
Callback function called when the value changesdisabled - boolean (default: false)
Whether the slider is disabledonDragging - (value: boolean) => void
Callback function called when the drag state changesclassName - string
Additional CSS classes for stylingdiv are also supported, except
onChange which is controlled by the component.onDragging callback is useful for performance optimizationsuseSlider over useState to ensure consistency and prevent validation bugs