Personaliza el scroll de tu web sólo con CSS

Aprende a personalizar la barra de scroll de tu sitio web de forma rápida y sin javascript

Diseño web
Lectura de 8 minutos
24 sep. 2018
Personaliza el scroll de tu web sólo con CSS

¿Te has llegado a preguntar cómo puedes personalizar la barra de scroll de tu sitio web? Ya sea porque quieres crear un scroll que se ve sensacional con una interfaz que diseñaste o el simple hecho de que los estilos que tiene por defecto son aburridos y feos. Sea cual sea la razón has llegado al lugar correcto, porque el día de hoy aprenderemos a cómo personalizar el scroll en una página web utilizando sólo CSS. Advertencia: este método sólo es compatible con navegadores basados en Webkit. Para mayor información visita Can I Use.

Empecemos conociendo las partes del scroll, que si bien se divide en varios componentes, los que más nos importan en esta ocasión son tres: scroll, track y thumb

Partes del scroll

Una vez que ya conocemos la manera en que se conforma el scroll y con la ayuda del pseudo elemento ::-webkit-scrollbar procederemos a crear nuestros estilos

webkit-scrollbar

Con ::-webkit-scrollbar nos encargaremos de definir la altura y la anchura del componente Scroll. Y si lo deseas, lo puedes ocultar sin afectar su funcionamiento.

1.container::-webkit-scrollbar {
2 width: 8px; /* Tamaño del scroll en vertical */
3 height: 8px; /* Tamaño del scroll en horizontal */
4 display: none; /* Ocultar scroll */
5}

webkit-scrollbar-thumb

Con ::-webkit-scrollbar-thumb podremos modificar los bordes, fondo y sombras el componente thumb, lo mejor de todo es que podemos utilizar las pseudo clases active y hover sobre este componente

1/* Ponemos un color de fondo y redondeamos las esquinas del thumb */
2.container::-webkit-scrollbar-thumb {
3 background: #ccc;
4 border-radius: 4px;
5}
6
7/* Cambiamos el fondo y agregamos una sombra cuando esté en hover */
8.container::-webkit-scrollbar-thumb:hover {
9 background: #b3b3b3;
10 box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.2);
11}
12
13/* Cambiamos el fondo cuando esté en active */
14.container::-webkit-scrollbar-thumb:active {
15 background-color: #999999;
16}

webkit-scrollbar-track

Con ::-webkit-scrollbar-track es la misma historia que con ::-webkit-scrollbar-thumb respecto a los estilos y pseudo clases, pero aplicados al track.

1/* Ponemos un color de fondo y redondeamos las esquinas del track */
2.container::-webkit-scrollbar-track {
3 background: #e1e1e1;
4 border-radius: 4px;
5}
6
7/* Cambiamos el fondo cuando esté en active o hover */
8.container::-webkit-scrollbar-track:hover,
9.container::-webkit-scrollbar-track:active {
10 background: #d4d4d4;
11}

El resultado de todo lo anterior da lo siguiente:

See the Pen Scroll style only CSS | EDteam blog by Juan Alexis Mora Angulo (@Jopzik) on CodePen.

Y de esta manera tan sencilla podrás crear variedad de estilos para la barra de scroll y usarlos donde lo requieras en tu web.

Puedes aprender más de CSS en nuestro curso gratuito CSS Desde Cero.

Avatar

Alexis Mora Angulo

@jopzikVer perfil

🌮 Orgulloso nayarita y mexicano 💻 UI/UX y docente en EDteam 🖱 Hago cosas en Codepen 🏃🏾‍♂️ Runner de fin de semana 🌊 #NoTeDetengas

Comentarios de los usuarios

Avatar
David Mendoza

@davidmendozaq

Ha sido tan sencillo. Genial

Avatar
Brayant Rosa

@bryantrosatavarez

muy buen tic y exelente explicacion👍

MD
Miguel Depiante

@migueldepiante

Existe la opción para Firefox?

Avatar
HAIRTON M.

@hairton

Este es un gran aporte lo voy a utilizar si o si en mi proyecto. MUCHAS GRACIAS

Avatar
Victor Castro

@victorcastro

Excelente explicación. Precisamente en estos días vi un tutorial donde aplicaban estos estilos y no había entendido el código. Muchas gracias por la información.

Ver más comentarios

Recuerda iniciar sesión para comentar este articulo

Cursos recomendados

Variables CSS

Variables CSS

Avatar

Alvaro Felipe

5

4.9

EDy flotante