Components (registry)Layout
Hero Split
Layout template: hero-split
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
{{eyebrow}}{{heading}}{{body}}{{cta_primary_href}}{{cta_primary}}{{cta_secondary_href}}{{cta_secondary}}{{media}}- Componentes requeridos
chipbutton
Anatomía CSS
<div class="layoutHeroSplit"> </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 | bg | #f5f5f5 | muted |
| 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: hero-split — structure only */
.l-hero-split {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: center;
padding: 80px 32px;
}
@media (max-width: 768px) {
.l-hero-split { grid-template-columns: 1fr; }
}
.l-hero-split__content {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 24px;
}
.l-hero-split__heading { max-width: 520px; }
.l-hero-split__body { max-width: 440px; }
.l-hero-split__actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
}
.l-hero-split__media {
display: flex;
align-items: center;
justify-content: center;
}
.l-hero-split__placeholder {
width: 100%;
aspect-ratio: 4/3;
border-radius: 12px;
border: 1px solid #e5e5e5;
background: #f5f5f5;
display: flex;
align-items: center;
justify-content: center;
}
Codigo fuente
layouts/hero-split.css
/* Layout: hero-split — structure only */ .l-hero-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-12); align-items: center; padding: var(--spacing-20) var(--spacing-8); } @media (max-width: 768px) { .l-hero-split { grid-template-columns: 1fr; } } .l-hero-split__content { display: flex; flex-direction: column; align-items: flex-start; gap: var(--spacing-6); } .l-hero-split__heading { max-width: 520px; } .l-hero-split__body { max-width: 440px; } .l-hero-split__actions { display: flex; gap: var(--spacing-3); flex-wrap: wrap; } .l-hero-split__media { display: flex; align-items: center; justify-content: center; } .l-hero-split__placeholder { width: 100%; aspect-ratio: 4/3; border-radius: var(--radius-lg); border: 1px solid var(--border); background: var(--muted); display: flex; align-items: center; justify-content: center; }