🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

A set of custom radio and checkbox components for Vue.js.

Form

Documentation

vue-radio-checkbox

A set of custom radio and checkbox components for Vue.js

Example

Here is a demo using the styling below:

demo

Installation

npm install vue-radio-checkbox 

These components are tied to the Vue window object, so all you need to do is require them where they have access to the window.Vue object.

require('vue-radio-checkbox'); 

Using the checkbox

<checkbox name="subscribe" value="1" label="Newsletter Sign Up" v-model="someBool"></checkbox>

This will set someBool to the state of the checked attribute.

Full example:

<checkbox name="email_subscribe" id="email-check" className="another-class" value="1" label="Newsletter Sign Up" v-bind:inverted="false" v-model="someBool" v-bind:checked="someBool" v-bind:required="true"></checkbox>

Using the radio

<radio name="method" value="phone" label="Phone"></radio> <radio name="method" value="email" label="Email"></radio>

Full example:

<radio name="method" id="phone-method-check" value="phone" label="Phone" v-bind:inverted="true" v-bind:checked="false" v-bind:required="true"></radio> <radio name="method" id="email-method-check" value="email" label="Email" v-bind:inverted="true" v-bind:checked="false" v-bind:required="true"></radio>

Events

Both the radio and checkbox can emit input events. Those are used like so:

<checkbox name="subscribe" value="1" label="Newsletter Sign Up" v-on:input="someMethodInYourApp"></checkbox>

This allows you to have things happen when the elements change/update. An example might be having different elements show or hide, or triggering another change on some other property.

Styling

// all boxes and radios have these parent wrappers .custom-checkbox, .custom-radio {   // easy inline labels   display: flex;   input[type=checkbox], input[type=radio], label {     // dont highlight text when double clicking     user-select: none;   }   input[type=checkbox], input[type=radio] {     position: relative;     border: 1px solid blue;     margin: 0 0.2em 0 0;     padding: 0;     text-align: center;     width: 1.3rem;     height: 1.3rem;     background: white;     -webkit-appearance: none;     -webkit-border-radius: 0;     border-radius: 0;     color: rgba(white, 0);     transition: all 0.2s ease;     // Better Font Rendering     -webkit-font-smoothing: antialiased;     -moz-osx-font-smoothing: grayscale;     &:before {       // checkmark       content: "✔";     }     &:focus {       outline: 0;       border: 1px solid darken(blue, 5%);     }     &:active {       outline: none;     }     &:hover {       outline: none;     }     &:checked {       background: blue;       // the color is what hides the checkmark       color: rgba(white, 1);     }   }   // an `inverted` class is there for making simple alternative styles   &.inverted {     input[type=checkbox], input[type=radio] {       border: 1px solid black;       &:focus {         border: 1px solid darken(black, 5%);       }       &:checked {         background: black;       }     }   } }

You May Also Like