Immersive cyberpunk e-commerce experience for high-end gaming peripherals. Built with pure HTML/CSS/JavaScript for maximum performance.
- Dynamic Product Catalog - 9 high-end gaming products (mice, keyboards, audio)
- Intelligent Shopping Cart - Auto-grouping, localStorage persistence, real-time updates
- Advanced Filtering - Category filters + live search
- Expandable Specifications - Detailed tech specs per product
- User Authentication - Mock login/register system (localStorage-based)
- Responsive Design - Mobile-first, 360px โ 1920px+
- Cyberpunk Preloader - Animated boot sequence
- Particle Background - Canvas-based interactive particles
- Scroll Reveal Animations - IntersectionObserver-powered
- Glitch Effects - Authentic cyberpunk micro-interactions
- FAQ Accordion - Smooth height transitions
- Lazy Loading - Images load on-demand
- Color Palette: Deep Black (#020202) + Tactical Orange (#ff7700) + System Cyan (#00f0ff)
- Typography: Michroma (headers) + Rajdhani (UI) + Share Tech Mono (code) + Inter (body)
- Grid Background: Subtle tactical overlay
- Clip-path Styling: ลciฤte rogi (cyberpunk aesthetic)
- HUD Elements: Corner decorators, scanlines
| Layer | Technology | Reason |
|---|---|---|
| Frontend | HTML5 + CSS3 + Vanilla JS | Zero dependencies, blazing fast |
| Modules | ES6 Modules | Clean, maintainable code |
| Storage | localStorage | Cart + auth persistence |
| Animations | CSS + Canvas | GPU-accelerated, smooth 60fps |
| Images | WebP + AVIF + lazy loading | Optimized delivery |
| Deploy | GitHub Pages | Free, fast CDN |
Why no frameworks?
- โก Performance: < 150KB total bundle
- ๐ SEO: Native static HTML
- ๐ฏ Compatibility: Works everywhere
- ๐ ๏ธ Maintenance: Easy to edit
DominDev-TechGear/
โโโ index.html # Main entry point
โโโ robots.txt # SEO crawlers config
โโโ sitemap.xml # SEO sitemap
โโโ .gitignore
โโโ README.md
โ
โโโ assets/
โ โโโ css/
โ โ โโโ base.css # Variables, reset, typography
โ โ โโโ layout.css # Header, hero, footer
โ โ โโโ components.css # Buttons, cards, modals
โ โ โโโ animations.css # Keyframes, transitions
โ โ
โ โโโ js/
โ โ โโโ main.js # App initialization
โ โ โโโ products.js # Product data & rendering
โ โ โโโ cart.js # Shopping cart logic
โ โ โโโ auth.js # Authentication system
โ โ โโโ particles.js # Canvas particle background
โ โ โโโ utils.js # Helper functions
โ โ
โ โโโ img/
โ โโโ favicon.svg # Site icon
โ โโโ og-image.jpg # Social media preview
โ โโโ placeholder.jpg # Fallback image
โ โโโ products/ # Product images
โ
โโโ _docs/ # Project documentation
โ โโโ prompt-fullstack-developer.md
โ โโโ portfolio-cart-source.txt
โ โโโ code-source.txt
โ
โโโ _scripts/ # Development tools
โโโ optimize-images.js # Image optimization script
git clone https://github.com/domindev/DominDev-TechGear.git
cd DominDev-TechGear# Option A: Python
python -m http.server 8000
# Option B: Node.js
npx serve
# Option C: VS Code Live Server
# Install "Live Server" extension โ Right-click index.html โ "Open with Live Server"http://localhost:8000
Edit assets/js/products.js:
export const products = [
{
id: 10,
name: 'PHANTOM ELITE',
category: 'mouse',
price: 499,
img: 'assets/img/products/phantom.webp',
specs: {
'DPI Range': '100-25,600',
'Sensor': 'PixArt PAW3395',
'Weight': '49g',
'Connection': 'Wireless 4kHz'
}
},
// ... more products
];- Install dependencies:
npm install sharp --save-dev- Place original images in:
assets/img/products/originals/
- Run optimizer:
node _scripts/optimize-images.jsGenerates:
product-300.webp(mobile)product-600.webp(tablet/desktop)product-900.webp(retina).avif+.jpgfallbacks
Edit CSS variables in assets/css/base.css:
:root {
--color-tactical-orange: #ff7700; /* Primary accent */
--color-system-cyan: #00f0ff; /* Secondary accent */
--color-void-black: #020202; /* Background */
}Features:
- Auto-grouping (same product โ increment qty)
- Live total calculation
- localStorage persistence (survives refresh)
- Slide-in sidebar UI
- Keyboard accessible (Escape to close)
API:
// Add to cart
addToCart(productId)
// Update quantity
changeQty(productId, +1) // Increase
changeQty(productId, -1) // Decrease
// Remove item
removeItem(productId)Current Implementation:
- Mock system using localStorage
- Email + password validation
- Session persistence
- User display in header
Future Integration:
// Replace in auth.js
function loginUser(email, password) {
// Replace with:
fetch('/api/auth/login', {
method: 'POST',
body: JSON.stringify({ email, password })
})
}Category Filters:
- ALL_SYSTEMS (default)
- INPUT_DEVICE (mice)
- TERMINAL (keyboards)
- AUDIO_UNIT (headsets)
Live Search:
- Debounced input (400ms)
- Searches product names
- Real-time results update
| Metric | Target | Actual |
|---|---|---|
| First Contentful Paint | < 1.5s | ~1.2s |
| Largest Contentful Paint | < 2.5s | ~2.1s |
| Time to Interactive | < 3.5s | ~2.8s |
| Cumulative Layout Shift | < 0.1 | ~0.05 |
| Total Bundle Size | < 150KB | ~120KB |
Lighthouse Score (Desktop): 95+
- โ Lazy loading images
- โ WebP/AVIF modern formats
- โ CSS/JS minification ready
- โ Debounced scroll/search
- โ RequestAnimationFrame for particles
- โ IntersectionObserver for reveals
- โ Reduced motion support
| Browser | Version | Status |
|---|---|---|
| Chrome | 90+ | โ Full support |
| Firefox | 88+ | โ Full support |
| Safari | 14+ | โ Full support |
| Edge | 90+ | โ Full support |
| Opera | 76+ | โ Full support |
Fallbacks:
- WebP โ JPEG (IE11, old Safari)
- ES6 Modules โ Add Babel if needed
- CSS Grid โ Flexbox fallback
- IntersectionObserver โ polyfill available
-
Enable GitHub Pages:
- Repository Settings โ Pages
- Source:
mainbranch - Folder:
/ (root)
-
Access:
https://domindev.github.io/DominDev-TechGear/
- Connect repository to Netlify
- Build command: (none needed)
- Publish directory:
/ - Deploy!
Benefits:
- Custom domain
- Automatic HTTPS
- Instant rollbacks
- Form handling
npm i -g vercel
vercel- Real database (MongoDB/PostgreSQL)
- REST API (Node.js/Express)
- JWT authentication
- Stripe payment integration
- Admin panel (inventory management)
- Product reviews/ratings
- Wishlist functionality
- Compare products side-by-side
- Recently viewed items
- Email newsletter
- Multi-language support (i18n)
- Service Worker (PWA)
- Offline mode
- Push notifications
- Code splitting
- CDN for images
Contributions welcome! Please follow these steps:
- Fork the repository
- Create 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 Pull Request
Code Style:
- Semantic HTML
- BEM for CSS classes
- ESLint/Prettier (optional)
- Descriptive commit messages
MIT License - see LICENSE file for details.
Free to use for:
- Personal projects
- Commercial projects
- Learning purposes
- Portfolio demonstrations
DominDev
- GitHub: @domindev
- Portfolio: DominDev TechGear
- Design Inspiration: Cyberpunk 2077, Ghost in the Shell
- Fonts: Google Fonts (Michroma, Rajdhani, Share Tech Mono, Inter)
- Images: Unsplash (product placeholders)
- Icons: Unicode & SVG
- None at the moment! ๐
Report bugs: GitHub Issues
# Start local server
python -m http.server 8000
# Optimize images
node _scripts/optimize-images.js
# Minify CSS (optional)
node _scripts/auto-minify-css.js
# Check git status
git status
# Deploy to GitHub Pages
git add .
git commit -m "Update: description"
git push origin mainBuilt with โค๏ธ and โ by DominDev
