Qué es Calculadora de funcion CSS progress()?
La función CSS progress() es una función de mapeo matemático (Chrome 138+) que convierte un valor de entrada de un rango numérico en un valor de progreso de 0 a 1. Por ejemplo, progress(scroll-position from 0 to 500) devuelve 0 cuando la posición de desplazamiento es 0, 1 cuando alcanza 500 y 0.5 en 250. Este valor de progreso puede controlar cualquier propiedad CSS numérica, eliminando cadenas complejas de calc() para efectos vinculados al desplazamiento, tamaños relativos al viewport e interpolación de propiedades personalizadas.
Respuesta rápida
Use CSS progress(input from min to max) para mapear cualquier valor numérico a un rango de progreso de 0 a 1. Controle opacidad, escala, transform, porcentajes de color-mix o cualquier propiedad CSS que acepte números basándose en la posición de desplazamiento, dimensiones del viewport o propiedades personalizadas. Chrome 138+. Envuelva en clamp(0, ..., 1) para acotar la salida.
Last updated: 2026-05-30
Limitaciones
- progress() requiere Chrome 138+. Firefox, Safari y versiones antiguas de Chrome no lo soportan. Use keyframes de animación basados en desplazamiento o listeners de desplazamiento en JavaScript como alternativa para compatibilidad entre navegadores.
- La función solo funciona con propiedades CSS numéricas. No puede controlar directamente color stops, ángulos de gradiente o funciones de forma. Para transiciones de color, combine progress() con color-mix() usando el valor de progreso como porcentaje de mezcla.
- scroll-position en progress() mide la posición de desplazamiento del documento por defecto, no el contenedor de desplazamiento de un elemento. Use self-scroll-position para un contenedor de desplazamiento específico, pero asegúrese de que el contenedor sea desplazable y tenga un rango de desplazamiento definido.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
Cómo usar esta herramienta
- Ingrese la fuente de entrada y su rango: elija entre scroll-position, ancho/alto del viewport, tamaño inline/block del viewport o una propiedad CSS personalizada con sus valores mínimo y máximo.
- Establezca la propiedad CSS de destino que desea controlar y su valor en progreso 0 y progreso 1, por ejemplo, opacidad de 0 a 1, o escala de 0.5 a 1.5.
- Active opcionalmente el envoltorio clamp() para mantener el resultado acotado dentro del rango de salida incluso cuando la entrada supere el rango definido.
- Copie el CSS generado y añádalo a su hoja de estilos. La salida incluye tanto la regla progress() como la declaración completa de la propiedad.
Para qué puedes usarla
- Controlar la opacidad de un encabezado fijo de completamente transparente a opaco a medida que el usuario se desplaza de 0 a 200 píxeles hacia abajo.
- Escalar una imagen principal de 1 a 1.2 a medida que el ancho del viewport crece de 320px a 1920px, creando un efecto de zoom sutil en pantallas más anchas.
- Controlar un porcentaje de mezcla de color-mix() para transitar de un color a otro según cuánto ha avanzado el usuario en una sección.