PathLogs UI
English

Компоненты

TooltipLayer

Один тултип на всё приложение через атрибут data-tip.

Один тултип на всё приложение. Ставится один раз в корне, дальше подсказку получает любой элемент с атрибутом data-tip — оборачивать и импортировать ничего не нужно.

Пример

Подсказка показывается над элементом, а если сверху мало места — под ним, и всегда удерживается в пределах окна по горизонтали.

Почему слой, а не обёртка

Побочные выгоды такого решения:

  • подсказку можно повесить на серверный компонент — атрибут не требует JS;
  • в DOM живёт один бабл, а не сотня скрытых;
  • ничего не нужно импортировать в месте использования.

Плата — координаты fixed устаревают при прокрутке, поэтому при скролле подсказка просто прячется.

Доступность

Нативный title читают скринридеры, а свой атрибут — нет. Поэтому слой сам проставляет aria-label элементам, у которых нет видимого текста и своего aria-label:

html
<!-- было -->
<button data-tip="Настроить колонку"><svg/></button>

<!-- стало -->
<button data-tip="Настроить колонку" aria-label="Настроить колонку"><svg/></button>

Элементы с текстом не трогаются: их доступным именем уже служит видимый текст, и дублировать его подсказкой значило бы читать одно и то же дважды. За появляющимися элементами слой следит через MutationObserver.

Пропсы

attributestring

по умолчанию: "data-tip"

Атрибут-якорь. Поменяйте, если data-tip уже занят чем-то своим.

maxWidthnumber

по умолчанию: 220

Предельная ширина бабла, px.

gapnumber

по умолчанию: 8

Зазор между элементом и баблом, px.