- JavaScript 55.4%
- CSS 29.8%
- HTML 14.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| public | ||
| scripts | ||
| src | ||
| .gitignore | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| vite.config.js | ||
📖 Lumina - Web E-Reader EPUB (Alpha)
Warning
Status do Projeto: Versão Alpha ⚠️
Este projeto está atualmente em fase de desenvolvimento ativo (Alpha). Recursos podem sofrer alterações e melhorias constantes.
Lumina é uma aplicação web moderna, minimalista e acessível desenvolvida para a leitura de e-books no formato EPUB. Inspirada na estética limpa de leitores como Apple Books e Kindle, a interface foi desenhada com foco total na experiência de leitura, responsividade (mobile/tablet/desktop) e acessibilidade.
🌟 Funcionalidades Atuais
- 📚 Estante de Livros (Bookshelf View):
- Exibição de catálogo em grid responsivo com capas dos livros.
- Filtro em tempo real por título, autor e categorias.
- Indicador visual de progresso de leitura em cada livro (ex: 45% lido).
- 📖 Leitor de EPUB (Reader View com ePub.js):
- Navegação entre páginas via botões laterais, atalhos de teclado (Setas, Espaço, PageUp/PageDown) e gestos.
- Sumário Interativo (TOC) para salto direto de capítulos via gaveta lateral.
- Customização de Leitura:
- 🎨 3 temas de leitura: Claro, Sépia e Escuro.
- 🔤 Ajuste fino de tamanho de fonte (12px a 26px).
- 🔡 Troca de família tipográfica: Merriweather (Serif), Lora (Serif) e Inter (Sans-serif).
- Salva automaticamente o progresso exato de leitura (posição CFI) via
localStorage.
- 🌓 Modo Escuro Global: Suporte ao tema dark em toda a aplicação (Estante + Leitor).
- 📱 Design Acessível & Responsivo:
- Layout totalmente adaptado para celular (com bottom sheets móveis) e tablet.
- Suporte a navegação por teclado com estados de foco visíveis (
:focus-visible). - Alvos de toque otimizados (mínimo 44px).
🛠️ Tecnologias Utilizadas
- Core: Vanilla JavaScript (ES Modules), HTML5 e CSS3 puro (sem Tailwind/Bootstrap).
- Bundler & Dev Server: Vite
- EPUB Engine: ePub.js
- Ícones: Lucide Icons
- Geração de Livros Demo: JSZip (script Node.js para compilar
.epubsintéticos para testes).
📁 Estrutura do Projeto
ereader/
├── public/
│ ├── books/
│ │ ├── books.json # Manifesto local que simula a resposta da API
│ │ ├── dom-casmurro.epub # EPUB sintético de teste
│ │ ├── o-alienista.epub # EPUB sintético de teste
│ │ └── alice.epub # EPUB sintético de teste
│ └── covers/ # Capas geradas para a demonstração
├── scripts/
│ └── generate-epub-samples.js # Script de geração automática dos arquivos EPUB demo
├── src/
│ ├── api.js # Serviço de busca de livros (preparado para API REST)
│ ├── bookshelf.js # Gerenciador da visualização da Estante e busca
│ ├── main.js # Ponto de entrada da aplicação
│ ├── reader.js # Gerenciador do leitor EPUB, temas e injeção de CSS
│ ├── storage.js # Abstração de persistência no localStorage
│ └── style.css # Sistema de design, tokens CSS, a11y e media queries
├── index.html # Estrutura HTML principal
├── package.json # Dependências e scripts
├── vite.config.js # Configuração do Vite com alias e bundles
└── README.md # Documentação do projeto
🚀 Como Executar Localmente
Pré-requisitos
- Node.js (versão 18 ou superior)
- npm ou yarn
Passo a Passo
-
Instalar as dependências:
npm install -
Gerar os arquivos EPUB de teste (opcional, caso precise recriá-los):
npm run generate-books -
Iniciar o servidor de desenvolvimento:
npm run devAcesse no seu navegador em:
http://localhost:3000/ -
Gerar o build de produção:
npm run build
🗺️ Roadmap (Próximos Passos)
- Substituir o manifesto local (
books.json) por uma integração completa com API REST / Backend. - Upload de arquivos EPUB locais diretamente pelo usuário.
- Sistema de marcadores de página (Bookmarks) e destaques de texto (Highlights).
- Suporte a dicionário e tradução ao selecionar palavras.
📄 Licença
Este projeto é um software livre para fins educacionais e de demonstração.