A lightweight Chrome extension that provides real-time reading time estimates for web pages, helping users better manage their reading time. Features a premium UI with intelligent content detection and customizable settings.
- ⏱️ Real-time reading time estimation for any webpage
- 📊 Dynamic progress tracking with animated circle
- 🎨 Premium UI with animated gradient backgrounds
- 🌓 Dark/Light theme support with glass morphism
- 📍 Customizable widget positioning
- 🎯 Intelligent content detection
- 🤖 AI-generated content support
- 🔒 Minimal permissions required for operation
- 💾 Persistent user preferences
- Clone this repository:
git clone [your-repository-url]- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top-right corner
- Click "Load unpacked" and select the project directory containing manifest.json
The extension uses Manifest V3 with the following key features:
- Manifest Version: 3
- Permissions:
activeTab: For accessing current tab contentscripting: For injecting reading time calculation scriptsstorage: For saving user preferences
- Content Scripts: Automatically runs on all URLs to calculate reading time
├── src/
│ ├── components/
│ │ ├── Widget.jsx # Main widget component
│ │ ├── Settings.jsx # Settings panel
│ │ └── Slider.jsx # Reading speed slider
│ ├── contexts/
│ │ └── SettingsContext.jsx # Settings management
│ ├── hooks/
│ │ ├── useScrollProgress.js # Scroll tracking
│ │ └── useStorage.js # Chrome storage management
│ ├── content/
│ │ └── content.jsx # Content script
│ └── App.jsx # Popup component
├── public/ # Static assets
└── manifest.json # Extension configuration
- Node.js (latest LTS version recommended)
- Chrome browser
- Install dependencies:
npm install- Build the extension:
npm run build- Build the project
- Open Chrome Extensions page
- Enable Developer Mode
- Click "Load unpacked"
- Select the built extension directory
The extension provides several key features:
-
Content Analysis
- Intelligently detects main content area
- Supports AI-generated content (LLM responses)
- Filters out UI elements and navigation
-
Reading Progress
- Animated progress circle
- Current section tracking
- Estimated completion time
- Word count statistics
-
Customization
- Theme switching (Dark/Light)
- Widget positioning
- Reading speed adjustment (WPM)
- Toggleable UI elements
-
Technical Implementation
- Uses Shadow DOM for style isolation
- Optimized scroll performance
- Persistent settings storage
- Premium UI with animated gradients
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add YourFeature') - Push to the branch (
git push origin feature/YourFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, bug reports, or feature requests, please open an issue in the GitHub repository.