Перейти до вмісту
tatetUI

HoverCard

Немодальний preview із delay, hover-focus parity та SSR-безпечним Teleport.

Приклад

Автор бібліотеки — .

API

Props

НазваТипТиповоОпис
ariaLabelstring"Додаткова інформація"Доступна назва картки.
placementrightlefttopbottombottom-startbottom-endtop-starttop-end"bottom-start"Бажана позиція картки. Не вміщається — перевертається.
openDelaynumber400Затримка перед показом, мс. Без неї картка блимає при кожному проході курсора повз посилання.
closeDelaynumber250Затримка перед приховуванням, мс. Дає час довести курсор від тригера до самої картки.
widthstring"20rem"Ширина картки, будь-яка CSS-величина.
modelValuebooleanfalseВідкрито. Використовуйте через `v-model`.
disabledbooleanfalse—

Події

НазваPayloadОпис
update:modelValue[value: boolean]Картку показано або приховано.
close[]Картка закрилася.
open[]Картка відкрилася після delay.

Слоти

НазваОпис
triggerТригер (зазвичай посилання). `triggerAttrs` — через `v-bind`: у них наведення, фокус і Tab, що веде у відкриту картку.
defaultВміст картки. `close` ховає її.

Доступно через ref

НазваТипОпис
open() => Promise<void>—
close() => void—

Коли використовувати

Для необовʼязкового preview профілю, посилання, терміна чи сутності без переходу на окрему сторінку. Вміст має доповнювати, а не бути необхідним для розуміння trigger.

Коли НЕ використовувати

Не використовуйте для кнопок дій, обовʼязкової підказки або мобільного-only сценарію. Для короткої назви є UiTooltip, для інтерактивних налаштувань — UiPopover.

На дотику картка не відкривається взагалі. Наведення там немає, а сумісні mouseenter і фокус, які браузер шле після тапу по посиланню, відкривали картку поверх переходу — вона блимала перед новою сторінкою. Тригер лишається звичайним посиланням.

Доступність

Focus відкриває той самий вміст, що й hover. Невелика затримка закриття дозволяє перевести курсор у телепортовану картку.

Картка стоїть у кінці body, тож Tab із тригера, поки вона відкрита, веде в неї — на перше посилання чи кнопку. Tab з останнього веде до елемента за тригером на сторінці, Shift+Tab із першого — назад на тригер. Сам фокус у картку не стрибає, інакше прохід Tab'ом по списку посилань застрягав би в кожній.

Escape і клік поза карткою закривають її. Курсор, що пройшов тригером швидше за openDelay, картку не відкриває: раніше вона з'являлася вже після того, як курсор пішов, і лишалася висіти.