Color de los elementos destacados CSS

Aporta el color de tu marca a las entradas integradas del formulario HTML con una línea de código.

Los elementos actuales del formulario HTML son difíciles de personalizar. Se siente como si se tratara de elegir entre pocos diseños personalizados o ninguno, o restablecer los estilos de entrada y crearlos desde cero. Crearlo desde cero termina siendo mucho más trabajo de lo esperado. También puede llevar a que se pierdan estilos para estados de elementos (indeterminado, te estoy observando) y a la pérdida de las funciones de accesibilidad integradas. Recrear por completo lo que proporciona el navegador puede implicar más trabajo del que esperas realizar.

accent-color: hotpink;

El accent-color de CSS de la especificación de IU de CSS está aquí para ajustar el tono de los elementos con una línea de CSS, lo que te evita los esfuerzos de personalización, ya que proporciona una forma de incorporar tu marca en los elementos.

Navegadores compatibles

  • 93
  • 93
  • 92
  • 15.4

Origen

Captura de pantalla con un tema claro de una demostración de colores de los elementos destacados en la que la casilla de verificación, los botones de selección, un control deslizante de rango y un elemento de progreso tienen un tono intenso.
Demostración

La propiedad accent-color también funciona con color-scheme, lo que permite a los autores ajustar el tono de los elementos claros y oscuros. En el siguiente ejemplo, el usuario tiene un tema oscuro activo, la página usa color-scheme: light dark y el mismo accent-color: hotpink para los controles de tono de color rosa con tema oscuro.

Captura de pantalla con tema oscuro de una demostración de colores de los elementos destacados en la que la casilla de verificación, los botones de selección, un control deslizante de rango y un elemento de progreso tienen un tono rosado.
Demostración

Elementos compatibles

Actualmente, el tono de solo cuatro elementos se realiza a través de la propiedad accent-color: casilla de verificación, radio, rango y progreso. Puedes obtener una vista previa de cada una aquí https://accent-color.glitch.me con esquemas de colores claros y oscuros.

Casilla de verificación

Radio

Rango

Progreso

Garantizar el contraste

Para evitar que existan elementos inaccesibles, los navegadores con accent-color deben determinar un color de contraste apto para usar junto con el acento personalizado. A continuación, se incluye una captura de pantalla que muestra cómo difieren los algoritmos de Chrome 94 (izquierda) y Firefox 92 Nightly (derecha):

Captura de pantalla de Firefox y Chromium, una junto a la otra, mostrando un espectro completo de casillas de verificación en varios tonos y oscuridad.

Lo más importante que debes aprender de esto es confiar en el navegador. Proporciona un color de marca y confía en que tomará decisiones inteligentes por ti.

Extra: Más tono

Quizás te estés preguntando cómo cambiar el tono de estos cuatro elementos de formulario. Esta es una zona de pruebas mínima con tonos:

  • el anillo de enfoque
  • selección de texto destacados
  • enumerar marcadores
  • indicadores de flecha (solo Webkit)
  • miniatura de la barra de desplazamiento (solo Firefox)
html {
  --brand: hotpink;
  scrollbar-color: hotpink Canvas;
}

:root { accent-color: var(--brand); }
:focus-visible { outline-color: var(--brand); }
::selection { background-color: var(--brand); }
::marker { color: var(--brand); }

:is(
  ::-webkit-calendar-picker-indicator,
  ::-webkit-clear-button,
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button
) {
  color: var(--brand);
}

Futuro potencial

La especificación no limita la aplicación de accent-color a los cuatro elementos que se muestran en este artículo; se podrían agregar más opciones de compatibilidad más adelante. Los elementos como el <option> seleccionado en una <select> se podrían destacar con el accent-color.

¿Qué más te gusta pintar en la Web? Tuitea a @argyleink con el selector y es posible que se agregue a este artículo.