Generador de transition CSS
EstilosTodo se ejecuta en tu navegador: no se sube nada
Elige propiedad, duración, aceleración y retardo, pasa el cursor por la previa para ver el proceso y luego cópialo. Una transición necesita "dos estados" para verse, así que la herramienta añade a la previa una regla `:hover` que hace de disparador — poner un `transition` a un elemento quieto no muestra nada. Esto explica también una confusión muy común: el `transition` se escribe en el propio elemento, no dentro de `:hover`. Si lo pones dentro de `:hover`, al entrar el cursor hay animación y al salir no (porque al salir esa declaración ya no está activa). En el código entregado las dos reglas van separadas precisamente para que este reparto se vea de un vistazo. Por qué la aceleración son unas pocas opciones y no cuatro números para rellenar: los cuatro puntos de control de `cubic-bezier(x1, y1, x2, y2)` hay que arrastrarlos para acertar, y eso es cosa de un generador de curvas Bézier. Aquí están las más usadas, cada una con su carácter escrito (por ejemplo `ease-out` entra rápido y sale despacio, `back` se pasa un poco), para que elijas con criterio. Y un consejo práctico de propina: no pases de 500ms. Una transición en la interfaz sirve para "explicar qué acaba de pasar", no para hacer un espectáculo; por encima de medio segundo, la gente empieza a esperarla.
Funciones
- Seis propiedades habituales: transform, opacidad, color de fondo, sombra, desenfoque y all
- Duración de 0 a 3000ms; se recomienda entre 150 y 400ms
- Seis curvas de aceleración, cada una con su carácter y su caso de uso
- Retardo ajustable, para montar entradas escalonadas
- Basta con pasar el cursor por la previa para ver la transición, sin pulsar nada
- El código entregado separa `transition` y `:hover` en dos reglas, con el reparto bien visible
- Debajo aparece el CSS completo listo para copiar, con el selector `.transition`
- Todo se ejecuta en tu navegador: no se sube nada
Cómo se usa
- Elige una propiedad (lo normal es empezar por transform u opacidad)
- Ajusta duración y aceleración y pasa el cursor por la previa para ver el resultado
- Si necesitas una entrada escalonada, añade algo de retardo
- Cuando te guste, copia el CSS — y fíjate en que `transition` va en el estado de reposo y el valor final en `:hover`
Preguntas frecuentes
- ¿Por qué al entrar hay animación y al salir no?
- Casi seguro que has puesto el `transition` dentro de `:hover`. Así, esa declaración solo está activa mientras el cursor está encima: al salir ya no está, el navegador no tiene transición que aplicar y el elemento salta de golpe. Lo correcto es escribir el `transition` en la regla base del elemento y poner en `:hover` solo el valor al que debe llegar. El código que genera la herramienta tiene esta estructura, para que lo compares.
- ¿Qué problema tiene `transition: all`?
- Dos. Uno es el rendimiento: `all` hace que el navegador vigile toda propiedad animable, incluidas las que no pensabas tocar (algunas fuerzan un reflujo o un repintado), y en páginas complejas se nota. El otro son las animaciones inesperadas: si otra parte cambia alguna propiedad (un ancho adaptable, el color de un cambio de tema), también se transiciona, y el resultado suele ser raro. Así que mejor enumera las propiedades y deja `all` para prototipos y para salir del paso.
- ¿Qué propiedades son seguras de animar (sin perder fotogramas)?
- `transform` y `opacity` son las dos que se consideran seguras: se resuelven por completo en la capa de composición de la GPU, sin reflujo ni repintado. En cambio `width`, `height`, `top`, `left` y `margin` provocan reflujo, y `box-shadow` o `background-color` provocan repintado; en cantidad, todas cuestan fotogramas. Por eso, para mover o escalar, mejor `transform: translate/scale` que cambiar `left` o `width` — y por eso esta herramienta pone transform como primera opción.
- ¿Cuánta duración pongo?
- Entre 150 y 400ms está la zona cómoda de una transición de interfaz: rápida como para no notar espera y lenta como para distinguir el cambio. Por debajo de 100ms se percibe como instantáneo (no se ve que sea una transición) y por encima de 500ms la gente empieza a aguardarla. Dos reglas más: cuanto más grande el elemento y más larga la distancia, algo más de duración (un objeto grande se mueve despacio por naturaleza); y las interacciones que se repiten (hover, retorno de un clic) piden el tramo más corto, porque se ven muchas veces.
Herramientas relacionadas
Plantilla de @keyframes
EstilosSiete animaciones listas (fundido, deslizar, rebote, latido, temblor, giro, flotar): ajusta duración y curva y copia el CSS con su prefers-reduced-motion.
Generador de border-radius
EstilosAjusta el radio de las cuatro esquinas, prévisualo al momento y copia el CSS. Con px, rem y porcentaje: en una caja no cuadrada el porcentaje da elipse.
Generador de degradados CSS
EstilosAjusta ángulo, colores y forma, mira la previa al momento y copia el CSS. Lineal, radial y cónico, con parada intermedia opcional.
Generador de glassmorphism
EstilosAjusta desenfoque, opacidad, saturación y borde, mira el vidrio esmerilado al momento y copia el CSS, con el prefijo -webkit- para iOS.
Generador de neumorphism
EstilosAjusta distancia, desenfoque, intensidad y dirección, mira el neumorphism al momento y copia el CSS. Las dos sombras se derivan del fondo, mismo tono.
Texto de neón
EstilosAjusta el color y la intensidad, mira el texto de neón al momento y copia el CSS. Varias capas de text-shadow forman el halo, sobre fondo oscuro.