O Firefox 64 adiciona suporte ao rascunho de especificação CSS Scrollbars Module Level 1 , que adiciona duas novas propriedades de scrollbar-width
e scrollbar-color
que dão algum controle sobre como as barras de rolagem são exibidas.
Você pode definir scrollbar-color
um dos seguintes valores (descrições do MDN):
auto
Renderização de plataforma padrão para a parte da faixa da barra de rolagem, na ausência de outras propriedades de cores relacionadas à barra de rolagem.
dark
Mostrar uma barra de rolagem escura, que pode ser uma variante escura da barra de rolagem fornecida pela plataforma ou uma barra de rolagem personalizada com cores escuras.
light
Mostre uma barra de rolagem leve, que pode ser uma variante leve da barra de rolagem fornecida pela plataforma ou uma barra de rolagem personalizada com cores claras.
<color>
<color>
Aplica a primeira cor ao polegar da barra de rolagem e a segunda à faixa da barra de rolagem.
Observe que os valores dark
e não estão atualmente implementados no Firefox .light
notas do macOS:
As barras de rolagem semi-transparentes que ocultam automaticamente e que são o padrão do macOS não podem ser coloridas com esta regra (elas ainda escolhem sua própria cor contrastante com base no plano de fundo). Somente as barras de rolagem permanentemente exibidas (Preferências do sistema> Mostrar barras de rolagem> Sempre) são coloridas.
Demonstração 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>
Você pode definir scrollbar-width
um dos seguintes valores (descrições do MDN):
auto
A largura da barra de rolagem padrão para a plataforma.
thin
Uma variante fina da largura da barra de rolagem nas plataformas que fornecem essa opção ou uma barra de rolagem mais fina que a largura da barra de rolagem padrão da plataforma.
none
Nenhuma barra de rolagem é exibida; no entanto, o elemento ainda pode ser rolado.
Você também pode definir um valor de comprimento específico, de acordo com as especificações. Tanto o thin
comprimento quanto o comprimento específico podem não fazer nada em todas as plataformas, e o que exatamente ele faz é específico da plataforma. Em particular, o Firefox atualmente não parece oferecer suporte a um valor específico de comprimento ( esse comentário no rastreador de erros parece confirmar isso ). No thin
entanto, o trabalho com as teclas parece ser bem suportado, com pelo menos suporte para macOS e Windows.
Provavelmente, vale a pena notar que a opção de valor do comprimento e toda a scrollbar-width
propriedade estão sendo consideradas para remoção em um rascunho futuro e, se isso acontecer, essa propriedade específica poderá ser removida do Firefox em uma versão futura.
Demonstração 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>