Components (registry)Layout
Footer Minimal
Layout template: footer-minimal
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
{{section_id}}{{logo_href}}{{logo_src}}{{logo_alt}}{{nav1_href}}{{nav1}}{{nav2_href}}{{nav2}}{{nav3_href}}{{nav3}}{{nav4_href}}{{nav4}}{{nav5_href}}{{nav5}}{{copyright}}{{legal1_href}}{{legal1}}{{legal2_href}}{{legal2}}{{legal3_href}}{{legal3}}- Componentes requeridos
typographyimage
Anatomía CSS
<div class="layoutFooterMinimal"> </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 | #e5e5e5 | border |
| all | fg | inherit | (literal) |
CSS mínimo funcional
Autocontenido: sin imports ni tokens. Para previews y prototipos — en producción se consume el CSS del DS.
/* Layout: footer-minimal — structure only, pure DS tokens */
.l-footer-minimal {
padding: 48px 32px;
}
@media (min-width: 768px) {
.l-footer-minimal {
padding: var(--spacing-18) 32px;
}
}
@media (min-width: 1024px) {
.l-footer-minimal {
padding: 80px 32px;
}
}
.l-footer-minimal__container {
max-width: 1200px;
margin: 0 auto;
}
.l-footer-minimal__top {
display: flex;
flex-direction: column;
align-items: center;
padding-bottom: 48px;
}
@media (min-width: 768px) {
.l-footer-minimal__top {
padding-bottom: var(--spacing-18);
}
}
@media (min-width: 1024px) {
.l-footer-minimal__top {
padding-bottom: 80px;
}
}
.l-footer-minimal__logo {
display: inline-block;
margin-bottom: 32px;
}
.l-footer-minimal__nav {
display: grid;
grid-template-columns: 1fr;
gap: 24px;
justify-items: center;
}
@media (min-width: 768px) {
.l-footer-minimal__nav {
grid-template-columns: repeat(5, max-content);
grid-auto-flow: column;
gap: 24px;
justify-content: center;
justify-items: start;
}
}
.l-footer-minimal__nav-item {
font-weight: 600;
}
.l-footer-minimal__divider {
height: 1px;
width: 100%;
background-color: #e5e5e5;
}
.l-footer-minimal__bottom {
display: flex;
flex-direction: column-reverse;
align-items: center;
justify-content: space-between;
padding-top: 24px;
padding-bottom: 16px;
text-align: center;
font-size: 12.8px;
}
@media (min-width: 768px) {
.l-footer-minimal__bottom {
flex-direction: row;
padding-top: 32px;
padding-bottom: 0;
text-align: left;
}
}
.l-footer-minimal__copyright {
margin-top: 32px;
}
@media (min-width: 768px) {
.l-footer-minimal__copyright {
margin-top: 0;
}
}
.l-footer-minimal__legal {
display: grid;
grid-template-columns: max-content;
justify-content: center;
gap: 16px;
font-size: 12.8px;
}
@media (min-width: 768px) {
.l-footer-minimal__legal {
grid-auto-flow: column;
gap: 24px;
}
}
.l-footer-minimal__legal-item a {
text-decoration: underline;
text-underline-offset: 1px;
color: inherit;
}
Codigo fuente
layouts/footer-minimal.css
/* Layout: footer-minimal — structure only, pure DS tokens */ .l-footer-minimal { padding: var(--spacing-12) var(--spacing-8); } @media (min-width: 768px) { .l-footer-minimal { padding: var(--spacing-18) var(--spacing-8); } } @media (min-width: 1024px) { .l-footer-minimal { padding: var(--spacing-20) var(--spacing-8); } } .l-footer-minimal__container { max-width: 1200px; margin: 0 auto; } .l-footer-minimal__top { display: flex; flex-direction: column; align-items: center; padding-bottom: var(--spacing-12); } @media (min-width: 768px) { .l-footer-minimal__top { padding-bottom: var(--spacing-18); } } @media (min-width: 1024px) { .l-footer-minimal__top { padding-bottom: var(--spacing-20); } } .l-footer-minimal__logo { display: inline-block; margin-bottom: var(--spacing-8); } .l-footer-minimal__nav { display: grid; grid-template-columns: 1fr; gap: var(--spacing-6); justify-items: center; } @media (min-width: 768px) { .l-footer-minimal__nav { grid-template-columns: repeat(5, max-content); grid-auto-flow: column; gap: var(--spacing-6); justify-content: center; justify-items: start; } } .l-footer-minimal__nav-item { font-weight: var(--font-weight-semibold); } .l-footer-minimal__divider { height: 1px; width: 100%; background-color: var(--border); } .l-footer-minimal__bottom { display: flex; flex-direction: column-reverse; align-items: center; justify-content: space-between; padding-top: var(--spacing-6); padding-bottom: var(--spacing-4); text-align: center; font-size: var(--font-size-sm); } @media (min-width: 768px) { .l-footer-minimal__bottom { flex-direction: row; padding-top: var(--spacing-8); padding-bottom: 0; text-align: left; } } .l-footer-minimal__copyright { margin-top: var(--spacing-8); } @media (min-width: 768px) { .l-footer-minimal__copyright { margin-top: 0; } } .l-footer-minimal__legal { display: grid; grid-template-columns: max-content; justify-content: center; gap: var(--spacing-4); font-size: var(--font-size-sm); } @media (min-width: 768px) { .l-footer-minimal__legal { grid-auto-flow: column; gap: var(--spacing-6); } } .l-footer-minimal__legal-item a { text-decoration: underline; text-underline-offset: 1px; color: inherit; }