Leodario.com

Leodario.com – Tudo sobre Tecnologia

Aula 25 – Loja Shopify do Zero ao Avançado: Design responsivo perfeito para mobile e tablet

Imagem destacada da aula Shopify

Olá, turma! Sejam muito bem-vindos à nossa Aula 25 do curso “Loja Shopify do Zero ao Avançado”! 🚀

Se você chegou até aqui, já construiu uma base sólida em Shopify, compreendendo a estrutura de temas, trabalhando com Liquid, personalizando seções e snippets. Mas de que adianta uma loja linda e funcional se ela não se adapta perfeitamente a todos os dispositivos? 🤔

Nesta aula, vamos mergulhar de cabeça no mundo do design responsivo, garantindo que sua loja Shopify seja impecável, seja em um monitor de desktop gigante, em um tablet ou na telinha do celular. Prepare-se para otimizar a experiência do seu cliente, não importa como ele acesse sua loja! 📱💻

Aula 25 – Loja Shopify do Zero ao Avançado: Design responsivo perfeito para mobile e tablet

📚 O que você vai aprender nesta aula

Ao final desta aula, você será capaz de:

  • Compreender a importância crítica do design responsivo para o e-commerce atual.
  • Testar e depurar a responsividade da sua loja Shopify usando ferramentas de desenvolvedor.
  • Aplicar a metodologia “Mobile-First” no desenvolvimento da sua loja.
  • Dominar o uso de Media Queries CSS para adaptar layouts e estilos em diferentes tamanhos de tela.
  • Otimizar imagens e outros elementos visuais para garantir uma experiência rápida e fluida em dispositivos móveis.
  • Implementar estratégias de navegação (como menus hambúrguer) para telas menores.
  • Identificar e corrigir problemas comuns de responsividade em temas Shopify.
  • Aplicar boas práticas de performance para mobile.

🔗 Conectando com aulas anteriores

Nas aulas anteriores, especialmente da Aula 10: Estrutura de Temas Shopify: Entendendo Layouts, Templates, Seções e Snippets até a Aula 20: Desenvolvendo Seções Dinâmicas Personalizadas, nós aprendemos a construir a estrutura da nossa loja, criar componentes reutilizáveis (seções e snippets) e adicionar lógica com Liquid.

Tudo o que construímos até agora – nosso cabeçalho, rodapé, seções de produtos, banners – foi criado com a funcionalidade em mente. Agora, o desafio é garantir que esses mesmos componentes se comportem de forma elegante e intuitiva em qualquer dispositivo. Lembra das nossas seções personalizadas? Elas precisam ser tão belas e usáveis no celular quanto no desktop. Esta aula é a cola que une todo o nosso trabalho de design e desenvolvimento, garantindo uma experiência consistente e de alta qualidade para o usuário final. 🔗

📖 Conteúdo Principal

💡 Por Que o Design Responsivo é Absolutamente Crítico para sua Loja Shopify?

Vivemos em um mundo multi-dispositivo. A maioria dos acessos a lojas online hoje vem de smartphones e tablets. Ignorar a responsividade é o mesmo que fechar as portas para grande parte dos seus potenciais clientes.

  • Experiência do Usuário (UX): Um site que não se adapta é frustrante. Textos pequenos, botões difíceis de clicar, rolagem horizontal… tudo isso afasta o cliente.
  • Taxas de Conversão: Uma UX ruim leva a menos vendas. Simples assim.
  • SEO (Search Engine Optimization): O Google prioriza sites responsivos em seus resultados de busca, especialmente para pesquisas feitas em dispositivos móveis. Seu ranking pode ser severamente prejudicado sem ele.
  • Credibilidade e Profissionalismo: Uma loja responsiva transmite confiança e modernidade.

🎯 Shopify e a Responsividade: O Ponto de Partida

A boa notícia é que a maioria dos temas modernos do Shopify (incluindo o Dawn, que usamos como base ou inspiração) já são construídos com responsividade em mente. Eles utilizam CSS flexbox e grid, além de imagens fluidas, para se adaptar.

Mas por que precisamos desta aula, então? 🤔

