Skip to content

Tooltip ​

Всплывающее окно, отображающее информационный текст при наведении, клике, фокусе или правом клике на элементе.

Basic ​

vue
<VxTooltip content="This is a tooltip">
  <VxButton>Hover me</VxButton>
</VxTooltip>

Theme ​

Тёмная (по умолчанию) и светлая темы.

vue
<VxTooltip content="Dark theme" theme="dark">...</VxTooltip>
<VxTooltip content="Light theme" theme="light">...</VxTooltip>

Custom Color ​

Задайте любой цвет фона и текста.

vue
<VxTooltip content="Blue" color="#3b82f6" text-color="#fff" arrow>
  <VxButton>Blue</VxButton>
</VxTooltip>

<VxTooltip content="Green" color="#22c55e" text-color="#fff" arrow>
  <VxButton>Green</VxButton>
</VxTooltip>

<VxTooltip content="Gradient" color="linear-gradient(135deg, #667eea, #764ba2)" text-color="#fff">
  <VxButton>Gradient</VxButton>
</VxTooltip>

Arrow ​

Показать направляющую стрелку, указывающую на триггер.

vue
<VxTooltip content="With arrow" arrow>
  <VxButton>Hover me</VxButton>
</VxTooltip>

<VxTooltip content="Light arrow" arrow theme="light">
  <VxButton>Hover me</VxButton>
</VxTooltip>

Trigger ​

Поддерживает триггеры hover (по умолчанию), click, focus и contextmenu.

vue
<VxTooltip content="Hover" trigger="hover">...</VxTooltip>
<VxTooltip content="Click" trigger="click">...</VxTooltip>
<VxTooltip content="Focus" trigger="focus">...</VxTooltip>
<VxTooltip content="Right-click" trigger="contextmenu">...</VxTooltip>

v-model ​

Программно управляйте видимостью tooltip через v-model.

vue
<script setup>
const visible = ref(false)
</script>

<VxTooltip v-model="visible" content="Controlled tooltip">
  <VxButton>Target</VxButton>
</VxTooltip>

<VxButton @click="visible = !visible">Toggle</VxButton>

Before Show Hook ​

Выполните асинхронную проверку перед появлением tooltip. Верните false или выбросьте исключение, чтобы заблокировать показ.

vue
<script setup>
async function check() {
  const ok = await verifyPermission()
  return ok
}
</script>

<VxTooltip content="Allowed!" :before-show="check">
  <VxButton>Guarded</VxButton>
</VxTooltip>

Auto Close ​

Автоматически закрывать tooltip через заданный таймаут (в мс).

vue
<VxTooltip content="Disappears in 2s" :auto-close="2000">
  <VxButton>Auto Close</VxButton>
</VxTooltip>

Copyable ​

Клик по tooltip копирует его текст в буфер обмена.

vue
<VxTooltip content="npm install veloxui" copyable @copy="onCopy">
  <code>npm install veloxui</code>
</VxTooltip>

Loading ​

Показать индикатор загрузки внутри tooltip.

vue
<VxTooltip loading>
  <VxButton>Loading</VxButton>
</VxTooltip>

Persistent (v-show) ​

Оставляет DOM-узел tooltip в документе при скрытии. Полезно для производительности, когда tooltip часто переключается.

vue
<VxTooltip content="I stay in the DOM" persistent>
  <VxButton>Persistent</VxButton>
</VxTooltip>

Teleport ​

Переместите tooltip в body, чтобы обойти контейнеры с overflow: hidden.

vue
<div style="overflow: hidden;">
  <VxTooltip content="I escape!" teleport-to="body">
    <VxButton>Teleported</VxButton>
  </VxTooltip>
</div>

Content Slot ​

Используйте слот #content для насыщенного содержимого tooltip.

vue
<VxTooltip theme="light" arrow>
  <template #content>
    <div>
      <strong>Pro tip</strong>
      <p>Rich content in tooltips</p>
    </div>
  </template>
  <VxButton>Rich Content</VxButton>
</VxTooltip>

Raw HTML ​

Отрисовывайте HTML-строки через prop raw.

vue
<VxTooltip content="<strong>bold</strong> and <em>italic</em>" raw>
  <VxButton>Raw HTML</VxButton>
</VxTooltip>

Always Visible ​

vue
<VxTooltip content="I'm always here" always>
  <VxButton>Always Visible</VxButton>
</VxTooltip>

Delay ​

Настройте задержки показа и скрытия в миллисекундах.

vue
<VxTooltip content="Slow" :show-delay="500">...</VxTooltip>
<VxTooltip content="Instant" :show-delay="0" :hide-delay="0">...</VxTooltip>

Non-Enterable ​

Tooltip сразу скрывается, когда курсор уходит с триггера.

vue
<VxTooltip content="Enterable" :enterable="true">...</VxTooltip>
<VxTooltip content="Not enterable" :enterable="false">...</VxTooltip>

Disabled ​

vue
<VxTooltip content="Hidden" disabled>
  <VxButton disabled>Disabled</VxButton>
</VxTooltip>

On Various Elements ​

vue
<VxTooltip content="Badge"><VxBadge value="3" /></VxTooltip>
<VxTooltip content="Avatar"><VxAvatar name="John" /></VxTooltip>
<VxTooltip content="Help"><span class="help">What?</span></VxTooltip>

API ​

Props ​

PropTypeDefaultDescription
v-modelboolean—Программное управление видимостью
contentstring''Текстовое содержимое tooltip
trigger'hover' | 'click' | 'focus' | 'contextmenu''hover'Способ вызова tooltip
theme'dark' | 'light''dark'Визуальная тема
colorstring''Произвольный цвет фона (CSS-значение, поддерживает градиенты)
textColorstring''Произвольный цвет текста
arrowbooleanfalseПоказать направляющую стрелку
disabledbooleanfalseОтключить tooltip
showDelaynumber100Задержка перед показом (мс)
hideDelaynumber100Задержка перед скрытием (мс)
autoClosenumber0Автозакрытие через N мс (0 = выключено)
offsetnumber8Расстояние от триггера в px
maxWidthstring | number280Максимальная ширина tooltip
enterablebooleantrueДержать tooltip открытым, когда курсор входит в него
rawbooleanfalseОтрисовать content как сырой HTML
alwaysbooleanfalseДержать tooltip всегда видимым
copyablebooleanfalseКлик копирует текст в буфер обмена
loadingbooleanfalseПоказать индикатор вместо содержимого
persistentbooleanfalseСохранять DOM при скрытии (v-show вместо v-if)
beforeShow() => boolean | Promise<boolean>—Асинхронный охранник; верните false или выбросьте, чтобы заблокировать
teleportTostring''Цель teleport (например 'body') для выхода из overflow
transitionstring'vx-tooltip'Пользовательское имя transition

Events ​

EventPayloadDescription
update:modelValuebooleanСинхронизация v-model
show—Tooltip стал видимым
hide—Tooltip скрыт
copystringТекст скопирован в буфер обмена (при copyable)

Slots ​

SlotDescription
defaultЭлемент-триггер
contentПользовательское содержимое tooltip (заменяет prop content)

Exposed Methods ​

MethodDescription
show()Программно показать tooltip
hide()Программно скрыть tooltip
updatePosition()Пересчитать позицию