Sistema de temas
Visão geral
Como os temas funcionam e qual nível de personalização usar.
Existem três formas de mudar a aparência da loja. Comece pela mais simples que resolve o seu caso.
| Nível | Onde | Quando usar |
|---|---|---|
| Customização | Customizar | Trocar cores, adicionar CSS e JavaScript em todo o site, barras de aviso e efeito de neve. |
| Páginas | Editor HTML | Criar uma página solta, como uma landing page. |
| Temas | Templates | Redesenhar a vitrine inteira em Liquid. |
O que é um tema#
Um tema é uma pasta de arquivos. A vitrine combina esses arquivos com os dados da loja a cada visita.
routes/routes.json rotas: URL para arquivo em pages/
layouts/theme.liquid cabeçalho, rodapé e {% block content %}
snippets/product-card.liquid card de produto
pages/index.liquid home
pages/product.liquid /product/:id e /product/:id/:variant
pages/category.liquid /category/:id
pages/categories.liquid /categories
pages/terms.liquid /terms
assets/theme.css estilos do tema
assets/theme.js scripts do temaTodo tema novo já nasce com esses arquivos, funcionando. É o melhor ponto de partida para aprender.
Todo .css do tema é juntado em um só arquivo, e o mesmo vale para os .js, sempre em ordem de caminho.
Rotas#
O arquivo routes/routes.json liga cada URL a um arquivo em pages/:
{
"/": "pages/index.liquid",
"/product/:id/:variant": "pages/product.liquid",
"/product/:id": "pages/product.liquid",
"/category/:id": "pages/category.liquid",
"/categories": "pages/categories.liquid",
"/terms": "pages/terms.liquid",
"/sobre": "pages/sobre.liquid"
}- Um trecho com
:é um parâmetro, lido emroute.params. Em/category/:id, useroute.params.id. - Rota sem parâmetro vence rota com parâmetro:
/product/novoganha de/product/:id. - As variáveis de
productsó existem nas rotas que começam com/product/e têm:id.
Exemplo mínimo#
Uma página própria usa o layout, define o título e preenche o bloco de conteúdo:
{% layout 'layouts/theme' %}
{% assign page_title = "Sobre a loja" %}
{% block content %}
<section class="section container">
<h1>Sobre {{ store.name }}</h1>
{% if store.description %}<p>{{ store.description }}</p>{% endif %}
<p>Temos {{ catalog.products.size }} produtos no ar.</p>
</section>
{% endblock %}Fluxo de trabalho#
Crie um tema#
Em Templates, na Biblioteca de temas, crie um tema novo. Ele fica fora do ar até ser publicado.
Edite#
Use o editor do painel ou trabalhe no seu computador com o editor local.
Corrija os problemas#
Em tema não publicado, salvar sempre grava e mostra os problemas como aviso.
Publique#
Publicar troca o tema no ar. Só um tema fica publicado por vez, e o anterior continua guardado na biblioteca.
Paleta de cores#
A paleta de Customizar chega ao tema como variáveis CSS. Use-as nos seus estilos para o tema acompanhar as cores da loja:
.card {
background: var(--color-container);
border: 1px solid var(--border-border);
color: var(--text-paragraph);
}| Grupo | Variáveis |
|---|---|
| Cores | --color-container, --color-primary, --color-background, --color-sub, --color-reverse, --color-green, --color-blue, --color-yellow, --color-red, --color-pink |
| Texto | --text-title, --text-paragraph, --text-reverse |
| Bordas | --border-border, --border-focus |
| Botão | --button-color, --button-text, --button-text-reverse |
Limites#
| Item | Limite |
|---|---|
| Extensões aceitas | .liquid, .json, .css, .js, .svg, .txt |
| Tamanho de um arquivo | 256 KB |
| Arquivos por tema | 300 |
| Tamanho do tema | 5 MB |
| Temas por loja | 20 |
| Tempo de render | 500 ms por página |
| Saída de uma página | 2 MB |
Cada card do tema inicial custa cerca de 0,5 ms. Uma página com milhares de {% render %} passa do limite, então pagine ou filtre. Quando o render falha ou passa do limite, a vitrine mostra a página padrão no lugar.
Cache#
As páginas são guardadas por 60 segundos para visitantes anônimos, por loja e caminho. Salvar no painel limpa o cache na hora. Mudança de produto ou categoria leva até cerca de 1 minuto para aparecer.
Quem pode fazer o quê#
| Ação | Permissão no cargo |
|---|---|
| Ver temas | Ver templates |
| Criar e editar tema fora do ar | Editar templates |
| Publicar, despublicar e editar o tema no ar | Publicar templates |

