- π¨ Beautiful UI - Modern design with glassmorphism effects and animations
- π§ Chrome APIs - Complete utilities for tabs, storage, messaging, and scripting
- π DOM Inspector - Visual element selection with detailed information extraction
- β‘ Fast Development - Hot reload with Vite and TypeScript support
- π― Type Safety - Full TypeScript coverage with Chrome extension types
- π Styled Components - TailwindCSS with custom design system
- π± Responsive - Optimized for Chrome extension popup (350px)
- π§ͺ Developer Tools - ESLint, Prettier, and development utilities
- Node.js (v18 or higher)
- npm or yarn
- Google Chrome browser
git clone https://github.com/yourusername/chrome-extension-toolkit.git
cd chrome-extension-toolkit
npm install# Start development server (for UI development)
npm run dev
# Build extension for Chrome
npm run build:extension
# Lint code
npm run lint- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked"
- Select the
dist/folder from your project - Click the extension icon in the toolbar to open!
chrome-extension-toolkit/
βββ public/
β βββ icons/ # Extension icons (16, 48, 128px)
β βββ manifest.json # Chrome extension manifest
βββ src/
β βββ components/ # React components
β β βββ Homepage.tsx
β β βββ Header.tsx
β β βββ FeatureCard.tsx
β βββ content/ # Content scripts
β β βββ inspector-content.ts
β βββ utils/ # Chrome extension utilities
β β βββ tabs.ts # Tab management
β β βββ storage.ts # Storage operations
β β βββ messaging.ts # Message passing
β β βββ inspector.ts # DOM inspection
β βββ App.tsx
β βββ main.tsx
βββ tailwind.config.js # TailwindCSS configuration
βββ vite.config.ts # Vite build configuration
βββ package.json
import { getActiveTab, createTab, closeTab } from './utils';
// Get currently active tab
const activeTab = await getActiveTab();
// Create new tab
const newTab = await createTab('https://example.com');
// Close tab
await closeTab(tabId);import { setStorageItem, getStorageItem } from './utils';
// Store data
await setStorageItem('key', 'value', 'local'); // or 'sync', 'session'
// Retrieve data
const value = await getStorageItem('key', 'local');import { startDOMInspection, getSelectedElementInfo } from './utils';
// Start visual element selection
await startDOMInspection();
// Get detailed element information
const elementInfo = await getSelectedElementInfo();
console.log(elementInfo.xpath, elementInfo.cssSelector);import { sendMessageToBackground, onMessage } from './utils';
// Send message to background script
await sendMessageToBackground({ type: 'action', data: 'value' });
// Listen for messages
onMessage((message, sender, sendResponse) => {
console.log('Received:', message);
sendResponse({ success: true });
});The project uses a custom TailwindCSS theme with predefined colors:
// tailwind.config.js
theme: {
extend: {
colors: {
primary: { /* blue shades */ },
secondary: { /* purple shades */ },
accent: { /* orange shades */ },
// ... more colors
}
}
}- Create components in
src/components/ - Add utilities in
src/utils/ - Update manifest permissions if needed
- Add to the main homepage feature grid
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm run build:extension |
Build and prepare extension |
npm run lint |
Run ESLint |
npm run preview |
Preview built app |
This template includes these permissions in manifest.json:
activeTab- Access to currently active tabscripting- Execute scripts in web pages (for DOM inspector)
Add more permissions as needed for your specific use case.
- Use
npm run devfor UI components development - Use
npm run build:extension+ reload extension for Chrome API testing - Chrome extension APIs only work in actual extension context
- Popup: Right-click extension icon β "Inspect popup"
- Content Script: Open DevTools on any webpage
- Background Script: Go to
chrome://extensions/β "Inspect views"
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Chrome Extensions Documentation
- React - The web framework used
- Vite - Build tool and dev server
- TailwindCSS - Utility-first CSS framework
- TypeScript - Language and type system
Made with β€οΈ by developers, for developers
β Star this repo if it helped you build awesome Chrome extensions!