Porque “responsivo” nem sempre significa “perfeito”. Personalizações que você faz, o conteúdo que você adiciona e até mesmo as configurações do tema podem impactar a responsividade. Além disso, você pode ter requisitos de design específicos que vão além do “responsivo básico” do tema. Nosso objetivo é ir além do padrão e criar uma experiência perfeita.

🛠️ Ferramentas Essenciais para Testar e Depurar a Responsividade

Antes de começar a codificar, precisamos saber como visualizar e testar nosso trabalho.

1. Ferramentas de Desenvolvedor do Navegador (Developer Tools):

  • Como acessar: Clique com o botão direito em qualquer página da sua loja e selecione “Inspecionar” (ou “Inspect”).
  • Modo de Dispositivo (Toggle Device Toolbar): Procure pelo ícone que parece um celular e um tablet juntos (geralmente no canto superior esquerdo do painel do Dev Tools). Clique nele para simular diferentes tamanhos de tela, rotacionar o dispositivo e até ajustar o “throttle” da rede para simular conexões lentas.
  • Capturas de Tela: Use a função de captura de tela do Dev Tools para documentar seus testes.
  • Exemplo:

Você veria uma captura de tela do Google Chrome Dev Tools com o modo de dispositivo ativado, mostrando a prévia de uma loja Shopify em um iPhone X.*

2. Prévia do Editor de Tema Shopify:

  • Dentro do Editor de Tema (Online Store > Themes > Customize), você tem opções para visualizar sua loja em Desktop, Mobile e Tablet. É um bom ponto de partida, mas as ferramentas do navegador oferecem mais controle e precisão.

3. Testes em Dispositivos Reais:

  • Sempre que possível, teste sua loja em smartphones e tablets reais. Simuladores são ótimos, mas nada substitui a experiência real do usuário.

📱 Conceito Mobile-First: A Estratégia de Ouro

O “Mobile-First” não é apenas uma técnica, é uma mentalidade. Significa que você deve projetar e desenvolver para a menor tela primeiro, e só então adaptar para telas maiores.

Por que Mobile-First?

  • Restrições: Telas pequenas forçam você a focar no essencial, priorizando o conteúdo e a funcionalidade mais importantes.
  • Performance: Começar pequeno ajuda a manter o código e os recursos otimizados.
  • Progressive Enhancement: Você constrói a experiência básica para mobile e, em seguida, adiciona melhorias e complexidade para telas maiores.

📏 CSS Media Queries em Ação no Shopify

As Media Queries são o coração do design responsivo. Elas permitem que você aplique estilos CSS diferentes com base nas características do dispositivo, como largura da tela, altura, orientação e tipo de mídia.

Sintaxe Básica:

css

/ Estilos padrão para todos os dispositivos (mobile-first!) /

body {

font-size: 16px;

line-height: 1.5;

}

.container {

width: 100%;

padding: 15px;

}

/ Media Query para telas maiores que 768px (tablets e desktops) /

@media screen and (min-width: 768px) {

body {

font-size: 18px; / Aumenta um pouco a fonte /

}

.container {

width: 90%;

max-width: 960px;

margin: 0 auto; / Centraliza o container /

}

}

/ Media Query para telas muito grandes (desktops) /

@media screen and (min-width: 1200px) {

.container {

max-width: 1140px;

}

}

Onde aplicar no Shopify?

Geralmente, você adicionará suas Media Queries ao arquivo CSS principal do seu tema, que costuma ser assets/theme.css ou assets/theme.scss.liquid. Se você está trabalhando com seções personalizadas, o CSS específico daquela seção pode estar dentro da tag

assets/theme.scss.liquid (ou theme.css)

css

/ Estilos Padrão (Mobile-First) /

.site-header {

padding: 15px 20px;

border-bottom: 1px solid #eee;

}

.header-inner {

display: flex;

justify-content: space-between;

align-items: center;

}

.header-logo img {

max-height: 40px; / Tamanho da logo no mobile /

width: auto;

}

.hamburger-toggle {

background: none;

border: none;

cursor: pointer;

padding: 10px;

position: relative;

z-index: 100; / Garante que fique acima de outros elementos /

}

.hamburger-toggle span {

display: block;

width: 25px;

height: 3px;

background: #333;

margin: 5px 0;

transition: all 0.3s ease;

}

