Best Practices — Reglas y Restricciones
Guías para generar contenido CNR-Paste V2 correcto y bien estructurado.
Reglas Generales
Siempre
- Cierra cada directiva con
:::en su propia línea - Usa
{props}para props explícitos, short-form para títulos simples - Usa
#slotnamepara regiones de contenido nombradas (solo al nivel superior) - Líneas en blanco dentro de tags HTML para procesar markdown
- CSS variables (
var(--color-*)) para estilos del tema - Mantén directivas simples — un propósito claro por directiva
Nunca
- ❌ Dejes directivas sin cerrar
- ❌ Pongas
#slotdentro de directivas anidadas - ❌ Mezcles sintaxis V1 (args posicionales) con V2 (props)
- ❌ Uses
:::divcuando<div>nativo funciona (prefiere HTML en V2) - ❌ Dupliques clases default en Button/Modal
- ❌ Uses
<style>para estilos de componentes (todo<style>es global) - ❌ Pongas información crítica SOLO en modales o details
- ❌ Uses
!importantsalvo que sea absolutamente necesario - ❌ Uses grid/flex en un contenedor que contiene
:::card— las cards ya tienen su propio flex-wrap. Solo usa tu propio grid si desactivas el wrapper conbatch="off" - ❌ Pongas directivas dentro de
<div class="flex-1">o hijos de flex/grid — las directivas tienen su propio padding, bordes y rounded corners que pueden quebrar el layout del contenedor padre
Uso de Directivas
Admonitions
- Usa
notepara información general - Usa
warningpara notas cautelares - Usa
dangerpara errores críticos o acciones destructivas - Usa
greentextpara mensajes de éxito o resultados positivos - Short-form para títulos rápidos:
:::note Quick Title - Customiza colores con
class="bg-*/10 border-*/30 text-*"
Cards
- Coloca cards consecutivas para auto-flex-wrap
- Usa
batch="off"para cards aisladas card-mpara contenido expandible via modalcard-bcomo link button (requiereurl)#descriptionpara texto corto en todas las variantes#contentsolo encard-mpara contenido modal detallado
Button/Modal
- Usa
labelpara botones individuales - Usa slot para múltiples links
#centerpara botones centradosiconpara contexto visual- Deja que la smart detection maneje defaults de tamaño/display
Slide
- Mantén líneas cortas para legibilidad
- Ajusta
intervalpara velocidad de lectura (3000-5000ms típico) - Contenido largo en slides dificulta la legibilidad
Wrapper
- Usa
<div>nativo en vez de:::diven contenido V2 nuevo :::divprincipalmente para compatibilidad V1
HTML & CSS
Layout: HTML vs Directivas
Regla fundamental: HTML+Tailwind es para visual (colores, bordes, spacing). Las directivas son para componentes (cards, admoniciones, modales). No mezcles ambos para layout.
- ✅ HTML puro + Tailwind para layouts complejos (grid, flex, positioning)
- ✅ Directivas para contenido con comportamiento (cards, modales, details)
- ❌ Directivas dentro de flex/grid containers — las directivas tienen su propio estilo que puede quebrar el layout del padre
- ❌ Grid/flex sobre cards consecutivas — el auto-batching ya maneja el layout
Cuándo usar cada uno:
- Layout visual simple →
<div class="flex gap-4">+ markdown interno - Componentes interactivos → directivas (
:::card,:::note, etc.) - Layout complejo con contenido mixto → HTML puro + Tailwind, sin directivas
Estilos
<style>inyecta CSS global en<head>— sin scope, sin rewrite- CSS variables para theme-aware:
var(--color-*) - Tailwind para layout estático, CSS custom para keyframes/animaciones
- Deja líneas en blanco dentro de tags HTML para procesar markdown
Footer
- El footer global es hermano flex de
<main>, fuera del article - Usa
mt-autopara pegarse al fondo - Nunca lo cubras con
z-index,position: fixed, etc. - Si cambias el body con
<style>, respeta el footer - Footer local (si lo usas) es un
:::dival final del paste
Estructura del Contenido
Flujo del Documento
- Título —
# H1para el título principal - Secciones —
## H2para secciones mayores - Subsecciones —
### H3para subsecciones - Contenido — párrafos, listas, code blocks, directivas
Jerarquía Visual
Mantén una jerarquía clara: H1 → H2 → H3. Usa admoniciones para callouts, cards para features, details para FAQs.
Checklist de Entrega
- [ ] Cada
:::typetiene su:::de cierre - [ ] Props en formato
key="value" - [ ] Slots
#nameal nivel superior - [ ] HTML tiene líneas en blanco para markdown
- [ ] Button/Modal no duplican clases por defecto
- [ ] Cards consecutivas para auto-flex-wrap
- [ ] Jerarquía visual clara
- [ ] Inline formatting correctamente anidado
- [ ] Imágenes con modificadores de posición correctos
- [ ] Tablas con fila separadora
--- - [ ] Footer global no está obstructado
- [ ] CSS se inyecta globalmente via
<style>