Marcado de renderizado de bloques públicos
Este archivo responde a la pregunta práctica de la creación de páginas: "Cuando añado este bloque del CMS, ¿qué HTML público y qué clases de WebBlocks UI se renderizan?" Úselo al componer páginas manualmente, al revisar la salida del Page Converter o al pedir a un asistente de IA que construya una página del CMS a partir de bloques estructurados.
Los bloques que poseen su raíz renderizan su propia raíz pública semántica y colocan data-wb-public-block-type en esa raíz. Algunos ejemplos son Section, Container, Grid, Card, Hero, Gallery y Navbar. Los bloques que no poseen su raíz renderizan su marcado interno y normalmente los envuelve el renderizador de slots en .wb-public-block con data-wb-public-block-type. Algunos ejemplos son Plain Text, Rich Text, Button Link, Alert y la mayoría de los hijos utilitarios de navegación.
Este archivo se ha elaborado a partir de las fuentes Blade reales del renderizador público. El HTML de ejemplo es representativo, pero debe seguir siendo compatible con el contrato del renderizador. La fuente principal del renderizador del paquete es packages/webblocks-cms/resources/views/pages/partials/blocks/.blade.php; los archivos de compatibilidad de la raíz bajo resources/views/pages/partials/blocks/.blade.php suelen delegar de vuelta en el espacio de nombres del paquete. Block::publicRenderView() resuelve primero los partials de bloque del paquete, después los partials de compatibilidad de la raíz y, por último, el partial seguro de reserva o de renderizador ausente.
Composición de bloques recomendada para páginas nuevas
Prefiera estos bloques para las páginas del CMS nuevas creadas a mano:
- Layout y ritmo:
section,container,grid,cluster. - Texto de página y de sección:
content_header,header,plain_text,rich-text,button_link, ybuttoncuando se trata de una acción gestionada de Hero/CTA. - Marketing y contenido estructurado:
hero,cta,columnsconcolumn_item,cardconcard_header,card_bodyycard_footer,accordioncon filas hijas tipo FAQ,gallery,image. - Navegación y elementos compartidos:
sticky-navbar,navbar-brand,navbar-navigation,header-actions,search-form, además de los bloques de barra lateral para los layouts de documentación/barra lateral.
No prefiera estos para páginas nuevas creadas a mano, salvo que esté conservando contenido heredado, salida del conversor o comportamiento de compatibilidad: feature-grid, feature-item, card-grid, contact-info, faq-list, menu, metric-card, showcase-list, slider, stats, tabs, testimonial, text, callout y las rutas de renderizador exclusivas de reserva.
Use Safe HTML (html) y los renderizadores de reserva únicamente como recursos revisados, cuando el contenido todavía no pueda representarse con bloques estructurados del CMS. No deberían ser la salida por defecto de las páginas migradas o creadas por IA.
Árboles de página habituales
Página de marketing:
Page
└── main slot
└── Section
└── Container
├── Content Header or Hero
├── Grid or Columns
└── CTA
Cuadrícula de tarjetas:
Section
└── Container
└── Grid
└── Card
├── Card Header
├── Card Body
└── Card Footer
Navbar / cabecera compartida:
Navbar
└── Container
└── Cluster
├── Navbar Brand
└── Cluster
├── Navbar Navigation
└── Header Actions
FAQ:
Section
└── Container
└── Accordion
├── FAQ child row
├── FAQ child row
└── FAQ child row
El renderizador actual de Accordion consume las filas hijas publicadas con título y contenido como elementos desplegables. El Page Converter escribe los grupos <details> adyacentes en filas hijas faq cuando están disponibles tanto el contrato accordion como el faq.
El wrapper por defecto del slot main renderiza los bloques que no poseen su raíz dentro de:
<div class="wb-public-block" data-wb-public-block-type="plain-text">
...
</div>
Los bloques que poseen su raíz, en cambio, colocan data-wb-public-block-type en su propio elemento raíz público.
Section (`section`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/section.blade.php
HTML renderizado
<section class="wb-section wb-section-lg wb-stack" data-wb-public-block-type="section">
<!-- child blocks -->
</section>
Clases principales de CSS / WebBlocks UI
wb-section, la clase de espaciado de sectionSpacingClass(), wb-stack.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.spacing | sm | sectionSpacingClass() añade wb-section-sm. |
| settings.spacing | lg | sectionSpacingClass() añade wb-section-lg. |
| settings.spacing | default/vacío | Usa únicamente wb-section wb-stack. |
| status | unpublished | El bloque no se incluye en las consultas normales del árbol de bloques públicos. |
Usar para / Evitar para
Usar para: secciones principales de la página y agrupación de bloques.
Evitar para: poner texto visible directamente en los ajustes de Section; use bloques de texto hijos.
Notas
El bloque posee su raíz <section>. Renderiza todos los bloques hijos a través del partial de bloque normal. No tiene contrato de texto traducible; el contenido visible debería estar en bloques hijos.
Container (`container`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/container.blade.php
HTML renderizado
<div class="wb-container wb-container-lg wb-stack" data-wb-public-block-type="container">
<!-- child blocks -->
</div>
Clases principales de CSS / WebBlocks UI
wb-container, la clase de anchura de containerWidthClass(), la clase de flujo de containerFlowClass().
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.width | sm/md/lg/xl/full | containerWidthClass() añade wb-container-sm, wb-container-md, wb-container-lg, wb-container-xl o wb-container-full. |
| settings.width | default/vacío | Usa la clase base wb-container. |
| settings.flow | stack/default | containerFlowClass() añade wb-stack. |
| settings.flow | none | No se añade ninguna clase de flujo. |
Usar para / Evitar para
Usar para: control de anchura dentro de secciones, navbars y estructuras de página.
Evitar para: usar Container como tarjeta visual o superficie de contenido.
Notas
El bloque posee su raíz <div>. Renderiza los bloques hijos directamente. Los ajustes de anchura y de flujo cambian las clases.
Grid (`grid`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/grid.blade.php
HTML renderizado
<div class="wb-grid wb-grid-3 wb-gap-4" data-wb-public-block-type="grid">
<!-- child blocks -->
</div>
Clases principales de CSS / WebBlocks UI
wb-grid, la clase de columnas de gridColumnsClass(), la clase de espaciado de gridGapClass().
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.columns | 2 | gridColumnsClass() añade wb-grid-2. |
| settings.columns | 4 | gridColumnsClass() añade wb-grid-4. |
| settings.columns | default/3/otro | gridColumnsClass() añade wb-grid-3. |
| settings.gap | 3/4/6 | gridGapClass() añade wb-gap-3, wb-gap-4 o wb-gap-6. |
| settings.gap | default/vacío | No se añade ninguna clase de espaciado más allá de wb-grid. |
Usar para / Evitar para
Usar para: layouts de tarjetas, medios o contenido en varias columnas.
Evitar para: filas simples de botones o elementos internos de la navbar; use Cluster.
Notas
El bloque posee su raíz <div>. Renderiza los bloques hijos directamente. Los ajustes de columnas y de espaciado cambian las clases.
Cluster (`cluster`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/cluster.blade.php
HTML renderizado
<div class="wb-cluster wb-cluster-2 wb-cluster-between wb-cluster-center" data-wb-public-block-type="cluster">
<!-- child blocks -->
</div>
Clases principales de CSS / WebBlocks UI
wb-cluster, más las clases de los helpers de espaciado, justificación, alineación, ajuste de línea y anchura.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.gap | none | clusterGapClass() añade wb-cms-cluster-gap-none. |
| settings.gap | xs | clusterGapClass() añade wb-gap-1. |
| settings.gap | sm o 2 | clusterGapClass() añade wb-cluster-2. |
| settings.gap | md o 4 | clusterGapClass() añade wb-cluster-4. |
| settings.gap | lg o 6 | clusterGapClass() añade wb-cluster-6. |
| settings.alignment | center/end/between | clusterAlignmentClass() añade wb-cluster-center, wb-cluster-end o wb-cluster-between. |
| settings.items_alignment | start/end/stretch | clusterAlignClass() añade wb-items-start, wb-items-end o wb-cms-items-stretch; center no añade ninguna clase. |
| settings.wrap | nowrap | clusterWrapClass() añade wb-flex-nowrap. |
| settings.width | full | clusterWidthClass() añade wb-w-full. |
Usar para / Evitar para
Usar para: composición horizontal, filas de acciones y elementos internos de la navbar.
Evitar para: usar Grid para una sola fila horizontal de controles pequeños.
Notas
El bloque posee su raíz <div>. Renderiza los bloques hijos directamente. Es la primitiva normal de composición horizontal para botones y elementos internos de la navbar.
Content Header (`content_header`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/content_header.blade.php
HTML renderizado
<header class="wb-content-header wb-text-center" data-wb-public-block-type="content-header">
<h1 class="wb-content-title">Page title</h1>
<p class="wb-content-subtitle">Intro text</p>
<div class="wb-content-meta">
<span>Meta item</span>
<span class="wb-content-meta-divider"></span>
<span>Another item</span>
</div>
</header>
Clases principales de CSS / WebBlocks UI
wb-content-header, clase de alineación opcional, wb-content-title, wb-content-subtitle, wb-content-meta, wb-content-meta-divider.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.alignment | left/center/right | contentHeaderAlignmentClass() añade wb-text-left, wb-text-center o wb-text-right. |
| title | cualquier texto | Se renderiza como . |
| subtitle | cualquier texto | Renderiza cuando está presente. |
| meta | lista | Renderiza spans .wb-content-meta separados por .wb-content-meta-divider. |
Usar para / Evitar para
Usar para: introducciones de página o de sección principal con título, entradilla y metadatos.
Evitar para: contenido anidado en tarjetas o lugares donde el encabezado no debería ser un H1.
Notas
El bloque posee su raíz <header>. Siempre renderiza el título como <h1>. No es un contenedor.
Hero (`hero`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/hero.blade.php
HTML renderizado
<section class="wb-card wb-promo wb-card-accent" data-wb-public-block-type="hero">
<div class="wb-card-body wb-promo-copy wb-stack wb-gap-3 wb-text-center">
<p class="wb-eyebrow">Eyebrow</p>
<h1 class="wb-promo-title">Hero title</h1>
<p class="wb-promo-text">Hero copy.</p>
<div class="wb-promo-actions wb-cluster wb-cluster-2">
<a href="/start" class="wb-btn wb-btn-primary">Start</a>
</div>
</div>
</section>
Clases principales de CSS / WebBlocks UI
wb-card, wb-promo, opcionalmente wb-card-muted o wb-card-accent, wb-card-body, wb-promo-copy, wb-stack, wb-gap-3, opcionalmente wb-text-center, wb-eyebrow, wb-promo-title, wb-promo-text, wb-promo-actions, wb-cluster, wb-btn.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | muted o soft | Añade wb-card-muted a la tarjeta promocional. |
| variant | accent | Añade wb-card-accent a la tarjeta promocional. |
| variant | default/otro | Usa wb-card wb-promo sin el modificador muted/accent. |
| settings.layout | centered | Añade wb-text-center a .wb-promo-copy. |
| settings.title_tag | h1/h2/h3 | Hero admite h1, h2 o h3; CTA renderiza su título como h2. |
| bloques button hijos | publicados con etiqueta y URL | Renderiza hasta dos acciones gestionadas .wb-btn a través de _actions. |
Usar para / Evitar para
Usar para: introducciones de marketing al principio de la página con botones CTA gestionados.
Evitar para: agrupación general de secciones o contenido anidado arbitrario.
Notas
El bloque posee su raíz promocional <section>. Solo acepta bloques hijos button para las acciones gestionadas y renderiza como máximo dos hijos publicados con URL y etiqueta. settings.title_tag puede cambiar el elemento de encabezado a h1, h2 o h3.
CTA (`cta`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/cta.blade.php
HTML renderizado
<section class="wb-card wb-promo wb-card-muted" data-wb-public-block-type="cta">
<div class="wb-card-body wb-promo-copy wb-stack wb-gap-3">
<p class="wb-eyebrow">Ready</p>
<h2 class="wb-promo-title">Start now</h2>
<p class="wb-promo-text">CTA body.</p>
<div class="wb-promo-actions wb-cluster wb-cluster-2">
<a href="/contact" class="wb-btn wb-btn-primary">Contact</a>
</div>
</div>
</section>
Clases principales de CSS / WebBlocks UI
wb-card, wb-promo, opcionalmente wb-card-muted o wb-card-accent, wb-card-body, wb-promo-copy, wb-stack, wb-gap-3, wb-eyebrow, wb-promo-title, wb-promo-text, wb-promo-actions, wb-cluster, wb-btn.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | muted o soft | Añade wb-card-muted a la tarjeta promocional. |
| variant | accent | Añade wb-card-accent a la tarjeta promocional. |
| variant | default/otro | Usa wb-card wb-promo sin el modificador muted/accent. |
| settings.layout | centered | Añade wb-text-center a .wb-promo-copy. |
| settings.title_tag | h2 fijado en el renderizador | Hero admite h1, h2 o h3; CTA renderiza su título como h2. |
| bloques button hijos | publicados con etiqueta y URL | Renderiza hasta dos acciones gestionadas .wb-btn a través de _actions. |
Usar para / Evitar para
Usar para: secciones de conversión centradas con una fila de acciones breve.
Evitar para: introducciones de página completa; use Hero o Content Header.
Notas
El bloque posee su raíz promocional <section>. Solo acepta bloques hijos button para las acciones gestionadas y renderiza como máximo dos hijos publicados con URL y etiqueta.
Card (`card`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/card.blade.php
HTML renderizado
<article class="wb-card" data-wb-public-block-type="card">
<div class="wb-card-header">...</div>
<div class="wb-card-body">...</div>
<div class="wb-card-footer">...</div>
</article>
Reserva heredada sin regiones:
<article class="wb-card" data-wb-public-block-type="card">
<div class="wb-card-header">Subtitle</div>
<div class="wb-card-body wb-stack wb-gap-2">
<strong>Title</strong>
<p class="wb-m-0">Description</p>
</div>
<div class="wb-card-footer">
<a href="/target" class="wb-btn wb-btn-secondary">Action</a>
</div>
</article>
Clases principales de CSS / WebBlocks UI
wb-card, wb-card-header, wb-card-body, wb-card-footer, opcionalmente wb-stack, wb-gap-2, wb-m-0, wb-btn, wb-btn-secondary.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.layout_name | cualquier valor almacenado | Solo metadatos de administración/layout; sin efecto sobre las clases públicas en el renderizador actual. |
| bloques hijos | hijos publicados | Se renderizan dentro de la tarjeta o de la raíz de la región. |
| campos de tarjeta heredados | filas de Card antiguas sin hijos de región | El Card padre puede renderizar una reserva mínima de cabecera/cuerpo/pie heredada. |
Usar para / Evitar para
Usar para: elementos repetidos enmarcados con hijos Header, Body y Footer explícitos.
Evitar para: envolver secciones enteras de página o anidar tarjetas dentro de tarjetas.
Notas
El bloque es propietario de su <article> raíz. La estructura normal son bloques de región hijos card_header, card_body y card_footer. La vía de fallback solo se aplica a registros de tarjeta antiguos guardados sin hijos de región.
Card Header (`card_header`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/card_header.blade.php
HTML renderizado
<div class="wb-card-header" data-wb-public-block-type="card-header">
<!-- child blocks -->
</div>
Clases CSS principales / WebBlocks UI
wb-card-header.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.layout_name | cualquier valor almacenado | Solo metadatos de administración/layout; sin efecto de clase pública en el renderizador actual. |
| bloques hijos | hijos publicados | Se renderizan dentro de la raíz de la tarjeta o de la región. |
| campos de tarjeta heredados | registros Card antiguos sin hijos de región | El Card padre puede renderizar un fallback mínimo de cabecera/cuerpo/pie heredado. |
Usar para / Evitar para
Usar para: la región de cabecera dentro de Card.
Evitar para: colocarlo fuera de Card.
Notas
El bloque es propietario de la raíz de su región de tarjeta y renderiza los bloques hijos. Está pensado solo para usarse bajo card.
Card Body (`card_body`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/card_body.blade.php
HTML renderizado
<div class="wb-card-body" data-wb-public-block-type="card-body">
<!-- child blocks -->
</div>
Clases CSS principales / WebBlocks UI
wb-card-body.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.layout_name | cualquier valor almacenado | Solo metadatos de administración/layout; sin efecto de clase pública en el renderizador actual. |
| bloques hijos | hijos publicados | Se renderizan dentro de la raíz de la tarjeta o de la región. |
| campos de tarjeta heredados | registros Card antiguos sin hijos de región | El Card padre puede renderizar un fallback mínimo de cabecera/cuerpo/pie heredado. |
Usar para / Evitar para
Usar para: la región de contenido principal dentro de Card.
Evitar para: colocarlo fuera de Card.
Notas
El bloque es propietario de la raíz de su región de tarjeta y renderiza los bloques hijos. Está pensado solo para usarse bajo card.
Card Footer (`card_footer`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/card_footer.blade.php
HTML renderizado
<div class="wb-card-footer" data-wb-public-block-type="card-footer">
<!-- child blocks -->
</div>
Clases CSS principales / WebBlocks UI
wb-card-footer.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.layout_name | cualquier valor almacenado | Solo metadatos de administración/layout; sin efecto de clase pública en el renderizador actual. |
| bloques hijos | hijos publicados | Se renderizan dentro de la raíz de la tarjeta o de la región. |
| campos de tarjeta heredados | registros Card antiguos sin hijos de región | El Card padre puede renderizar un fallback mínimo de cabecera/cuerpo/pie heredado. |
Usar para / Evitar para
Usar para: acciones o contenido de pie complementario dentro de Card.
Evitar para: colocarlo fuera de Card.
Notas
El bloque es propietario de la raíz de su región de tarjeta y renderiza los bloques hijos. Está pensado solo para usarse bajo card.
Header (`header`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/header.blade.php
HTML renderizado
<h2 class="wb-text-center" id="section-anchor" data-wb-public-block-type="header">Heading</h2>
Clases CSS principales / WebBlocks UI
Clase de alineación opcional procedente de headerAlignmentClass().
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | h1-h6 | Controla el elemento de encabezado. |
| variant | vacío/otro | Por defecto, . |
| settings.alignment | left/center/right | headerAlignmentClass() añade wb-text-left, wb-text-center o wb-text-right. |
| settings.anchor o fallback de URL heredado | cadena de anclaje segura | Añade un atributo id para enlaces dentro de la misma página y para el índice. |
Usar para / Evitar para
Usar para: encabezados semánticos dentro del contenido de la página.
Evitar para: introducciones de página que necesiten subtítulo o metadatos; use Content Header.
Notas
El bloque es propietario del propio elemento de encabezado (de h1 a h6). variant controla el nivel del encabezado, con h2 por defecto. settings.anchor o el fallback de URL heredado pueden añadir id.
Plain Text (`plain_text`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/plain_text.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="plain-text">
<p class="wb-text-center">Plain copy.</p>
</div>
Clases CSS principales / WebBlocks UI
Clase de alineación opcional procedente de plainTextAlignmentClass(). El contenedor genérico usa wb-public-block.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.alignment | left/center/right | plainTextAlignmentClass() añade wb-text-left, wb-text-center o wb-text-right a . |
| content | texto | Se escapa dentro de un único párrafo. |
| status | sin publicar | El bloque no se incluye en las consultas normales del árbol de bloques públicos. |
Usar para / Evitar para
Usar para: textos breves sin formato.
Evitar para: párrafos con formato, listas, enlaces o encabezados; use Rich Text/Header.
Notas
El bloque no es propietario de su raíz pública según Block::ownsPublicRoot(), por lo que el renderizado normal del slot lo envuelve. El propio renderizador solo emite <p>.
Rich Text (`rich-text`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/rich-text.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="rich-text">
<div class="wb-rich-text wb-rich-text-readable">
<p>Safe <strong>formatted</strong> copy.</p>
</div>
</div>
Clases CSS principales / WebBlocks UI
wb-rich-text, wb-rich-text-readable, plus generic wb-public-block.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| content | HTML enriquecido seguro | SafeRichTextRenderer emite el contenido saneado dentro de wb-rich-text wb-rich-text-readable. |
| content | vacío tras el saneamiento | El renderizador no emite nada. |
| HTML/clases no admitidos | presentes en el contenido | El renderizador seguro los elimina en lugar de asignarlos a clases públicas. |
Usar para / Evitar para
Usar para: texto de cuerpo con formato en línea seguro, enlaces y listas sencillas.
Evitar para: encabezados, medios, tablas, botones o marcado de layout en bruto.
Notas
El renderizador no emite nada cuando el contenido saneado está vacío. No es propietario de la raíz a nivel de slot. El contenido se renderiza mediante SafeRichTextRenderer.
Button Link (`button_link`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/button_link.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="button-link">
<a href="/start" class="wb-btn wb-btn-primary">Start</a>
</div>
Clases CSS principales / WebBlocks UI
Clase procedente de buttonLinkVariantClass(), normalmente wb-btn más una clase de variante.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | secondary | buttonLinkVariantClass() emite wb-btn wb-btn-secondary. |
| variant | default/otro | buttonLinkVariantClass() emite wb-btn wb-btn-primary. |
| settings.url | URL segura | Renderiza el href del enlace; una URL insegura o vacía no renderiza nada. |
| settings.target | _blank | Añade target="_blank" rel="noopener noreferrer". |
Usar para / Evitar para
Usar para: enlaces editoriales independientes con estilo de botón.
Evitar para: acciones gestionadas de Hero/CTA donde se espera el contrato de hijo button.
Notas
El renderizador no emite nada sin una URL segura. El destino _blank añade target="_blank" y rel="noopener noreferrer". Normalmente recibe el contenedor genérico de bloque público, salvo que esté anidado en un padre propietario de la raíz.
Image (`image`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/image.blade.php
HTML renderizado
<figure class="wb-stack wb-gap-2" data-wb-public-block-type="image">
<a href="/target">
<img src="/media/photo.jpg" alt="Alt text" width="1200" height="800">
</a>
<figcaption>Caption</figcaption>
</figure>
Clases CSS principales / WebBlocks UI
wb-stack, wb-gap-2.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| media_id | medio seleccionado | Renderiza con usando la URL y las dimensiones del medio. |
| url | URL segura | Envuelve en un enlace únicamente la imagen. |
| caption | texto traducido | Renderiza cuando está presente. |
| texto alternativo | traducido o fallback del medio | Renderiza el atributo alt de la imagen. |
Usar para / Evitar para
Usar para: imágenes semánticas individuales con pie de foto o enlace opcionales.
Evitar para: colecciones de imágenes; use Gallery.
Notas
El bloque es propietario de su raíz <figure> y no emite nada sin medio. El enlace opcional envuelve solo la imagen cuando la URL es segura (http, https, /, #, mailto o tel).
Gallery (`gallery`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/gallery.blade.php
HTML renderizado
<div class="wb-gallery wb-gallery--grid wb-gallery--cols-3 wb-gallery--gap-4 wb-gallery--aspect-16-9"
data-wb-public-block-type="gallery"
data-wb-gallery-variant="grid"
data-wb-gallery-captions="below"
aria-label="Gallery">
<div class="wb-gallery-grid">
<figure class="wb-gallery-item">
<a href="/media/full.jpg" class="wb-gallery-trigger" data-wb-gallery-target="#wb-gallery-viewer-10">
<img src="/media/thumb.jpg" alt="Alt" class="wb-gallery-media">
</a>
<figcaption class="wb-gallery-caption">Caption</figcaption>
</figure>
</div>
</div>
Clases CSS principales / WebBlocks UI
wb-gallery, wb-gallery--{variant}, wb-gallery--cols-{n}, wb-gallery--gap-{n}, wb-gallery--aspect-{ratio}, wb-gallery-grid, wb-gallery-item, wb-gallery-trigger or wb-gallery-link, wb-gallery-media, wb-gallery-caption, wb-gallery-caption-title, wb-gallery-caption-meta.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.variant | grid/masonry/masonary/collage | galleryVariant() añade wb-gallery--grid, wb-gallery--masonry o wb-gallery--collage; masonary se normaliza a masonry. |
| settings.columns | 2/3/4/5 | galleryColumns() añade wb-gallery--cols-{n}; el valor por defecto es 3. |
| settings.gap | none/sm/md/lg | galleryGap() añade wb-gallery--gap-{value}; el valor por defecto es md. |
| settings.aspect_ratio | auto/square/4:3/16:9/portrait | galleryAspectRatio() añade wb-gallery--aspect-{value}, con : representado como -. |
| settings.captions_mode | hidden/below/overlay/on-hover | Controla los pies de foto inferiores o el marcado de pie superpuesto; el valor por defecto es below. |
| settings.overlay_mode | none/gradient/solid | Controla el modificador del pie superpuesto; el valor por defecto es gradient. |
| settings.lightbox_enabled | true/default | Usa .wb-gallery-trigger y registra gallery-viewer en PublicOverlayRegistry. |
| settings.lightbox_enabled | false | Usa .wb-gallery-link y no hay modal de visor. |
Usar para / Evitar para
Usar para: colecciones de imágenes estructuradas con pies de foto y lightbox opcional.
Evitar para: texto introductorio de sección; coloque Content Header/Rich Text antes de Gallery.
Notas
El bloque es propietario de su raíz de galería y registra el HTML de gallery-viewer en PublicOverlayRegistry cuando el lightbox está activado. Las variantes, columnas, separación, relación de aspecto, pies de foto, modo de superposición y los ajustes del lightbox cambian atributos y clases. Los elementos heredados basados en settings siguen siendo legibles.
Columns (`columns`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/columns.blade.php
HTML renderizado
<section class="wb-stack wb-gap-4" data-wb-public-block-type="columns">
<div class="wb-stack wb-gap-1">
<h2>Columns title</h2>
<p class="wb-text-muted">Subtitle</p>
</div>
<div class="wb-stack wb-gap-2">
<p class="wb-m-0">Intro copy.</p>
</div>
<div class="wb-grid wb-grid-3">
<!-- column_item or feature-item output -->
</div>
</section>
Clases CSS principales / WebBlocks UI
wb-stack, wb-gap-4, wb-gap-1, wb-text-muted, wb-gap-2, wb-m-0, wb-grid, wb-grid-2, wb-grid-3, wb-grid-4.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | cards | Los elementos hijos se renderizan con estilo de tarjeta. |
| variant | stats | Los elementos hijos se renderizan con estilo de estadística. |
| variant | plain/default | Los elementos hijos se renderizan con estilo de pila simple. |
| número de hijos | 1 | Usa wb-stack wb-gap-3 para el layout del elemento. |
| número de hijos | 2/3/4+ | Usa wb-grid wb-grid-2, wb-grid-3 o wb-grid-4. |
Usar para / Evitar para
Usar para: grupos estructurados de características, estadísticas o columnas simples.
Evitar para: rejillas de layout arbitrarias donde Grid + Card resulta más claro.
Notas
El bloque es propietario de su <section> raíz. El número de hijos determina la clase de rejilla: un hijo usa wb-stack wb-gap-3, dos usan wb-grid wb-grid-2, tres usan wb-grid wb-grid-3 y, en los demás casos, wb-grid wb-grid-4. variant se pasa a los renderizadores hijos column_item/feature-item.
Column Item (`column_item`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/column_item.blade.php
HTML renderizado
Variante cards:
<div class="wb-card">
<div class="wb-card-body wb-stack wb-gap-2">
<a href="/item" class="wb-no-decoration">
<div class="wb-stack wb-gap-2">
<strong>Title</strong>
<p class="wb-m-0">Copy.</p>
</div>
</a>
</div>
</div>
Variante plain:
<div class="wb-stack wb-gap-2">
<strong>Title</strong>
<p class="wb-m-0">Copy.</p>
</div>
Variante stats:
<div class="wb-stat">
<div class="wb-stat-label">Label</div>
<div class="wb-stat-value">Value</div>
<div class="wb-stat-delta">Detail</div>
</div>
Clases CSS principales / WebBlocks UI
wb-card, wb-card-body, wb-stack, wb-gap-2, wb-no-decoration, wb-m-0, wb-stat, wb-stat-label, wb-stat-value, wb-stat-delta.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variante del columns padre | cards | Renderiza .wb-card > .wb-card-body. |
| variante del columns padre | stats | Renderiza .wb-stat con etiqueta/valor/detalle. |
| variante del columns padre | plain/default | Renderiza .wb-stack wb-gap-2. |
| url | URL segura | Las variantes cards/plain envuelven el contenido en a.wb-no-decoration; stats no renderiza enlace en el renderizador actual. |
Usar para / Evitar para
Usar para: hijos de Columns.
Evitar para: contenido de página independiente; use Card o Stat Card cuando sea autónomo.
Notas
Este renderizador cambia sustancialmente según la variante del columns padre. No es propietario de una raíz a nivel de slot y normalmente lo renderiza el padre.
Feature Grid (`feature-grid`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/feature-grid.blade.php
HTML renderizado
<section class="wb-stack wb-gap-4" data-wb-public-block-type="feature-grid">
<div class="wb-grid wb-grid-3">
<div class="wb-card">...</div>
</div>
</section>
Clases CSS principales / WebBlocks UI
Delega en Columns: wb-stack, wb-gap-4, wb-grid, wb-card y las clases relacionadas de column_item.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | alias delegado | Delega en una ruta de renderizado existente; el mapa exacto de ajustes sigue al delegado allí donde es visible. |
| páginas nuevas preferidas | n/a | Prefiera el bloque canónico indicado en Notas en lugar de este bloque alias/de compatibilidad. |
Usar para / Evitar para
Usar para: contenido de feature-grid heredado que ya existe.
Evitar para: páginas nuevas construidas a mano; use Columns con Column Item o Grid con Card.
Notas
El renderizador replica el bloque, filtra los hijos a feature-item y al column_item compatible con versiones anteriores, fuerza variant = cards e incluye el renderizador de Columns. Según el helper, no es propietario de la raíz pública, por lo que el renderizado de primer nivel puede añadir wb-public-block.
Feature Item (`feature-item`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/feature-item.blade.php
HTML renderizado
<div class="wb-card">
<div class="wb-card-body wb-stack wb-gap-2">
<strong>Feature title</strong>
<p class="wb-m-0">Feature copy.</p>
</div>
</div>
Clases CSS / WebBlocks UI principales
Delega en la variante cards de Column Item: wb-card, wb-card-body, wb-stack, wb-gap-2, wb-m-0.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | alias delegado | Delega en una ruta de renderizado existente; el mapa exacto de ajustes sigue al delegado allí donde es visible. |
| páginas nuevas preferidas | n/a | Prefiera el bloque canónico indicado en Notas en lugar de este bloque alias/de compatibilidad. |
Usar para / Evitar para
Usar para: hijos heredados de Feature Grid.
Evitar para: tarjetas de característica nuevas e independientes; use regiones de Card o Column Item.
Notas
Este renderizador incluye column_item con columnsVariant = cards. Está pensado como hijo de feature-grid.
Accordion (`accordion`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/accordion.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="accordion">
<div class="wb-stack wb-gap-3">
<div class="wb-stack wb-gap-1">
<h3>Questions</h3>
<p>Intro copy.</p>
</div>
<div class="wb-stack-2">
<details>
<summary>Question?</summary>
<div>Answer.</div>
</details>
</div>
</div>
</div>
Clases CSS / WebBlocks UI principales
wb-stack, wb-gap-3, wb-gap-1, wb-stack-2, más el genérico wb-public-block.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| title/subtitle | presente | Renderiza el encabezado y el texto de introducción sobre los elementos. |
| filas hijas | publicadas con título y contenido | Renderiza cada una como elemento desplegable .... |
| filas hijas | sin título o sin contenido | Se omiten en la recopilación de elementos actual. |
| envoltorio | bloque de primer nivel que no es raíz | Recibe del renderizador de slots el envoltorio genérico .wb-public-block. |
Usar para / Evitar para
Usar para: grupos de preguntas frecuentes o de contenido desplegable.
Evitar para: tarjetas sueltas de pregunta y respuesta; use FAQ solo para filas hijas de compatibilidad.
Notas
El bloque renderiza las filas hijas como elementos de acordeón cuando cada hija tiene título y contenido. No es propietario de la raíz a nivel de slot. Page Converter escribe los elementos details en filas faq cuando el contrato está disponible, y accordion consume el título y el contenido de las hijas.
FAQ (`faq`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/faq.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="faq">
<section class="wb-card wb-card-muted">
<div class="wb-card-body wb-stack wb-gap-2">
<strong>Question?</strong>
<p class="wb-m-0">Answer.</p>
</div>
</section>
</div>
Clases CSS / WebBlocks UI principales
wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-2, wb-m-0, más el genérico wb-public-block.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| title/content | presente | Renderiza una tarjeta atenuada con la pregunta y la respuesta. |
| hijos | hijos publicados | Renderiza un área adicional de bloques hijos wb-stack wb-gap-4. |
| uso como hijo de Accordion | dentro de Accordion | Accordion consume el título y el contenido de la fila FAQ como contenido del elemento desplegable. |
Usar para / Evitar para
Usar para: filas hijas de elementos de acordeón y tarjetas heredadas de una sola pregunta y respuesta.
Evitar para: secciones de preguntas frecuentes nuevas e independientes; use Accordion como padre.
Notas
FAQ es un renderizador de una sola tarjeta de pregunta y respuesta. Si existen hijos, también los renderiza en un bloque wb-stack wb-gap-4 adicional.
Navbar (`sticky-navbar`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sticky-navbar.blade.php
HTML renderizado
<nav class="wb-navbar wb-navbar--static" data-wb-public-block-type="sticky-navbar">
<!-- navbar child blocks -->
</nav>
Clases CSS / WebBlocks UI principales
wb-navbar, más una clase opcional de navbarPositionClass() como wb-navbar--static.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.sticky_mode | sticky/default | Usa solo la base wb-navbar para el comportamiento fijo. |
| settings.sticky_mode | static | navbarPositionClass() añade wb-navbar--static. |
| settings.sticky_mode | fixed | navbarPositionClass() añade wb-fixed. |
| bloques hijos | hijos permitidos y publicados | Se renderizan directamente dentro de . |
Usar para / Evitar para
Usar para: árboles de bloques de cabecera y navegación públicas compartidas.
Evitar para: crear un armazón de cabecera propio alrededor del marcado de la navbar.
Notas
La etiqueta del bloque es Navbar, pero el slug persistido y el archivo del renderizador son sticky-navbar. Es propietario de su raíz externa <nav> y renderiza los bloques hijos. Los tipos de hijo permitidos incluyen container, cluster, header, plain_text, rich-text, button_link, navbar-brand, navbar-navigation, header-actions y search-form.
Navbar Brand (`navbar-brand`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/navbar-brand.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="navbar-brand">
<a href="/" class="wb-navbar-brand">
<img src="/media/logo.svg" alt="Site name">
<span class="wb-navbar-identity">
<span>Site name</span>
<span class="wb-navbar-brand-note">Tagline</span>
</span>
</a>
</div>
Clases CSS / WebBlocks UI principales
wb-navbar-brand, wb-navbar-identity, wb-navbar-brand-note, más el genérico wb-public-block salvo que esté anidado en un padre propietario de la raíz.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.url | URL segura | La URL guardada prevalece para el enlace de la marca. |
| settings.url | vacío | Recurre a la ruta de inicio del sitio y, después, a /. |
| settings.target | _blank | Añade target="_blank" rel="noopener noreferrer". |
| settings.aria_label | texto | Se usa como etiqueta accesible cuando no se renderiza texto visible. |
| media_id | medio del logotipo | Renderiza la imagen de marca dentro de wb-navbar-brand. |
Usar para / Evitar para
Usar para: la identidad del sitio dentro de Navbar.
Evitar para: layouts de cabecera completos; combínelo con Navbar/Container/Cluster.
Notas
El bloque no es propietario del armazón externo de la navbar. Prevalece la URL guardada, después la ruta de inicio del sitio y después /. La salida con solo logotipo usa aria-label cuando no se renderiza texto.
Navbar Navigation (`navbar-navigation`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/navbar-navigation.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="navbar-navigation">
<div class="wb-cms-navbar-navigation">
<div class="wb-dropdown wb-dropdown-end wb-cms-navbar-mobile-toggle">
<button class="wb-navbar-toggle wb-cms-navbar-mobile-toggle-button" data-wb-toggle="dropdown">
<i class="wb-icon wb-icon-menu" aria-hidden="true"></i>
</button>
<div class="wb-dropdown-menu wb-cms-navbar-mobile-menu">
<ul class="wb-navbar-nav wb-cms-navbar-mobile-nav">...</ul>
</div>
</div>
<div class="wb-navbar-links">
<ul class="wb-navbar-nav">
<li class="wb-navbar-nav-item">
<a href="/" class="wb-navbar-link is-active" aria-current="page">Home</a>
</li>
</ul>
</div>
</div>
</div>
Variante de grupo desplegable:
<li class="wb-navbar-nav-item wb-dropdown">
<button class="wb-navbar-link" data-wb-toggle="dropdown" data-wb-target="#navbar-navigation-group-1-2">
Group <i class="wb-icon wb-icon-chevron-down" aria-hidden="true"></i>
</button>
<div class="wb-dropdown-menu" id="navbar-navigation-group-1-2">
<a class="wb-dropdown-item" href="/child">Child</a>
</div>
</li>
Clases CSS / WebBlocks UI principales
wb-cms-navbar-navigation, wb-dropdown, wb-dropdown-end, wb-cms-navbar-mobile-toggle, wb-navbar-toggle, wb-cms-navbar-mobile-toggle-button, wb-icon, wb-icon-menu, wb-dropdown-menu, wb-cms-navbar-mobile-menu, wb-navbar-nav, wb-cms-navbar-mobile-nav, wb-navbar-links, wb-navbar-nav-item, wb-navbar-link, wb-dropdown-item, is-active.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.menu_key | clave de menú NavigationItem conocida | Selecciona el árbol de navegación del CMS que se renderiza. |
| title | texto | Se usa como etiqueta ARIA compartida cuando está presente. |
| elemento de grupo de navegación | grupo con hijos | Renderiza el disparador desplegable de WebBlocks UI y .wb-dropdown-menu. |
| elemento activo | coincide con la página actual | Añade is-active y aria-current="page". |
Usar para / Evitar para
Usar para: enlaces de menú gestionados por el CMS dentro de Navbar.
Evitar para: filas de botones manuales; use Button Link o Cluster.
Notas
El slug real del núcleo es navbar-navigation. Renderiza árboles NavigationItem del CMS a partir de la clave de menú seleccionada. No es propietario del armazón externo de la navbar. Usa los hooks de desplegable de WebBlocks UI para los menús de grupo y para el menú móvil.
Header Actions (`header-actions`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/header-actions.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="header-actions">
<div class="wb-cluster wb-cluster-2 wb-cluster-end" data-wb-header-actions>
<div class="wb-topbar-actions">
<a class="wb-topbar-action" data-wb-public-search-open>
<i class="wb-icon wb-icon-search" aria-hidden="true"></i>
</a>
<button class="wb-topbar-action" data-wb-mode-cycle>
<i class="wb-icon wb-icon-sun-moon" aria-hidden="true"></i>
</button>
<div class="wb-dropdown wb-dropdown-end">
<button class="wb-topbar-action" data-wb-toggle="dropdown">
<i class="wb-icon wb-icon-palette" aria-hidden="true"></i>
</button>
<div class="wb-dropdown-menu">...</div>
</div>
</div>
</div>
</div>
Clases CSS / WebBlocks UI principales
wb-cluster, wb-cluster-2, wb-cluster-end, wb-topbar-actions, wb-topbar-action, wb-icon, wb-icon-search, wb-icon-sun-moon, wb-icon-palette, wb-dropdown, wb-dropdown-end, wb-dropdown-menu, wb-dropdown-item, wb-dropdown-label, wb-dropdown-divider.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.show_search | false | Oculta la acción de búsqueda pública. |
| settings.show_mode_toggle | false | Oculta la acción de cambio de modo. |
| settings.show_accent_toggle | false | Oculta el desplegable de acento/tema. |
| ajustes por defecto | vacío/true | Renderiza todas las acciones. |
Usar para / Evitar para
Usar para: las utilidades estándar de búsqueda y tema en las cabeceras.
Evitar para: CTA de negocio personalizadas; use Button Link/Button.
Notas
Los ajustes pueden ocultar la búsqueda, el cambio de modo o el menú de acento/tema. Este bloque no es propietario de una raíz a nivel de slot. Usa los hooks de desplegable de WebBlocks UI y los hooks de búsqueda pública del CMS.
Search Form (`search-form`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/search-form.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="search-form">
<form action="/search" method="GET" role="search" class="wb-cluster wb-cluster-2">
<div class="wb-stack wb-gap-1 wb-flex-1">
<label for="search-form-1">Search</label>
<input id="search-form-1" type="search" name="q" class="wb-input" placeholder="Search this site">
</div>
<button type="submit" class="wb-btn wb-btn-primary">Search</button>
</form>
</div>
Clases CSS / WebBlocks UI principales
wb-cluster, wb-cluster-2, wb-stack, wb-gap-1, wb-flex-1, wb-input, wb-btn, wb-btn-primary o wb-btn-secondary.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | secondary | El botón de envío usa wb-btn wb-btn-secondary. |
| variant | primary/default | El botón de envío usa wb-btn wb-btn-primary. |
| settings.show_button | false | Omite el botón de envío. |
| ruta de búsqueda no disponible | n/a | El renderizador no emite nada. |
Usar para / Evitar para
Usar para: formularios de búsqueda del sitio.
Evitar para: formularios de filtrado o integraciones de búsqueda externas personalizadas.
Notas
El renderizador no emite nada si el resolvedor de rutas no puede producir una ruta de búsqueda. settings.show_button controla si se renderiza el botón de envío.
Stat Card (`stat-card`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/stat-card.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="stat-card">
<div class="wb-stat">
<div class="wb-stat-label">Label</div>
<div class="wb-stat-value">Value</div>
<div class="wb-stat-detail">Detail</div>
<div class="wb-stat-detail"><a href="/more" class="wb-link">Learn more</a></div>
</div>
</div>
Clases CSS / WebBlocks UI principales
wb-stat, wb-stat-label, wb-stat-value, wb-stat-detail, wb-link, más el genérico wb-public-block.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| subtitle | texto | Renderiza .wb-stat-label. |
| title | texto | Renderiza .wb-stat-value. |
| content | texto | Renderiza .wb-stat-detail. |
| url | URL segura | Añade un enlace Learn more con .wb-link. |
Usar para / Evitar para
Usar para: tarjetas de métrica independientes.
Evitar para: grupos de varias métricas donde la variante stats de Columns es más compacta.
Notas
Es un bloque de contenido que no es propietario de la raíz. Usa subtitle como etiqueta, title como valor, content como detalle y una URL canónica opcional para un enlace Learn more.
Code (`code`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/code.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="code">
<pre><code data-language="php">php artisan test</code></pre>
</div>
Clases CSS / WebBlocks UI principales
El propio renderizador de code no emite ninguna clase de WebBlocks UI. El envoltorio genérico usa wb-public-block.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.language | texto | Se sanea y se convierte en data-language sobre . |
| settings.lang | texto | Alternativa heredada para data-language. |
| content | vacío | El renderizador no emite nada. |
Usar para / Evitar para
Usar para: fragmentos de código.
Evitar para: prosa con formato o listas de comandos; use Rich Text/List según corresponda.
Notas
El renderizador termina antes de tiempo cuando el contenido está vacío. settings.language o settings.lang se convierte en un valor data-language saneado.
Download (`download`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/download.blade.php
HTML renderizado
<div class="wb-stack wb-gap-2" data-wb-public-block-type="download">
<a href="/media/file.pdf" class="wb-btn wb-btn-secondary" download>Download file</a>
<p>Helper copy.</p>
</div>
Clases CSS / WebBlocks UI principales
wb-stack, wb-gap-2, wb-btn, wb-btn-primary, wb-btn-secondary, wb-btn-ghost.
Settings -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | primary | La clase del botón es wb-btn wb-btn-primary. |
| variant | ghost | La clase del botón es wb-btn wb-btn-ghost. |
| variant | secondary/default/otro | La clase del botón es wb-btn wb-btn-secondary. |
| media_id | medio de descarga | Se usa la URL del medio; sin medio, el renderizador no emite nada. |
| subtitle | texto | Renderiza un de ayuda. |
Usar para / Evitar para
Usar para: CTA de descarga respaldadas por un medio.
Evitar para: tarjetas de archivos externos; use File cuando no exista un recurso de medios.
Notas
El bloque es propietario de su <div> raíz. Solo emite cuando downloadAsset() tiene una URL. variant cambia la clase del botón.
File (`file`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/file.blade.php
HTML renderizado
<div class="wb-card wb-card-muted" data-wb-public-block-type="file">
<div class="wb-card-body wb-stack wb-gap-2">
<strong>File title</strong>
<p class="wb-m-0">Description.</p>
<a href="/media/file.pdf" class="wb-btn wb-btn-secondary" download>Download</a>
<span class="wb-text-sm wb-text-muted">file.pdf | application/pdf</span>
</div>
</div>
Clases CSS / WebBlocks UI principales
wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-2, wb-m-0, wb-btn, wb-btn-secondary, wb-text-sm, wb-text-muted.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| media_id | medio seleccionado | La URL del medio prevalece sobre la URL externa. |
| url | URL externa segura | Se usa solo cuando no hay ninguna URL de medio disponible. |
| title/content | texto | Se muestra como texto visible de la tarjeta cuando está presente. |
| source unavailable | n/d | El renderizador no genera nada o no genera ningún control reproducible, según la disponibilidad de la fuente. |
Usar para / Evitar para
Usar para: tarjetas de archivo con un medio o con una URL externa revisada como alternativa.
Evitar para: descargas simples de medios en las que Download ya es suficiente.
Notas
El bloque es propietario de su tarjeta raíz. La URL del medio prevalece sobre una URL externa segura http, https o mailto. La etiqueta del botón es Download para los medios y Open file para una URL externa.
Video (`video`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/video.blade.php
HTML generado
<div class="wb-card wb-card-muted" data-wb-public-block-type="video">
<div class="wb-card-body wb-stack wb-gap-3">
<div class="wb-stack wb-gap-1">
<strong>Video title</strong>
<p class="wb-m-0">Video copy.</p>
</div>
<video controls preload="metadata">
<source src="/media/video.mp4">
</video>
</div>
</div>
Variante de incrustación:
<iframe src="https://www.youtube.com/embed/abc123" title="Video title" loading="lazy" allowfullscreen></iframe>
Principales clases CSS / de WebBlocks UI
wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-3, wb-gap-1, wb-m-0, wb-btn, wb-btn-secondary.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| media_id | medio seleccionado | La URL del medio prevalece sobre la URL externa. |
| url | URL externa segura | Se usa solo cuando no hay ninguna URL de medio disponible. |
| title/content | texto | Se muestra como texto visible de la tarjeta cuando está presente. |
| source unavailable | n/d | El renderizador no genera nada o no genera ningún control reproducible, según la disponibilidad de la fuente. |
Usar para / Evitar para
Usar para: vídeos subidos o incrustaciones seguras de YouTube/Vimeo.
Evitar para: HTML arbitrario con iframes; use Trusted HTML solo como alternativa revisada.
Notas
El bloque es propietario de su tarjeta raíz. Los medios subidos se muestran con un <video> nativo. Las URL seguras de YouTube y Vimeo se muestran como incrustaciones en iframe. Otras URL HTTP seguras muestran un botón Open video.
Audio (`audio`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/audio.blade.php
HTML generado
<div class="wb-card wb-card-muted" data-wb-public-block-type="audio">
<div class="wb-card-body wb-stack wb-gap-3">
<div class="wb-stack wb-gap-1">
<strong>Audio title</strong>
<p class="wb-m-0">Audio copy.</p>
</div>
<audio controls preload="metadata">
<source src="/media/audio.mp3">
</audio>
</div>
</div>
Principales clases CSS / de WebBlocks UI
wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-3, wb-gap-1, wb-m-0.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| media_id | medio seleccionado | La URL del medio prevalece sobre la URL externa. |
| url | URL externa segura | Se usa solo cuando no hay ninguna URL de medio disponible. |
| title/content | texto | Se muestra como texto visible de la tarjeta cuando está presente. |
| source unavailable | n/d | El renderizador no genera nada o no genera ningún control reproducible, según la disponibilidad de la fuente. |
Usar para / Evitar para
Usar para: audio subido o medios de audio externos seguros.
Evitar para: incrustaciones de pódcast o reproductores que requieran marcado no admitido; valore Trusted HTML como alternativa.
Notas
El bloque es propietario de su tarjeta raíz. La URL del medio subido prevalece sobre una URL HTTP externa segura.
Table (`table`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/table.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="table">
<div class="wb-stack wb-gap-2">
<h3>Table title</h3>
<div class="wb-table-wrap">
<table class="wb-table">
<thead>
<tr><th>Name</th><th>Value</th></tr>
</thead>
<tbody>
<tr><td>One</td><td>Two</td></tr>
</tbody>
</table>
</div>
</div>
</div>
Principales clases CSS / de WebBlocks UI
wb-stack, wb-gap-2, wb-table-wrap, wb-table, más el genérico wb-public-block.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | plain | Sin fila de encabezado; todas las filas se generan en . |
| variant | default/other | La primera fila se genera en . |
| settings.rows | array | La fuente de filas heredada prevalece cuando está presente. |
| content | líneas separadas por barras verticales | Se usa como fuente de filas cuando settings.rows está vacío. |
Usar para / Evitar para
Usar para: tablas estructuradas sencillas.
Evitar para: rejillas de maquetación o tablas de datos interactivas complejas.
Notas
Las filas provienen del settings.rows heredado cuando existe y, si no, de las líneas de contenido traducido separadas por barras verticales. variant = plain desactiva el comportamiento de fila de encabezado.
Quote (`quote`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/quote.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="quote">
<blockquote class="wb-stack wb-gap-2">
<p class="wb-m-0">Quote text.</p>
<footer>Name | Role</footer>
</blockquote>
</div>
Variante testimonial:
<div class="wb-card wb-card-muted">
<div class="wb-card-body">
<blockquote class="wb-stack wb-gap-2">...</blockquote>
</div>
</div>
Principales clases CSS / de WebBlocks UI
wb-stack, wb-gap-2, wb-m-0, opcionalmente wb-card, wb-card-muted, wb-card-body, más el genérico wb-public-block.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | testimonial | Envuelve el blockquote en wb-card wb-card-muted > .wb-card-body. |
| variant | default/other | Genera un simple. |
| subtitle | texto | Se genera en junto con el contexto de title/content. |
Usar para / Evitar para
Usar para: citas y testimonios.
Evitar para: avisos destacados genéricos o tarjetas.
Notas
El renderizador en sí no añade data-wb-public-block-type; el envoltorio genérico lo aporta el renderizado del slot de nivel superior.
Link List (`link-list`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/link-list.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="link-list">
<div class="wb-stack wb-gap-3">
<div class="wb-stack wb-gap-1">
<div class="wb-link-list-meta">Meta</div>
<h2>Links</h2>
<p>Description.</p>
</div>
<div class="wb-link-list">
<a href="/item" class="wb-link-list-item">...</a>
</div>
</div>
</div>
Principales clases CSS / de WebBlocks UI
wb-stack, wb-gap-3, wb-gap-1, wb-link-list, wb-link-list-meta.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| title/subtitle/content | texto | Genera una pila introductoria opcional encima de los enlaces. |
| hijo link-list-item | hijos publicados | Genera los hijos dentro de .wb-link-list. |
| sin hijos | n/d | El renderizador no tiene filas de enlace que mostrar. |
Usar para / Evitar para
Usar para: listas estructuradas de enlaces.
Evitar para: menús de navegación completos; use Navbar/Navigation Auto según corresponda.
Notas
El bloque solo muestra los hijos link-list-item publicados. No es propietario de la raíz a nivel de slot.
Link List Item (`link-list-item`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/link-list-item.blade.php
HTML generado
<a href="/item" class="wb-link-list-item">
<div class="wb-link-list-main">
<span class="wb-link-list-title">Title</span>
<span class="wb-link-list-meta">Meta</span>
</div>
<div class="wb-link-list-desc">Description.</div>
</a>
Principales clases CSS / de WebBlocks UI
wb-link-list-item, wb-link-list-main, wb-link-list-title, wb-link-list-meta, wb-link-list-desc.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| url | URL segura | Obligatorio para que haya salida; se convierte en el href del ancla. |
| title | texto | Obligatorio para que haya salida; genera .wb-link-list-title. |
| subtitle | texto | Genera .wb-link-list-meta. |
| content | texto | Genera .wb-link-list-desc. |
Usar para / Evitar para
Usar para: hijos de Link List.
Evitar para: botones autónomos o elementos de menú de navegación.
Notas
El renderizador solo genera salida cuando existen tanto una URL segura como un título. Está pensado como hijo de link-list.
Navigation Auto (`navigation-auto`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/navigation-auto.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="navigation-auto">
<nav class="wb-stack wb-gap-2" aria-label="main navigation" data-wb-menu-key="main">
<ul class="wb-cluster wb-cluster-2 wb-cluster-between">
<li class="wb-stack wb-gap-1">
<a href="/" class="wb-btn wb-btn-secondary">Home</a>
</li>
</ul>
</nav>
</div>
Variante de menú de pie de página / legal:
<ul class="wb-stack wb-gap-1">
<li class="wb-stack wb-gap-1"><a href="/privacy" class="wb-link">Privacy</a></li>
</ul>
Principales clases CSS / de WebBlocks UI
wb-stack, wb-gap-2, wb-gap-1, wb-cluster, wb-cluster-2, wb-cluster-between, wb-btn, wb-btn-secondary, wb-link, wb-text-sm.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.menu_key o settings.location | clave de menú conocida | Selecciona el menú de navegación del CMS; el helper recurre a primary/footer según el slot o el subtítulo. |
| menú footer/legal | clave footer o legal | Genera una lista apilada de .wb-link. |
| otro menú | primary/default | Genera enlaces raíz agrupados con estilo de botón. |
| elemento activo | coincide con la página actual | Añade clases current/active donde el renderizador las resuelve. |
Usar para / Evitar para
Usar para: el renderizado por compatibilidad de los menús del CMS.
Evitar para: nuevas cabeceras compartidas, donde el hijo previsto es Navbar Navigation.
Notas
El renderizador resuelve un menú de navegación del CMS por su clave. Los menús de pie de página y legales se muestran como enlaces apilados; los demás menús muestran enlaces raíz agrupados con estilo de botón.
TOC (`toc`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/toc.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="toc">
<div class="wb-stack wb-gap-2">
<strong>Contents</strong>
<div class="wb-link-list">
<a class="wb-link-list-item" href="#intro">
<div class="wb-link-list-main">
<span class="wb-link-list-title">Intro</span>
</div>
<div class="wb-link-list-desc">Jump to section</div>
</a>
</div>
</div>
</div>
Principales clases CSS / de WebBlocks UI
wb-stack, wb-gap-2, wb-link-list, wb-link-list-item, wb-link-list-main, wb-link-list-title, wb-link-list-meta, wb-link-list-desc.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| title | texto | Genera la etiqueta del encabezado; la etiqueta visible por defecto es la del comportamiento actual del renderizador. |
| bloques Header de la misma página | publicados y con anclas | Genera enlaces .wb-link-list-item. |
| variante de header | h3 | La descripción indica Jump to subsection; las demás indican Jump to section. |
| sin encabezados elegibles | n/d | El renderizador no genera nada. |
Usar para / Evitar para
Usar para: índices de contenido de la misma página a partir de bloques Header con anclas.
Evitar para: listas de enlaces manuales; use Link List.
Notas
El renderizador lee los bloques Header publicados y con ancla del mismo árbol de página. No genera nada cuando no hay encabezados elegibles.
Alert (`alert`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/alert.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="alert">
<div class="wb-alert wb-alert-info">
<h3 class="wb-alert-title">Notice</h3>
<p>Message.</p>
</div>
</div>
Principales clases CSS / de WebBlocks UI
wb-alert, la clase de variante que devuelve alertVariantClass(), wb-alert-title, más el genérico wb-public-block.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.variant | success/warning/danger | alertVariantClass() añade wb-alert-success, wb-alert-warning o wb-alert-danger. |
| settings.variant | info/default/other | Añade wb-alert-info. |
| title | texto | Genera .wb-alert-title. |
| content | texto | Genera el cuerpo del aviso. |
Usar para / Evitar para
Usar para: avisos en línea dirigidos al usuario.
Evitar para: promociones de marketing; use CTA/Hero.
Notas
El bloque no es propietario de la raíz a nivel de slot. La variante compartida controla la clase de tono del aviso.
Contact Form (`contact_form`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/contact_form.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="contact-form">
<section class="wb-card wb-public-contact-form-card" id="contact-form-1">
<div class="wb-card-body wb-stack wb-gap-4">
<div class="wb-stack wb-gap-2">
<h2>Contact</h2>
<p>Intro copy.</p>
</div>
<form method="POST" action="/contact-messages" class="wb-stack wb-gap-3">
<input type="hidden" name="_token" value="csrf-token">
<input type="hidden" name="block_id" value="1">
<input type="hidden" name="page_id" value="10">
<input type="hidden" name="source_url" value="/contact">
<input type="hidden" name="submitted_at" value="1770000000">
<input type="hidden" name="_form_check_name" value="signed-generated-field-name">
<div class="wb-form-check" inert aria-hidden="true">
<label for="contact-form-check-1">Leave this field empty</label>
<input id="contact-form-check-1" type="text" name="form_check_generatedtoken" tabindex="-1" autocomplete="off">
</div>
<div class="wb-grid wb-grid-2">
<div class="wb-stack wb-gap-1">
<label class="wb-label">Name</label>
<input class="wb-input" required>
</div>
<div class="wb-stack wb-gap-1">
<label class="wb-label">Email</label>
<input class="wb-input" type="email" required>
</div>
</div>
<textarea class="wb-textarea" rows="7" required></textarea>
<div class="wb-cluster wb-cluster-between wb-cluster-2">
<span class="wb-text-sm wb-text-muted">Your message is stored first...</span>
<button class="wb-btn wb-btn-primary">Send message</button>
</div>
</form>
</div>
</section>
</div>
Principales clases CSS / de WebBlocks UI
wb-card, wb-public-contact-form-card, wb-card-body, wb-stack, wb-gap-4, wb-gap-3, wb-gap-2, wb-gap-1, wb-alert, wb-alert-danger, wb-alert-title, wb-grid, wb-grid-2, wb-label, wb-input, wb-textarea, wb-cluster, wb-cluster-between, wb-cluster-2, wb-text-sm, wb-text-muted, wb-btn, wb-btn-primary.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| destinatario de contacto del sitio | configurado | El formulario envía a contact-messages.store con el contexto oculto de sitio y página. |
| errores de validación | presentes | Genera wb-alert wb-alert-danger y mensajes a nivel de campo. |
| etiquetas de envío/éxito en settings | ajustes traducidos heredados | Trasladadas fuera por el resolutor/escritor de traducciones; la salida visible sigue los campos de bloque traducidos actuales. |
El formulario público es salida nativa de Blade, no contenido de Trusted HTML. Los envíos desde el navegador requieren CSRF, incluyen el campo de comprobación antispam generado y propiedad del CMS, validan los campos obligatorios en el servidor, almacenan primero los mensajes legítimos y solo después intentan la notificación por correo electrónico siguiendo el orden documentado de destinatarios alternativos. El campo de comprobación lo genera el renderizador y no forma parte de la entrada normal del visitante.
Usar para / Evitar para
Usar para: el flujo de mensajes de contacto propio del producto.
Evitar para: formularios HTML sin procesar o incrustaciones de terceros, salvo que se revisen como Trusted HTML.
Notas
El renderizador incluye campos ocultos, CSRF, el marcado antispam .wb-form-check con inert y aria-hidden="true", errores de validación específicos, y envía a contact-messages.store. El antiguo campo website ya no forma parte del contrato del renderizador público.
Breadcrumb (`breadcrumb`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/breadcrumb.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="breadcrumb">
<nav class="wb-breadcrumb" aria-label="Breadcrumb">
<ol class="wb-breadcrumb-list">
<li class="wb-breadcrumb-item">
<a class="wb-breadcrumb-link" href="/">Home</a>
</li>
<li class="wb-breadcrumb-item">
<span class="wb-breadcrumb-current" aria-current="page">Current page</span>
</li>
</ol>
</nav>
</div>
Principales clases CSS / de WebBlocks UI
wb-breadcrumb, wb-breadcrumb-list, wb-breadcrumb-item, wb-breadcrumb-link, wb-breadcrumb-current.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.home_label | texto | Sustituye la etiqueta de la miga de inicio. |
| settings.include_current | false | Omite la miga de la página actual. |
| settings.include_current | true/default | Incluye la miga de la página actual. |
| página de inicio | include_current true | Genera únicamente la miga actual. |
Usar para / Evitar para
Usar para: navegación jerárquica entre páginas.
Evitar para: la navegación principal del sitio.
Notas
La etiqueta de inicio y la inclusión de la página actual se controlan mediante ajustes. En la página de inicio solo se genera la miga actual cuando include_current es true.
Sidebar Brand (`sidebar-brand`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-brand.blade.php
HTML generado
<div class="wb-public-block" data-wb-public-block-type="sidebar-brand">
<a href="/" class="wb-sidebar-brand">
<img src="/media/logo.svg" alt="Docs" class="wb-sidebar-brand-logo">
<span class="wb-sidebar-brand-copy">
<span>Docs</span>
<span class="wb-sidebar-brand-note">Guide</span>
</span>
</a>
</div>
Principales clases CSS / de WebBlocks UI
wb-sidebar-brand, wb-sidebar-brand-logo, wb-sidebar-brand-copy, wb-sidebar-brand-note.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.url | URL segura | La URL guardada tiene prioridad para el enlace de marca. |
| settings.url | vacío | Recurre a la ruta de inicio del sitio y, después, a /. |
| settings.target | _blank | Añade target="_blank" rel="noopener noreferrer". |
| settings.aria_label | texto | Se utiliza como etiqueta accesible cuando no se renderiza texto visible. |
| media_id | medio del logotipo | Renderiza la imagen de marca dentro de wb-sidebar-brand. |
Usar para / Evitar para
Usar para: identidad del sitio o de la documentación dentro de layouts con barra lateral.
Evitar para: la identidad en la barra de navegación; utilice ahí Navbar Brand.
Notas
El bloque no es propietario del shell de la barra lateral. La URL guardada tiene prioridad, después la ruta de inicio del sitio y después /. La salida con solo logotipo utiliza aria-label.
Sidebar Navigation (`sidebar-navigation`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-navigation.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="sidebar-navigation">
<nav class="wb-sidebar-nav" aria-label="Documentation navigation">
<div class="wb-sidebar-section">
<a href="/docs" class="wb-sidebar-link is-active" aria-current="page">
<i class="wb-icon wb-icon-book wb-sidebar-icon" aria-hidden="true"></i>
<span>Docs</span>
</a>
</div>
</nav>
</div>
Principales clases CSS / WebBlocks UI
wb-sidebar-nav, wb-sidebar-section, wb-sidebar-link, wb-nav-group, wb-nav-group-toggle, wb-nav-group-items, wb-nav-group-item, wb-icon, wb-sidebar-icon, is-active.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.menu_key | clave de menú conocida | Renderiza el árbol de CMS Navigation cuando está presente. |
| {'es': 'hijos manuales', 'it': 'figli manuali', 'fr': 'enfants manuels'} | sidebar-nav-item/sidebar-nav-group | Renderiza los bloques hijos manuales cuando el modo de menú no aporta elementos. |
| settings.show_icons | booleano | El efecto sobre la visibilidad de los iconos necesita confirmarse en el código fuente. |
| settings.active_matching | valor | El comportamiento de coincidencia activa lo determina un helper; la salida visible es is-active/aria-current cuando hay coincidencia. |
Usar para / Evitar para
Usar para: bloques de navegación de documentación o de barra lateral.
Evitar para: barras laterales de marketing corrientes sin semántica de navegación.
Notas
El bloque puede renderizar un menú de CMS Navigation o bloques hijos manuales sidebar-nav-item / sidebar-nav-group. No es propietario del shell exterior de la página ni de la barra lateral.
Sidebar Nav Item (`sidebar-nav-item`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-nav-item.blade.php
HTML renderizado
<a href="/docs/page" class="wb-sidebar-link is-active" aria-current="page">
<i class="wb-icon wb-icon-file wb-sidebar-icon" aria-hidden="true"></i>
<span>Page</span>
</a>
Elemento de grupo anidado:
<a href="/docs/child" class="wb-nav-group-item">
<span>Child</span>
</a>
Principales clases CSS / WebBlocks UI
wb-sidebar-link, wb-nav-group-item, wb-icon, wb-sidebar-icon, is-active.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.url | URL segura | Obligatorio para que haya salida. |
| settings.target | _blank | Añade los atributos target/rel externos. |
| settings.icon | slug/clase de icono | Renderiza wb-icon ... wb-sidebar-icon cuando está configurado. |
| settings.active_mode | exact/current-page/manual/default | Controla el helper de estado activo; la salida visible es is-active y aria-current. |
| settings.manual_active | true | Puede forzar la salida activa cuando el modo activo es manual. |
Usar para / Evitar para
Usar para: enlaces manuales de la barra lateral.
Evitar para: enlaces de la barra de navegación o botones genéricos.
Notas
El renderizador delega en sidebar-nav-item-link.blade.php. No emite nada si faltan la URL o la etiqueta.
Sidebar Nav Group (`sidebar-nav-group`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-nav-group.blade.php
HTML renderizado
<div class="wb-nav-group is-open" data-wb-nav-group>
<button type="button" class="wb-nav-group-toggle is-active" data-wb-nav-group-toggle>
<span class="wb-nav-group-icon"><i class="wb-icon wb-icon-folder" aria-hidden="true"></i></span>
<span class="wb-nav-group-label">Group</span>
<span class="wb-nav-group-arrow" aria-hidden="true"></span>
</button>
<div class="wb-nav-group-items" id="wb-nav-group-items-1">
<a href="/docs/child" class="wb-nav-group-item">...</a>
</div>
</div>
Principales clases CSS / WebBlocks UI
wb-nav-group, is-open, wb-nav-group-toggle, is-active, wb-nav-group-icon, wb-icon, wb-nav-group-label, wb-nav-group-arrow, wb-nav-group-items, wb-nav-group-item.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.icon | slug/clase de icono | Renderiza el marcado del icono del grupo cuando está configurado. |
| settings.initially_open | true/predeterminado | Añade is-open. |
| settings.initially_open | false | El grupo empieza cerrado. |
| {'es': 'sidebar-nav-item hijo', 'it': 'sidebar-nav-item figlio', 'fr': 'sidebar-nav-item enfant'} | hijos publicados | Se renderiza dentro de .wb-nav-group-items. |
Usar para / Evitar para
Usar para: grupos plegables dentro de Sidebar Navigation.
Evitar para: acordeones generales; utilice Accordion.
Notas
El grupo solo se renderiza cuando tiene una etiqueta e hijos sidebar-nav-item publicados. Utiliza los hooks de nav-group de WebBlocks UI.
Sidebar Footer (`sidebar-footer`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-footer.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="sidebar-footer">
<div class="wb-sidebar-footer">
<div class="wb-callout wb-callout-info">
<div class="wb-callout-title">Title</div>
<p>Copy.</p>
</div>
<p class="wb-text-xs wb-text-muted wb-mt-3 wb-mb-0">Footer note.</p>
</div>
</div>
Principales clases CSS / WebBlocks UI
wb-sidebar-footer, wb-callout, la clase de variante procedente de sidebarFooterVariantClass(), wb-callout-title, wb-text-xs, wb-text-muted, wb-mt-3, wb-mb-0.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.variant | success/warning/danger | sidebarFooterVariantClass() añade wb-callout-success, wb-callout-warning o wb-callout-danger. |
| settings.variant | info/predeterminado/otro | Añade wb-callout-info. |
| title/content/subtitle | todos vacíos | El renderizador no emite nada. |
| subtitle | texto | Renderiza la nota de pie con wb-text-xs wb-text-muted wb-mt-3 wb-mb-0. |
Usar para / Evitar para
Usar para: notas breves de la barra lateral o llamadas a la acción.
Evitar para: las CTA principales de la página.
Notas
El bloque solo se renderiza cuando existe title, content o subtitle. No es propietario del shell de la barra lateral.
HTML (Trusted) (`html`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/html.blade.php
HTML renderizado
<div class="wb-public-block" data-wb-public-block-type="html">
<div>
<!-- trusted HTML content -->
</div>
</div>
Principales clases CSS / WebBlocks UI
El renderizador en sí no añade ninguna clase fija de WebBlocks UI. El wrapper genérico utiliza wb-public-block.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| content | HTML de confianza | Se renderiza dentro de un simple, dentro del wrapper público genérico. |
| {'es': 'fragmentos overlay/body-end', 'it': 'frammenti overlay/body-end', 'fr': 'fragments overlay/body-end'} | reconocidos por el extractor | Se pueden elevar mediante TrustedHtmlOverlayExtractor, PublicOverlayRegistry y PublicBodyEndRegistry. |
| {'es': 'contenido no confiable', 'it': 'contenuto non attendibile', 'fr': 'contenu non approuvé'} | n/d | No lo utilice; este renderizador presupone marcado estático de confianza. |
Usar para / Evitar para
Usar para: marcado de reserva ya revisado que los bloques estructurados todavía no pueden representar.
Evitar para: la salida predeterminada de páginas migradas o creadas por IA.
Notas
El HTML de confianza puede extraer fragmentos de overlay y de final de body mediante TrustedHtmlOverlayExtractor, PublicOverlayRegistry y PublicBodyEndRegistry. Utilícelo únicamente para marcado estático de confianza.
Button (`button`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/button.blade.php
HTML renderizado
<a href="/start" class="wb-btn wb-btn-primary">Open link</a>
Variante sin URL:
<button type="button" class="wb-btn wb-btn-primary">Open link</button>
Principales clases CSS / WebBlocks UI
wb-btn, wb-btn-primary, wb-btn-secondary, wb-btn-outline, wb-btn-ghost, wb-btn-danger, wrapper opcional de hijos wb-stack wb-gap-4.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | primary/secondary/outline/ghost/danger | Se asigna a wb-btn más la clase de variante correspondiente. |
| variant | vacío/otro | Adopta de forma predeterminada wb-btn wb-btn-primary. |
| {'es': 'URL del medio adjunto', 'it': 'URL del media allegato', 'fr': 'URL du média joint'} | presente | Tiene prioridad sobre la URL canónica por compatibilidad. |
| url | presente sin adjunto | Renderiza un enlace. |
| url | vacío | Renderiza un inerte. |
Usar para / Evitar para
Usar para: acciones hijas gestionadas dentro de Hero/CTA.
Evitar para: botones independientes de página; utilice Button Link.
Notas
Este es un bloque de acción hija gestionado para Hero/CTA. No figura en la lista actual del catálogo publicado de CoreBlockTypeCatalogSyncer, pero existen renderizadores públicos y soporte de conversión. La URL del adjunto tiene prioridad sobre la URL canónica por compatibilidad.
Callout (`callout`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/callout.blade.php
HTML renderizado
<div class="wb-alert wb-alert-info">
<div>
<div class="wb-alert-title">Title</div>
<div>Content</div>
</div>
</div>
Principales clases CSS / WebBlocks UI
wb-alert, wb-alert-info, wb-alert-success, wb-alert-warning, wb-alert-danger, wb-alert-title, wrapper opcional de hijos wb-stack wb-gap-4.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | success/warning/danger | Añade la clase wb-alert-{tone} correspondiente. |
| variant | info/predeterminado/otro | Añade wb-alert-info. |
| {'es': 'hijos', 'it': 'figli', 'fr': 'enfants'} | hijos publicados | Se renderizan después dentro de wb-stack wb-gap-4. |
| {'es': 'preferido en páginas nuevas', 'it': 'preferito nelle nuove pagine', 'fr': 'préféré pour les nouvelles pages'} | n/d | Utilice Alert para los avisos de primer nivel en páginas nuevas. |
Usar para / Evitar para
Usar para: contenido de tipo alerta heredado o compatible con el conversor.
Evitar para: páginas estructuradas nuevas; utilice Alert.
Notas
callout es un renderizador heredado y compatible con la conversión, y visualmente se corresponde con el patrón alert. No figura como fila publicada actual del catálogo principal, mientras que alert sí.
List (`list`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/list.blade.php
HTML renderizado
<div class="wb-stack wb-gap-2">
<h3>List title</h3>
<ul class="wb-stack wb-gap-1">
<li>Item</li>
</ul>
</div>
Principales clases CSS / WebBlocks UI
wb-stack, wb-gap-2, wb-gap-1, wrapper opcional de hijos wb-stack wb-gap-4.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| variant | ordered | Renderiza . |
| variant | predeterminado/otro | Renderiza . |
| settings.items/cards/entries | array | Se utiliza como fuente de elementos cuando está disponible. |
| content | texto separado por líneas | Se utiliza como fuente de elementos de reserva. |
| title | texto | Renderiza un encabezado encima de la lista. |
Usar para / Evitar para
Usar para: listas sencillas importadas o introducidas manualmente.
Evitar para: listas de navegación o texto de cuerpo enriquecido que corresponde a Rich Text.
Notas
Este renderizador existe por compatibilidad y para la conversión. Los elementos proceden de los settings (items, cards, entries) o de contenido separado por líneas. variant = ordered cambia ul por ol.
Text (`text`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/text.blade.php
HTML renderizado
<div class="wb-stack wb-gap-2">
<strong>Title</strong>
<p>Content</p>
</div>
Principales clases CSS / WebBlocks UI
wb-stack, wb-gap-2, wrapper opcional de hijos wb-stack wb-gap-4.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| title | texto | Renderiza encima del párrafo cuando está presente. |
| content | texto | Renderiza un párrafo dentro de wb-stack wb-gap-2. |
| {'es': 'hijos', 'it': 'figli', 'fr': 'enfants'} | hijos publicados | Renderiza después los bloques hijos dentro de wb-stack wb-gap-4. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas creadas a mano; utilice los bloques estructurados canónicos que aparecen más arriba.
Notas
Este es un renderizador de compatibilidad. El bloque principal canónico actual para texto de cuerpo simple es plain_text.
Partial interno de acciones (`_actions`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/_actions.blade.php
HTML renderizado
<div class="wb-cluster wb-cluster-2">
<a href="/start" class="wb-btn wb-btn-primary">Start</a>
</div>
Principales clases CSS / WebBlocks UI
Wrapper predeterminado wb-cluster wb-cluster-2, o una clase de wrapper proporcionada por el llamador.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| {'es': 'entrada buttons', 'it': 'input buttons', 'fr': 'entrée buttons'} | bloques hijos de tipo button | Filtra solo los hijos de tipo button y los renderiza. |
| {'es': 'entrada wrapperClass', 'it': 'input wrapperClass', 'fr': 'entrée wrapperClass'} | cadena de clase proporcionada | Utiliza la clase de wrapper proporcionada. |
| {'es': 'entrada wrapperClass', 'it': 'input wrapperClass', 'fr': 'entrée wrapperClass'} | vacío | Adopta de forma predeterminada wb-cluster wb-cluster-2. |
Usar para / Evitar para
Usar para: la salida de acciones de Hero/CTA gestionada por el renderizador.
Evitar para: la composición directa de páginas.
Notas
Este es un partial auxiliar interno, no un bloque publicado independiente. Filtra la colección recibida a los hijos de tipo button y renderiza cada hijo mediante el partial de bloque habitual.
Card Grid (`card-grid`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/card-grid.blade.php
HTML renderizado
<section class="wb-stack wb-gap-4">
<div class="wb-stack wb-gap-1">
<h2>Cards</h2>
<p class="wb-text-muted">Intro</p>
</div>
<div class="wb-grid wb-grid-3">
<div class="wb-card">
<div class="wb-card-body wb-stack wb-gap-2">
<img src="/media/card.jpg" alt="Card image">
<strong>Card title</strong>
<p class="wb-m-0">Card content.</p>
<a href="/target" class="wb-link">Read more</a>
</div>
</div>
</div>
</section>
Principales clases CSS / WebBlocks UI
wb-stack, wb-gap-4, wb-gap-1, wb-text-muted, wb-grid, wb-grid-2, wb-grid-3, wb-grid-4, wb-card, wb-card-body, wb-gap-2, wb-m-0, wb-link.
Mapa de settings -> clase / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.items | array | Determina la salida de las tarjetas; cada elemento puede incluir asset_id, title, content, url y url_label. |
| {'es': 'número de settings.items', 'it': 'numero di settings.items', 'fr': 'nombre de settings.items'} | 0-1/2/3/4+ | Utiliza wb-stack wb-gap-3, wb-grid wb-grid-2, wb-grid wb-grid-3 o wb-grid wb-grid-4. |
| item.asset_id | id de medio | Renderiza la imagen del elemento cuando existe la URL del medio. |
| item.url + item.url_label | texto | Renderiza a.wb-link. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas creadas a mano; utilice los bloques estructurados canónicos que aparecen más arriba.
Notas
Este es un renderizador heredado o de compatibilidad respaldado por settings.items. La clase de rejilla cambia según el número de elementos.
Contact Info (`contact-info`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/contact-info.blade.php
HTML renderizado
<section class="wb-card wb-card-muted wb-public-contact-card">
<div class="wb-card-body wb-stack wb-gap-3">
<div class="wb-stack wb-gap-1">
<h2>Contact</h2>
<p>Reach us.</p>
</div>
<div class="wb-stack wb-gap-1 wb-public-contact-meta">
<strong>Email</strong>
<a href="mailto:hello@example.test" class="wb-link">hello@example.test</a>
</div>
</div>
</section>
Principales clases CSS / WebBlocks UI
wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-3, wb-gap-1, wb-link, además de las clases específicas del CMS wb-public-contact-card y wb-public-contact-meta.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.items | array | Renderiza las filas de contacto dentro de wb-public-contact-meta. |
| item.url | URL segura | Renderiza el valor enlazado con wb-link. |
| item.target | _blank | Añade atributos target/rel externos. |
| item.label/value | texto | Renderiza la etiqueta y el valor sin formato cuando no existe una URL segura. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este es un renderizador heredado/de compatibilidad respaldado por settings.items. Los enlaces pasan por Block::safePublicUrl().
FAQ List (`faq-list`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/faq-list.blade.php
HTML renderizado
<div class="wb-stack wb-gap-3">
<details class="wb-card">
<summary class="wb-card-header"><strong>Question?</strong></summary>
<div class="wb-card-body">Answer.</div>
</details>
</div>
Clases CSS principales / de WebBlocks UI
Utiliza las clases del renderizador accordion.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | delegado | Incluye directamente el renderizador Accordion. |
| filas hijas | título y contenido | Siguen el contrato de elemento desplegable de Accordion. |
| páginas nuevas preferidas | n/a | Utilice accordion como bloque padre canónico. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este parcial de compatibilidad delega directamente en accordion.blade.php.
Gallery Viewer (`gallery-viewer`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/gallery-viewer.blade.php
HTML renderizado
<div class="wb-modal wb-modal-xl" id="wb-gallery-viewer-1" role="dialog" aria-modal="true">
<div class="wb-modal-dialog">
<div class="wb-modal-body">
<div class="wb-gallery-viewer">
<div class="wb-gallery-viewer-toolbar">
<button class="wb-btn wb-btn-secondary wb-btn-icon wb-gallery-viewer-prev" type="button"></button>
<div class="wb-gallery-viewer-counter" aria-live="polite">1 / 3</div>
</div>
<figure class="wb-gallery-viewer-media">
<img class="wb-gallery-viewer-image" src="/media/full.jpg" alt="Image">
<figcaption class="wb-gallery-viewer-caption">Caption</figcaption>
</figure>
</div>
</div>
</div>
</div>
Clases CSS principales / de WebBlocks UI
wb-modal, wb-modal-xl, wb-modal-dialog, wb-modal-body, wb-gallery-viewer, wb-gallery-viewer-toolbar, wb-btn, wb-btn-secondary, wb-btn-icon, wb-icon, wb-gallery-viewer-counter, wb-gallery-viewer-media, wb-gallery-viewer-image, wb-gallery-viewer-caption, wb-gallery-viewer-meta, wb-text-sm, wb-text-muted, wb-m-0.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| entrada viewerId | cadena de id | Define el id de destino del modal/galería que usan los disparadores de galería. |
| entrada galleryItems | colección | Renderiza las diapositivas/elementos del visor a partir de los datos de elemento preparados por Gallery. |
| ajustes directos del bloque | n/a | Parcial interno; no tiene mapa de ajustes de bloque independiente. |
Usar para / Evitar para
Usar para: el marcado de superposición de la caja de luz de Gallery registrado por Gallery.
Evitar para: el uso manual como bloque de página.
Notas
Este es un ayudante de superposición utilizado por los renderizadores de galería/escaparate a través de PublicOverlayRegistry, no un bloque independiente.
Map (`map`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/map.blade.php
HTML renderizado
<div class="wb-card wb-card-muted">
<div class="wb-card-body wb-stack wb-gap-2">
<strong>Location</strong>
<p class="wb-m-0">Address text</p>
<a href="https://maps.google.com/?q=Address" class="wb-btn wb-btn-secondary" target="_blank" rel="noopener noreferrer">Open map</a>
</div>
</div>
Clases CSS principales / de WebBlocks UI
wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-2, wb-m-0, wb-btn, wb-btn-secondary, y el contenedor opcional de hijos wb-stack wb-gap-4.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| url | URL http/https | Se acepta como origen de mapa seguro y se muestra cuando difiere del contenido. |
| content | texto o consulta | Se usa como consulta de mapa de reserva. |
| title | texto | Renderiza dentro de la tarjeta. |
| children | hijos publicados | Renderiza después los bloques hijos dentro de wb-stack wb-gap-4. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este es un renderizador heredado/de compatibilidad. Solo acepta los esquemas de URL http y https para la URL sin procesar y puede renderizar hijos después de la tarjeta.
Menu (`menu`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/menu.blade.php
HTML renderizado
<nav class="wb-stack wb-gap-2" aria-label="Menu">
<ul class="wb-cluster wb-cluster-2 wb-cluster-between">
<li><a href="/page" class="wb-btn wb-btn-secondary">Page</a></li>
</ul>
</nav>
Clases CSS principales / de WebBlocks UI
Utiliza las clases del renderizador navigation-auto.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | delegado | Incluye directamente el renderizador Navigation Auto. |
| settings.menu_key/location | clave de menú conocida | Sigue el comportamiento de selección de menú de Navigation Auto. |
| páginas nuevas preferidas | n/a | Utilice Navbar Navigation o Navigation Auto de forma intencionada, no menu. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este parcial de compatibilidad delega directamente en navigation-auto.blade.php.
Metric Card (`metric-card`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/metric-card.blade.php
HTML renderizado
<div class="wb-stat">
<div class="wb-stat-label">Label</div>
<div class="wb-stat-value">42</div>
<div class="wb-stat-delta">+8%</div>
</div>
Clases CSS principales / de WebBlocks UI
wb-stat, wb-stat-label, wb-stat-value, wb-stat-delta, y el contenedor opcional de hijos wb-stack wb-gap-4.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | alias delegado | Delega en una ruta de renderizador existente; el mapa exacto de ajustes sigue al delegado cuando es visible. |
| páginas nuevas preferidas | n/a | Prefiera el bloque canónico indicado en Notas en lugar de este bloque de alias/compatibilidad. |
Usar para / Evitar para
Usar para: contenido heredado con el alias metric-card.
Evitar para: contenido nuevo; utilice Stat Card o las estadísticas de Columns.
Notas
Este es un renderizador de métricas heredado/de compatibilidad. El catálogo publicado actual utiliza stat-card.
Showcase List (`showcase-list`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/showcase-list.blade.php
HTML renderizado
<section class="wb-stack wb-gap-6">
<div class="wb-stack wb-gap-1">
<h2>Projects</h2>
<p>Selected work.</p>
</div>
<article class="wb-card wb-card-muted wb-public-showcase-item">
<div class="wb-card-body wb-stack wb-gap-4">
<div class="wb-stack wb-gap-1">
<h3>Project</h3>
<p>Summary.</p>
</div>
<section class="wb-gallery" aria-label="Project screenshots">
<div class="wb-gallery-grid">
<figure class="wb-gallery-item">
<a href="/media/full.jpg" class="wb-gallery-trigger" data-wb-gallery-target="#wb-gallery-viewer-1">
<img src="/media/full.jpg" alt="Project image" class="wb-gallery-media">
</a>
<figcaption class="wb-gallery-caption">Screenshot</figcaption>
</figure>
</div>
</section>
<a href="/project" class="wb-link">View project</a>
</div>
</article>
</section>
Clases CSS principales / de WebBlocks UI
wb-stack, wb-gap-6, wb-gap-1, wb-card, wb-card-muted, wb-card-body, wb-gap-4, wb-gallery, wb-gallery-grid, wb-gallery-item, wb-gallery-trigger, wb-gallery-media, wb-gallery-caption, wb-link, además de la clase específica del CMS wb-public-showcase-item.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.items | array | Renderiza un elemento de escaparate en tarjeta atenuada por cada entrada. |
| item.images[].asset_id | id de medio | Renderiza las figuras de la galería y registra un visor de galería compartido cuando hay imágenes. |
| item.url | URL segura | Renderiza un wb-link externo con target/rel. |
| item.title/subtitle/url_label | texto | Renderiza los encabezados del escaparate y la etiqueta del enlace. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este es un renderizador heredado/de compatibilidad respaldado por settings.items. Puede insertar el marcado de superposición gallery-viewer en PublicOverlayRegistry.
Sidebar Nav Item Link (`sidebar-nav-item-link`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-nav-item-link.blade.php
HTML renderizado
<a href="/docs" class="wb-sidebar-link is-active" aria-current="page">
<i class="wb-icon wb-icon-book-open wb-sidebar-icon" aria-hidden="true"></i>
<span>Docs</span>
</a>
Clases CSS principales / de WebBlocks UI
wb-sidebar-link, wb-nav-group-item, is-active, wb-icon, wb-sidebar-icon.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| entrada nested | true | Utiliza wb-nav-group-item. |
| entrada nested | false | Utiliza wb-sidebar-link. |
| URL/etiqueta del elemento de la barra lateral | presente | Obligatorio para generar el ancla. |
| icono del elemento | configurado | Renderiza i.wb-icon.wb-icon-{icon}.wb-sidebar-icon. |
| ayudante active | true | Añade is-active y aria-current="page". |
Usar para / Evitar para
Usar para: la salida interna de enlaces de la barra lateral compartida por los renderizadores de elementos de la barra lateral.
Evitar para: la composición directa de páginas.
Notas
Este es un ayudante interno para sidebar-nav-item y sidebar-nav-group. La clase cambia a wb-nav-group-item cuando se renderiza anidado.
Sidebar Navigation Menu Item (`sidebar-navigation-menu-item`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/sidebar-navigation-menu-item.blade.php
HTML renderizado
<div class="wb-nav-group is-open" data-wb-nav-group>
<button type="button" class="wb-nav-group-toggle is-active" aria-expanded="true" data-wb-nav-group-toggle>
<span class="wb-nav-group-icon"><i class="wb-icon wb-icon-folder" aria-hidden="true"></i></span>
<span class="wb-nav-group-label">Group</span>
<span class="wb-nav-group-arrow" aria-hidden="true"></span>
</button>
<div class="wb-nav-group-items">
<a href="/child" class="wb-nav-group-item">Child</a>
</div>
</div>
Clases CSS principales / de WebBlocks UI
wb-nav-group, is-open, wb-nav-group-toggle, is-active, wb-nav-group-icon, wb-icon, wb-nav-group-label, wb-nav-group-arrow, wb-nav-group-items, wb-nav-group-item, wb-sidebar-link, wb-sidebar-icon.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| link_type de NavigationItem | grupo con hijos visibles | Renderiza .wb-nav-group con conmutador y elementos anidados. |
| entrada nested | true | Los enlaces hijos utilizan wb-nav-group-item. |
| entrada showIcons | true | Permite que se rendericen los iconos de barra lateral de los elementos. |
| ayudante active | true | Añade is-open/is-active y aria-current cuando corresponde. |
Usar para / Evitar para
Usar para: el renderizado interno de elementos de menú del CMS para la navegación en la barra lateral.
Evitar para: la composición directa de páginas.
Notas
Este ayudante renderiza las filas NavigationItem del CMS para sidebar-navigation cuando ese bloque se basa en un menú en lugar de en hijos manuales.
Slider (`slider`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/slider.blade.php
HTML renderizado
<section class="wb-stack wb-gap-3">
<h3>Slider</h3>
<div class="wb-slider wb-card wb-card-muted" data-wb-slider>
<div class="wb-slider-track" data-wb-slider-track>
<article class="wb-slider-slide" data-wb-slider-slide>
<div class="wb-card-body wb-stack wb-gap-3">
<img src="/media/slide.jpg" alt="Slide">
<div class="wb-stack wb-gap-1">
<strong>Slide title</strong>
<p>Caption.</p>
</div>
</div>
</article>
</div>
<div class="wb-card-body wb-slider-controls">
<button type="button" class="wb-btn wb-btn-secondary" data-wb-slider-prev>Previous</button>
<div class="wb-slider-dots" role="tablist">
<button type="button" class="wb-slider-dot is-active" data-wb-slider-dot></button>
</div>
<button type="button" class="wb-btn wb-btn-secondary" data-wb-slider-next>Next</button>
</div>
</div>
<p class="wb-text-sm wb-text-muted">Caption</p>
</section>
Clases CSS principales / de WebBlocks UI
wb-stack, wb-gap-3, wb-slider, wb-card, wb-card-muted, wb-slider-track, wb-slider-slide, wb-card-body, wb-gap-1, wb-slider-controls, wb-btn, wb-btn-secondary, wb-slider-dots, wb-slider-dot, is-active, wb-text-sm, wb-text-muted.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| medios de la galería | uno o más activos | Renderiza las diapositivas a partir de galleryAssets(). |
| número de medios de la galería | más de uno | Renderiza los controles anterior/siguiente y los puntos. |
| title | texto | Renderiza un encima del slider. |
| subtitle | texto | Renderiza texto de ayuda atenuado debajo del slider. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este es un renderizador heredado/de compatibilidad respaldado por galleryAssets(). Los controles del slider solo se renderizan cuando hay más de un activo de diapositiva.
Stats (`stats`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/stats.blade.php
HTML renderizado
<section class="wb-stack wb-gap-4">
<div class="wb-grid wb-grid-3">
<div class="wb-stat">
<div class="wb-stat-label">Metric</div>
<div class="wb-stat-value">42</div>
</div>
</div>
</section>
Clases CSS principales / de WebBlocks UI
Utiliza el renderizador columns con variant = stats, incluidas wb-stat, wb-stat-label, wb-stat-value y wb-stat-delta para los bloques hijos column_item.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | alias delegado | Delega en una ruta de renderizador existente; el mapa exacto de ajustes sigue al delegado cuando es visible. |
| páginas nuevas preferidas | n/a | Prefiera el bloque canónico indicado en Notas en lugar de este bloque de alias/compatibilidad. |
Usar para / Evitar para
Usar para: contenido heredado con el alias stats.
Evitar para: grupos de estadísticas nuevos; utilice Columns con la variante stats o Stat Card.
Notas
Este parcial de compatibilidad delega en columns.blade.php después de forzar la variante a stats.
Tabs (`tabs`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/tabs.blade.php
HTML renderizado
<div class="wb-card">
<div class="wb-card-header">
<strong>Tab</strong>
<span>Subtitle</span>
</div>
<div class="wb-card-body">
<div>Content</div>
</div>
</div>
Clases CSS principales / de WebBlocks UI
wb-card, wb-card-header, wb-card-body, y el contenedor opcional de hijos wb-stack wb-gap-4.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| title | texto/predeterminado | Renderiza el título de la cabecera de la tarjeta, con Tab por defecto. |
| subtitle | texto | Renderiza un span secundario en la cabecera. |
| content | texto/texto HTML | Se renderiza dentro de .wb-card-body. |
| children | hijos publicados | Renderiza después los bloques hijos dentro de wb-stack wb-gap-4. |
Usar para / Evitar para
Usar para: contenido heredado o compatible con el conversor que ya depende de este renderizador.
Evitar para: páginas nuevas construidas a mano; utilice los bloques estructurados canónicos indicados cerca del principio.
Notas
Este es un renderizador heredado/de compatibilidad. Renderiza los hijos después de la tarjeta si existen bloques hijos.
Testimonial (`testimonial`)
Origen del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/testimonial.blade.php
HTML renderizado
<blockquote class="wb-card wb-card-muted">
<div class="wb-card-body wb-stack wb-gap-2">
<p class="wb-m-0">Quote text.</p>
<footer class="wb-text-sm wb-text-muted">Name</footer>
</div>
</blockquote>
Clases CSS principales / de WebBlocks UI
Utiliza el renderizador quote con variant = testimonial.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| comportamiento del renderizador | alias delegado | Delega en una ruta de renderizador existente; el mapa exacto de ajustes sigue al delegado allí donde sea visible. |
| páginas nuevas preferidas | n/d | Prefiera el bloque canónico indicado en las Notas en lugar de este bloque de alias/compatibilidad. |
Usar para / Evitar para
Usar para: contenido heredado con el alias testimonial.
Evitar para: citas nuevas; use Quote con la variante testimonial si es necesario.
Notas
Este partial de compatibilidad delega en quote.blade.php tras forzar la variante a testimonial.
Fallback Renderer (`fallback`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/fallback.blade.php
HTML renderizado
<section class="wb-card wb-card-muted">
<div class="wb-card-body wb-stack wb-gap-3">
<div class="wb-stack wb-gap-1">
<h3>Block title</h3>
<p>Block content.</p>
</div>
<div class="wb-grid wb-grid-2">
<!-- fallback child/content output -->
</div>
</div>
</section>
Clases CSS principales / WebBlocks UI
Las ramas de fallback usan primitivas existentes, entre ellas wb-card, wb-card-muted, wb-card-body, wb-stack, wb-gap-1, wb-gap-2, wb-gap-3, wb-grid, wb-grid-2, wb-grid-3, wb-table-wrap, wb-table, wb-table-striped, wb-slider, wb-btn, wb-link, wb-input, wb-textarea y wb-select.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| settings.items/cards/entries | arrays | Pueden generar una salida de compatibilidad con estilo de lista o de tarjeta según la rama de fallback. |
| settings.rows/options/related_slugs | arrays | Las usan las ramas de fallback cuando están presentes. |
| tipo de bloque/contexto de origen | variable | requiere confirmación en el código fuente para determinar la rama exacta. |
Usar para / Evitar para
Usar para: un renderizado degradado y seguro de bloques de producción no admitidos.
Evitar para: la composición planificada de páginas o las migraciones normales.
Notas
Este es el renderizador de seguridad para slugs desconocidos o de transición. Contiene salidas específicas por rama para slugs antiguos como comparison, timeline, product-card, pagination, input, textarea, select, checkbox-group y radio-group. Es preferible documentar los archivos de renderizador dedicados allí donde existan.
Missing Renderer (`missing-renderer`)
Fuente del renderizador
packages/webblocks-cms/resources/views/pages/partials/blocks/missing-renderer.blade.php
HTML renderizado
<div class="wb-alert wb-alert-warning">
<div>
<div class="wb-alert-title">Missing Block Renderer</div>
<div>Expected renderer for <code>unknown</code> at <code>...</code>.</div>
</div>
</div>
Clases CSS principales / WebBlocks UI
wb-alert, wb-alert-warning, wb-alert-title.
Ajustes -> mapa de clases / marcado
| Ajuste | Valor | Efecto en la salida |
|---|---|---|
| slug de tipo | cualquier slug sin renderizador | Muestra una alerta de advertencia que nombra el archivo de renderizador esperado. |
| entorno | vía de fallback fuera de producción | Se usa cuando no existe ningún renderizador público fuera de producción. |
| ajustes de runtime | n/d | Ningún ajuste del bloque afecta a esta salida de advertencia. |
Usar para / Evitar para
Usar para: dar visibilidad al desarrollador cuando no existe renderizador fuera de producción.
Evitar para: el diseño de contenido público.
Notas
Este renderizador de diagnóstico se usa cuando no se puede resolver un renderizador de bloque concreto.