Socket
Socket
Sign inDemoInstall

@aerian/preact-range-slider

Package Overview
Dependencies
3
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @aerian/preact-range-slider

Preact component for input values with range slider


Version published
Maintainers
1
Created

Readme

Source

NPM Dependencies DevDependencies

@aerian/preact-range-slider

Preact component for input values with range slider

Based on rc-slider for React, with a lot of changes (so, this component is not compatible with original). Fork of preact-range-slider

Written in TypeScript, types are also included.

Demo

On CodePen.

Installation

For bundlers and other NPM-based environments:

npm install --save-dev preact tslib preact-range-slider

Package tslib required in ES5-ESM version for __extends and __assign helper functions. It's not required for ES2015 version and for UMD version (functions is included in UMD).

Usage

There is two components:

  • Slider — for range slider with one handle.
  • MultiSlider — for range slider with multiple handles (two and more).
render(
	<div>
		<Slider />
		<MultiSlider />
	</div>,
	container
);

UMD

UMD is default for this package, so just use something like:

import {Slider, MultiSlider} from 'preact-range-slider';
// or
const {Slider, MultiSlider} = require( 'preact-range-slider' );

For using directly in browser (import with <script> tag in HTML-file):

You can use AMD or PreactRangeSlider global variable.

ES2015 module systems

Package contain module property for use with ES2015 module bundlers (like Rollup and Webpack 2).

ES2015 code base

If you don't want to use transplitted to ES5 code, you can use included ES2015 version.

You can directly import this version:

import {Slider, MultiSlider} from 'preact-range-slider/es2015';

Or specify alias in Webpack config:

{
	// …
	resolve: {
		extensions: ['.ts', '.tsx', '.js'],
		alias: {
			'preact-range-slider': 'preact-range-slider/es2015',
		},
	},
};

Styles

You can use SCSS mixin from preact-range-slider/assets/_mixin.scss, where you can specify prefix for internal classes:

div.my-range-slider
{
	@import "mixin";
	@include range-slider("my-");
}

Or you can use compiled CSS file preact-range-slider/assets/index.css with default parameters (div.range-slider element, internal classes without prefix).

You can override colors by creating variables with these names:

$range-slider-clr-primary
$range-slider-clr-secondary
$range-slider-clr-disabled
$range-slider-clr-obscured
$range-slider-clr-text
$range-slider-clr-dot-bg
$range-slider-clr-handle-bg
$range-slider-clr-tooltip-fg
$range-slider-clr-tooltip-bg

like:

$range-slider-clr-primary: $my-theme-primary-color;
@import "preact-range-slider/assets/index.scss";

API

Common properties

NameTypeDefaultDescription
minnumber0The minimum value of the slider.
maxnumber100The maximum value of the slider.
stepnumber1Value to be added or subtracted on each step the slider makes. Step can be set to zero or less to make marks as steps.
marks`{[key: number]: stringJSX.ElementArray<string
dotsbooleanfalseShow dots on slider (with step as interval)?
includedbooleantrueAs continuous value interval (otherwise, as independent values)?
verticalbooleanfalseVertical slider mode?
disabledbooleanfalseDisable control (handles can't be moved)?
classNamestring'range-slider'Component main class name.
classesPrefixstring''Prefix for secondary class names in component.
tipFormatter`( value: number ) => stringJSX.ElementArray<string

Slider properties

NameTypeDefaultDescription
defaultValuenumber0Initial value of slider.
valuenumberundefinedCurrent value of slider (for controlled component).
onBeforeChange( value: number ) => voidnoopTriggered before value is start to change (on mouse down, etc).
onChange( value: number ) => voidnoopTriggered while the value of Slider changing.
onAfterChange( value: number ) => voidnoopTriggered after slider changes stop (on mouse up, etc).

MultiSlider properties

NameTypeDefaultDescription
defaultValuenumber[][0, 0]Initial value of slider.
valuenumber[]undefinedCurrent value of slider (for controlled component).
countnumber1How many ranges to render (handles count = count + 1).
allowCrossbooleantrueAllow handles to cross each other?
pushable`booleannumber`false
onBeforeChange( value: number[] ) => voidnoopTriggered before value is start to change (on mouse down, etc).
onChange( value: number[] ) => voidnoopTriggered while the value of Slider changing.
onAfterChange( value: number[] ) => voidnoopTriggered after slider changes stop (on mouse up, etc).

Change Log

View changelog.

License

MIT.

Keywords

FAQs

Last updated on 11 Apr 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc