← ClaudeAtlas

frontend-conventionslisted

Convenciones de frontend para proyectos con renderizado server-side (templates + CSS + JS) — atomicidad de archivos por componente, nomenclatura BEM, y el puente data-* para pasar datos del servidor a JavaScript sin mezclar sintaxis del motor de templates dentro de archivos .js. Úsala siempre que se esté creando o modificando un componente de UI, un archivo CSS, un archivo JavaScript, o un template que necesite pasar datos al cliente. El ejemplo de referencia usa Jinja2/Flask, pero la regla aplica a cualquier motor de templates server-side (Blade, EJS, etc.).
OrcaCl/suplemento-estrella · ★ 0 · Web & Frontend · score 62
Install: claude install-skill OrcaCl/suplemento-estrella
# Frontend Conventions Tres reglas que se sostienen juntas: un componente vive en un archivo, las clases siguen una nomenclatura predecible, y el JavaScript nunca depende de la sintaxis del motor de templates del backend. ## Regla 1 — Atomicidad de archivo por componente Cada componente de UI tiene su propio archivo CSS y, si necesita interactividad, su propio archivo JS. Nunca mezclado en un archivo monolítico de estilos o de scripts. ``` static/ ├── css/ │ ├── globales/ # reset, colores, base, helpers — compartido por todo el sitio │ ├── componentes/ # un archivo por componente (modal.css, tabla.css, etc.) │ ├── vendor/ # librerías externas, sin modificar │ └── styles.css # índice — ver Regla 2 ├── js/ │ ├── globales/ # utilidades compartidas │ ├── componentes/ # un archivo por componente │ └── vendor/ # librerías externas ``` **Librerías externas siempre en `vendor/`** — nunca cargadas desde un CDN en producción. Esto evita requests externos y garantiza que la app funcione sin depender de disponibilidad de terceros. ## Regla 2 — styles.css como único índice `styles.css` no contiene reglas propias — es exclusivamente una cadena de `@import` que define el orden de carga. ```css @import url('globales/colores.css'); @import url('globales/reset.css'); @import url('globales/helpers.css'); @import url('globales/base.css'); @import url('componentes/modal.css'); @import url('componentes/tabla.css'); /* un @import