A Chrome extension that displays a demo agenda sidebar for internal demos. This tool enhances demos by showing a structured agenda with progress tracking alongside your solution.
- 📋 Collapsible sidebar with step-by-step demo agenda
- 🎯 Visual progress tracking for steps and substeps
- ⌨️ Global keyboard navigation
- 🔄 Auto-scrolling to keep active steps centered
- 🎨 Customizable styling and branding
- 📱 Responsive design that adjusts main content
- Clone this repository
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked"
- Select the extension directory
- Numpad 6: Move to next step/substep
- Numpad 4: Move to previous step/substep
- ESC: Toggle sidebar visibility
The extension can be customized via configuration.json:
{
"steps": [
{
"title": "Part 1 - View Commission",
"img": "/assets/avatar_1.jpg",
"name": "Lidia Johnson",
"role": "Head of Sales",
"subSteps": ["Commission Earned", "Compensation Statement", "Analyze"]
}
],
"logo": {
"url": "/assets/company-logo.png",
"height": 89,
"display": true
},
"keyboard": {
"nextKey": "Numpad6",
"previousKey": "Numpad4",
"toggleKey": "Escape"
}
}demo-agenda-extension/
├── manifest.json
├── content.js
├── background.js
├── sidebar.html
├── styles.css
├── configuration.json
└── assets/
└── [images]
Modify styles.css to match your brand's look and feel:
- Colors
- Fonts
- Spacing
- Transitions
- Set
logo.display: falseto hide the logo - Adjust
logo.heightto change logo size - Update
logo.urlto use your own logo
Modify keyboard in configuration.json to change navigation keys:
"keyboard": {
"nextKey": "Numpad6",
"previousKey": "Numpad4",
"toggleKey": "Escape"
}- Chrome browser
- Basic understanding of Chrome extension architecture
- Familiarity with HTML, CSS, and JavaScript
- Make changes to the source files
- Reload the extension in Chrome
- Test changes on various websites
No build process required - the extension runs directly from source.
- Uses Manifest V3
- Implements content scripts for page integration
- Uses message passing for component communication
- Handles iframe communication for navigation
- Maintains state across navigation
Common issues and solutions:
-
Sidebar not appearing
- Check if the extension is enabled
- Ensure no conflicts with page CSS
-
Keyboard navigation not working
- Verify NumLock is on for numpad keys
- Check console for errors
- Ensure no key binding conflicts
-
Layout issues
- Check z-index conflicts
- Verify CSS specificity
- Inspect element positioning
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
Bohdan