Wordyblend logo

Как изменить скроллбар с помощью SASS/SCSS

Полоса прокрутки (скроллбар) – это один из тех компонентов пользовательского интерфейса, который встречается почти на каждой веб странице в сети, но несмотря на это, у нас (разработчиков) слишком мало контроля над этим элементом UI. Некоорые браузеры позволяют изменить внешний вид полосы прокрутки, но большинство браузеров, включая Firefox, не дают такой возможности.

Тем не менее, Chrome и Internet Explorer (да) позволяют добавлять пользовательские стили для скроллбаров, но синтаксис ужасно сложен и, конечно же, непривычен.

Возможно вы захотите воспользоваться этой небольшой SASS миксиной, чтобы с легкостью изменить свои полосы прокрутки.

// Миксина для изменения внешнего вида скроллбара
// Работает не во всех браузерах
// @param {Length} $size - Высота горизонтального и скроллбара и ширина вертикального
// @param {Color} $foreground-color - Цвет скроллбара
// @param {Color} $background-color [mix($foreground-color, white, 50%)] - Цвет скроллбара
// @example scss - Стили скроллбара
// @include scrollbars(.5em, slategray);

@mixin scrollbars($size, $foreground-color, $background-color: mix($foreground-color, white,  50%)) {

  // Для Chrome
  ::-webkit-scrollbar {
      width:  $size;
      height: $size;
  }

  ::-webkit-scrollbar-thumb {
      background: $foreground-color;
  }

  ::-webkit-scrollbar-track {
      background: $background-color;
  }

  // Для Internet Explorer
  body {
      scrollbar-face-color: $foreground-color;
      scrollbar-track-color: $background-color;
  }
}

Пример

@include scrollbars(.5em, slategray);

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


Перевод статьи Custom Scrollbar Mixin