# Checkbox
# Playground
Current value:
accepted
Current value:
[ "Option 2", "Option 3", "Option 5" ]
# Basic example
<label
for="single-checkbox"
class="flex py-1 items-center"
>
<t-checkbox
v-model="singleModel"
value="accepted"
unchecked-value="not_accepted"
id="single-checkbox"
name="single-checkbox"
/>
<span class="ml-3">Accept</span>
</label>
# Props
Property | Type | Default value | Accepted values |
---|---|---|---|
id | String | null | Any valid type |
autofocus | Boolean | false | Any valid type |
disabled | Boolean | false | Any valid type |
name | String | null | Any valid type |
tabindex | String / Number | null | Any valid type |
readonly | Boolean | undefined | Any valid type |
required | Boolean | false | Any valid type |
model (v-model) | String / Object / Number / Boolean / Array | null | Any valid type |
value (input value) | String / Object / Number / Boolean / Array | true | Any valid type |
uncheckedValue (input value) | String / Object / Number / Boolean / Array | false | Any valid type |
checked | Boolean | false | true, false |
indeterminate | Boolean | false | true, false |
# Events
Event | Arguments | Description |
---|---|---|
input | String (The current value of the checkbox) | Emitted every time the value of the v-model change |
change | String (The current value of the checkbox) | Emitted when the checkbox is blurred and the value was changed since it was focused |
focus | FocusEvent | Emitted when the checkbox is focused |
blur | FocusEvent | Emitted when the checkbox is blurred |
# Custom styles
What if you need some custom checkbox? Of course we can do it but for now we will need to define some CSS, check at this example:
Field status:
Current value:
[ "Option 1", "Option 3" ]
/** <t-checkbox class="custom-checkbox" /> */
input.custom-checkbox:checked,
input.custom-checkbox:not(:checked) {
@apply absolute;
left: -9999px;
}
input.custom-checkbox:checked + label,
input.custom-checkbox:not(:checked) + label
{
@apply relative pl-8 cursor-pointer leading-normal inline-block;
}
input.custom-checkbox:checked + label:before,
input.custom-checkbox:not(:checked) + label:before {
@apply absolute border border-gray-400 top-0 left-0 w-6 h-6 bg-white;
content: '';
}
input.custom-checkbox:checked + label:after,
input.custom-checkbox:not(:checked) + label:after {
@apply top-0 left-0 absolute flex items-center justify-center w-6 h-6 text-blue-500 font-bold text-xl;
content: '\2713\0020';
transition: all 0.2s ease;
}
input.custom-checkbox:not(:checked) + label:after {
@apply opacity-0;
transform: scale(0);
}
input.custom-checkbox:checked + label:after {
@apply opacity-100;
transform: scale(1);
}
input.custom-checkbox.t-checkbox-disabled + label:after {
@apply opacity-50;
}
/** By status */
input.custom-checkbox.t-checkbox-status-error:checked + label:after,
input.custom-checkbox.t-checkbox-status-error:not(:checked) + label:after {
@apply text-red-500
}
input.custom-checkbox.t-checkbox-status-success:checked + label:after,
input.custom-checkbox.t-checkbox-status-success:not(:checked) + label:after {
@apply text-green-500
}
input.custom-checkbox.t-checkbox-status-warning:checked + label:after,
input.custom-checkbox.t-checkbox-status-warning:not(:checked) + label:after {
@apply text-yellow-500
}
← Button Checkbox Group →