vue3-multi-slider
TypeScript icon, indicating that this package has built-in type declarations

0.0.4 • Public • Published

Vue 3 Multi-slider

Downloads Version Gzip Size MIT License

A vue 3 component for multiple sliders in one (categories) You can use it to make distributions of percentages or other units (passed in props)

Colors, range, categories and display are customizable

Demo

demo_1 demo_2

Installation

Install vue3-multi-slider with npm or yarn

npm install vue3-multi-slider --save
yarn add vue3-multi-slider

Usage

<template>
    <MultiSlider
        v-model="distribution"
        :min="0"
        :max="100"
        :step="1"
        unit="%"
        inputs-width="200px"
        :show-inputs="true"
        :ticks="[0, 25, 50, 75, 100]"
    ></MultiSlider>
</template>
<script setup lang="ts">
import { reactive } from 'vue';
import { MultiSlider } from 'vue3-multi-slider';

const distribution = reactive({
  'Category 1': {
      'value': 20,
      'background_color': '#478eff',
      'text_color': '#ffffff'
  },
  'Category 2': {
      'value': 20,
      'background_color': '#86f7a8',
      'text_color': '#ffffff'
  },
  'Category 3': {
      'value': 20,
      'background_color': '#86f0f7',
      'text_color': '#00000'
  }
})
</script>

Props

min

type: number
description: minimum index value for all sliders
default: 0

max

type: number
description: maximum index value for all sliders
default: 100

step

type: number
description: values step
default: 0.01

unit

type: string
description: the unit displayed in inputs and slider values, it can be anything
default: %

inputs-width

type: string
format: css width (px or % or ...)
default: 200px
description: width for the inputs underneath the slider

show-inputs

type: boolean
default: true
description: hide or not the inputs underneath the slider

ticks

type: array
default: [min, (min + middle) / 2, middle, (middle + max) / 2, max]
description: the ticks to be displayed under the slider

Model

To pass categories to the slider, you must define a v-model this way:
value must be reactive in order to catch updates from the component

{
  'Category': {
      'value': 20,
      'background_color': '#478eff',
      'text_color': '#ffffff'
  },
}

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Please adhere to this project's code of conduct.

Package Sidebar

Install

npm i vue3-multi-slider

Weekly Downloads

6

Version

0.0.4

License

none

Unpacked Size

42.3 kB

Total Files

6

Last publish

Collaborators

  • arcenice