Pre-especificación · Fase de concepto Abierto a discusión

Escribe la semántica CSS una vez.
Ejecútalo en cualquier framework.

as-cssdo es un estándar de abstracción de CSS propuesto. Un contrato de datos independiente del framework que mapea clases semánticas de componentes a cualquier framework de CSS — Bootstrap, Tailwind, Bulma, Foundation y más. Cambia de framework. Mantén las plantillas.

Esta página documenta el concepto tal como fue concebido. Es una pre-especificación — un punto de partida para la discusión, no un producto terminado. Las ideas aquí están deliberadamente abiertas.

La idea central
{ "button.primary": { "bootstrap": "btn btn-secondary", "tailwind": "bg-gray-600 text-white px-4 py-2 rounded", "bulma": "button is-primary" }, "alert.warning": { "bootstrap": "alert alert-warning", "tailwind": "bg-yellow-100 border border-yellow-400 text-yellow-800 p-4 rounded", "bulma": "notification is-warning" } }

Un objeto de datos. Todo framework lo habla.

El problema

Lock-in de framework

Las plantillas que usan clases del framework directamente están fuertemente acopladas. Cambiar de Bootstrap a Tailwind significa reescribir cada plantilla, cada componente, cada página.

Sin vocabulario compartido

Cada framework tiene su propia nomenclatura para el mismo concepto. Un "primary button" es btn btn-primary en Bootstrap, btn-primary en Bulma, una composición de utilidades en Tailwind. No hay estándar.

Trabajo de migración repetido

Cada proyecto que cambia su framework de CSS empieza la migración desde cero. Los mismos problemas de mapeo se resuelven una y otra vez, por equipos distintos, de formas distintas.


El concepto

Un contrato de datos semántico

as-cssdo define un conjunto estándar de identificadores semánticos de componentes — button.primary, card.base, alert.warning — y un objeto de datos estructurado que mapea cada identificador a su implementación en cualquier framework de CSS.

El contrato es el estándar. Las implementaciones son adaptadores. Los frameworks aportan su propio adaptador — o lo hace la comunidad.

Adaptadores de framework

Cada framework tiene un fichero adaptador que implementa el contrato. Cambiar de framework significa intercambiar un adaptador por otro. Las plantillas usan s-btn-primary — nunca la clase del framework directamente.

Bootstrap Tailwind Bulma Foundation Materialize UIkit

Cómo funciona — paso a paso

1
Definir

El contrato define identificadores semánticos. button.primary significa "el botón principal de llamada a la acción" — independiente del framework.

2
Mapear

Cada adaptador mapea cada identificador a las clases específicas del framework o a una composición de utilidades.

3
Compilar

Un compilador lee contrato + adaptador y genera la salida CSS — una hoja de estilos de clases semánticas lista para usar.

4
Usar

Las plantillas usan solo clases semánticas. Para cambiar de framework: intercambia el adaptador, recompila. Plantillas intactas.


Encaje en el ecosistema

as-starter

AS Starter es una demostración en vivo de as-cssdo en acción. Su capa semántica (clases s-*) sigue el contrato de as-cssdo, actualmente mapeado a Bootstrap. Prueba que el concepto funciona en una aplicación en producción.

assist-series

as-cssdo vive bajo el ecosistema assist-series — independiente, abierto a contribuciones, pero respaldado por una implementación que funciona. assist-series aporta la infraestructura y la credibilidad.

Autores de frameworks

La visión a largo plazo: los autores de frameworks contribuyen y mantienen su propio adaptador. Ser parte del estándar as-cssdo significa que su framework queda accesible para cualquier proyecto que use el contrato.


Roadmap — del concepto al estándar

Fase 1
Prueba de concepto
  • Definir el conjunto de identificadores semánticos
  • Adaptador Bootstrap — mapeo completo
  • Prototipo del compilador
  • Demo en vivo vía as-starter
Fase 2
Multi-framework
  • Adaptador Tailwind
  • Adaptador Bulma
  • Guía de contribución de adaptadores
  • Sitio de documentación
Fase 3
Comunidad
  • Liberación open source
  • Paquete npm
  • Alcance a autores de frameworks
  • Especificación versionada del estándar
Fase 4
Estándar
  • Los autores de frameworks mantienen adaptadores
  • Tooling de IDE
  • Integraciones con build tools
  • Especificación as-cssdo v1.0

Preguntas abiertas

Esto es una pre-especificación. Las siguientes preguntas quedan deliberadamente abiertas — definen la discusión, no la respuesta.

¿Cuál es el formato de salida correcto?
¿Clases CSS? ¿Mixins de SCSS? ¿Custom properties de CSS? ¿Los tres?
¿Qué granularidad debe tener el contrato?
¿Solo componentes (botón, card, alerta) o también layout, tipografía, utilidades?
¿Cómo se manejan las versiones de frameworks?
Bootstrap 5 vs 6 pueden necesitar adaptadores distintos. ¿Cómo se gestiona el versionado?
¿Qué pasa con las funcionalidades específicas de cada framework?
Algunos componentes existen en un framework pero no en otro. ¿Cómo se gestionan los huecos?

¿Te interesa la idea?

El concepto está en su fase más temprana. Si trabajas en un framework de CSS, construyes herramientas para desarrolladores, o simplemente ves valor en la idea — escríbenos. El estándar lo darán forma quienes lo usen.