Components (registry)Layout
FAQ Accordion
Layout template: faq-accordion
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}}{{faq1_question}}{{faq1_answer}}{{faq2_question}}{{faq2_answer}}{{faq3_question}}{{faq3_answer}}{{faq4_question}}{{faq4_answer}}{{faq5_question}}{{faq5_answer}}{{contactCta}}- Componentes requeridos
accordionbuttontypography
Anatomía CSS
<div class="layoutFaqAccordion"> </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 |
| 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: faq-accordion — structure only */
.l-faq-accordion {
max-width: 720px;
margin: 0 auto;
padding: 48px 32px;
}
.l-faq-accordion__header {
text-align: center;
margin-bottom: 32px;
}
.l-faq-accordion__list {
display: flex;
flex-direction: column;
gap: 8px;
}
.l-faq-accordion__item {
border: 1px solid #e5e5e5;
border-radius: 8px;
padding: 16px;
}
.l-faq-accordion__item summary {
cursor: pointer;
font-weight: 600;
list-style: none;
}
.l-faq-accordion__item summary::-webkit-details-marker {
display: none;
}
.l-faq-accordion__answer {
margin-top: 8px;
padding-top: 8px;
border-top: 1px solid #e5e5e5;
color: #525252;
}
.l-faq-accordion__cta {
text-align: center;
margin-top: 32px;
}
Codigo fuente
layouts/faq-accordion.css
/* Layout: faq-accordion — structure only */ .l-faq-accordion { max-width: 720px; margin: 0 auto; padding: var(--spacing-12) var(--spacing-8); } .l-faq-accordion__header { text-align: center; margin-bottom: var(--spacing-8); } .l-faq-accordion__list { display: flex; flex-direction: column; gap: var(--spacing-2); } .l-faq-accordion__item { border: 1px solid var(--border); border-radius: var(--radius-md); padding: var(--spacing-4); } .l-faq-accordion__item summary { cursor: pointer; font-weight: 600; list-style: none; } .l-faq-accordion__item summary::-webkit-details-marker { display: none; } .l-faq-accordion__answer { margin-top: var(--spacing-2); padding-top: var(--spacing-2); border-top: 1px solid var(--border); color: var(--muted-foreground); } .l-faq-accordion__cta { text-align: center; margin-top: var(--spacing-8); }