- Home »

CSS Scrollbars — настройка внешнего вида полос прокрутки
В этой статье разберёмся, как настраивать внешний вид полос прокрутки (scrollbars) с помощью CSS. Почему это важно? Потому что даже если ты не фронтендер, а больше по серверам и инфраструктуре, иногда приходится делать интерфейсы для админок, мониторинга или просто кастомизировать панель управления. И вот тут стандартные серые полосы прокрутки могут не только портить внешний вид, но и мешать юзабилити. А если ты хочешь, чтобы твой сервис выглядел не как hello-world из 2005-го, а как современное приложение — кастомные скроллбары must-have. В статье — как это работает, как быстро всё настроить, реальные примеры, подводные камни, сравнения и даже немного хардкора для автоматизации.
Как это работает: немного теории и практики
Полосы прокрутки — штука, которая есть почти в каждом интерфейсе. Но вот беда: браузеры по умолчанию рисуют их по-своему, и часто это выглядит уныло. К счастью, CSS давно позволяет их настраивать. Правда, тут есть нюансы: разные браузеры поддерживают разные синтаксисы, а стандартизация идёт медленно. В основном, кастомизация делается через псевдоселекторы ::-webkit-scrollbar
(Chrome, Edge, Safari) и scrollbar-color
, scrollbar-width
(Firefox).
- Webkit-браузеры (Chrome, Edge, Safari): поддерживают кучу псевдоселекторов для детальной настройки.
- Firefox: поддерживает только цвет и ширину, но зато стандартизировано.
- IE/Legacy Edge: отдельная боль, но сейчас почти не встречается.
В итоге, чтобы сделать кроссбраузерно — придётся писать несколько вариантов. Но оно того стоит: можно сделать скроллбар под стиль панели мониторинга, выделить важные элементы, или просто убрать раздражающий серый прямоугольник.
Как быстро и просто всё настроить: пошаговая инструкция
-
Определись, где нужен кастомный скроллбар. Обычно это
body
,textarea
,pre
или кастомные контейнеры сoverflow: auto
. -
Добавь базовые стили для Webkit-браузеров.
/* Для Chrome, Edge, Safari */ ::-webkit-scrollbar { width: 12px; background: #222; } ::-webkit-scrollbar-thumb { background: #4caf50; border-radius: 6px; } ::-webkit-scrollbar-track { background: #111; }
-
Добавь стили для Firefox.
/* Для Firefox */ * { scrollbar-width: thin; scrollbar-color: #4caf50 #111; }
- Проверь результат в разных браузерах. Иногда придётся подправить цвета или ширину.
-
Опционально: добавь плавность и анимацию. Например, меняй цвет при наведении:
::-webkit-scrollbar-thumb:hover { background: #388e3c; }
Всё, теперь твой скроллбар выглядит как надо. Если хочется ещё больше кастома — можно добавить box-shadow, градиенты, даже иконки (через background-image).
Примеры, схемы, практические советы
Давай посмотрим на реальные кейсы. Вот таблица сравнения подходов:
Метод | Плюсы | Минусы | Где использовать |
---|---|---|---|
CSS ::-webkit-scrollbar | Гибкость, много настроек, поддержка Chrome/Edge/Safari | Не работает в Firefox, не стандартизировано | Внутренние панели, админки, если аудитория — Chromium |
scrollbar-color/scrollbar-width | Стандартизировано, работает в Firefox | Мало настроек, не работает в Chrome | Публичные сервисы, где важна поддержка Firefox |
JS-плагины (например, Perfect Scrollbar) | Кроссбраузерность, расширенные возможности | Тяжеловесно, требует JS, иногда баги | Сложные интерфейсы, SPA, где нужен полный контроль |
Положительный кейс
В админке мониторинга серверов (например, на базе Grafana) кастомный скроллбар помогает визуально отделить логи от графиков, сделать интерфейс более читаемым. Пользователь сразу видит, где можно прокручивать, а где нет. Плюс — можно сделать скроллбар тонким, чтобы не мешал обзору данных.
Отрицательный кейс
В публичном сервисе сделали скроллбар только через ::-webkit-scrollbar
, не добавили поддержку Firefox. В итоге у части пользователей (особенно на Linux) скроллбар остался дефолтным, выбивался из дизайна, были жалобы на неудобство. Вывод — всегда делай кроссбраузерно, даже если кажется, что “никто не пользуется Firefox”.
Полный список CSS-команд для настройки скроллбаров
/* Webkit-браузеры */
::-webkit-scrollbar { /* Вся полоса */ }
::-webkit-scrollbar-thumb { /* Бегунок */ }
::-webkit-scrollbar-track { /* Трек */ }
::-webkit-scrollbar-corner { /* Угол между вертикальной и горизонтальной полосой */ }
::-webkit-scrollbar-button { /* Кнопки прокрутки (редко используется) */ }
::-webkit-scrollbar-track-piece { /* Часть трека, не занятая бегунком */ }
/* Firefox */
scrollbar-width: auto | thin | none;
scrollbar-color:
Похожие решения, программы и утилиты
- Perfect Scrollbar — JS-плагин для кроссбраузерных скроллбаров, много настроек, но требует JS.
- SimpleBar — ещё один JS-плагин, делает скроллбар полностью кастомным, даже в старых браузерах.
- MDN: ::-webkit-scrollbar — официальная документация по CSS-селектору.
- MDN: scrollbar-color — документация по Firefox-стилям.
Статистика, сравнение с другими решениями, интересные факты
-
По статистике caniuse.com, поддержка
::-webkit-scrollbar
— 93% пользователей,scrollbar-color
— 17%. Поэтому всегда делай fallback! - Некоторые кастомные скроллбары могут ломать доступность (accessibility), если сделать их слишком тонкими или невидимыми. Проверяй на реальных людях.
-
Можно сделать скроллбар только при наведении (hover), чтобы не мешал, но был доступен. Например:
/* Скрыть по умолчанию */ ::-webkit-scrollbar { width: 0px; background: transparent; } /* Показать при наведении */ :hover::-webkit-scrollbar { width: 12px; background: #222; }
- В некоторых Linux-дистрибутивах (например, Ubuntu) системные скроллбары могут перекрывать твои стили — тестируй на разных ОС.
- Можно использовать переменные CSS для динамической смены цвета скроллбара в зависимости от темы (light/dark mode).
Нестандартные способы использования
- Анимация скроллбара: можно плавно менять цвет бегунка при прокрутке, используя JS и динамические классы.
-
Скрытый скроллбар: если хочется сделать “чистый” интерфейс, можно полностью скрыть скроллбар, но оставить прокрутку мышью/тачпадом.
/* Chrome */ ::-webkit-scrollbar { display: none; } /* Firefox */ scrollbar-width: none;
- Индикация статуса: цвет скроллбара можно менять в зависимости от статуса сервера (например, зелёный — всё ок, красный — проблемы).
- Автоматизация через скрипты: можно генерировать CSS для скроллбаров динамически, например, под разные проекты или темы, используя шаблонизаторы или CI/CD пайплайны.
Новые возможности и автоматизация
С появлением CSS-переменных и поддержки кастомных свойств в современных браузерах, можно делать динамические скроллбары, которые меняются “на лету” — например, при переключении темы или в зависимости от состояния приложения. Это особенно удобно для админок и панелей мониторинга, где хочется быстро менять внешний вид без перезагрузки страницы.
В автоматизации это открывает интересные сценарии:
- Генерация кастомных тем для разных клиентов (например, для white-label решений).
- Быстрая смена стиля интерфейса через переменные окружения или параметры запуска.
- Интеграция с системами мониторинга: цвет скроллбара меняется в зависимости от нагрузки или статуса сервера.
- Использование скроллбаров как дополнительного канала визуального оповещения (например, если скроллбар стал красным — пора смотреть логи).
Выводы и рекомендации
Кастомные CSS-скроллбары — это не только про красоту, но и про удобство, юзабилити и даже автоматизацию. Если ты делаешь свою панель мониторинга, админку или просто хочешь, чтобы твой сервис выглядел современно — обязательно настрой скроллбары под свой стиль. Это быстро, просто и реально улучшает впечатление от интерфейса.
-
Всегда делай кроссбраузерно:
::-webkit-scrollbar
+scrollbar-color
. - Не перебарщивай с кастомизацией: скроллбар должен быть заметен, но не мешать.
- Тестируй на разных ОС и браузерах.
- Используй JS-плагины только если нужен полный контроль или поддержка старых браузеров.
- Не забывай про accessibility: цвет, ширина, контрастность.
Если ты ищешь надёжный VPS или выделенный сервер для своих проектов — смотри VPS или выделенные серверы на этом блоге. А если остались вопросы по CSS-скроллбарам — пиши в комментарии, разберём любой кейс!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.