Estilos
Lista, cria, altera, exclui e ativa os estilos (cores, fontes e CSS) de um tema.
Um estilo é uma variação visual do tema: cores, tipografia, geometria, CSS próprio e tokens avançados. Um tema pode ter muitos estilos, mas só um ativo, e é ele que a vitrine usa. Todas as rotas exigem o privilégio manage_theme.
Listar estilos
/api/v1/admin/storefront-themes/{id}/stylesAdminLista os estilos de um tema
Sem paginação. Em temas com muitos estilos a resposta pode ser grande.
Parâmetros de caminho
iduuidobrigatório{
"styles": [
{
"id": "cd9e5a33-508e-4c69-8e85-85e20f3ad712",
"theme_id": "a650691c-22f3-4508-9a83-9418c04976a6",
"name": "Runner",
"is_active": true,
"primary_color": "#2563eb",
"secondary_color": "#2563eb",
"accent_color": "#f59e0b",
"bg_color": "#ffffff",
"text_color": "#1f2937",
"header_bg_color": "#ffffff",
"footer_bg_color": "#2563eb",
"link_color": "#2563eb",
"link_hover_color": "#1f54c8",
"heading_color": "#1f2937",
"muted_text_color": "#797f87",
"border_color": "#e5e7eb",
"button_text_color": "#ffffff",
"font_family": "Inter, sans-serif",
"heading_font": "Inter, sans-serif",
"border_radius": "8px",
"max_width": "1280px",
"custom_css": "",
"extended_config": {},
"created_at": "2026-08-02T04:49:40.245408Z",
"updated_at": "2026-08-02T04:49:40.263163Z"
}
],
"total": 1
}Campos de um estilo
iduuidtheme_iduuidnamestringis_activebooleanprimary_colorstring#2563eb.secondary_colorstringaccent_colorstringbg_colorstringtext_colorstringheader_bg_colorstringfooter_bg_colorstringlink_colorstringlink_hover_colorstringheading_colorstringmuted_text_colorstringborder_colorstringbutton_text_colorstringfont_familystringfont-family do CSS).heading_fontstringborder_radiusstring8px).max_widthstring1280px).custom_cssstringextended_configobject{} quando vazio.created_atstringupdated_atstringCriar estilo
/api/v1/admin/storefront-themes/{id}/stylesAdminAdiciona um estilo a um tema
Os campos que você não enviar recebem os valores padrão. O estilo nasce inativo, exceto quando o tema ainda não tem nenhum estilo ativo.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
namestringpadrão: New Styleprimary_colorstringpadrão: #2563ebsecondary_colorstringpadrão: #1e40afaccent_colorstringpadrão: #f59e0bbg_colorstringpadrão: #fffffftext_colorstringpadrão: #1f2937header_bg_colorstringpadrão: #fffffffooter_bg_colorstringpadrão: #1f2937link_colorstringpadrão: #2563eblink_hover_colorstringpadrão: #1d4ed8heading_colorstringpadrão: #111827muted_text_colorstringpadrão: #6b7280border_colorstringpadrão: #e5e7ebbutton_text_colorstringpadrão: #fffffffont_familystringpadrão: Inter, sans-serifheading_fontstringpadrão: Inter, sans-serifborder_radiusstringpadrão: 8pxmax_widthstringpadrão: 1280pxcustom_cssstringextended_configobject{}.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/storefront-themes/$THEME_ID/styles" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Vermelho Natal","primary_color":"#dc2626","footer_bg_color":"#7f1d1d"}'A resposta 201 é o estilo criado, no formato de "Campos de um estilo".
Alterar estilo
/api/v1/admin/storefront-themes/styles/{styleId}AdminSobrescreve os campos de um estilo
Não é parcial. Todos os campos de cor, fonte, geometria, custom_css e extended_config são reescritos: o que você não enviar volta ao valor padrão da tabela acima (e custom_css fica vazio). Só o name é preservado quando vem vazio. Antes de gravar, o estado anterior vai para o histórico.
Parâmetros de caminho
styleIduuidobrigatórioCorpo da requisição
namestringprimary_colorstringA resposta 200 é o estilo atualizado.
Excluir estilo
/api/v1/admin/storefront-themes/styles/{styleId}AdminExclui um estilo inativo
Não permite excluir o estilo ativo nem o último estilo do tema.
Parâmetros de caminho
styleIduuidobrigatório{ "message": "deleted" }Ativar estilo
/api/v1/admin/storefront-themes/styles/{styleId}/activateAdminTorna o estilo o estilo em uso do seu tema
Desativa o estilo ativo do mesmo tema e ativa este. Se o tema é o ativo, a vitrine muda de cores na hora.
Parâmetros de caminho
styleIduuidobrigatório{ "message": "activated" }Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo JSON inválido | {"error":"invalid request body","detail":"..."} |
| 401 | Sem token ou token expirado | {"error":"missing authorization header"} |
| 403 | Sem o privilégio manage_theme | {"error":"insufficient privileges","required":"manage_theme"} |
| 404 | Estilo inexistente (alterar, ativar) | {"error":"not found","detail":"not found"} |
| 409 | O estilo pertence a um patch aplicado | {"error":"...","code":"patch_owned","how_to_proceed":"..."} |
| 500 | Excluir o estilo ativo ou o único; id que não é UUID; falha interna | {"error":"failed to delete style","detail":"cannot delete the active or only style"} |