Firefox 64 agrega soporte para el borrador de especificación CSS Scrollbars Module Level 1 , que agrega dos nuevas propiedades de scrollbar-width
y scrollbar-color
que dan cierto control sobre cómo se muestran las barras de desplazamiento.
Puede establecer scrollbar-color
uno 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 dark
y los light
valores 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-width
uno 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 thin
y 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 thin
embargo, 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-width
propiedad 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>