Skip to content

CheckboxGroup ​

Група чекбоксів зі спільною легендою, побудована на семантичному елементі <fieldset>.

Живе демо ​

Вертикально (за замовчуванням) ​

Дозволи
Сповіщати мене через
Дозволи: read
Сповіщення: email, push

Горизонтально ​

Сповіщати мене через

З помилкою ​

Робочі дні
Оберіть принаймні один день.

Композиція через слот ​

Використовуйте слот за замовчуванням, щоб розмістити компоненти <orio-check-box> напряму, коли для кожної опції потрібна власна логіка.

Фреймворки
Вибрано: vue

Використання ​

Базове ​

vue
<template>
  <orio-checkbox-group
    v-model="selected"
    label="Permissions"
    :options="options"
  />
</template>

<script setup>
import { ref } from "vue";

const selected = ref(["read"]);
const options = [
  { label: "Read", value: "read" },
  { label: "Write", value: "write" },
  { label: "Delete", value: "delete" },
];
</script>

Горизонтальне розміщення ​

vue
<orio-checkbox-group
  v-model="selected"
  label="Notify me via"
  layout="horizontal"
  :options="options"
/>

З помилкою ​

vue
<orio-checkbox-group
  v-model="selected"
  label="Working days"
  :options="dayOptions"
  :error="selected.length === 0 ? 'Select at least one day.' : null"
/>

Через слот ​

Використовуйте слот, коли для кожної опції потрібна власна розмітка чи іконки. Передайте appearance="minimal" кожному CheckBox, щоб прибрати його зовнішній відступ.

vue
<orio-checkbox-group v-model="selected" label="Frameworks">
  <orio-check-box
    appearance="minimal"
    :model-value="selected.includes('vue')"
    @update:model-value="toggle('vue')"
  >
    Vue
  </orio-check-box>
  <orio-check-box
    appearance="minimal"
    :model-value="selected.includes('react')"
    @update:model-value="toggle('react')"
  >
    React
  </orio-check-box>
</orio-checkbox-group>

Пропси ​

ПропТипЗа замовчуваннямОпис
modelValueunknown[][]Масив вибраних значень (v-model)
optionsCheckboxOption[][]Список опцій для рендеру (ігнорується, якщо використано слот)
labelstringundefinedТекст легенди групи
layout"vertical" | "horizontal""vertical"Позиція легенди відносно чекбоксів
size"sm" | "md" | "lg" | "xl""md"Розмір чекбоксів і підпису
errorstring | nullnullПовідомлення про помилку під групою

CheckboxOption ​

ts
interface CheckboxOption {
  label: string;
  value: unknown;
}

Події ​

ПодіяДаніОпис
update:modelValueunknown[]Генерується під час перемикання будь-якого чекбокса

Слоти ​

СлотОпис
defaultВласний вміст чекбоксів. Перекриває проп options. Використовуйте appearance="minimal" на кожному <orio-check-box>.

Доступність ​

  • Рендериться як <fieldset> з <legend> — скрінрідери озвучують підпис групи перед кожним чекбоксом.
  • Кожен <orio-check-box> всередині використовує нативний <input type="checkbox"> з видимим <label>, тож фокус, клавіатура й поведінка скрінрідерів повністю нативні.