Layout de pestañas
✨ Branch: tablayout
Introducción
Tab Layout es un paradigma de estructuración de layouts creado en Store Framework para permitir la construcción de layouts con pestañas.
En este paradigma tenemos dos containers: tab-list y tab-content . En cada uno de estos containers, tenemos los ítems que los componen. Dentro de tab-list, tenemos los tab-list.item . En tab-content, tenemos los tab-content.item .
A continuación, veremos un ejemplo de implementación de un tab layout.
En primer lugar, es necesario declarar el block tab-layout en el template deseado:
{
"store.custom#about-us": {
"blocks": [
...
"tab-layout"
]
}
}
Después, es necesario declarar un tab-list y un tab-content como children del tab-layout:
...
"tab-layout": {
"children": [
"tab-list",
"tab-content"
]
}
Con esto, tenemos estos dos containers como componentes de nuestro tab-layout . El siguiente paso es declarar los tab-list.item y tab-content.item como children del tab-list y tab-content, respectivamente:
...
"tab-list": {
"children": [
"tab-list.item#1",
"tab-list.item#2"
]
}
...
"tab-content": {
"children": [
"tab-content.item#1",
"tab-content.item#2"
]
}
En la siguiente etapa, tenemos que declarar las propiedades de los tab-list.item . El siguiente código genera una interfaz de tabs como la de esta imagen:

La propiedad tabId es muy importante, pues es la llave que conecta el botón de un tab-list.item con un tab-content.item .
...
"tab-list.item#1": {
"props": {
"tabId": "majorAppliances",
"label": "Major Appliances",
"defaultActiveTab": true
}
},
"tab-list.item#2": {
"props": {
"tabId": "electronics",
"label": "Electronics"
}
}
A continuación, declararemos los children y las props de los tab-content.item .
En el array de children, es posible incluir diversos blocks como rich-text, info-card, image, flex-layout y etc.
En la prop tabId, es necesario incluir los mismos ids declarados en los tab-list.item para que el enlace entre la pestaña y el contenido funcione.
...
"tab-content.item#1": {
"children": [
"rich-text#1"
],
"props": {
"tabId": "majorAppliances"
}
},
"tab-content.item#2": {
"children": [
"rich-text#2"
],
"props": {
"tabId": "electronics"
}
}
Por último, debe declarar las propiedades de su contenido. En nuestro ejemplo, colocamos apenas un rich-text en cada tab-content.item :
"rich-text#1": {
"props": {
"text": "Texto para Major Appliances",
"textPosition": "CENTER",
"font": "t-heading-3"
}
},
"rich-text#2": {
"props": {
"text": "Texto para Electronics",
"textPosition": "CENTER",
"font": "t-heading-3"
}
}
Actividad
En esta actividad, crearemos la estructura simple de un tab layout, como en la siguiente imagen. Más adelante incluiremos algún contenido para estilizar nuestra página personalizada.

