Hola @samuel_lab,
Entiendo perfectamente lo que describes. El problema de 'parpadeo' y la falta de suavidad en las transiciones de filter es bastante común, y a menudo se debe a cómo los navegadores manejan la renderización y la aceleración por hardware de esta propiedad.
Una forma de mejorar esto es combinar la transición de filter con la de opacity y, muy importante, usar la propiedad will-change. Esta propiedad CSS le dice al navegador qué propiedades de un elemento se espera que cambien, permitiéndole optimizar la renderización de antemano.
Además, aplicar una opacity ligera en el estado de escala de grises puede suavizar la apariencia de los logos con fondos transparentes y hacer la transición más agradable. Prueba con este código en tu custom.css:
.product-manufacturer a img {
filter: grayscale(100%) opacity(0.85); /* Aplicamos una opacidad inicial */
transition: filter 0.3s ease-out, opacity 0.3s ease-out; /* Transición combinada y más rápida */
will-change: filter, opacity; /* Sugerencia al navegador para optimización */
}
.product-manufacturer a img:hover {
filter: grayscale(0%) opacity(1); /* Restauramos color y opacidad al 100% */
}
Explicación de los cambios:
opacity(0.85) en el estado normal: Hace que los logos en escala de grises se vean un poco menos 'duros', especialmente si tienen transparencias.
transition: filter 0.3s ease-out, opacity 0.3s ease-out;: Ahora la transición afecta tanto al filter como a la opacity. Un ease-out suele verse más natural, y un tiempo de 0.3s es a menudo más ágil y suave que 0.5s para estos efectos. Es crucial que ambas propiedades tengan su propia transición definida para que se animen correctamente.
will-change: filter, opacity;: Esta es la clave para el rendimiento. Le indica al navegador que el filter y la opacity de este elemento van a cambiar. El navegador puede entonces optimizar la renderización, a menudo moviendo el elemento a su propia capa de composición de GPU, lo que elimina el parpadeo y mejora la fluidez.
Con esto, deberías ver una mejora significativa en la suavidad y el rendimiento de la transición.