JavaScript (seed.js)
O seed.js é um arquivo JavaScript mínimo incluído automaticamente em toda página. Ele adiciona interatividade essencial sem dependências externas.
O que o seed.js faz
| Feature | Componente | Como funciona |
|---|---|---|
| Nav dropdown | @nav | Clique no item com subitems abre/fecha o dropdown |
| Nav hamburger | @nav | Clique no burger mostra/oculta o menu mobile |
| Nav mobile accordion | @nav | Items com subitems no mobile abrem em accordion |
| Navbar toggle | .navbar | Suporte ao componente navbar legado |
| Accordion trigger | .accordion-trigger | Toggle de aria-expanded para accordions CSS |
| FAQ toggle | .faq-question | Toggle de data-open para FAQs |
Comportamento do nav
O seed.js faz 3 coisas automaticamente no @nav:
- Move hrefs: O
hrefdo wrapper<div>é movido para o<a>interno (necessário porquedivnão aceitahrefcomo atributo válido) - Desktop dropdowns: Adiciona chevron e evento de clique nos items com subitems no menu desktop
- Mobile: Configura o hamburger, o painel mobile, e os items com subitems em modo accordion
Fechar dropdowns
Ao clicar fora de qualquer dropdown desktop, todos os dropdowns são fechados automaticamente. O evento de stopPropagation no clique do trigger impede que o dropdown feche imediatamente ao ser aberto.
Customizando o seed.js
Não edite o seed.js diretamente — ele é sobrescrito a cada build. Para adicionar comportamentos próprios, crie um arquivo em src/static/ e inclua via extra_js no front matter:
```seed --- title: Minha Página extra_js: - /meu-script.js --- ```
Sem dependências
O seed.js não usa jQuery, frameworks ou bundlers. É JavaScript puro (ES5 para máxima compatibilidade), encapsulado em DOMContentLoaded.
O Tailwind CSS é carregado via CDN (https://cdn.tailwindcss.com) no head de cada página. Para produção, considere usar o build do Tailwind para purging de classes não usadas.