Home » CSS Scrollbars — настройка внешнего вида полос прокрутки
CSS Scrollbars — настройка внешнего вида полос прокрутки

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: отдельная боль, но сейчас почти не встречается.

В итоге, чтобы сделать кроссбраузерно — придётся писать несколько вариантов. Но оно того стоит: можно сделать скроллбар под стиль панели мониторинга, выделить важные элементы, или просто убрать раздражающий серый прямоугольник.

Как быстро и просто всё настроить: пошаговая инструкция

  1. Определись, где нужен кастомный скроллбар. Обычно это body, textarea, pre или кастомные контейнеры с overflow: auto.
  2. Добавь базовые стили для Webkit-браузеров.

    
    /* Для Chrome, Edge, Safari */
    ::-webkit-scrollbar {
      width: 12px;
      background: #222;
    }
    ::-webkit-scrollbar-thumb {
      background: #4caf50;
      border-radius: 6px;
    }
    ::-webkit-scrollbar-track {
      background: #111;
    }
        
  3. Добавь стили для Firefox.

    
    /* Для Firefox */
    * {
      scrollbar-width: thin;
      scrollbar-color: #4caf50 #111;
    }
        
  4. Проверь результат в разных браузерах. Иногда придётся подправить цвета или ширину.
  5. Опционально: добавь плавность и анимацию. Например, меняй цвет при наведении:

    
    ::-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-скроллбарам — пиши в комментарии, разберём любой кейс!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked