Placar eletrônico web para partidas de vôlei — leve, offline e instalável como PWA no celular. Construído com HTML, CSS e JavaScript puro, sem framework e sem etapa de build.
- Placar em tela cheia dividido em dois lados tocáveis (Time A e Time B)
- Toque em qualquer área do time: +1 ponto
- Arrastar para baixo sobre a área do time: −1 ponto (desfazer)
- Nomes e cores dos times editáveis
- Configurações persistentes em
localStorage:- Pontuação limite (15, 21, 25 ou sem limite)
- Regra de vitória com 2+ pontos de diferença (deuce)
- Animação de comemoração ao vencer
- Lógica completa de fim de partida conforme regras configuradas
- PWA instalável com service worker e suporte offline
- QR Code para compartilhar o link e instalar no celular
- Animação de confete opcional ao vencer (
canvas-confetti)
Como não há bundler, basta servir os arquivos estáticos:
# Opção 1: npx serve
npx serve .
# Opção 2: Python
python3 -m http.server 8080
# Opção 3: extensão Live Server no VS Code / CursorAbra http://localhost:3000 (ou a porta indicada) no navegador.
Nota: O service worker e a instalação como PWA exigem HTTPS ou
localhost.
- Acesse app.netlify.com
- Arraste a pasta do projeto para a área de deploy
- O Netlify publicará a raiz automaticamente (configurado em
netlify.toml)
- Envie o projeto para GitHub/GitLab/Bitbucket
- No Netlify: Add new site → Import an existing project
- Conecte o repositório
- Build command: deixe vazio
- Publish directory:
.(raiz) - Clique em Deploy
O arquivo netlify.toml já define publish = "." sem comando de build.
index.html # Página principal
styles.css # Estilos (variáveis CSS, Flexbox/Grid)
app.js # Lógica do placar, gestos, PWA
sw.js # Service worker (cache app-shell)
manifest.webmanifest # Manifesto PWA
offline.html # Fallback offline
icons/ # Ícones 192, 512 e maskable
netlify.toml # Configuração Netlify
Testado mentalmente e implementado com feature-detection para:
- Chrome / Edge (desktop e Android)
- Safari (iOS e macOS)
- Firefox
O placar funciona mesmo se as libs CDN (confete e QR Code) não carregarem — há degradação graciosa.
Uso livre para projetos pessoais e comerciais.