Leitor de epub
  • JavaScript 55.4%
  • CSS 29.8%
  • HTML 14.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-30 20:12:42 -04:00
public init: projeto inicial 2026-08-30 18:20:57 -04:00
scripts init: projeto inicial 2026-08-30 18:20:57 -04:00
src init: projeto inicial 2026-08-30 18:20:57 -04:00
.gitignore init: projeto inicial 2026-08-30 18:20:57 -04:00
index.html init: projeto inicial 2026-08-30 18:20:57 -04:00
package-lock.json init: projeto inicial 2026-08-30 18:20:57 -04:00
package.json init: projeto inicial 2026-08-30 18:20:57 -04:00
README.md init: projeto inicial 2026-08-30 18:20:57 -04:00
vite.config.js fix: ajustando deploy do linux 2026-08-30 20:12:42 -04:00

📖 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 .epub sinté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

  1. Instalar as dependências:

    npm install
    
  2. Gerar os arquivos EPUB de teste (opcional, caso precise recriá-los):

    npm run generate-books
    
  3. Iniciar o servidor de desenvolvimento:

    npm run dev
    

    Acesse no seu navegador em: http://localhost:3000/

  4. 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.