Components (registry)Layout
Cta Banner
Layout template: cta-banner
Contrato del layout
Un layout transporta anatomia, no pintura: se rellena por slots y depende del CSS de los componentes que lista. Instalarlo sin ellos lo deja sin estilos.
- Slots
{{heading}}{{body}}{{cta_primary_href}}{{cta_primary}}{{cta_secondary_href}}{{cta_secondary}}- Componentes requeridos
button
Anatomía CSS
<div class="layoutCtaBanner"> </div>
Tokens resueltos
Valores finales tras seguir la cadena de tokens. Derivados del source: si un token cambia, esta tabla cambia sola.
| Variante | Prop | Valor | Token |
|---|---|---|---|
| all | border | #e5e5e5 | border |
CSS mínimo funcional
Autocontenido: sin imports ni tokens. Para previews y prototipos — en producción se consume el CSS del DS.
/* Layout: cta-banner — structure only */
.l-cta-banner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 32px;
padding: 40px 32px;
border-radius: 12px;
border: 1px solid #e5e5e5;
}
@media (max-width: 640px) {
.l-cta-banner {
flex-direction: column;
text-align: center;
}
}
.l-cta-banner__content {
display: flex;
flex-direction: column;
gap: 8px;
max-width: 480px;
}
.l-cta-banner__actions {
display: flex;
gap: 12px;
flex-shrink: 0;
flex-wrap: wrap;
}
Codigo fuente
layouts/cta-banner.css
/* Layout: cta-banner — structure only */ .l-cta-banner { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-8); padding: var(--spacing-10) var(--spacing-8); border-radius: var(--radius-lg); border: 1px solid var(--border); } @media (max-width: 640px) { .l-cta-banner { flex-direction: column; text-align: center; } } .l-cta-banner__content { display: flex; flex-direction: column; gap: var(--spacing-2); max-width: 480px; } .l-cta-banner__actions { display: flex; gap: var(--spacing-3); flex-shrink: 0; flex-wrap: wrap; }