A modern browser extension built with Vue.js + TypeScript + Vite that allows you to view Steam workshop collection sizes and like all items in a collection.
- Calculate Collection Size: Get the total size of Steam workshop collections
- Like All Items: Quickly like all items in a collection
- Responsive Design: Works on desktop and mobile browsers
- Steam Theme: Dark theme matching Steam's design language
- Smooth Animations: Beautiful transitions and loading states
- Cross-Browser: Works on Chrome, Firefox, and other Chromium-based browsers
This extension has been completely rewritten from pure JavaScript to Vue.js + TypeScript while maintaining all the original functionality:
- ✅ Vue 3 + TypeScript: Modern reactive framework with type safety
- ✅ Vite Build System: Fast development and optimized production builds
- ✅ Tailwind CSS: Utility-first styling with Steam color scheme
- ✅ Responsive Design: Adaptive popup that works on all screen sizes
- ✅ Smooth Animations: Fade-in, slide-in, and loading animations
- ✅ Better Error Handling: Comprehensive error management
- ✅ Modular Architecture: Clean separation of concerns
- ✅ TypeScript Types: Full type safety across the codebase
- ✅ Size calculation for workshop collections
- ✅ "Like All" functionality for workshop items
- ✅ Unit toggle (MB/GB)
- ✅ Clear liked addons
- ✅ Steam session management
- ✅ Local storage management
- ✅ Chrome and Firefox compatibility
- Node.js 18+
- yarn or npm
yarn install# Build for both browsers
yarn build
# Build for Chrome only
yarn build:chrome
# Build for Firefox only
yarn build:firefox
# Watch mode for Chrome
yarn dev:chrome
# Watch mode for Firefox
yarn dev:firefoxsrc/
├── ui/
│ └── popup/ # Vue.js popup interface
│ ├── App.vue # Main popup component
│ ├── index.html # Popup HTML
│ ├── index.ts # Popup entry point
│ └── styles.css # Popup styles
├── content-script/ # Content script for Steam pages
│ ├── index.ts # Content script entry
│ ├── styles.css # Injected styles
│ └── SteamCollectionAnalyzer.ts # Main analyzer class
├── background/ # Background script
│ └── index.ts # Background script
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
├── storage.ts # Storage management
├── steamAPI.ts # Steam API wrapper
└── formatter.ts # Data formatting
The build process creates two separate extension packages:
dist/chrome/- Chrome extension (Manifest V3)dist/firefox/- Firefox extension (Manifest V3)dist/chrome-1.1.3.zip- Ready to upload to Chrome Web Storedist/firefox-1.1.3.zip- Ready to upload to Firefox Add-ons
- Composition API: Modern Vue 3 patterns
- Reactive State: Automatic UI updates
- TypeScript: Full type safety
- Single File Components: Organized Vue components
- Vite: Lightning-fast development server
- @crxjs/vite-plugin: Web extension support
- Tree Shaking: Optimized bundle sizes
- CSS Processing: Tailwind CSS with PostCSS
- Manifest V3: Latest extension format
- webextension-polyfill: Consistent API across browsers
- Responsive Design: Works on all screen sizes
The extension uses a Steam-inspired color scheme:
- Background:
#171d25(Steam Dark) - Primary:
#7ea64b(Steam Green) - Secondary:
#b8f26d(Steam Light Green) - Accent:
#7593bd(Steam Blue) - Text:
#8ba6b6(Steam Light Blue)
Custom Steam color palette and animations defined in tailwind.config.js
Strict type checking with custom types for Steam API responses
@vitejs/plugin-vue: Vue 3 support@crxjs/vite-plugin: Web extension bundlingvite-plugin-zip-pack: Automatic zip creation
- Install the extension in your browser
- Navigate to a Steam workshop collection
- Click "Calculate Size" to see the total collection size
- Toggle MB/GB in the popup to change units
- Use "Like All" to like all items in the collection
- Clear liked addons to reset the liked items cache
Feel free to submit issues and feature requests!
This project is licensed under the MIT License.