Подсказка
Подсказка — короткий текст в пузыре, который появляется при наведении на контрол или при фокусе на нём. В ней никогда нет того, без чего не обойтись.
<tk-tooltip text="Also removes the file from shared folders"> <tk-button tone="danger">Delete</tk-button> </tk-tooltip>
Анатомия
| Часть | Что это |
|---|---|
tk-tooltip |
обёртка |
| слот по умолчанию | один контрол, который получает фокус: триггер |
| пузырь | текст в верхнем слое, в 4px от триггера; без стрелки |
Типы
<tk-tooltip type="label"> <tk-icon-button label="Copy link"><tk-icon name="copy"></tk-icon></tk-icon-button> </tk-tooltip> <tk-tooltip text="Shared with 3 people"> <tk-button>Share</tk-button> </tk-tooltip>
Выглядят оба одинаково; разница в том, что слышит скринридер.
label: текст и есть имя контрола. Только для контролов с одной иконкой. Сtk-icon-buttonне задавайтеtext: подсказка покажетlabelкнопки, и они всегда совпадут.description(по умолчанию): текст дополняет имя контрола. Не повторяйте видимую подпись.
Положение
<tk-tooltip text="Moves the item to the top" placement="top"> <tk-button>Pin</tk-button> </tk-tooltip> <tk-tooltip text="Moves the item to the end" placement="end"> <tk-button>Archive</tk-button> </tk-tooltip>
placement— желательная сторона:top,bottom(по умолчанию),startилиend.startиendследуют направлению текста.- Если места нет, пузырь переходит на противоположную сторону и не выходит за окно. Меняйте сторону, только чтобы не закрыть что-то важное.
Появление и скрытие
- При наведении пузырь появляется через 400 мс, при фокусе с клавиатуры — сразу.
- Он остаётся, пока указатель на триггере или на пузыре, и не исчезает по таймеру.
Escскрывает его, а фокус остаётся на триггере.- Появляется и исчезает мгновенно, без анимации.
- Касание ничего не открывает: оно срабатывает как нажатие на контрол. Не кладите в подсказку ничего важного, тогда на сенсорном экране ничего не потеряется.
Когда использовать
- Показать название кнопки с одной иконкой —
type="label". - Добавить одно короткое пояснение к контролу, у которого уже есть имя —
type="description"(по умолчанию). - Сначала попробуйте другое. Постоянные пояснения — в подсказку под полем или на страницу, а слова, которые уже есть на контроле, не повторяйте. Всё, что нужно прочитать, чтобы справиться, в подсказке не место.
- Для ссылок, кнопок или длинного текста берите
Popover . В подсказке только простой текст. - Только на контролах, которые получают фокус. Никогда на простом тексте.
Текст
- Label: действие одним-двумя словами, теми же, что в
labelкнопки: «Переименовать», «Копировать ссылку». - Description: одно короткое предложение, которое что-то добавляет; полезное слово в начале.
- Заглавная буква только в начале, спокойный тон. Никаких ошибок, предупреждений о безопасности и шагов, без которых задачу не закончить.
- Пишите коротко. На 280px текст переносится.
Подробнее в
Можно / нельзя
| ✅ Можно | ❌ Нельзя |
|---|---|
label, чтобы показать имя кнопки с иконкой |
label на контроле с видимым текстом |
| Короткое пояснение, которое не влезло в подпись | Повторять видимую подпись в описании |
| Постоянную информацию на странице | Прятать нужное в пузырь |
| Оборачивать кнопку, ссылку или поле | Оборачивать простой текст или пустой div |
Оставлять bottom по умолчанию |
Выбирать сторону без причины |
Связанные
Icon button : главный партнёр подсказкиlabel.Popover : панель со ссылками, кнопками или длинным текстом.Button : обычный триггер для описания.
API
Атрибуты
| Атрибут | Тип | По умолчанию | Что делает |
|---|---|---|---|
text |
string | нет | текст; обязателен, кроме type="label" на tk-icon-button |
type |
description | label |
description |
дополняет имя триггера или становится им |
placement |
top | bottom | start | end |
bottom |
желательная сторона |
Слоты
| Слот | Содержимое |
|---|---|
| по умолчанию | один контрол, который получает фокус |
События
Событий нет.
Токены
| Часть | Токены |
|---|---|
| пузырь | surface/inverse, shadow-2, radius-8; в контрастной теме рамка 1px border/default |
| текст | text/inverse, Caption (12/16) |
| отступы | space-8 по горизонтали, space-4 по вертикали |
| зазор до триггера | space-4 |
Значения по темам:
Доступность
Встроено:
- Пузырь скрыт от скринридеров. Текст читается из скрытой копии, связанной с триггером: как
его описание или, с
type="label", как его имя. - Подсказку показывают и наведение, и фокус;
Escскрывает её, не двигая фокус, и закрывается только подсказка, а не диалог вокруг неё. - Указатель можно перевести на пузырь, и он не исчезнет; по таймеру он не закрывается.
- Ничто в пузыре не получает фокус.
- Если триггер не может получить фокус, в консоли будет предупреждение.
На вашей стороне:
- Держите содержимое необязательным. На сенсорном экране подсказку могут не увидеть вовсе.
- Оборачивайте контрол, который получает фокус, а не простой текст.
- Не заменяйте подсказку атрибутом
title: с клавиатуры и на сенсорном экране его не видно.
| Клавиша | Действие |
|---|---|
Tab |
ставит фокус на триггер и показывает подсказку |
Esc |
скрывает подсказку; фокус остаётся на триггере |
Известные ограничения
- Описание на контроле Thykes пока не читается. На
tk-button,tk-icon-button,tk-linkи других триггерахtk-*скринридеры описание не слышат, а на нативных<button>и<a>слышат. Не полагайтесь на него ни в чём важном. type="label"даёт имя толькоtk-icon-buttonили нативному контролу. Для действий с одной иконкой беритеtk-icon-buttonсlabel.