Skip to content

Notification ​

Насыщенная панель уведомлений, выезжающая с края экрана. Поддерживает заголовок, описание, иконки, действия и полную настройку. При наведении складывается стопкой карточек.

Basic ​

vue
<script setup>
import { VxNotification } from 'veloxui'

VxNotification.success('Saved', {
  message: 'Your changes have been saved.',
})
</script>

Title Only ​

Передайте просто строку, чтобы получить уведомление только с заголовком.

vue
VxNotification.success('File uploaded successfully')

Position ​

Уведомления могут появляться в 4 углах. Нажмите для предпросмотра.

vue
VxNotification.info('Title', {
  message: 'Description',
  position: 'bottom-left',
})

With Action ​

Добавьте кнопку действия для взаимодействия с пользователем.

vue
VxNotification({
  title: 'Update Available',
  message: 'Version 2.4.0 is ready.',
  type: 'info',
  action: {
    text: 'Update Now',
    onClick: () => installUpdate(),
  },
})

Progress Bar ​

vue
VxNotification.info('Downloading', {
  message: 'Preparing file...',
  showProgress: true,
  duration: 5000,
})

HTML Content ​

vue
VxNotification.info('New Comment', {
  message: '<strong>Alice</strong> commented...',
  dangerouslyUseHTMLString: true,
})

Persistent ​

Установите duration: 0 для уведомлений, которые остаются до ручного закрытия.

vue
VxNotification.warning('Action Required', {
  message: 'Verify your email.',
  duration: 0,
})

Custom Duration ​

Without Icon ​

vue
VxNotification({ title: 'Plain', showIcon: false })

onClick Callback ​

Сделайте всё уведомление кликабельным.

vue
VxNotification.info('New message', {
  message: 'Click to view',
  onClick: () => router.push('/inbox'),
})

Update Existing ​

Используйте id, чтобы обновлять активное уведомление.

vue
VxNotification({ id: 'deploy', title: 'Building...', type: 'info', duration: 0 })
// later...
VxNotification({ id: 'deploy', title: 'Deployed!', type: 'success', duration: 3000 })

Custom Style ​

Полностью настраивается: background, color, titleColor, iconColor, borderColor, borderRadius, shadow, progressColor.

vue
VxNotification({
  title: 'Custom',
  message: 'Fully styled.',
  background: '#18181b',
  titleColor: '#fafafa',
  color: '#a1a1aa',
  iconColor: '#4ade80',
  borderColor: '#27272a',
})

Close All ​

vue
VxNotification.closeAll()

Promise Support ​

vue
VxNotification.success('Saved', { duration: 2000 })
  .then(() => VxNotification.info('Syncing...'))

API ​

VxNotification(options) ​

ParamTypeDefaultDescription
titlestring—Заголовок уведомления (обязательный или передайте строку напрямую)
messagestring—Текст описания
type'success' | 'warning' | 'danger' | 'info' | 'default''default'Тип уведомления
durationnumber4500Автозакрытие в мс. 0 = постоянное
closablebooleantrueПоказывать кнопку закрытия
showIconbooleantrueПоказывать иконку типа
iconComponent | string—Пользовательская иконка (строка SVG)
position'top-right' | 'top-left' | 'bottom-right' | 'bottom-left''top-right'Угловая позиция
showProgressbooleanfalseВизуальная полоса обратного отсчёта
dangerouslyUseHTMLStringbooleanfalseОтрисовывать message как HTML
action{ text, onClick }—Кнопка действия
idstring—Повторное использование/обновление существующего уведомления
onClick() => void—Обработчик клика по всему уведомлению
backgroundstring—Пользовательский фон
colorstring—Пользовательский цвет текста сообщения
titleColorstring—Пользовательский цвет заголовка
iconColorstring—Пользовательский цвет иконки
borderColorstring—Пользовательский цвет границы
progressColorstring—Пользовательский цвет полосы прогресса
borderRadiusstring—Пользовательский радиус скругления
shadowstring—Пользовательская тень
customClassstring—Дополнительный CSS-класс
customStyleCSSStyleDeclaration—Переопределение inline-стилей
onClose() => void—Колбэк при закрытии

Methods ​

ts
VxNotification.success(title, options?)
VxNotification.warning(title, options?)
VxNotification.danger(title, options?)
VxNotification.info(title, options?)
VxNotification.closeAll()
VxNotification.config({ max: 5 })

Return Value ​

ts
const handle = VxNotification.success('Done')
handle.close()
handle.update({ title: 'Updated', type: 'info' })
handle.then(() => { /* after close */ })