Firefox 64 agrega soporte para el borrador de especificación CSS Scrollbars Module Level 1 , que agrega dos nuevas propiedades de scrollbar-widthy scrollbar-colorque dan cierto control sobre cómo se muestran las barras de desplazamiento.
Puede establecer scrollbar-coloruno de los siguientes valores (descripciones de MDN):
auto Representación de plataforma predeterminada para la parte de seguimiento de la barra de desplazamiento, en ausencia de otras propiedades de color de la barra de desplazamiento relacionadas.
dark Muestre una barra de desplazamiento oscura, que puede ser una variante oscura de la barra de desplazamiento proporcionada por la plataforma o una barra de desplazamiento personalizada con colores oscuros.
light Muestre una barra de desplazamiento clara, que puede ser una variante ligera de la barra de desplazamiento proporcionada por la plataforma o una barra de desplazamiento personalizada con colores claros.
<color> <color> Aplica el primer color al pulgar de la barra de desplazamiento, el segundo a la pista de la barra de desplazamiento.
Tenga en cuenta que darky los lightvalores no se implementan actualmente en Firefox .
notas de macOS:
Las barras de desplazamiento semitransparentes de ocultación automática que son las predeterminadas de macOS no se pueden colorear con esta regla (todavía eligen su propio color de contraste basado en el fondo). Solo las barras de desplazamiento que se muestran permanentemente (Preferencias del sistema> Mostrar barras de desplazamiento> Siempre) están coloreadas.
Demostración visual:
.scroll {
width: 20%;
height: 100px;
border: 1px solid grey;
overflow: scroll;
display: inline-block;
}
.scroll-color-auto {
scrollbar-color: auto;
}
.scroll-color-dark {
scrollbar-color: dark;
}
.scroll-color-light {
scrollbar-color: light;
}
.scroll-color-colors {
scrollbar-color: orange lightyellow;
}
<div class="scroll scroll-color-auto">
<p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p>
</div>
<div class="scroll scroll-color-dark">
<p>dark</p><p>dark</p><p>dark</p><p>dark</p><p>dark</p><p>dark</p>
</div>
<div class="scroll scroll-color-light">
<p>light</p><p>light</p><p>light</p><p>light</p><p>light</p><p>light</p>
</div>
<div class="scroll scroll-color-colors">
<p>colors</p><p>colors</p><p>colors</p><p>colors</p><p>colors</p><p>colors</p>
</div>
Puede establecer scrollbar-widthuno de los siguientes valores (descripciones de MDN):
auto El ancho de barra de desplazamiento predeterminado para la plataforma.
thin Una variante de ancho de barra de desplazamiento delgada en plataformas que proporcionan esa opción, o una barra de desplazamiento más delgada que el ancho de barra de desplazamiento de plataforma predeterminado.
none No se muestra la barra de desplazamiento, sin embargo, el elemento seguirá siendo desplazable.
También puede establecer un valor de longitud específico, de acuerdo con la especificación. Ambos thiny una longitud específica pueden no hacer nada en todas las plataformas, y lo que hace exactamente es específico de la plataforma. En particular, Firefox no parece admitir actualmente un valor de longitud específico ( este comentario en su rastreador de errores parece confirmar esto ). Sin thinembargo, el trabajo de teclado parece estar bien soportado, con macOS y Windows al menos.
Probablemente valga la pena señalar que la opción de valor de longitud y toda la scrollbar-widthpropiedad se están considerando para su eliminación en un borrador futuro, y si eso sucede, esta propiedad en particular puede eliminarse de Firefox en una versión futura.
Demostración visual:
.scroll {
width: 30%;
height: 100px;
border: 1px solid grey;
overflow: scroll;
display: inline-block;
}
.scroll-width-auto {
scrollbar-width: auto;
}
.scroll-width-thin {
scrollbar-width: thin;
}
.scroll-width-none {
scrollbar-width: none;
}
<div class="scroll scroll-width-auto">
<p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p><p>auto</p>
</div>
<div class="scroll scroll-width-thin">
<p>thin</p><p>thin</p><p>thin</p><p>thin</p><p>thin</p><p>thin</p>
</div>
<div class="scroll scroll-width-none">
<p>none</p><p>none</p><p>none</p><p>none</p><p>none</p><p>none</p>
</div>