react-radio-slider
TypeScript icon, indicating that this package has built-in type declarations

1.2.0 • Public • Published

React Radio Slider

ReactRadioSlider is a flexible, easy-to-integrate, and customizable React component that allows users to select a single option from a set of options in a slider-like UI. Unlike traditional select components, ReactRadioSlider provides a more interactive component with a smooth user experience.

Features

  • Adjustable width for options.
  • Customizable opacity for deselected items.
  • Optional min and max range for the slider input.
  • Responsive design that works with different sizes and device types.

Installation

Using npm:

npm install react-radio-slider

Using yarn:

yarn add react-radio-slider

Props

Below are the properties that you can pass to <ReactRadioSlider>:

Prop Type Required Description
value number Yes The current value of the slider.
onChange function Yes Callback function that is fired when the value changes.
radioOptions ReactNode[] Yes An array of React nodes that are the options the user can select from.
optionWidth number Yes The width of each option.
deselectedOpacity number No Opacity of the non-selected items (0-100). Default is 50.
optionHeight number No The height of each option. If not specified, the height will be adjusted automatically.
max number No The maximum value of the slider. The default is 100.
min number No The minimum value of the slider. The default is 0.
gap number No The gap between the radio options and range input

Basic Usage

Here is a basic example of using the ReactRadioSlider component:

import React, { useState } from "react";
import ReactRadioSlider from "react-radio-slider";

const App = () => {
  const [value, setValue] = useState(0);
  const radioOptions = [
    // Your options here. They can be any valid React nodes.
  ];

  const handleChange = (newValue) => {
    setValue(newValue);
  };

  return (
    <ReactRadioSlider
      value={value}
      onChange={handleChange}
      radioOptions={radioOptions}
      optionWidth={50} // Example width value
    />
  );
};

export default App;

Custom Styling

You can provide custom styles for the options by passing in React nodes with your styling applied as radioOptions. Here's an example of how you might achieve custom-styled options:

const radioOptions = [
  <div style={{ backgroundColor: "red" }}>Option 1</div>,
  <div style={{ backgroundColor: "blue" }}>Option 2</div>,
  // ... more options
];

Pass this radioOptions array to the ReactRadioSlider component as a prop.

Contributing

We encourage you to contribute to react-radio-slider! Please check out the Contributing guide for guidelines about how to proceed.

License

This project is licensed under the GNU License - see the LICENSE file for details.


Note: Make sure to replace react-radio-slider with your actual package name. Also, provide actual paths if your contributing and license guides are located in places other than the root or if they have different filenames.

Package Sidebar

Install

npm i react-radio-slider

Weekly Downloads

2

Version

1.2.0

License

GNU

Unpacked Size

60.4 kB

Total Files

12

Last publish

Collaborators

  • sudonoun