Tooltip
Небольшое всплывающее окно-подсказка, открывающееся при наведении мыши на children (или при нажатии на мобильных устройствах).
В качестве содержимого рекомендуется использовать только текст.
Пользовательская стрелка
Воспользуйтесь свойством ArrowIcon, чтобы переопределить иконку, которая используется по умолчанию.
Пользовательский компонент иконки должен удовлетворять следующим требованиям:
- Иконка по умолчанию должна быть отрисована в направлении вверх.
- Чтобы избежать проблемы с пространством между стрелкой и контентом на некоторых экранах,
растяните кривую по высоте на
1pxи увеличьте на этот размерheightиviewBoxSVG. (смотри https://github.com/VKCOM/VKUI/pull/4496 ↗). - Убедитесь, что компонент принимает все валидные для SVG параметры.
- Убедитесь, что SVG и её элементы наследует цвет через
fill="currentColor". - Если стрелка наезжает на якорный элемент, то увеличьте смещение между целевым и всплывающим элементами.
Хук useTooltip
Вы можете использовать хук useTooltip, который позволяет устанавливать якорный элемент для Tooltip,
не прокидывая его в качестве children:
Доступность (a11y)
Использование disableTriggerOnFocus
Использования disableTriggerOnFocus приводит к тому, что единственным механизмом активации тултипа остается "hover", из-за этого события наведения не генерируются при клавиатурной навигации или скринридером.
В связи с этим данное свойство стоит использовать только для декоративных элементов с aria-hidden.
<Tooltip
aria-hidden="true"
disableTriggerOnFocus
description="Какая-то информация"
aria-label="Тултип с какой-то информацией"
>
<Button>Якорь</Button>
</Popover>Свойства и методы
Tooltip
| Свойство | Описание |
|---|---|
appearance | "accent" | "neutral" | "white" | "black" | "inversion"Стиль отображения подсказки. По умолчанию: - |
arrowHeight | numberВысота стрелки. Складывается с По умолчанию: - |
ArrowIcon | ComponentType<SVGAttributes<SVGSVGElement>>Пользовательская SVG иконка. Требования:
По умолчанию: - |
arrowPadding | numberБезопасная зона вокруг стрелки, чтобы та не выходила за края контента. По умолчанию: - |
children | ReactElement<unknown, string | JSXElementConstructor<any>>Целевой элемент. Всплывающее окно появится возле него. По умолчанию: - |
className | stringПользовательские css-классы, будут добавлены на root-элемент. По умолчанию: - |
closable | booleanДобавляет возможность закрыть тултип через иконку-крестик. По умолчанию: - |
closeIconLabel | stringСкрытый текст для кнопки закрытия. По умолчанию: - |
defaultShown | booleanНачальное состояние всплывающего элемента. По умолчанию: - |
description | ReactNodeТекст тултипа. По умолчанию: - |
disableArrow | booleanСкрывает стрелку, указывающую на якорный элемент. По умолчанию: - |
disableCloseAfterClick | booleanОтключает закрытие по нажатию. По умолчанию: - |
disableFlipMiddleware | booleanУказанное значение По умолчанию: - |
disableShiftMiddleware | booleanПозволяет отключить смещение по главной оси, которое не даёт всплывающему элементу выходить за границы видимой области. По умолчанию: - |
disableTriggerOnFocus | booleanОтключает появление при фокусе. По умолчанию: - |
enableInteractive | booleanДобавляет возможность наводить на тултип. По умолчанию: - |
getRootRef | Ref<HTMLDivElement>По умолчанию: - |
hideWhenReferenceHidden | booleanПринудительно скрывает компонент если целевой элемент вышел за область видимости. По умолчанию: - |
hoverDelay | number | [number, number]Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента при наведении. По умолчанию: - |
maxWidth | string | number | nullПеребивает максимальную ширину заданную по умолчанию. Передача По умолчанию: - |
offsetByCrossAxis | numberОтступ по вспомогательной оси. По умолчанию: - |
offsetByMainAxis | numberОтступ по главной оси. По умолчанию: - |
onPlacementChange | OnPlacementChangeВ зависимости от области видимости, позиция может смениться на более оптимальную, чтобы всплывающий элемент вместился в эту область видимости. По умолчанию: - |
onReferenceHiddenChange | ((hidden: boolean) => void)Событие скрытия / раскрытия компонента при использовании свойства По умолчанию: - |
onShownChange | OnShownChangeВызывается при каждом изменении видимости всплывающего элемента. По умолчанию: - |
placement | PlacementWithAutoПо умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства. По умолчанию: - |
shown | booleanПередача По умолчанию: - |
strategy | StrategyСтратегия позиционирования всплывающего элемента.
По умолчанию: - |
title | ReactNodeЗаголовок тултипа. По умолчанию: - |
titleId | string[a11y] Id для заголовка тултипа.
Можно использовать для связи элемента с По умолчанию: - |
usePortal | boolean | HTMLElement | RefObject<HTMLElement>По умолчанию используется document.body. По умолчанию: - |
zIndex | string | numberПеребивает zIndex заданный по умолчанию. По умолчанию: - |
useTooltip
| Свойство | Описание |
|---|---|
appearance | "accent" | "neutral" | "white" | "black" | "inversion"Стиль отображения подсказки. По умолчанию: neutral |
arrowHeight | numberВысота стрелки. Складывается с По умолчанию: 8 |
ArrowIcon | ComponentType<SVGAttributes<SVGSVGElement>>Пользовательская SVG иконка. Требования:
По умолчанию: - |
arrowPadding | numberБезопасная зона вокруг стрелки, чтобы та не выходила за края контента. По умолчанию: 10 |
className | stringПользовательские css-классы, будут добавлены на root-элемент. По умолчанию: - |
closable | booleanДобавляет возможность закрыть тултип через иконку-крестик. По умолчанию: - |
closeIconLabel | stringСкрытый текст для кнопки закрытия. По умолчанию: - |
defaultShown | booleanНачальное состояние всплывающего элемента. По умолчанию: - |
description | ReactNodeТекст тултипа. По умолчанию: - |
disableArrow | booleanСкрывает стрелку, указывающую на якорный элемент. По умолчанию: false |
disableCloseAfterClick | booleanОтключает закрытие по нажатию. По умолчанию: false |
disableFlipMiddleware | booleanУказанное значение По умолчанию: false |
disableShiftMiddleware | booleanПозволяет отключить смещение по главной оси, которое не даёт всплывающему элементу выходить за границы видимой области. По умолчанию: false |
disableTriggerOnFocus | booleanОтключает появление при фокусе. По умолчанию: false |
enableInteractive | booleanДобавляет возможность наводить на тултип. По умолчанию: false |
getRootRef | Ref<HTMLDivElement>По умолчанию: - |
hideWhenReferenceHidden | booleanПринудительно скрывает компонент если целевой элемент вышел за область видимости. По умолчанию: - |
hoverDelay | number | [number, number]Количество миллисекунд, после которых произойдёт показ/скрытие всплывающего элемента при наведении. По умолчанию: 150 |
maxWidth | string | number | nullПеребивает максимальную ширину заданную по умолчанию. Передача По умолчанию: - |
offsetByCrossAxis | numberОтступ по вспомогательной оси. По умолчанию: 0 |
offsetByMainAxis | numberОтступ по главной оси. По умолчанию: 8 |
onPlacementChange | OnPlacementChangeВ зависимости от области видимости, позиция может смениться на более оптимальную, чтобы всплывающий элемент вместился в эту область видимости. По умолчанию: - |
onReferenceHiddenChange | ((hidden: boolean) => void)Событие скрытия / раскрытия компонента при использовании свойства По умолчанию: - |
onShownChange | OnShownChangeВызывается при каждом изменении видимости всплывающего элемента. По умолчанию: - |
placement | PlacementWithAutoПо умолчанию компонент выберет наилучшее расположение сам, но приоритетное можно задать с помощью этого свойства. По умолчанию: bottom |
shown | booleanПередача По умолчанию: - |
strategy | StrategyСтратегия позиционирования всплывающего элемента.
По умолчанию: - |
title | ReactNodeЗаголовок тултипа. По умолчанию: - |
titleId | string[a11y] Id для заголовка тултипа.
Можно использовать для связи элемента с По умолчанию: - |
usePortal | boolean | HTMLElement | RefObject<HTMLElement>По умолчанию используется document.body. По умолчанию: - |
zIndex | string | numberПеребивает zIndex заданный по умолчанию. По умолчанию: var(--vkui--z_index_popout) |