Skip to content

SwitchButton ​

Кнопка-перемикач з активним і неактивним станами — ідеальна для фільтрів і перемикання режимів перегляду.

Живе демо ​

Стани:
Перемикач: Неактивний
Вигляд: Список
Архів: Приховано

Стани ​

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

Базове ​

vue
<template>
  <orio-switch-button v-model="isEnabled">
    Enable Feature
  </orio-switch-button>
</template>

<script setup>
import { ref } from 'vue'

const isEnabled = ref(false)
</script>

Кнопки-фільтри ​

vue
<template>
  <div class="filters">
    <orio-switch-button v-model="showCompleted">
      Completed
    </orio-switch-button>
    <orio-switch-button v-model="showPending">
      Pending
    </orio-switch-button>
    <orio-switch-button v-model="showCancelled">
      Cancelled
    </orio-switch-button>
  </div>
</template>

<script setup>
import { ref } from 'vue'

const showCompleted = ref(true)
const showPending = ref(true)
const showCancelled = ref(false)
</script>

Вимкнений стан ​

vue
<orio-switch-button v-model="option" :disabled="true">
  Locked Option
</orio-switch-button>

Пропси ​

ПропТипЗа замовчуваннямОпис
modelValuebooleanfalseАктивний стан (v-model)
disabledbooleanfalseВимикає взаємодію з кнопкою

Події ​

ПодіяДаніОпис
update:modelValuebooleanГенерується під час перемикання кнопки

Слоти ​

СлотОпис
defaultТекст/вміст підпису кнопки

Підтримка клавіатури ​

  • Space або Enter — перемкнути стан кнопки
  • Tab — перехід між кнопками-перемикачами

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

Внутрішня <button> має aria-pressed, що віддзеркалює modelValue, тож скрінрідери озвучують стан перемикача. Передавайте aria-pressed самі лише тоді, коли треба сказати те, чого не виразити булевим значенням (aria-pressed="mixed"); це перекриває значення за замовчуванням.

Дайте кнопці доступну назву: видимий label, текст у слоті за замовчуванням або aria-label, коли в слоті лише іконка.

Стилізація ​

Кнопка-перемикач використовує такі CSS-змінні:

css
--color-surface         /* Inactive background */
--color-muted           /* Inactive text color */
--color-border          /* Default border */
--color-accent          /* Active text and border */
--color-accent-soft     /* Active background */
--border-radius-md      /* Border radius */

Сценарії використання ​

  • Фільтри: перемикання видимості окремих категорій вмісту
  • Режими перегляду: перемикання між макетами (сітка/список, компактний/детальний)
  • Опції: увімкнення/вимкнення функцій чи налаштувань
  • Множинний вибір: дозволяє користувачам вибрати кілька незалежних опцій