12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <template>
- <div
- class="inline-flex items-center justify-center cursor-pointer transition flex-nowrap group hover:text-secondaryDark"
- role="checkbox"
- :aria-checked="on"
- @click="$emit('change')"
- >
- <input
- id="checkbox"
- type="checkbox"
- name="checkbox"
- :checked="on"
- @change="$emit('change')"
- />
- <label
- for="checkbox"
- class="pl-0 font-semibold align-middle cursor-pointer"
- >
- <slot></slot>
- </label>
- </div>
- </template>
- <script>
- import { defineComponent } from "@nuxtjs/composition-api"
- export default defineComponent({
- props: {
- on: {
- type: Boolean,
- default: false,
- },
- },
- })
- </script>
- <style scoped lang="scss">
- input[type="checkbox"] {
- @apply appearance-none;
- @apply hidden;
- & + label {
- @apply inline-flex items-center justify-center;
- @apply cursor-pointer;
- &::before {
- @apply border-divider border-2;
- @apply rounded;
- @apply group-hover:border-accentDark;
- @apply inline-flex;
- @apply items-center;
- @apply justify-center;
- @apply text-transparent;
- @apply h-4;
- @apply w-4;
- @apply font-icon;
- @apply mr-3;
- @apply transition;
- content: "\e876";
- }
- }
- &:checked + label::before {
- @apply bg-accent;
- @apply border-accent;
- @apply text-accentContrast;
- }
- }
- </style>
|