Documentation
Feedback
Guides
Learning Center

Learning Center
Learning Center
Tornando seu conteúdo responsivo
View in English
This content was migrated from the VTEX Learning Center and is no longer being actively maintained. For the most accurate and up-to-date information, please check the official documentation.

Introdução

A página inicial de um e-commerce é sempre o primeiro contato do cliente com a marca. Por isso, é comum que o lojista queira estabelecer uma comunicação direta com os seus usuários nesse momento estratégico da navegação.

No Store Framework, existem alguns componentes que atendem a esse cenário, como o Info Card e o Rich Text.

Configurando o Rich Text

Assim como a sua funcionalidade, a configuração do Rich Text também é simples, podemos montar um exemplo de implementação do bloco usando texto escrito em markdown. Por exemplo:


_10
"rich-text": {
_10
"props": {
_10
"text": "# Your Coffee, Your Way \n ### New Coffee Makers Collection",
_10
"textPosition": "CENTER",
_10
"textAlignment": "CENTER"
_10
}
_10
},

Como falado anteriormente, o uso de Markdown permite flexibilidade ao componente. Mas, por outro lado, também pode fazer com que a sua renderização sofra alterações de acordo com o dispositivo usado pelo usuário.

Por exemplo: a frase acima ( # Your Coffee, Your Way \n ### New Coffee Makers Collection ) pode usar um markdown adequado para desktop, mas não necessariamente para mobile (cujo tamanho de tela é menor).

Para resolver esse cenário e tornar o componente mais adaptável a outros dispositivos, devemos usar o Responsive Layout.

Primeiramente devemos declarar os blocos dentro do template store.home:

"responsive-layout.desktop#desktop", "responsive-layout.mobile#mobile"

Em seguida devemos declarar esses blocos da seguinte forma:


_26
_26
...
_26
_26
"responsive-layout.desktop#desktop": {
_26
"children": ["rich-text#desktop"]
_26
},
_26
_26
"responsive-layout.mobile#mobile": {
_26
"children": ["rich-text#mobile"]
_26
},
_26
_26
"rich-text#desktop": {
_26
"props": {
_26
"text": "# Your Coffee, Your Way \n ### New Coffee Makers Collection (I'm on desktop)",
_26
"textPosition": "CENTER",
_26
"textAlignment": "CENTER"
_26
}
_26
},
_26
_26
"rich-text#mobile": {
_26
"props": {
_26
"text": "# Your Coffee, Your Way \n ### New Coffee Makers Collection (I'm on mobile)",
_26
"textPosition": "CENTER",
_26
"textAlignment": "CENTER"
_26
}
_26
}

Ao interpretar o código acima, perceba como duas configurações de Rich Text são construídas a partir do uso de responsive-layout.desktop#desktop e responsive-layout.mobile#mobile.

Atividade

Nessa atividade, vamos brincar um pouco com o markdown do Rich Text e aprender a usá-lo com o componente Image. Tudo isso usando o Responsive Layout, é claro!

Desktop:

{"base64":"  ","img":{"width":2104,"height":1128,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":848033,"url":"https://user-images.githubusercontent.com/12139385/70152049-414c3500-168b-11ea-8da3-4f4ce0f5fee6.png"}}

Mobile:

{"base64":"  ","img":{"width":524,"height":968,"type":"png","mime":"image/png","wUnits":"px","hUnits":"px","length":273130,"url":"https://user-images.githubusercontent.com/12139385/70152883-bf5d0b80-168c-11ea-81e0-25be5ed3d5ce.png"}}

  1. Adicione o código proposto acima no arquivo home.jsonc e declare os blocos de responsive-layout no template store.home;

  2. No rich-text#mobile, altere o markdown da primeira frase para h3 e da segunda para h4;

    Se você não se lembra da sintaxe de Markdown, é possível consultá-la em Markdown Documentation.

  3. Adicione image#desktop como children de responsive-layout.desktop#desktop. Faça o mesmo com image#mobile em responsive-layout.mobile#mobile;

  4. Declare os seguintes blocos de Image:


    _19
    "image#desktop": {
    _19
    "props": {
    _19
    "src": "https://appliancetheme.vteximg.com.br/arquivos/Responsive-Image-Desktop.jpg?q=1",
    _19
    "link": {
    _19
    "url": "/small-appliances/coffee-makers"
    _19
    } ,
    _19
    "alt": "Coffee Makers Collection"
    _19
    }
    _19
    },
    _19
    _19
    "image#mobile": {
    _19
    "props": {
    _19
    "src": "https://appliancetheme.vteximg.com.br/arquivos/Responsive-Image-Mobile.jpg?q=1",
    _19
    "link": {
    _19
    "url": "/small-appliances/coffee-makers"
    _19
    } ,
    _19
    "alt": "Coffee Makers Collection"
    _19
    }
    _19
    },

  5. Analisando as props do componente Image, defina a largura máxima das duas imagens como 100%.

Note: Lembre-se de acessar a documentação do Responsive Layout caso tenha alguma dúvida durante a atividade.

Answer sheet

See answer sheet for home.jsonc
home.jsonc

_53
{
_53
"store.home": {
_53
"blocks": [
_53
"responsive-layout.desktop#desktop",
_53
"responsive-layout.mobile#mobile"
_53
]
_53
},
_53
"responsive-layout.desktop#desktop": {
_53
"children": ["rich-text#desktop", "image#desktop"]
_53
},
_53
_53
"responsive-layout.mobile#mobile": {
_53
"children": ["rich-text#mobile", "image#mobile"]
_53
},
_53
"image#desktop": {
_53
"props": {
_53
"src": "https://appliancetheme.vteximg.com.br/arquivos/Responsive-Image-Desktop.jpg?q=1",
_53
"maxWidth": "100%",
_53
"link": {
_53
"url": "/small-appliances/coffee-makers"
_53
},
_53
"alt": "Coffee Makers Collection"
_53
}
_53
},
_53
_53
"image#mobile": {
_53
"props": {
_53
"src": "https://appliancetheme.vteximg.com.br/arquivos/Responsive-Image-Mobile.jpg?q=1",
_53
"maxWidth": "100%",
_53
"link": {
_53
"url": "/small-appliances/coffee-makers"
_53
},
_53
"alt": "Coffee Makers Collection"
_53
}
_53
},
_53
_53
"rich-text#desktop": {
_53
"props": {
_53
"text": "# Your Coffee, Your Way \n ### New Coffee Makers Collection",
_53
"textPosition": "CENTER",
_53
"textAlignment": "CENTER"
_53
}
_53
},
_53
_53
"rich-text#mobile": {
_53
"props": {
_53
"text": "### Your Coffee, Your Way \n #### New Coffee Makers Collection",
_53
"textPosition": "CENTER",
_53
"textAlignment": "CENTER"
_53
}
_53
}
_53
//...,
_53
}

On this page