Enhanced checkboxes /radio input, component for vue 2+.
Note that unicode is used for 'icons'. Therefore design can change according to your browser. It is still possible to override CSS style with '!important' instruction (checked and hover styles)
Based on first enhancedCheck project (CSS/JS)
npm install --save vue-enhanced-check
import { EnhancedCheck, EnhancedCheckGroup, EnhancedCheckRadio, EnhancedToggle } from 'vue-enhanced-check'
or only one according to your needs
import { EnhancedCheck } from 'vue-enhanced-check'
export default {
components: { EnhancedCheck, EnhancedCheckGroup, EnhancedCheckRadio, EnhancedToggle },
methods: ...
}
Label is prefixed by 'check' icon
<enhanced-check label="Checkbox"></enhanced-check>
<enhanced-check :label="sc_label" :subClass="sc_subclass"
v-model="sc_model" :disabled="sc_disabled"
:rounded="sc_rounded" :animate="sc_animate"
id="enhancedCheck" name="" value="">
</enhanced-check>
Prop | Type | Note |
---|---|---|
label |
String |
REQUIRED: by design, label is a main part of the display |
id |
String |
id of input and associated label. |
name |
String |
name of classic input. Empty by default |
value |
String |
value of classic input. Empty by default |
subClass |
String |
Same colors than bootstrap style, possible values are 'default', 'primary', 'success', 'warning', 'danger' |
disabled |
Boolean |
False by default. Prevent clic action but not direct model change |
rounded |
Boolean |
False by default. Rounded border style |
animate |
Boolean |
False by default. Add a transition on style |
As a classic simple checkbox, model bound to check state: true or false
<enhanced-check-group :label="['First', 'Second', 'Third']"></enhanced-check-group>
<enhanced-check-group :label="['First', 'Second', 'Third']"
:subClass="gc_subclass" v-model="gc_model"
:disabled="gc_disabled" :rounded="gc_rounded"
:animate="gc_animate" :inline="gc_inline"
:combine="gc_combine"
:value="[gc_val1, gc_val2, gc_val3]"
id="enhancedCheckGroup" name="">
</enhanced-check-group>
Prop | Type | Note |
---|---|---|
label |
Array |
REQUIRED |
value |
Array |
Value for each input. By default equal to label |
id |
String /Array |
id of input and associated label. If string provided, each element id will have a counter as suffix |
name |
String /Array |
name of classic input. Use array to specify different names |
subClass |
String |
Same than checkbox |
disabled |
Boolean |
Same than checkbox |
rounded |
Boolean |
Same than checkbox |
animate |
Boolean |
Same than checkbox |
inline |
Boolean |
False by default. Turn all input as inline-block |
combine |
Boolean |
False by default. Turn 'check' icon into 'plus' icon |
As classic multiple checkboxes, model bound to array of value from checked input
Label is prefixed by 'dot' icon
<enhanced-check-radio :label="['Element A', 'Element B', 'Element C']"></enhanced-check-radio>
<enhanced-check-radio :label="['Element A', 'Element B', 'Element C']"
name="radiotest" :subClass="rc_subclass"
v-model="rc_model" :disabled="rc_disabled"
:rounded="rc_rounded" :animate="rc_animate"
:inline="rc_inline" id="enhancedCheckRadio"
:value="[rc_val1, rc_val2, rc_val3]">
</enhanced-check-radio>
Prop | Type | Note |
---|---|---|
label |
Array |
REQUIRED |
name |
String |
name of classic input. |
id |
String /Array |
id of input and associated label. If string provided, each element id will have a counter as suffix |
value |
Array |
Value for each input. By default equal to label |
subClass |
String |
Same than checkbox |
disabled |
Boolean |
Same than checkbox |
rounded |
Boolean |
Same than checkbox |
animate |
Boolean |
Same than checkbox |
inline |
Boolean |
Same than checkbox group |
As classic radio buttons, model bound to value from checked input
Checkbox is replaced by 2 switching labels, for on and off states
<enhanced-toggle></enhanced-check>
<enhanced-toggle :labelOn="tc_labelOn" :labelOff="tc_labelOff"
:styleOn="tc_styleOn" :styleOff="tc_styleOff"
v-model="tc_model"
:disabled="tc_disabled" :rounded="tc_rounded"
id="enhancedToggle" name="">
</enhanced-toggle>
Prop | Type | Note |
---|---|---|
labelOn |
String |
Label display for 'on' state (checked). Default is 'On' |
labelOff |
String |
Label display for 'off' state (unchecked). Default is 'Off' |
styleOn |
String |
style for 'on' state (checked), see checkbox's subclass. Default is primary |
styleOff |
String |
style for 'off' state (unchecked), see checkbox's subclass. Default is default |
id |
String |
id of input and associated label. |
name |
String |
Same than checkbox |
value |
String |
Same than checkbox |
disabled |
Boolean |
Same than checkbox |
rounded |
Boolean |
Same than checkbox |
As a classic simple checkbox, model bound to check state: true or false
You can define your own check color by adding a specific style
For example, let's define a 'custom' sub class.
<enhanced-check label="Custom" subClass="custom"></enhanced-check>
Checkbox will get the class 'enhancedCheck-custom', that you can use in your CSS. Simple override for checkboxes:
.enhancedCheck.enhancedCheck-custom input[type="checkbox"]:checked + label:before {
background: fuchsia;
color: white;
}
.enhancedCheck.enhancedCheck-custom input[type="checkbox"]:not(:checked) + label:hover {
border-color: fuchsia;
}
Full less sample:
.enhancedCheck.enhancedCheck-custom {
input[type="radio"], input[type="checkbox"] {
&:checked + label:before {
background: $color;
color: white;
}
&:not(:checked) + label:hover {
border: 1px solid $color;
}
&:checked:disabled + label:before {
background: $color-disabled;
}
&:not(:checked):disabled + label:hover {
border: 1px solid $color-disabled;
}
}
}
npm install
npm run dev
, site is at http://localhost:8081.npm run build
command and commit your work for a pull request.