A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/vueform/toggle/tree/2.0.2 below:

GitHub - vueform/toggle at 2.0.2


Vueform is a comprehensive form builder for Vue.js that makes form development a breeze. It standardizes and handles the entire form building process, including:

Vueform pre-release is open for registration for the first 100 developers with special discounts.

Learn more: https://vueform.com

Check out our demo.

npm install @vueform/toggle
<template>
  <div>
    <Toggle v-model="value" />
  </div>
</template>

<script>
  import Toggle from '@vueform/toggle'

  export default {
    components: {
      Toggle,
    },
    data() {
      return {
        value: true
      }
    }
  }
</script>

<style src="@vueform/toggle/themes/default.css"></style>

When using Vue 2 install @vue/composition-api via npm/yarn first:

npm i @vue/composition-api --save-dev

Then install the plugin for Vue:

import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'

Vue.use(VueCompositionAPI)

After that make sure to change the imported Toggle module to:

import Toggle from '@vueform/toggle/dist/toggle.vue2.js'

First you need install @nuxtjs/composition-api:

npm i @nuxtjs/composition-api --save

Then you need to enable it as a module in nuxt.config.js:

{
  buildModules: [
    '@nuxtjs/composition-api/module'
  ]
}

After that make sure to change the imported module to Vue 2 version of Toggle:

import Toggle from '@vueform/toggle/dist/toggle.vue2'

For more information on using @nuxtjs/composition-api read their documentation.

Join our Discord channel or open an issue.

Name Type Default Description id string toggle The id attribute of input field. Make sure to customize when using more toggles on a single page. name string toggle The name attribute of input field. disabled boolean false Whether the toggle should be disabled. required boolean false Whether the HTML5 required attribute should be used for toggle (using an invisible fake input). falseValue string|number|boolean false The value when the toggle is off. trueValue string|number|boolean true The value when toggle is on. offLabel string The label when toggle is off. onLabel string The label when toggle is on. labelledby string The aria-labelledby attribute. describedby string The aria-describedby attribute. classes object An object of class names that gets merged with the default values. Default: {
  container: 'toggle-container',
  toggle: 'toggle',
  toggleOn: 'toggle-on',
  toggleOff: 'toggle-off',
  toggleOnDisabled: 'toggle-on-disabled',
  toggleOffDisabled: 'toggle-off-disabled',
  handle: 'toggle-handle',
  handleOn: 'toggle-handle-on',
  handleOff: 'toggle-handle-off',
  handleOnDisabled: 'toggle-handle-on-disabled',
  handleOffDisabled: 'toggle-handle-off-disabled',
  label: 'toggle-label',
}.
The default value can be used with default.css and style can be customized with CSS variables. Alternatively this can be overridden with utility classes like Tailwind CSS. Event Attributes Description @change value Emitted when the toggle changes. Slot Attributes Description label checked, classList The label of the toggle element. The checked attribute determines whether the toggle is on or off so you can display the label accordingly. The classList contains the resolved class names.

The following CSS variables can be used to customize toggle when using default.css:

--toggle-width: 3rem;
--toggle-height: 1.25rem;
--toggle-border: 0.125rem;
--toggle-font-size: 0.75rem;
--toggle-duration: 150ms;
--toggle-bg-on: #10b981;
--toggle-bg-off: #e5e7eb;
--toggle-bg-on-disabled: #d1d5db;
--toggle-bg-off-disabled: #e5e7eb;
--toggle-border-on: #10b981;
--toggle-border-off: #e5e7eb;
--toggle-border-on-disabled: #d1d5db;
--toggle-border-off-disabled: #e5e7eb;
--toggle-ring-width: 3px;
--toggle-ring-color: #10B98130;
--toggle-text-on: #ffffff;
--toggle-text-off: #374151;
--toggle-text-on-disabled: #9ca3af;
--toggle-text-off-disabled: #9ca3af;
--toggle-handle-enabled: #ffffff;
--toggle-handle-disabled: #f3f4f6;

Override them globally:

:root {
  --toggle-bg-on: red;
  --toggle-border-on: red;
}

Or on an instance level:

<Toggle v-model="value" class="toggle-red" />
<Toggle v-model="value" class="toggle-blue" />
.toggle-red {
  --toggle-bg-on: red;
  --toggle-border-on: red;
}

.toggle-blue {
  --toggle-bg-on: blue;
  --toggle-border-on: blue;
}
Styling with Tailwind CSS

The Toggle component accepts a classes property which allows to override default class names. When using utility classes you don't need to import default.css. Here's a default styling for Tailwind CSS:

<Toggle v-model="value" :classes="{
  container: 'inline-block rounded-full outline-none focus:ring focus:ring-green-500 focus:ring-opacity-30',
  toggle: 'flex w-12 h-5 rounded-full relative cursor-pointer transition items-center box-content border-2 text-xs leading-none',
  toggleOn: 'bg-green-500 border-green-500 justify-start text-white',
  toggleOff: 'bg-gray-200 border-gray-200 justify-end text-gray-700',
  toggleOnDisabled: 'bg-gray-300 border-gray-300 justify-start text-gray-400 cursor-not-allowed',
  toggleOffDisabled: 'bg-gray-200 border-gray-200 justify-end text-gray-400 cursor-not-allowed',
  handle: 'inline-block bg-white w-5 h-5 top-0 rounded-full absolute transition-all',
  handleOn: 'left-full transform -translate-x-full',
  handleOff: 'left-0',
  handleOnDisabled: 'bg-gray-100 left-full transform -translate-x-full',
  handleOffDisabled: 'bg-gray-100 left-0',
  label: 'text-center w-8 border-box whitespace-nowrap select-none',
}" />

Certain classes has different states which are merged to the base class when the state is active. For example handle will be merged with handleOn when the toggle is on and not disabled resulting in the following classes: inline-block bg-white w-5 h-5 top-0 rounded-full absolute transition-all left-full transform -translate-x-full

The same is true for toggle.

In case you need to override the same type of utility you might use @neojp/tailwind-important-variant and use eg. bg-green-500!.

By default the on and off labels are being read by the screenreaders. If you provide the labelledby property that will be read instead of the labels. You might also add a describedby property to provide further description.

<div>
  <label id="toggle-label">Turn on notifications</label>
  <Toggle v-model="value" labelledby="toggle-label" describedby="toggle-description" />
</div>
<small id="toggle-description">Turn this on if you'd like to receive in-app notifications.</small>
<Toggle
  v-model="value"
/>

JSFiddle - Example #1

<Toggle
  v-model="value"
  on-label="On"
  off-label="Off"
/>

JSFiddle - Example #2

<Toggle
  v-model="value"
  true-value="on"
  false-value="off"
/>

JSFiddle - Example #3

Toggle with custom labels
<Toggle
  v-model="value"
>
  <template v-slot:label="{ checked, classList }">
    <span :class="classList.label">{{ checked ? 'On' : 'Off' }}</span>
  </template>
</Toggle>

JSFiddle - Example #4

MIT


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4