Components (registry)Layout
Comparison Table
Layout template: comparison-table
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}}{{tagline}}{{heading}}{{description}}{{product_label}}{{prod1_icon}}{{prod1_icon_alt}}{{prod1_name}}{{prod1_desc}}{{prod2_icon}}{{prod2_icon_alt}}{{prod2_name}}{{prod2_desc}}{{prod3_icon}}{{prod3_icon_alt}}{{prod3_name}}{{prod3_desc}}{{feature1_label}}{{feature1_val1}}{{feature1_val2}}{{feature1_val3}}{{feature2_label}}{{feature3_label}}{{feature4_label}}{{feature5_label}}{{cta_primary_href}}{{cta_primary}}{{cta_secondary_href}}{{cta_secondary}}- Componentes requeridos
buttontypographyimage
Anatomía CSS
<div class="layoutComparisonTable"> </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 |
| all | bg | var(--background-secondary) | --background-secondary |
CSS mínimo funcional
Autocontenido: sin imports ni tokens. Para previews y prototipos — en producción se consume el CSS del DS.
/* Layout: comparison-table — structure only, pure DS tokens */
.l-comparison-table {
padding: 80px 32px;
}
.l-comparison-table__header {
max-width: 640px;
margin: 0 auto;
text-align: center;
margin-bottom: 48px;
}
@media (min-width: 768px) {
.l-comparison-table__header {
margin-bottom: var(--spacing-18);
}
}
@media (min-width: 1024px) {
.l-comparison-table__header {
margin-bottom: 80px;
}
}
.l-comparison-table__tagline {
font-size: 12.8px;
font-weight: 600;
color: #525252;
margin-bottom: 12px;
}
.l-comparison-table__heading {
font-size: 48.83px;
line-height: 1.15;
font-weight: 700;
letter-spacing: -0.02em;
color: #0a0a0a;
margin-bottom: 20px;
}
@media (min-width: 768px) {
.l-comparison-table__heading {
font-size: 61.04px;
line-height: 1.1;
margin-bottom: 24px;
}
}
@media (min-width: 1024px) {
.l-comparison-table__heading {
font-size: 76.29px;
line-height: 1.05;
}
}
.l-comparison-table__description {
font-size: 16px;
line-height: 1.5;
color: #525252;
}
@media (min-width: 768px) {
.l-comparison-table__description {
font-size: 20px;
line-height: 1.45;
}
}
.l-comparison-table__products {
display: grid;
grid-template-columns: repeat(3, 1fr);
margin-bottom: 16px;
}
@media (min-width: 768px) {
.l-comparison-table__products {
grid-template-columns: 1.5fr 1fr 1fr 1fr;
}
}
.l-comparison-table__product-label {
display: none;
}
@media (min-width: 768px) {
.l-comparison-table__product-label {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-end;
padding: 16px 16px 16px 0;
}
}
.l-comparison-table__product-label-text {
font-size: 16px;
font-weight: 700;
line-height: 1.4;
}
@media (min-width: 768px) {
.l-comparison-table__product-label-text {
font-size: 25px;
}
}
.l-comparison-table__product {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
padding: 16px 8px;
}
@media (min-width: 768px) {
.l-comparison-table__product {
padding: 16px 16px;
}
}
@media (min-width: 1024px) {
.l-comparison-table__product {
padding: 24px;
}
}
.l-comparison-table__product-icon {
width: 3rem;
height: 3rem;
margin-bottom: 8px;
}
.l-comparison-table__product-name {
font-size: 16px;
font-weight: 700;
line-height: 1.4;
margin-bottom: 4px;
}
@media (min-width: 768px) {
.l-comparison-table__product-name {
font-size: 25px;
}
}
.l-comparison-table__product-desc {
font-size: 12.8px;
color: #525252;
}
.l-comparison-table__features {
/* rows below */
}
.l-comparison-table__row {
display: grid;
grid-template-columns: repeat(3, 1fr);
align-items: center;
}
@media (min-width: 768px) {
.l-comparison-table__row {
grid-template-columns: 1.5fr 1fr 1fr 1fr;
}
}
.l-comparison-table__row--alt {
background-color: var(--background-secondary);
}
.l-comparison-table__feature-label {
grid-column: 1 / -1;
padding: 16px;
font-size: 16px;
}
@media (min-width: 768px) {
.l-comparison-table__feature-label {
grid-column: 1;
padding: 16px 24px;
}
}
.l-comparison-table__feature-value {
display: flex;
align-items: center;
justify-content: center;
padding: 16px 8px;
text-align: center;
font-weight: 600;
font-size: 16px;
}
@media (min-width: 768px) {
.l-comparison-table__feature-value {
padding: 16px 24px;
}
}
.l-comparison-table__check,
.l-comparison-table__x {
width: 1.5rem;
height: 1.5rem;
}
.l-comparison-table__actions {
margin-top: 48px;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
gap: 16px;
}
@media (min-width: 768px) {
.l-comparison-table__actions {
margin-top: var(--spacing-18);
}
}
@media (min-width: 1024px) {
.l-comparison-table__actions {
margin-top: 80px;
}
}
Codigo fuente
layouts/comparison-table.css
/* Layout: comparison-table — structure only, pure DS tokens */ .l-comparison-table { padding: var(--spacing-20) var(--spacing-8); } .l-comparison-table__header { max-width: 640px; margin: 0 auto; text-align: center; margin-bottom: var(--spacing-12); } @media (min-width: 768px) { .l-comparison-table__header { margin-bottom: var(--spacing-18); } } @media (min-width: 1024px) { .l-comparison-table__header { margin-bottom: var(--spacing-20); } } .l-comparison-table__tagline { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--muted-foreground); margin-bottom: var(--spacing-3); } .l-comparison-table__heading { font-size: var(--font-size-4xl); line-height: var(--line-height-4xl); font-weight: var(--font-weight-bold); letter-spacing: var(--letter-spacing-tight); color: var(--foreground); margin-bottom: var(--spacing-5); } @media (min-width: 768px) { .l-comparison-table__heading { font-size: var(--font-size-5xl); line-height: var(--line-height-5xl); margin-bottom: var(--spacing-6); } } @media (min-width: 1024px) { .l-comparison-table__heading { font-size: var(--font-size-6xl); line-height: var(--line-height-6xl); } } .l-comparison-table__description { font-size: var(--font-size-base); line-height: var(--line-height-base); color: var(--muted-foreground); } @media (min-width: 768px) { .l-comparison-table__description { font-size: var(--font-size-lg); line-height: var(--line-height-lg); } } .l-comparison-table__products { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: var(--spacing-4); } @media (min-width: 768px) { .l-comparison-table__products { grid-template-columns: 1.5fr 1fr 1fr 1fr; } } .l-comparison-table__product-label { display: none; } @media (min-width: 768px) { .l-comparison-table__product-label { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: var(--spacing-4) var(--spacing-4) var(--spacing-4) 0; } } .l-comparison-table__product-label-text { font-size: var(--font-size-base); font-weight: var(--font-weight-bold); line-height: 1.4; } @media (min-width: 768px) { .l-comparison-table__product-label-text { font-size: var(--font-size-xl); } } .l-comparison-table__product { display: flex; flex-direction: column; align-items: center; text-align: center; padding: var(--spacing-4) var(--spacing-2); } @media (min-width: 768px) { .l-comparison-table__product { padding: var(--spacing-4) var(--spacing-4); } } @media (min-width: 1024px) { .l-comparison-table__product { padding: var(--spacing-6); } } .l-comparison-table__product-icon { width: 3rem; height: 3rem; margin-bottom: var(--spacing-2); } .l-comparison-table__product-name { font-size: var(--font-size-base); font-weight: var(--font-weight-bold); line-height: 1.4; margin-bottom: var(--spacing-1); } @media (min-width: 768px) { .l-comparison-table__product-name { font-size: var(--font-size-xl); } } .l-comparison-table__product-desc { font-size: var(--font-size-sm); color: var(--muted-foreground); } .l-comparison-table__features { /* rows below */ } .l-comparison-table__row { display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; } @media (min-width: 768px) { .l-comparison-table__row { grid-template-columns: 1.5fr 1fr 1fr 1fr; } } .l-comparison-table__row--alt { background-color: var(--background-secondary); } .l-comparison-table__feature-label { grid-column: 1 / -1; padding: var(--spacing-4); font-size: var(--font-size-base); } @media (min-width: 768px) { .l-comparison-table__feature-label { grid-column: 1; padding: var(--spacing-4) var(--spacing-6); } } .l-comparison-table__feature-value { display: flex; align-items: center; justify-content: center; padding: var(--spacing-4) var(--spacing-2); text-align: center; font-weight: var(--font-weight-semibold); font-size: var(--font-size-base); } @media (min-width: 768px) { .l-comparison-table__feature-value { padding: var(--spacing-4) var(--spacing-6); } } .l-comparison-table__check, .l-comparison-table__x { width: 1.5rem; height: 1.5rem; } .l-comparison-table__actions { margin-top: var(--spacing-12); display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--spacing-4); } @media (min-width: 768px) { .l-comparison-table__actions { margin-top: var(--spacing-18); } } @media (min-width: 1024px) { .l-comparison-table__actions { margin-top: var(--spacing-20); } }