← Biblioteca componentes/listas/leque-paineis/ficha.md Abrir previewmarkupestiloscript
listas/leque-paineis

Leque de painéis verticais

🟢 estavel complexidade média prefixo fan- servicos lista imagem hover acordeao expansivel

Lista de serviços como painéis de foto lado a lado. O ativo ocupa ~3,4× a largura dos outros e revela título grande e descrição; os fechados mostram só o número e o título girado na vertical. Hover, clique, foco ou seta trocam o painel aberto.

Resolve o problema clássico de "5 serviços, 5 cards iguais, nenhum lido": aqui só um bloco de texto existe por vez, então o olho tem um destino.


Quando usar

Quando não usar


Padrão editorial

Slot Regra
Olho 2 a 4 palavras: "O que oferecemos", "Nossas frentes".
Título da seção 1 linha com uma palavra em <em>.
.fan-num Sequência 0105. Não pule número, não use ícone no lugar.
.fan-vert Nome do serviço, 2 a 3 palavras, quebrado com <br> em até 2 linhas. É o rótulo do painel fechado — se não couber na vertical, o nome é longo demais.
.fan-title Repete o nome do serviço por extenso, sem <br>.
.fan-text 1 frase, 18 a 30 palavras, teto de 40ch de largura. Diz o benefício, não o processo.

Consistência é o que sustenta o efeito. Se um item tem 12 palavras e outro tem 40, a troca de painel fica desigual. Escreva os cinco textos juntos, no mesmo fôlego.

Especificação das imagens


Como usar

<link rel="stylesheet" href="componentes/listas/leque-paineis/estilo.css">
<script src="componentes/listas/leque-paineis/script.js"></script>

O script varre [data-fan], então mais de um leque na mesma página funciona sem conflito.

Ganchos

Gancho Papel
[data-fan] raiz do leque
.fan-panel.is-open painel ativo — marque um no HTML
tabindex="0" no painel obrigatório: é o que dá navegação por teclado

Variações


Gotchas


Histórico

Projeto Onde Data Diferenças
Liberta Wealth index.html #solucoes 2026-08 Origem. Classes internas sem prefixo (.veil, .n, .vert, .full), .open em vez de .is-open, sem acesso por teclado, border-radius:10px cravado.

Normalizações aplicadas na extração: prefixo em todas as classes internas; .open.is-open (evita colidir com acordeão e drawer); raio cravado → --radius-media; escurecimento passou a ler --dark-rgb; sage cru → --accent; adicionado tabindex, :focus-visible, navegação por setas e Enter/Espaço; script passou a partir de [data-fan] em vez de .fan global, para suportar múltiplos leques.

Divergência conhecida vs. produção: a Liberta Wealth rodou com border-radius:10px nos painéis, o que contraria a regra flat de canto vivo do próprio projeto. Aqui o valor vem do tema (--radius-media:0). Se for sincronizar a biblioteca de volta para o site, essa é uma mudança visual real — decida antes.