.mobile-navigation {

position: fixed;

top: 0;

right: -100%; / Esconde o menu lateral fora da tela /

width: 80%;

max-width: 300px;

height: 100vh;

background: white;

box-shadow: -2px 0 5px rgba(0,0,0,0.1);

transition: right 0.3s ease;

z-index: 99;

padding-top: 60px; / Espaço para o cabeçalho /

}

.mobile-navigation.is-open {

right: 0; / Mostra o menu /

}

.mobile-menu {

list-style: none;

padding: 0;

margin: 0;

}

.mobile-menu li a {

display: block;

padding: 15px 20px;

border-bottom: 1px solid #eee;

text-decoration: none;

color: #333;

}

/ Esconde elementos de desktop no mobile /

.header-navigation {

display: none;

}

/ Media Query para Desktop (min-width: 992px) /

@media screen and (min-width: 992px) {

.site-header {

padding: 20px 40px;

}

.header-inner {

justify-content: center; / Centraliza logo no desktop /

position: relative;

}

.header-logo img {

max-height: 60px; / Tamanho maior da logo no desktop /

}

.hamburger-toggle,

.mobile-navigation {

display: none; / Esconde o hambúrguer e menu mobile no desktop /

}

.header-navigation {

display: block; / Mostra o menu de desktop /

position: absolute;

right: 0;

top: 50%;

transform: translateY(-50%);

}

.main-menu {

display: flex;

list-style: none;

padding: 0;

margin: 0;

}

.main-menu li {

margin-left: 30px;

}

.main-menu li a {

text-decoration: none;

color: #333;

font-weight: bold;

}

}

assets/theme.js (JavaScript para o toggle do menu)

javascript

document.addEventListener('DOMContentLoaded', function() {

const hamburgerToggle = document.querySelector('.hamburger-toggle');

const mobileDrawer = document.querySelector('#mobile-drawer');

if (hamburgerToggle && mobileDrawer) {

hamburgerToggle.addEventListener('click', function() {

mobileDrawer.classList.toggle('is-open');

document.body.classList.toggle('no-scroll'); // Opcional: para evitar rolagem do body quando o menu está aberto

});

}

});

Você veria uma captura de tela do cabeçalho no mobile (com menu hambúrguer) e no desktop (com logo central e menu lateral).

Exemplo 2: Otimizando Imagens de Produtos com image_tag

Para uma página de produto, queremos garantir que as imagens sejam carregadas de forma otimizada.

sections/main-product.liquid (Trecho de código)

Com image_tag e o atributo widths, o Shopify gera automaticamente o srcset e o sizes para a tag , permitindo que o navegador escolha a imagem mais apropriada para a tela do usuário, otimizando o carregamento e a qualidade.

Exemplo 3: Adaptando um Layout de Grid para Mobile

Suponha que temos uma seção de 4 colunas de recursos (sections/four-column-promo.liquid) no desktop, mas no mobile, queremos que elas se empilhem em 2 colunas, ou até mesmo 1 coluna se a tela for muito pequena.

sections/four-column-promo.liquid (Estrutura simplificada)

{% for block in section.blocks %}

{{ block.settings.title }}

{{ block.settings.title }}

{{ block.settings.text }}

{% endfor %}

{% schema %}

{

"name": "4 Colunas Promo",

"settings": [],

"blocks": [

{

"type": "item",

"name": "Item Promocional",

"settings": [

{

"type": "image_picker",

"id": "image",

"label": "Imagem"

},

{

"type": "text",

"id": "title",

"label": "Título",

"default": "Título do Recurso"

},

{

"type": "textarea",

"id": "text",

"label": "Texto",

"default": "Breve descrição do recurso."

}

]

}

],

"presets": [

{

"name": "4 Colunas Promo",

"blocks": [

{ "type": "item" },

{ "type": "item" },

{ "type": "item" },

{ "type": "item" }

]

}

]

}

{% endschema %}

assets/theme.scss.liquid (ou CSS na seção)

css

/ Mobile-First /

.promo-grid {

display: grid;

grid-template-columns: 1fr; / Por padrão, uma única coluna no mobile /

gap: 20px;

}

