Тултипы: 200 мс задержки, а затем мгновенное появление
Tooltips Need a Delay, and Then They Need to Skip It
Разработчик FrontPrep делится решением раздражающей проблемы с тултипами: мгновенное появление при наведении на логотипы компаний мешало при перемещении курсора. Он добавил задержку в 200 мс, но это сделало переход между соседними логотипами вялым. Решение — «тёплое окно»: после закрытия тултипа запускается 300-мс таймер, в течение которого следующий тултип появляется мгновенно. В статье объясняется реализация на React и Radix, приводятся фрагменты кода и готовый Claude skill для аудита вашего кода.
Клик всегда намерен, а наведение — нет.
- ProxCoques
Меня никогда не перестанет удивлять, что Apple (при Джефе Раскине, который также писал об этом в «Человеческом интерфейсе») заметила и исправила проблемы с подобными взаимодействиями ещё в System 6, примерно в 1993 году, — только для того, чтобы ту же проблему приходилось заново открывать и исправлять десятилетия спустя.
- brixie
Похоже, здесь описывается та же техника, что и в последнем примере на https://emilkowal.ski/ui/you-dont-need-animations (и, думаю, весь этот пост стоит прочитать, если вам показалось это интересным). Это такая мелкая деталь, которую я бы иначе не заметил (потому что я не занимаюсь анимациями, и мне это не приходит в голову), но теперь, когда я о ней знаю, я думаю о ней постоянно.
- hurrell
Я бы назвал это примером гистерезиса. Здорово! https://en.wikipedia.org/wiki/Hysteresis
- kazinator
По сути, есть глобальная температура. Когда указатель находится над элементом с тултипом, температура повышается. В противном случае она остывает (возможно, с другой скоростью). Тултип показывается только тогда, когда указатель находится в пределах элемента и температура выше определённого порога.
- compiler-guy
Я очень ценю такое внимание к деталям, и в мире этого недостаточно. Например, в Visual Studio всплывающие окна при наведении появляются так быстро, что едва успеваешь что-то выбрать, или в итоге кликаешь по всплывающему окну вместо того, чтобы выделить слово.