- En el archivo
about-us.jsonc creado anteriormente, agregue un tab-layout#home al template store.custom#about-us .
- Declare el bloque
tab-layout#home y agregue como sus children un tab-list#home y un tab-content#home .
- Declare un
tab-list#home y agregue como sus children un tab-list.item#home1 y un tab-list.item#home2 .
- Declare las props del
tab-list.item#home1 de manera que la interfaz muestre el texto "Major Appliances". (Consejo: no olvide que incluir en las props un tabId = "majorAppliances" y la propiedad defaultActiveTab = true).
- Declare las props de
tab-list.item#home2 de manera que la interfaz muestre el texto "Electronics". (Consejo: no se olvide que incluir en las props un tabId = "electronics").
- Ahora, vayamos a la parte del contenido. Declare un
tab-content#home en su tema y agregue los children tab-content.item#home1 y tab-content.item#home2 .
- En cada
tab-content.item, declare apenas un rich-text como children (por ejemplo, rich-text#home1 y rich-text#home2).
- Después, incluya una prop
tabId en cada tab-content.item de manera que se produzca el enlace entre el tab-list creado anteriormente y tab-content .
- Por último, agregue los
rich-text y declare sus props de acuerdo con el siguiente código:
"rich-text#home1": {
"props": {
"text": "Área do conteúdo da tab-list.item com tabId = majorAppliances",
"textPosition": "CENTER",
"font": "t-heading-3"
}
},
"rich-text#home2": {
"props": {
"text": "Área do conteúdo da tab-list.item com tabId = electronics",
"textPosition": "CENTER",
"font": "t-heading-3"
}
}
ℹ️ Recuerde acceder a la documentación Tab Layout y Rich Text si tiene alguna duda durante la actividad.
🚫 ¿Perdido?
¿Hay algún problema con este paso? ¿Qué tal si nos envía un feedback? 🙏
Crear feedback
Si aún tiene alguna duda sobre cómo enviar su respuesta, puede revisar aquí.
Layout de pestañas
✨ Branch: tablayout
Introducción
Tab Layout es un paradigma de estructuración de layouts creado en Store Framework para permitir la construcción de layouts con pestañas.
En este paradigma tenemos dos containers:
tab-listytab-content. En cada uno de estos containers, tenemos los ítems que los componen. Dentro detab-list, tenemos lostab-list.item. Entab-content, tenemos lostab-content.item.A continuación, veremos un ejemplo de implementación de un tab layout.
En primer lugar, es necesario declarar el block
tab-layouten el template deseado:{ "store.custom#about-us": { "blocks": [ ... "tab-layout" ] } }Después, es necesario declarar un
tab-listy untab-contentcomo children deltab-layout:Con esto, tenemos estos dos containers como componentes de nuestro
tab-layout. El siguiente paso es declarar lostab-list.itemytab-content.itemcomo children deltab-listytab-content, respectivamente:En la siguiente etapa, tenemos que declarar las propiedades de los
tab-list.item. El siguiente código genera una interfaz de tabs como la de esta imagen:La propiedad
tabIdes muy importante, pues es la llave que conecta el botón de untab-list.itemcon untab-content.item.A continuación, declararemos los children y las props de los
tab-content.item.En el array de children, es posible incluir diversos blocks como
rich-text,info-card,image,flex-layouty etc.En la prop
tabId, es necesario incluir los mismos ids declarados en lostab-list.itempara que el enlace entre la pestaña y el contenido funcione.Por último, debe declarar las propiedades de su contenido. En nuestro ejemplo, colocamos apenas un
rich-texten cadatab-content.item:Actividad
En esta actividad, crearemos la estructura simple de un tab layout, como en la siguiente imagen. Más adelante incluiremos algún contenido para estilizar nuestra página personalizada.
about-us.jsonccreado anteriormente, agregue untab-layout#homeal templatestore.custom#about-us.tab-layout#homey agregue como sus children untab-list#homey untab-content#home.tab-list#homey agregue como sus children untab-list.item#home1y untab-list.item#home2.tab-list.item#home1de manera que la interfaz muestre el texto "Major Appliances". (Consejo: no olvide que incluir en las props untabId="majorAppliances"y la propiedaddefaultActiveTab=true).tab-list.item#home2de manera que la interfaz muestre el texto "Electronics". (Consejo: no se olvide que incluir en las props untabId="electronics").tab-content#homeen su tema y agregue los childrentab-content.item#home1ytab-content.item#home2.tab-content.item, declare apenas unrich-textcomo children (por ejemplo,rich-text#home1yrich-text#home2).tabIden cadatab-content.itemde manera que se produzca el enlace entre eltab-listcreado anteriormente ytab-content.rich-texty declare sus props de acuerdo con el siguiente código:ℹ️ Recuerde acceder a la documentación Tab Layout y Rich Text si tiene alguna duda durante la actividad.
🚫 ¿Perdido?
¿Hay algún problema con este paso? ¿Qué tal si nos envía un feedback? 🙏
Crear feedback
Si aún tiene alguna duda sobre cómo enviar su respuesta, puede revisar aquí.