.promo-item {

text-align: center;

padding: 20px;

border: 1px solid #eee;

border-radius: 5px;

}

.promo-item img {

max-width: 100%;

height: auto;

margin-bottom: 15px;

}

/ Media Query para telas maiores (ex: tablets - 768px) /

@media screen and (min-width: 768px) {

.promo-grid {

grid-template-columns: repeat(2, 1fr); / Duas colunas em tablets /

}

}

/ Media Query para telas maiores (ex: desktops - 992px) /

@media screen and (min-width: 992px) {

.promo-grid {

grid-template-columns: repeat(4, 1fr); / Quatro colunas em desktops /

}

}

Você veria uma captura de tela da seção em mobile (uma coluna), tablet (duas colunas) e desktop (quatro colunas).

🎯 Exercícios e Desafios

Hora de colocar a mão na massa e aplicar o que você aprendeu!

1. Desafio: Responsividade para a Seção de Produtos em Destaque.

  • Na sua loja, encontre a seção de produtos em destaque (ou uma galeria de produtos customizada que você criou em aulas anteriores).
  • Usando o display: grid e Media Queries, ajuste para que:
  • Em mobile (até 767px): Os produtos apareçam em uma única coluna.
  • Em tablet (768px - 991px): Os produtos apareçam em 2 colunas.
  • Em desktop (992px em diante): Os produtos apareçam em 4 colunas (ou a quantidade que você desejar).
  • Garanta que as imagens dos produtos estejam otimizadas usando o filtro image_tag com widths.

2. Desafio: Refine seu Menu Hambúrguer.

  • Revise o código do menu hambúrguer que implementamos como exemplo (ou o que já existe no seu tema).
  • Adicione um ícone de "fechar" (um "X") que apareça quando o menu estiver aberto.
  • Implemente um "overlay" (uma camada semitransparente) que cubra o resto da tela quando o menu mobile estiver aberto, e que feche o menu ao ser clicado.

3. Desafio: Otimização de Imagens de Banner.

  • Vá até a sua seção de banner principal. Se ela usa uma imagem de fundo, explore as possibilidades de otimização:
  • Considere usar duas imagens de banner diferentes (uma otimizada para mobile, outra para desktop) e exibi-las condicionalmente via CSS (display: none; com Media Queries) ou, em casos mais avançados, via Liquid (mas CSS é geralmente preferível para isso).
  • Se usar apenas uma imagem, certifique-se de que o CSS (background-size: cover; background-position: center;) esteja ajustado para que as partes importantes do banner sejam visíveis em diferentes tamanhos de tela.

📝 Resumo da Aula

Nesta aula, desvendamos o design responsivo, uma habilidade indispensável para qualquer loja online de sucesso. Aprendemos que o Mobile-First não é apenas uma boa prática, mas uma necessidade para a UX, SEO e conversão. Dominamos as Media Queries CSS para adaptar nossos layouts, garantimos que as imagens da nossa loja carreguem de forma otimizada em qualquer dispositivo graças aos filtros do Shopify, e exploramos a implementação de navegação mobile eficaz. Testar em diferentes dispositivos e usar as ferramentas de desenvolvedor são passos cruciais para alcançar a perfeição responsiva. 🎯

🚀 Preparação para próxima aula

Com a base sólida em responsividade, nossa loja está pronta para receber qualquer cliente. Na próxima aula, vamos aprofundar ainda mais na experiência do usuário e na usabilidade. Abordaremos:

Aula 26 - Aprimorando a Experiência do Usuário (UX) e Acessibilidade (WCAG): Como ir além do visual e criar uma loja que seja intuitiva, fácil de usar e acessível para todos* os públicos, incluindo pessoas com deficiência. Discutiremos princípios de usabilidade, testes de usuário e as diretrizes WCAG para tornar sua loja ainda mais profissional e inclusiva.

Prepare-se para transformar sua loja em um exemplo de usabilidade e acessibilidade!

📚 Recursos Adicionais

Parabéns por mais uma aula fundamental! Mantenha a prática e nos vemos na próxima! 👋

🚀 Pronto para a próxima aula?

Continue sua jornada Shopify!

Ver todas as aulas