$ account shower
Shower is a modular HTML presentation engine built on vanilla JavaScript, CSS, and HTML. It provides a core library (`@shower/core`) that manages slide navigation, modes (list/full), keyboard shortcuts, touch support, progress bars, timers, and accessibility. The core is event-driven and extensible via a plugin system. Two official themes (Ribbon and Material) are provided as separate packages, each with comprehensive CSS styling using modern features like custom properties, `tan(atan2())` scaling, and responsive grid layouts. A CLI tool (`@shower/cli`) offers commands to create, serve, bundle, archive, publish to GitHub Pages, and export to PDF presentations. The CLI uses lazy-loaded commands, a custom task runner, and integrates with Puppeteer for PDF generation. The architecture is monorepo-based with workspaces, clean separation of concerns, and thorough testing (Playwright for core, Node test runner for CLI). The codebase demonstrates strong engineering practices: ES modules, strict linting, CI/CD, and dependency management via Dependabot.