Findalo

CSS avançado e classes estáveis

Quando os tokens não chegam — ocultar um elemento, mover outro, um detalhe muito seu — pode escrever CSS diretamente sobre as classes do widget. Só as desta lista têm suporte garantido: o resto do markup é interno e pode mudar sem aviso.

Onde vai este CSS

No Custom CSS do painel (Aparência → Avançado). O widget vive num shadow DOM, por isso o CSS da sua loja não chega a estas classes — o editor do painel injeta o seu lá dentro. Os tokens --fdl-* são a exceção: esses pode declará-los a partir de fora.

Classes com suporte estável

Estrutura

Seletor O que é
.findalo-search-host Host do widget na sua página (fora do shadow). O sítio onde declarar os tokens --fdl-* a partir da sua própria folha de estilos.
.kos-search Raiz do widget dentro do shadow. Âmbito dos tokens no Custom CSS do painel.
.topbar Cabeçalho da pesquisa: logótipo, carrinho e fechar.
.logo Ligação do logótipo da loja no cabeçalho.

Pesquisa

Seletor O que é
.search-box Caixa do input de pesquisa. Leva a classe .searching enquanto há uma pesquisa em curso.
.search-box input O input de pesquisa.

Filtros

Seletor O que é
.filter-bar Barra sob o cabeçalho: chips de filtros ativos, contador e ordenação.
.active-chip Chip de um filtro ativo.
.sort-select Seletor de ordenação.
.facets Sidebar de filtros (marca, categoria, características…).
.facet-section Bloco de uma faceta dentro da sidebar.
.facet-label Uma opção de filtro (checkbox + texto).

Resultados

Seletor O que é
.results Contentor principal de resultados.
.grid Grelha de resultados (usa as colunas configuradas no painel). Em vista de lista leva também .grid--list.
.result-banner Banner promocional por cima dos resultados.

Card de produto

Seletor O que é
.card Card de produto.
.card .img Caixa de imagem do card.
.card .name Nome do produto.
.card .price-row Linha de preços (atual + riscado se houver promoção).
.card .badge Etiqueta do card (promoção, esgotado, novidade…).
.card .add-to-cart Botão «Adicionar ao carrinho» do card.

Ecrã inicial

Seletor O que é
.empty-state Ecrã inicial (antes de escrever): recentes, populares, destacados.
.section-title Título de cada secção do ecrã inicial.
.popular-card Card do carrossel de populares/destacados.
.recent-item Item de pesquisas recentes.
.pre-search-banner Banner do ecrã inicial.
.discovery-rail Rail de descoberta (acessos a rankings) do ecrã inicial.

Overlays

Seletor O que é
.qv-panel Painel do modal de vista rápida.
.quiz-panel Painel do quiz / pesquisa guiada.

Receitas

Ocultar «Adicionar ao carrinho» numa categoria

/* Os produtos ligam à sua página: filtre pelo URL da categoria */
.card[href*="/tarjetas-regalo/"] .add-to-cart { display: none; }

Grelha mais densa em ecrãs grandes

@media (min-width: 1280px) {
  .grid { grid-template-columns: repeat(6, 1fr) !important; }
}

Cabeçalho fixo ao fazer scroll

.kos-search .topbar { position: sticky; top: 0; z-index: 5; }

Limites: o CSS personalizado admite até 100.000 caracteres se o colar no painel; se entrar pela Automatização IA o limite é 20.000, para que um humano o possa revisar. As regras cujo seletor aponte para as classes ou o atributo do badge (.f_brand_*, [data-findalo-brand]) são APAGADAS ao guardar —a regra inteira, substituída por um comentário— e o painel diz-te quantas vão cair antes de guardares. É um filtro por padrão, não uma deteção de intenções: uma regra que esconda o badge por outra via passa o filtro, e então o integrity check do widget corta-a em tempo de execução.