Scrollbar

Table of Contents

Customize or hide the scrollbar with ease.

Installation

npm install @fylgja/scrollbar

Then include the component in to your code via;

@use "@fylgja/scrollbar";
// Or via PostCSS import
@import "@fylgja/scrollbar";

@layer support

If you need support for @layer, use the following import;

@use "@fylgja/scrollbar" with ($scrollbar-layer: "utilities");
// Or via PostCSS and other options as native CSS
@import "@fylgja/scrollbar" layer(utilities);

How to use

By default @fylgja/scrollbar offers 2 scrollbar styles.

  • .hide-scrollbar
  • .thin-scrollbar

Both are based on the browser default styles thats is supported by Firefox.

Giving a close cross browser support to the scrollbar style.

Apply the scrollbar style to any element that has overflow and so has a scrollbar.

<div class="thin-scrollbar">
    ...overflowing content here
</div>

Cross browser support

Currently the scrollbar styles are split in the newer specification that is only supported by Firefox.

And the webkit version that is supported by all moderne browsers except Firefox.

This CSS component mimics the newer spec with the webkit version.

And so limits the possibilities found in the webkit version.

Making this CSS component as safe solution for a near cross browser style, with minor OS differences.

Mixin (SCSS only)

This CSS component also ships with a handy SCSS mixin that you can use via;

@use "@fylgja/scrollbar/helper" as *;

@include scrollbar(
    $thumb, // thumb color
    $track, // track color
    $width: null, // width of the scrollbar
    $radius: 0.5rem // border radius of the scrollbar, webkit only
    $width-size: if($width, ..) // $width setters for the older spec
    $width-name: if($width, ..) // $width setters for the newer spec
);

This mixin will create a near cross browser scrollbar.

0.5rem is the radius found in most OS scrollbars

Config

Want more control on the base styles, than the CSS variables, Here are the following SCSS variables you can modify.

$scrollbar-thumb-color: rgba($root-fg, 25%) !default;
$scrollbar-track-color: rgba($root-fg, 0%) !default;
Noticed a typo or is something unclear? Help us improve this page on GitHub.