Tokens, componentes, consistencia y el costo real de mantener una capa visual propia.
Crear HinataCSS me enseñó que escribir clases es la parte sencilla. El trabajo real consiste en diseñar un vocabulario coherente, controlar compatibilidad y evitar que cada componente resuelva el mismo problema de una forma diferente.
Color, espacio, tipografía, radio y sombra forman la base. Los nombres representan intención, no un valor accidental.
:root {
--color-surface: #ffffff;
--color-text: #172033;
--space-2: 0.5rem;
--space-4: 1rem;
--radius-control: 0.625rem;
--shadow-raised: 0 8px 24px rgb(15 23 42 / 0.08);
}
Un botón puede cambiar de color sin cambiar su contrato. Esto permite temas y rediseños sin buscar cientos de valores hexadecimales.
Organizo reset, elementos, utilidades y componentes. Mantengo baja especificidad para que personalizar no requiera !important.
@layer reset, base, components, utilities;
@layer components {
.button {
display: inline-flex;
gap: var(--space-2);
border-radius: var(--radius-control);
}
}
Las utilidades resuelven composición; los componentes capturan patrones semánticos repetidos. Duplicar cada propiedad como utilidad aumenta superficie sin aportar necesariamente claridad.
hover no basta. Diseño foco visible, deshabilitado, carga, error, modo oscuro y movimiento reducido. Los componentes interactivos necesitan área táctil y contraste suficiente.
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
scroll-behavior: auto !important;
animation-duration: 0.01ms !important;
}
}
El paquete define entradas estables, prefijos cuando son necesarios y una estrategia de versionado. Una clase eliminada es una ruptura aunque el CSS siga compilando. Mantengo notas de migración y evito publicar comportamientos experimentales como API permanente.
Cada componente necesita ejemplos, opciones, límites y estados. Las pruebas visuales detectan cambios inesperados; una página de casos extremos revela títulos largos, densidad y combinaciones problemáticas.
Un framework propio ofrece control y aprendizaje, pero también crea una responsabilidad continua. Tiene sentido cuando existe una necesidad clara, un alcance controlado y tiempo para mantener documentación, accesibilidad y compatibilidad; no simplemente porque escribir CSS desde cero resulte atractivo.
0 vistas
Diseño plataformas escalables y optimizo infraestructura para que tu equipo avance con mayor rapidez, seguridad y claridad.
© 2026 Ronald Ramos. Todos los derechos reservados.