Skip to content

Toast ​

Спливне сповіщення з варіантами, діями та автозакриттям. Сповіщення створюються зі скрипту через useToast, тож розмітку розміщувати не потрібно — модуль сам монтує хост сповіщень.

Живе демо ​

Варіанти ​

Позиції ​

Дії ​

Обробники виконуються, після чого сповіщення закривається саме. Передайте keepOpen, щоб залишити його, або викличте close() з обробника, щоб закрити достроково. Наведення на стек призупиняє всі зворотні відліки в ньому.

Видимий таймаут ​

showTimeout малює смугу вздовж нижнього краю, що зменшується рівно за timeout сповіщення. Наведення чи фокус на стеку заморожує смугу разом зі зворотним відліком, який вона показує. Закріплене сповіщення (timeout: 0) смуги не має — відлічувати нічого.

Обмеження елементом ​

Передайте target, щоб тримати сповіщення в межах однієї області, а не в куті в'юпорту.

Ця панель має власний стек сповіщень.

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

Базове ​

vue
<script setup>
const { showToast } = useToast();

function save() {
  showToast({ message: "Changes saved", variant: "success" });
}
</script>

З діями ​

vue
<script setup>
const { showToast } = useToast();

function deleteFile(file) {
  trash(file);

  showToast({
    title: "File deleted",
    message: `${file.name} moved to trash.`,
    variant: "alert",
    timeout: 0,
    actions: [{ label: "Undo", onClick: () => restore(file) }],
  });
}
</script>

Окремий компонент ​

<orio-toast> працює й самостійно — на сторінці, у списку чи у власному контейнері, — коли потрібне статичне повідомлення, а не сповіщення з черги. Він генерує події, а не діє сам, тож закрити його можете лише ви. Слот actions — найпростіший спосіб під'єднати кнопки тут; проп actions очікує обробники у форматі для черги.

Сховище майже заповнене
Ви використали 92% свого тарифу.
vue
<template>
  <orio-toast
    v-if="!dismissed"
    title="Storage almost full"
    message="You have used 92% of your plan."
    variant="alert"
    @close="dismissed = true"
  >
    <template #actions>
      <orio-button @click="goToBilling">Upgrade</orio-button>
    </template>
  </orio-toast>
</template>

Пропси ​

ПропТипЗа замовчуваннямОпис
messagestring""Основний текст; ігнорується, якщо використано слот за замовчуванням
titlestring—Жирний рядок над повідомленням
variant"info" | "success" | "alert" | "danger""info"Колірна група та терміновість для скрінрідерів
closablebooleantrueРендерить кнопку закриття
timeoutnumber0Тривалість смуги відліку в мс
showTimeoutbooleanfalseМалює смугу відліку; потребує timeout > 0
pausedbooleanfalseЗаморожує смугу відліку
actionsToastAction[][]Кнопки з кінцевого боку

Події ​

ПодіяДаніОпис
close—Натиснуто кнопку закриття
actionToastActionНатиснуто одну з кнопок дій

Слоти ​

СлотПропсиОпис
default—Замінює текст повідомлення
actions{ actions, close }Замінює кнопки дій

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

  • Сповіщення danger рендеряться з role="alert", усі інші варіанти — з role="status".
  • Підпис кнопки закриття береться з i18n (toast.close).
  • Наведення чи фокус на стеку призупиняє його відліки, тож користувачам клавіатури не доводиться змагатися з таймаутом.