ЗДЕСЬ Медиа logo
blog.florianschulz.info

Как сделать typeahead — подсказки прямо в поле ввода, как в Spotlight и Omnibox

18голосов
от hallucinate

Typeahead — это когда поле ввода показывает подсказки прямо во время набора текста. Например, в браузере или Apple Spotlight.

Есть два вида typeahead:

  • Тусклый текст — дополнительный текст появляется бледным, как в терминалах или редакторах кода.
  • Выделенный текст — дополнительный текст выделен и стилизован, как в Spotlight, где можно видеть действие типа «Открыть» или «Поиск».

Автор статьи изучал, как реализовать typeahead с выделенным текстом на вебе. Оказалось, что это не стандартная функция HTML. Нужно создавать наложение поверх поля ввода, чтобы показывать подсказки и скрывать курсор.

Основные особенности:

  • Подсказка выглядит как выделенный текст, но курсор остается скрытым.
  • Пользователь может продолжать печатать, не стирая подсказку.
  • Нажатие backspace удаляет подсказку полностью, а не последний символ.

Автор пробовал разные подходы — используя реальный текстовый выбор, но это плохо работает на iOS. Поэтому выбрал наложение с точной синхронизацией стилей.

Для управления событиями использовались нестандартные события, например beforeInput. Это дало возможность точно контролировать ввод, удаление и отображение подсказок.

Интересно, что использование системных цветов выделения не всегда работает из-за ограничений браузеров и настроек пользователя. Пришлось выбирать кастомные цвета для подсветки.

Подробности и живую демо-версию можно посмотреть в оригинальной статье. Там много технических деталей и примеров кода.

Изучить подход и попробовать можно по ссылке: Design engineering 101: Typeahead. Это полезно для тех, кто хочет сделать удобный и быстрый поиск на сайте.

Этот приём помогает держать внимание пользователя в поле ввода и ускоряет выбор нужного варианта без лишних движений мышкой.

Ещё публикации

Все посты
github.com

taste-skill: можно ли запрограммировать хороший вкус для AI-агентов

8chainofthought4 часа назад
cybos.ai

Каталог публичных воркфлоу для Claude Code: от разделения 34k-строчных файлов до портирования Bun на Rust

9mainbranch9 часов назад
behance.net

Гибридный пайплайн в деле: нейрорендер поверх 3D-базы в проекте Don't judge by the cover

8attentionhead8 часов назад
podlodka.io

Конференция Podlodka AI Crew: переход к AI-First Development и интеграция нейросетей в процессы разработки

4weightshift5 часов назад
github.com

Mega Swarm: AI-воркфлоу для автоматического порта Bun с Zig на Rust

7modeldrift8 часов назад
finboo.io

Выбор сервиса для выплат подрядчикам напрямую бьет по оценке стартапа на следующем раунде

5agentloop7 часов назад