Components (registry)Layout
CTA Split con Imagen
Layout template: cta-split-image
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
{{headline}}{{subtitle}}{{primaryCta_href}}{{primaryCta}}{{secondaryCta_href}}{{secondaryCta}}{{media}}{{media_alt}}- Componentes requeridos
whatsapp-buttonbuttontypographyimage
Anatomía CSS
<div class="layoutCtaSplitImage"> </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 | fg | #525252 | muted.foreground |
CSS mínimo funcional
Autocontenido: sin imports ni tokens. Para previews y prototipos — en producción se consume el CSS del DS.
/* Layout: cta-split-image — structure only.
El ancho y el gutter los da .container; la seccion aporta el ritmo (.section). */
.l-cta-split-image__container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 32px;
align-items: center;
}
@media (max-width: 768px) {
.l-cta-split-image__container {
grid-template-columns: 1fr;
}
}
.l-cta-split-image__headline {
font-size: 31.25px;
}
.l-cta-split-image__subtitle {
color: #525252;
}
.l-cta-split-image__actions {
display: flex;
gap: 12px;
margin-top: 16px;
}
.l-cta-split-image__media img {
width: 100%;
border-radius: 12px;
}
Codigo fuente
layouts/cta-split-image.css
/* Layout: cta-split-image — structure only. El ancho y el gutter los da .container; la seccion aporta el ritmo (.section). */ .l-cta-split-image__container { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-8); align-items: center; } @media (max-width: 768px) { .l-cta-split-image__container { grid-template-columns: 1fr; } } .l-cta-split-image__headline { font-size: var(--font-size-2xl); } .l-cta-split-image__subtitle { color: var(--muted-foreground); } .l-cta-split-image__actions { display: flex; gap: var(--spacing-3); margin-top: var(--spacing-4); } .l-cta-split-image__media img { width: 100%; border-radius: var(--radius-lg); }