react range slider using radix ui, tailwind css

PHOTO EMBED

Sat Sep 09 2023 04:31:01 GMT+0000 (Coordinated Universal Time)

Saved by @sadik #tailwindcss #react.js #frontend #typescript #range-input #range-slider #dual-range-slider #radix-ui #price-range #price-range-slider

// src/components/RadixSlider.jsx
import * as Slider from "@radix-ui/react-slider";
import { useState } from "react";

const RadixSlider = () => {
  const [values, setValues] = useState([20, 80]);
  console.log(values);
  return (
    <div className="bg-gray-200 ">
      <label
        htmlFor="slider"
        className="text-center text-sm font-medium text-gray-700"
      >
        range: {values.toString()}
      </label>
      <Slider.Root
        id="slider"
        className="outline outline-1 mx-auto relative flex items-center select-none touch-none w-[300px] h-5"
        defaultValue={values}
        // onValueChange={(values) => setValues(values)}
        onValueCommit={(values) => setValues(values)}
        max={100}
        step={1}
        minStepsBetweenThumbs={10}
      >
        <Slider.Track className="bg-blue-400 relative grow rounded-full h-[3px]">
          <Slider.Range className="absolute bg-red-400 rounded-full h-full" />
        </Slider.Track>
        <Slider.Thumb
          className="block bg-white shadow-[0_2px_10px] shadow-black rounded-full hover:bg-violet-300 focus:outline "
          aria-label="Volume"
          asChild
        >
          <p className=" px-1"> {values[0]}</p>
        </Slider.Thumb>
        <Slider.Thumb
          className="block   bg-white shadow-[0_2px_10px] shadow-black rounded-full hover:bg-violet-300 focus:outline "
          aria-label="Volume"
          asChild
        >
          <p className=" px-1"> {values[1]}</p>
        </Slider.Thumb>
      </Slider.Root>
    </div>
  );
};

export default RadixSlider;

// src/App.jsx
const App = () => (
  <div>

      <RadixSlider />
     
    </div>
  </div>
);
content_copyCOPY

radix ui docs: https://www.radix-ui.com/primitives/docs/components/slider github source repo: https://github.com/radix-ui/primitives/blob/main/packages/react/slider/src/Slider.stories.tsx#L207 codesandbox example: https://codesandbox.io/p/sandbox/5q16tq?file=/App.jsx:1,1

gist: https://gist.github.com/Sadik-Hossain/154501199e62d8827dc9322adbbfd883