The default appearance of the scrollbar in a browser can be quite dull and boring. In this article, we will look at how we can stylize the scrollbar to match our website's theme using Next.js and CSS.
Importing the styles
To import the styles for the scrollbar, we will create a file in the styles/globals.css
directory. This file will contain all of our global styles, including the styles for the scrollbar.
Defining the color variables
We are using CSS variables to define the colors of the scrollbar. The CSS variables are defined in the :root
block.
:root {
--primary: #f1f1f1;
--secondary: rgba(31, 209, 253, 0.4);
--tertiary: rgba(31, 209, 253, 0.6);
}
Defining the styles
Let's start by defining the styles for Firefox.
/* Firefox */
* {
scrollbar-width: thin;
scrollbar-color: var(--secondary) var(--primary);
}
The scrollbar-width
property specifies the width of the scrollbar. In this case, we are using the value thin
to make the scrollbar as thin as possible. The scrollbar-color
property sets the color of the scrollbar and its thumb.
Next, we will define the styles for Chrome, Edge, and Safari.
/* Chrome, Edge, and Safari */
*::-webkit-scrollbar {
width: 17px;
}
*::-webkit-scrollbar-track {
background: var(--primary);
border-radius: 5px;
}
*::-webkit-scrollbar-thumb {
background-color: var(--secondary);
border-radius: 14px;
border: 3px solid var(--primary);
}
::-webkit-scrollbar-thumb:hover {
background-color: var(--tertiary);
}
The width
property sets the width of the scrollbar. In this case, we are using 17px
. The *::-webkit-scrollbar-track
defines the styles for the track of the scrollbar. The background color is set using the --primary
variable. The border-radius
property gives the track a rounded border.
The *::-webkit-scrollbar-thumb
defines the styles for the thumb of the scrollbar. The background color is set using the --secondary
variable. The border-radius
property gives the thumb a rounded border, and the border
property adds a border to the thumb.
Finally, the ::-webkit-scrollbar-thumb:hover
defines the styles for the thumb when it is hovered over. In this case, the background color is set to --tertiary
.
Live Demo:
Final thoughts
And that's it! By following these steps, we can easily stylize the scrollbar in Next.js. You can further customize the styles to match your website's theme. The possibilities are endless!
Top comments (0)