OverlayScrollbars — это JavaScript-библиотека, предназначенная для замены нативных полос прокрутки на настраиваемые наложенные полосы, сохраняя при этом оригинальное поведение и доступность. Библиотека разработана с целью предоставить разработчикам возможность стилизовать полосы прокрутки, не нарушая стандартного взаимодействия с пользователем, включая поддержку клавиатуры, мыши и сенсорного ввода.
Проект был создан разработчиком под псевдонимом KingSora, который стремился решить проблему громоздких и некрасивых стандартных полос прокрутки, предлагая при этом высококачественное решение с простым API, хорошей документацией и широкой поддержкой браузеров. Библиотека написана на TypeScript и не имеет внешних зависимостей, что способствует её компактности и независимости от сторонних библиотек.
- Скрытие нативных полос прокрутки — позволяет скрыть стандартные полосы прокрутки браузера, заменяя их на наложенные элементы.
- Полная настройка внешнего вида — предоставляет возможность стилизовать полосы прокрутки с использованием CSS-переменных, обеспечивая гибкость в дизайне.
- Поддержка нативного поведения — сохраняет стандартное поведение прокрутки, включая поддержку колесика мыши, сенсорного ввода и клавиатуры.
- Высокая совместимость с браузерами — поддерживает современные версии Firefox, Chrome, Opera, Edge и Safari.
- Поддержка серверного рендеринга — совместима с Node.js, Deno и Bun, что позволяет использовать её в серверных приложениях.
- Поддержка различных устройств — протестирована на мобильных устройствах, планшетах и десктопах, обеспечивая стабильную работу на разных платформах.
- Поддержка различных типов ввода — обеспечивает корректную работу с мышью, сенсорным экраном и стилусом.
- Поддержка фреймворков — предоставляет официальные обёртки для React, Vue, Angular, Svelte и Solid, а также может использоваться как плагин для jQuery.
- Поддержка SSR — совместима с серверным рендерингом, поддерживая Server-Side Rendering (SSR), Static Site Generation (SSG) и Incremental Static Regeneration (ISR).
- Автоматическое обновление — автоматически обнаруживает изменения контента и размера без необходимости постоянного опроса.
- Поддержка элемента body — позволяет применять стилизацию полос прокрутки непосредственно к элементу body.
- Минимальный размер — благодаря отсутствию внешних зависимостей и использованию tree-shaking, размер библиотеки минимален.
- Поддержка TypeScript — полностью написана на TypeScript, обеспечивая строгую типизацию и улучшенную поддержку разработчиков.