Skip to content

juliandreas/vue-toggles

Repository files navigation

Vue Toggles

A highly customizable and accessible toggle component for Vue 3.

Vue Toggles Logo

Introduction

Vue Toggles comes out of the box with accessibility support for:

  • aria-checked depending on state
  • aria-readonly if the toggle is disabled
  • prefers-reduced-motion if the user has requested any type of motion reduction [prefers-reduced-motion]

Accessibility

What's left for you, when it comes to accessibility, is labeling the toggle correctly. This is either done by:

  • A <label for="example-id">Toggle description</label> followed by the toggle component <VueToggles id="example-id" />
  • Or an aria-label, for example <VueToggles aria-label="Toggle description" />. Remember, you still need a visual text description of what the toggle does

The focus-style is also left up to you - which you shouldn't remove. If you think the default is ugly, style it yourself!

Installation

npm i vue-toggles 

Import component

import{VueToggles}from"vue-toggles";

Import types

importtype{VueTogglesProps}from"vue-toggles";
importVueToggles,{typeVueTogglesProps}from"vue-toggles";

Usage

The toggle is very easy to use out of the box. The bare minimum for it to work is a @click-function and a :value-prop.

<VueToggles:value="isChecked" @click="isChecked = !isChecked" />

Or if you prefer the v-model-syntax:

<VueTogglesv-model="isChecked" />

Options

You can also add more props to customize things like color and width/height.

<VueToggles:value="value" :height="30" :width="90" checkedText="On" uncheckedText="Off" checkedBg="#b4d455" uncheckedBg="lightgrey" @click="value = !value" />

Properties

NameTypeDefaultDescription
valueBooleanfalseInitial state of the toggle button
disabledBooleanfalseToggle does not react on mouse or keyboard events
reverseBooleanfalseReverse toggle to Right to Left
widthNumber75Width of the toggle in px
heightNumber25Height of the toggle in px
dotColorString#ffffffColor of the toggle dot
dotSizeNumber0Dot size in px
checkedBgString#5850ecBackground color when the toggle is checked
uncheckedBgString#939393Background color when the toggle is unchecked
checkedTextColorString#ffffffText color when the toggle is checked
uncheckedTextColorString#ffffffText color when the toggle is unchecked
uncheckedTextString""Optional text when the toggle is unchecked
checkedTextString""Optional text when the toggle is checked
fontSizeNumber12Font size in px
fontWeightStringnormalFont weight

Vue 2 support

If you're looking for Vue 2 support, the 1.1.4version is available here.

License

MIT

About

A highly customizable and accessible toggle component for Vue

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •