Sistema Consistente de UI
Redactado por
Sebastian V. Fecha de publicación
14/04/2024
Tiempo de lectura
5 min
Tema
CSS Transitions
El problema de los números mágicos
A medida que tu proyecto web crece, tendrás docenas de botones, tarjetas, inputs y modales. Si en cada uno de ellos te pones a escribir duraciones aleatorias (0.2s aquí, 0.35s allá, ease acá, linear en otro lado), tu web terminará pareciendo un parque de diversiones caótico.
No habrá consistencia. Tu marca no tendrá una "identidad de movimiento".
Motion Tokens
Al igual que guardamos nuestra paleta de colores en Variables CSS (Design Tokens), debemos hacer lo mismo con nuestras reglas de animación (Motion Tokens). Definiremos una escala de duraciones y una paleta de curvas (easing).
/* Ejemplo de una escala profesional */
--duration-fast: 150ms; /* Microinteracciones, hovers simples */
--duration-normal: 300ms; /* Desplegables, menús, estados focales */
--duration-slow: 500ms; /* Transiciones de página, modales grandes */ Consejo profesional
Frameworks modernos como Tailwind CSS incluyen un sistema de escalas por defecto (clases como duration-300 o ease-in-out). Usa esos tokens de diseño para no reinventar la rueda.
Ejemplo práctico
<div class="system-demo">
<button class="btn">Botón Principal</button>
<input type="text" class="input" placeholder="Campo de texto" />
<div class="tag">Etiqueta</div>
</div>
<style>
.system-demo {
display: flex;
flex-direction: column;
gap: 16px;
align-items: center;
}
</style> Todos los elementos de este contenedor están sincronizados usando variables. Si hiciéramos un cambio global, todos responderían al unísono manteniendo la armonía en toda la página.
Errores comunes
Practica lo aprendido
Audita tu código actual y reemplaza todos los tiempos estáticos por variables CSS.