@smartweb/vue-number-input

Vue number input component with great accessibility: ARIA, control by keyboard and wheel
1,169 3
Install
npm install @smartweb/vue-number-input
Latest Version:1.1.0
Vue:2
License:MIT
Last Updated:Feb 22, 2020
Links: GitHub  ·  npm
Maintainer: smartweb

@smartweb/vue-number-input

vue license Build Status Coverage Status Size

Vue component for numbers input.

  • Accessible: uses ARIA agreements (100% accessibility in lighthouse)
  • Use your keyboard to navigate and control
  • Use your mousewheel or touchpad to increase or descrease value
  • Flexible styling
  • Support custom controls through slots
Live Demo

Download

Use npm

npm i @smartweb/vue-number-input

Or via cdn

<script src="https://unpkg.com/@smartweb/vue-number-input/build/vue-number-input.umd.min.js"></script>

Configuration

Import and register in your component.vue file

import VueNumberInput from '@smartweb/vue-number-input';

export default {
	components: {
		VueNumberInput
	}
};

Use it in your template with v-model directive

<template>
	<div id="app">
		<VueNumberInput
			v-model="you_model"
			:min="0"
			:max="100"
		></VueNumberInput>
	</div>
</template>

Or register it globally in your application entry point (main.js or as you called it)

import Vue from 'vue';
import VueNumberInput from '@smartweb/vue-number-input';
// Global registration of the component
Vue.component('vue-number-input', VueNumberInput);

new Vue({
	render: h => h(App)
}).$mount('#app');

Usage

You can bind following props for vue-input-number element

Prop Type Default value Description
value Number 0 Defines a value for 'value' and 'aria-valuenow' attributes of element.
min Number Number.MIN_SAFE_INTEGER Minimum value of the number range. Provides a value for 'aria-valuemin' attributes of element.
max Number Number.MAX_SAFE_INTEGER Maximum value of the number range. Provides a value for 'aria-valuemax' attributes of element.
step Number 1 Incremental step
disabled Boolean false Defines a value for 'aria-disabled' and 'disabled' attributes of element. Also disable controls buttons
readonly Boolean false Defines a value for 'readonly' attribute of element.
autofocus Boolean false Defines a value for 'autofocus' attribute of element.
controlsPosition String 'on edge' Acceptable values: 'on edges', 'left', right'. Defines position of control buttons.
inputClass String - Defines user's class for input element
buttonIncClass String - Defines user's class for increase button
buttonDecClass String - Defines user's class for decrease button
Example
<vue-number-input
	v-model="you_model"
	:value="50"
	:min="0"
	:max="100"
	:controlsPosition="'left'"
/>

For more examples visit demo page

Your own controls through slot

You can create your own controls and pass them to slots
Read more about slots in official docs

<vue-number-input
	class="custom-container"
	v-model="you_model"
	:inputClass="custom-input"
	:buttonIncClass="custom-btn-inc"
	:buttonDecClass="custom-btn-dec"
>
	<!-- slot for decrease button -->
	<template #button-decrease>
		<custom-decrease-button></custom-decrease-button>
	</template>

	<!-- slot for increase button -->
	<template #button-increase>
		<custom-increase-button></custom-increase-button>
	</template>
</vue-number-input>

Events

Event Description Params
input Triggered on user input or buttons clicks Number
change Triggered on value changed and focus leave input element Number
focus Triggered when user focused on input field FocusEvent
blur Triggered when focus leave input field FocusEvent

LICENSE

The MIT License (MIT). Please see License File for more information.

Related Packages

vue-number-input-spinner

A Vue number spinner component that only allows the user to type in numbers

81,330 38
vue3-rolling-number-input

A Vue 3 number input component that allows using the mouse wheel to adjust indiv...

811
vue-number-animation

Simple & lightweight animated number plugin designed for Vue.js 3.0 & 2.x.

468,076 76

Version History

Version Released Vue License
1.1.0 ^2.6.10 MIT
1.0.10 ^2.6.10 MIT
1.0.9 ^2.6.10 MIT
1.0.6 ^2.6.10 MIT
1.0.5 ^2.6.10 MIT