Repolode
jamiebuilds

jamiebuilds/tinykeys

Небольшая библиотека для браузеров, которая связывает сочетания клавиш, включая последовательности, с обработчиками.

Звёзды
4,104
Форки
89
Открытые issues
7
Последний коммит
в прошлом месяце

Что это?

tinykeys — небольшая JavaScript-библиотека для регистрации сочетаний клавиш в веб-приложениях. Передайте ей цель, например window, и объект, в котором шаблоны клавиш вроде "Shift+D" или "$mod+b" сопоставлены с callback-функциями. Библиотека отслеживает события клавиатуры и вызывает соответствующий обработчик. Она также возвращает функцию отписки, поэтому привязки легко очищать при размонтировании компонента.

Синтаксис поддерживает модификаторы, необязательные модификаторы в квадратных скобках, кроссплатформенный псевдоним $mod, который соответствует Meta на Mac и Control на других платформах, а также группы регулярных выражений для сопоставления наборов клавиш. Поддерживаются последовательности вроде "g i" с настраиваемым таймаутом между нажатиями. Сопоставление выполняется по KeyboardEvent.key или KeyboardEvent.code, а для отображения сочетаний в интерфейсе библиотека предоставляет helper parseKeybinding.

Библиотеку можно установить через npm или загрузить с CDN; она написана на TypeScript.

Ключевые возможности

  • 01Связывает отдельные клавиши, сочетания с модификаторами и последовательности клавиш с функциями-обработчиками.
  • 02Предоставляет псевдоним $mod: на Mac он соответствует Meta, а на других платформах — Control.
  • 03Поддерживает группы регулярных выражений, чтобы сопоставлять несколько клавиш одной привязкой.
  • 04Возвращает функцию отписки для очистки обработчиков событий.
  • 05Может сопоставлять клавиши по key или code и учитывать различия раскладок, например AltGraph.
  • 06Предоставляет parseKeybinding для отображения сочетаний клавиш в интерфейсе.

Сценарии использования

  • Добавление сочетаний клавиш, например Cmd+B для полужирного начертания, в веб-редактор текста.
  • Реализация в веб-приложении последовательностей навигации из нескольких клавиш, как в Gmail, например "g i".
  • Регистрация сочетаний клавиш внутри React-компонентов с очисткой при размонтировании.

Быстрый старт

  1. 1

    Установите пакет с помощью npm

    npm install --save tinykeys
  2. 2

    Импортируйте tinykeys и привяжите горячие клавиши к window

В подборках

Темы

Частые вопросы

Что такое tinykeys?
Небольшая библиотека для браузеров, которая связывает сочетания клавиш, включая последовательности, с обработчиками. tinykeys — небольшая JavaScript-библиотека для регистрации сочетаний клавиш в веб-приложениях. Передайте ей цель, например window, и объект, в котором шаблоны клавиш вроде "Shift+D" или "$mod+b" сопоставлены с callback-функциями. Библиотека отслеживает события клавиатуры и вызывает соответствующий обработчик. Она также возвращает функцию отписки, поэтому привязки легко очищать при размонтировании компонента.
tinykeys можно использовать бесплатно? Какая у него лицензия?
tinykeys распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tinykeys всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в tinykeys — 25 сент. 2026 г..
Для чего можно использовать tinykeys?
Добавление сочетаний клавиш, например Cmd+B для полужирного начертания, в веб-редактор текста. Реализация в веб-приложении последовательностей навигации из нескольких клавиш, как в Gmail, например "g i". Регистрация сочетаний клавиш внутри React-компонентов с очисткой при размонтировании.
Как установить tinykeys?
Установите пакет с помощью npm: npm install --save tinykeys Импортируйте tinykeys и привяжите горячие клавиши к window
Где скачать tinykeys?
Исходный код и инструкции по установке — на GitHub: https://github.com/jamiebuilds/tinykeys

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

JavaScript-библиотека для создания интерактивных пользовательских интерфейсов из компонентов, работающих в вебе, на сервере и нативных платформах.

252,2 тыс.+387 за неделю51,8 тыс.JavaScriptMITОбновлён 8 часов назад