html-slideshow
Uma apresentação de slides responsiva empacotada em um único arquivo .html autocontido e minificado.
Autor escreve slides em HTML; o motor (assets/base.css + base.js) junto com uma build Bun
produz o arquivo final. Requer Bun.
Fluxo de Trabalho
- Verifique o runtime —
bun --version(instale de bun.sh se ausente; verificado com 1.4.0). - Copie o template — copie
assets/base.html,assets/base.csseassets/base.jspara uma pasta do deck no workspace do usuário (lado a lado). O.htmlpode ser renomeado livremente (ex.:meu-deck.html);base.cssebase.jssão referenciados por caminho relativo a partir do.html, então renomeá-los requer atualizar essas referências. - Defina o título — no
.html, edite<title>. O deck renderiza escuro por padrão; a impressão alterna automaticamente para uma paleta clara forçada. - Adicione slides — em
<main id="deck">, um<section class="slide">por slide:<section class="slide"> <h2>Resultados trimestrais</h2> <ul><li>Receita aumentou 24%</li></ul> </section> - CSS/JS personalizados — apenas arquivos vinculados, nunca inline. Não adicione
blocos
<style>ou<script>ao.html— ele contém apenas o esqueleto da página e o conteúdo dos slides; a build inlinea os arquivos vinculados no arquivo final autocontido, o que mantém o código-fonte editável e o motor com fonte única. Dois locais aprovados para código personalizado: editebase.css/base.jsdiretamente, ou — para estilização/comportamento específicos do deck isolados do motor — adicione<link rel="stylesheet" href="extra.css">/<script src="extra.js" defer></script>(a build inlinea eles; mantenhabase.*sem modificações sempre que possível — vejareferences/bundling-assets.md). (Receitas emreferences/slide-patterns.mdseguem isso.) - Dimensione com unidades de contêiner — nunca
px. Cada slide é um contêiner de consulta CSS, então usecqw/cqh/cqmineclamp()e o conteúdo se ajusta a qualquer tela.px/ptquebram a responsividade — não os use (o quadro externo usasvh). Esta é a única regra que os agentes erram; guia completo emreferences/responsive-units.md. Viewports em modo retrato são tratadas para você: os slides renderizam em sua tela paisagem e se ajustam para caber, então tabelas/grades largas nunca transbordam em uma tela de celular (--slide-w/--slide-hem:root, padrão16/9). - Build — execute o script de build da habilidade:
bun scripts/build.js meu-deck.html(envolvebun build --compile --target=browser --minify meu-deck.html --outdir dist; funciona em qualquer SO que o Bun suporte) →dist/meu-deck.html: um único arquivo minificado, autocontido com CSS, JS e quaisquer assets referenciados inlineados. Este é o arquivo que você distribui. - Verifique o arquivo gerado em uma ferramenta de navegador (uma URL
file://paradist/meu-deck.html). Aprovado: os controles renderizam; SetaDireita avança o contador para "2 / N" e definelocation.hashpara#2; uma viewport de ~400×800 ainda mostra um slide totalmente visível com letterbox;Oalterna a visão geral; emulação de mídia de impressão produz um slide por página. Os sinais estão documentados emreferences/using-the-deck.md. Se nenhuma ferramenta de navegador estiver disponível, diga que a verificação visual foi ignorada. - Limpeza — nada além da saída da build é criado; mantenha
meu-deck.html,base.cssebase.js(o código-fonte editável) junto adist/meu-deck.html(o arquivo que você distribui). Se o usuário quiser apenas o arquivo único, movadist/meu-deck.htmlpara onde ele espera o deck e mantenha a pasta do deck como sua fonte.
Índice de Referências
Carregue sob demanda — não todos de uma vez:
references/using-the-deck.md— configuração, o contrato do slide, navegação completa, links profundos (#5abre o slide 5;#algum-idabre o slide que contém esse id; use para citações → fontes), a build e impressão.references/slide-patterns.md— receitas de slides prontas + orientação de autoria.references/responsive-units.md— o guia de dimensionamento fluido sempx.references/bundling-assets.md— SVG inline / assets de data-URI (a build também inlinea referências relativas).references/engine-anatomy.md— mapa do motor (base.html/base.css/base.js) para alterá-lo.examples/quickstart.html— um deck preenchido (código-fonte; faça a build para obter um arquivo autocontido).examples/README.md— as duas formas do deck de exemplo (código-fonte legível vs autônomo gerado) e como reconstruir o autônomo após edições.
Quando usar
Quando a saída deve ser mostrada uma tela inteira por vez: uma palestra, aula, demonstração, atualização de status ou pitch. Não para prosa com rolagem ou documentos.