A powerful visual builder for creating stunning, fully customizable Notion widgets.
No coding required β’ Real-time preview β’ One-click export β’ Works anywhere
β¨ Features β’ π Quick Start β’ π¦ Widgets β’ π― Usage Guide β’ π οΈ Tech Stack
- β‘ Real-time Preview - See your widget update instantly as you customize
- π Resizable Canvas - Test at any size before exporting
- ποΈ Intuitive Controls - Easy-to-use configuration panels for every widget
- π Smart Color Picker - Brand presets + custom palette support
- πΎ Auto-save Settings - Never lose your work
- π₯ One-Click Download - Get standalone HTML files ready to host
- π Copy to Clipboard - Instant code copy for quick embedding
- π Universal Compatibility - Works in Notion, websites, blogs, anywhere
- π― Zero Dependencies - Fully self-contained (except Google Fonts CDN)
- π Multiple Hosting Options - GitHub Pages, Vercel, Netlify, and more
- π¨ Logo Color Extraction - Upload any logo, auto-extract 8-color theme
- π 10-Color Neon Palette - Official JaZeR cyberpunk brand colors
- π 8 Auto Presets - Monochrome, Contrast, Vibrant, Professional, Dark, Light, Neon, Minimal
- π Intelligent Theme Switching - System-aware light/dark mode support
- π Custom Color Palettes - Full control over every color element
- π¦ 8+ Widget Types - Clocks, weather, galleries, counters, and more
- βοΈ Fully Customizable - Control colors, fonts, sizes, effects, animations
- π± Responsive Design - Automatically adapts to mobile, tablet, and desktop
- βΏ Accessibility First - WCAG AA compliant with keyboard navigation
- β¨ Visual Effects - Neon glows, gradients, glassmorphism, animations
# Clone the repository
git clone https://github.com/yourusername/notion-widget-builder.git
cd notion-widget-builder
# Install dependencies
npm install
# Start development server (opens at http://localhost:3000)
npm run dev# Create optimized production build
npm run build
# Preview production build locally
npm run preview
# Run ESLint
npm run lint# Build and deploy in one command
npm run deployNote: The app is configured for GitHub Pages deployment at
https://jazer-444.github.io/notion-widget-builder/. Updatebaseinvite.config.jsfor custom domains.
The Ultimate Time Display
- π 12+ Display Styles - Analog, digital, flip, minimalist, and more
- π Timezone Support - Show time for any location worldwide
- β±οΈ Timer & Stopwatch - Built-in productivity tools
- π¨ Custom Fonts - Choose from Google Fonts library
- βοΈ Full Customization - Colors, sizes, formats (12/24hr)
Real-time Weather Information
- π‘οΈ Current Conditions - Temperature, humidity, wind speed, pressure
- π 7-Day Forecast - Plan ahead with extended forecasts
- π Location-Based - Automatic geolocation or manual city search
- π Sunrise/Sunset - Golden hour times included
- π¨ 4 Layout Styles - Compact, detailed, card, and minimal views
- π Open-Meteo API - Free, accurate weather data
Event Countdown Timer
- π Custom Target Dates - Count down to any date and time
- π Confetti Effect - Celebrate when countdown reaches zero
- π Past Date Handling - Automatically switches to "time since" mode
- π« Flip Animation - Smooth, animated number transitions
- π·οΈ Custom Labels - Personalize days/hours/minutes/seconds text
Simple Number Tracker
- ββ Increment/Decrement - Track any number up or down
- π― Min/Max Limits - Set boundaries for your counter
- π Reset Function - Quick return to starting value
- π Step Values - Count by 1s, 5s, 10s, or any custom amount
- π¨ Goal Progress - Visual progress bar towards target
Beautiful Image Showcase
- π Multiple Layouts - Grid, carousel, masonry styles
- π Lightbox View - Full-screen image viewing
- π Caption Support - Add descriptions to each image
- π¨ Customizable Spacing - Control gaps and padding
- πΌοΈ Unlimited Images - Add as many images as needed
Inspirational Quote Display
- π Custom Quote Lists - Add your own motivational quotes
- π Auto-rotation - Automatically cycle through quotes
- π API Integration - Optional fetch from quote APIs
- β¨ Beautiful Typography - Eye-catching text styling
- π¨ Author Display - Show quote sources
Custom Styled Buttons
- π¨ Multiple Styles - Solid, outline, neon glow effects
- π Emoji Support - Add icons to buttons
- π Action Links - Link buttons to any URL
- β¨ Hover Effects - Interactive animations on mouse-over
- π Color Presets - Quick styling with brand colors
Visual Time Tracker
- π Multiple Time Periods - Year, month, week, day progress
- π Progress Bars - Visual representation of time passing
- πͺ Motivational Display - Encourages making the most of your time
- π― Customizable Metrics - Choose which time periods to track
β
Light/Dark Mode - Automatic system detection or manual toggle
β
Brand Themes - Apply JaZeR colors or your own logo palette
β
Responsive Sizing - Adapts to any screen size
β
Background Textures - Stars, noise, dots, grid, waves
β
Export Ready - One-click HTML download
β
Zero Dependencies - Self-contained and lightweight
- Choose a Widget - Select from 8+ widget types
- Customize Everything - Use intuitive controls to adjust:
- π¨ Colors (brand presets or custom)
- π Typography (fonts, sizes, weights)
- π Layout (dimensions, spacing, alignment)
- β¨ Effects (glows, gradients, shadows)
- βοΈ Widget-specific features
- Preview in Real-time - See changes instantly
- (Optional) Upload your logo to auto-extract brand colors
Choose your preferred method:
- π₯ Download HTML - Get a standalone
.htmlfile - π Copy Code - Copy to clipboard for quick paste
Quick Hosting Options:
π GitHub Pages (Free, Recommended)
# Create new repository on GitHub
git init
git add your-widget.html
git commit -m "Add Notion widget"
git branch -M main
git remote add origin https://github.com/yourusername/notion-widgets.git
git push -u origin main
# Enable GitHub Pages in Settings β Pages β Source: main branch
# Your widget URL: https://yourusername.github.io/notion-widgets/your-widget.htmlβ‘ Vercel (Fastest Deployment)
npm i -g vercel
vercel --prod
# Get instant URLπ¨ Netlify Drop (No CLI)
- Go to app.netlify.com/drop
- Drag & drop your HTML file
- Get instant public URL
π₯ Other Options
- Firebase Hosting:
firebase deploy - Cloudflare Pages:
npx wrangler pages deploy - Surge:
surge your-widget.html - AWS S3: Upload to S3 bucket with public access
- Open your Notion page
- Type
/embedand press Enter - Paste your widget URL
- Resize the embed block to fit
- π Done!
- π¨ Brand Consistency: Upload your logo once to generate 8 themed color variations
- π Test Sizes: Use the resizable canvas to preview at different dimensions
- π Dark Mode: Enable automatic theme switching for day/night compatibility
- π Updates: Re-export and replace the hosted file to update your widget
- π± Mobile: All widgets are responsive and mobile-optimized
- βΏ Accessibility: Widgets include keyboard navigation and screen reader support
Built with modern, cutting-edge technologies for optimal performance and developer experience.
- βοΈ React 19.2.0 - Latest React with improved performance and concurrent features
- β‘ Vite 7.2.5 (Rolldown) - Lightning-fast build tool with next-gen bundler
- π¨ TailwindCSS 3.4.18 - Utility-first CSS framework for rapid UI development
- π― Lucide React 0.554.0 - Beautiful, customizable icon library (1000+ icons)
- π ColorThief 2.6.0 - Intelligent color extraction from images using k-means clustering
- π nanoid 5.1.6 - Tiny, secure URL-friendly unique ID generator
- π€οΈ Open-Meteo API - Free, accurate weather data with no API key required
- π Geolocation API - Browser-native location detection
- π ESLint 9.x - Code quality with modern flat config format
- π§ PostCSS + Autoprefixer - Automatic CSS vendor prefixing
- π¨ PropTypes - Runtime type checking for React props
π Project Structure
βββ src/
β βββ widgets/ # 8+ modular widget implementations
β β βββ clock-widget/
β β β βββ config.js # Configuration schema
β β β βββ ClockWidget.jsx # React preview component
β β β βββ export.js # Standalone HTML generator
β β βββ weather-widget/
β β βββ countdown-widget/
β β βββ ...
β βββ theme/ # Brand system & design tokens
β β βββ jazerNeonTheme.js
β βββ contexts/ # React Context providers
β β βββ ThemeContext.jsx
β βββ utils/ # Helper functions
β β βββ brandThemeGenerator.js
β βββ components/ # Reusable UI components
β βββ App.jsx # Main application
βββ public/ # Static assets
βββ dist/ # Production build output
Every widget follows a consistent three-file modular pattern:
-
config.js- Schema & defaults- Widget metadata (id, label, description)
- Default configuration values
- Field definitions for UI controls
- Brand theme integration
-
Widget.jsx- React preview- Live preview component
- Receives configuration props
- Supports light/dark/system modes
- Real-time updates
-
export.js- Standalone generatorgenerateWidgetHTML()- Complete HTML documentgenerateWidgetScript()- Vanilla JavaScript- Zero external dependencies
- Inline styles and fonts
β¨ Glassmorphic UI - Backdrop blur, transparency effects, neon borders
π Container Queries - Responsive widgets that adapt to embed size
π¨ SVG Textures - Inline data URIs for stars, noise, dots, grid, waves
π Theme System - System preference detection + manual overrides
βΏ WCAG AA Compliant - Accessible color contrast and keyboard navigation
π¦ Code Splitting - Optimized chunks for faster load times
π Type Safety - PropTypes validation throughout
| Technology | Version | Purpose |
|---|---|---|
| React | 19.2.0 | UI framework with latest features |
| Vite | 7.2.5 (Rolldown) | Lightning-fast build tool with Rolldown bundler |
| TailwindCSS | 3.4.18 | Utility-first styling framework |
| Lucide React | 0.554.0 | Beautiful icon library (1000+ icons) |
| ColorThief | 2.6.0 | AI-powered color extraction from images |
| ESLint | 9.x | Code quality with flat config format |
Vite (vite.config.js):
- Base path:
/(custom domain: jazer-444.github.io/notion-widget-builder) - Code splitting: React vendor chunk + icon chunk optimization
- Dev server: Port 3000 with auto-open browser
- Output:
dist/with optimized assets
Tailwind (tailwind.config.js):
- Scans:
index.html+src/**/*.{js,ts,jsx,tsx} - Custom utilities: JaZeR brand colors, neon glow shadows, gradients
- Responsive breakpoints: Mobile-first approach
ESLint (eslint.config.js):
- Flat config format (ESLint 9+)
- React Hooks plugin + React Refresh
- Ignore unused vars starting with uppercase/underscore
npm run dev # Start dev server (http://localhost:3000)
npm run build # Production build β dist/
npm run preview # Preview production build locally
npm run lint # Run ESLint checks
npm run deploy # Build + deploy to GitHub Pagesnotion-widget-builder/
βββ src/
β βββ widgets/ # Widget modules (8 types)
β β βββ clock-widget/
β β β βββ config.js # Widget configuration schema
β β β βββ ClockWidget.jsx # React component for preview
β β β βββ export.js # HTML/JS generator
β β βββ countdown-widget/
β β βββ counter-widget/
β β βββ weather-widget/
β β βββ image-gallery-widget/
β β βββ quotes-widget/
β β βββ life-progress-bar-widget/
β β βββ new-button-generator-widget/
β βββ theme/
β β βββ jazerNeonTheme.js # Brand theme constants
β βββ contexts/
β β βββ ThemeContext.jsx # React Context for theming
β βββ utils/
β β βββ brandThemeGenerator.js # Logo color extraction
β βββ components/
β β βββ BrandLogoUploader.jsx # Logo upload UI
β βββ App.jsx # Main application (~25,000+ tokens)
β βββ main.jsx # React entry point
β βββ index.css # Global styles + Tailwind
βββ public/ # Static assets
βββ dist/ # Production build output
βββ index.html # HTML entry point
βββ vite.config.js # Vite configuration
βββ tailwind.config.js # Tailwind configuration
βββ eslint.config.js # ESLint configuration
βββ package.json # Dependencies + scripts
All widgets follow a modular three-file pattern:
-
config.js- Configuration schemaid,label,descriptiondefaultConfigwith all settingsfieldsarray defining UI controls- Must import
jazerNeonThemefor brand consistency
-
<WidgetName>Widget.jsx- React preview component- Receives
configprop - Renders live preview in builder
- Supports light/dark/system appearance modes
- Receives
-
export.js- Standalone generatorgenerateWidgetHTML(config)- Complete HTML documentgenerateWidgetScript(config)- Vanilla JavaScript- Zero dependencies (except Google Fonts CDN)
- Embeds
jazerNeonThemefonts, variables, and animations
- Glassmorphic UI - Backdrop blur, transparency, neon borders
- Container Queries - Responsive widgets adapt to embed size
- SVG Textures - Stars, noise, dots, grid, waves (inline data URIs)
- Dark Mode First - System preference detection + manual toggle
- Accessibility - WCAG AA contrast, focus states, keyboard navigation
- Zero Config - Works out of the box, optional customization
Built-in cyberpunk color palette with 10 carefully crafted colors:
| Color | Hex | Purpose |
|---|---|---|
| π£ Electric Purple | #8B5CF6 |
Primary brand, headings, CTAs |
| π΅ Cosmic Blue | #3B82F6 |
Links, interactive elements |
| π©· Neon Pink | #EC4899 |
Highlights, hover states |
| π‘ Sunburst Gold | #F59E0B |
Warnings, attention |
| π©΅ Aether Teal | #06B6D4 |
Info states, accents |
| π£ Ultraviolet | #A78BFA |
Secondary highlights |
| β« Night Black | #0B0E12 |
Dark backgrounds |
| βͺ Stardust White | #F8F9FF |
Light text |
| β¬ Graphite | #1F2937 |
Cards, panels |
| π Soft Slate | #94A3B8 |
Borders, disabled states |
Upload any logo image to automatically extract an 8-color theme using ColorThief's intelligent k-means clustering:
8 Auto-Generated Presets:
- Monochrome - Single dominant hue variations
- Contrast - High contrast pairs for readability
- Vibrant - Bright, energetic colors
- Professional - Muted, balanced tones
- Dark - Deep tones for dark mode
- Light - Bright tones for light mode
- Neon - High saturation cyberpunk glow
- Minimal - Subtle, understated palette
All widgets support:
- π« Neon Glow - Text and border glows
- π Gradients - Multi-color smooth transitions
- π Glassmorphism - Backdrop blur and transparency
- π¨ Background Textures - Stars, noise, dots, grid, waves
- π Theme Switching - Automatic light/dark mode detection
The repository includes automated deployment via GitHub Actions:
Trigger: Push to 'master' branch
Build: Node 20 β npm ci β npm run build
Deploy: dist/ β GitHub Pages (gh-pages branch)
Live URL: https://jazer-444.github.io/notion-widget-builder/π GitHub Pages
# Using gh-pages package (recommended)
npm run deploy
# Manual deployment
npm run build
git add dist -f
git commit -m "Deploy to GitHub Pages"
git subtree push --prefix dist origin gh-pagesβ‘ Vercel
npm i -g vercel
vercel --prodπ¨ Netlify
Option A: Drag & Drop
- Visit app.netlify.com/drop
- Run
npm run build - Drag
dist/folder
Option B: Git Integration
- Build command:
npm run build - Publish directory:
dist
βοΈ Cloudflare Pages
npm run build
npx wrangler pages deploy dist- BRAND_GUIDELINES.md - Complete brand specifications
- BRAND_IMPLEMENTATION_SUMMARY.md - Implementation details
- FEATURE_VALIDATION_REPORT.md - Feature audit
- BRAND_THEME_GENERATOR_GUIDE.md - Theme generator documentation
- BRAND_QUICK_REFERENCE.md - Quick developer reference
- WIDGET_FEATURE_AUDIT.md - Widget documentation
- FINAL_WIDGET_LIST.md - Current widget registry
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-widget) - Follow brand guidelines (see
BRAND_GUIDELINES.md) - Test changes (
npm run dev) - Lint code (
npm run lint) - Commit (
git commit -m "feat: Add amazing widget") - Push (
git push origin feature/amazing-widget) - Open Pull Request
Each widget follows a three-file pattern:
src/widgets/widget-name/config.js- Schema & defaultssrc/widgets/widget-name/WidgetName.jsx- React previewsrc/widgets/widget-name/export.js- HTML generator
See CLAUDE.md for detailed instructions.
- Naming: Hyphenated lowercase directories (
clock-widget/) - Colors: Use
jazerNeonTheme.colors.*constants - Modes: Support light/dark/system configurations
- Exports: Zero dependencies except Google Fonts
- Accessibility: WCAG AA contrast, focus states
Can I use widgets outside of Notion?
Yes! Exported HTML files work anywhere - websites, blogs, apps. Embed via <iframe>.
Do widgets work offline?
Mostly yes. Only Google Fonts (Orbitron, Montserrat) load from CDN. Download fonts locally for full offline support.
Can I customize beyond the UI?
Absolutely! Download the HTML, edit inline styles/scripts, and re-host. Advanced users can modify source files directly.
How do I update a deployed widget?
Re-export from the builder, replace the hosted HTML file. Notion embeds auto-update (may need refresh).
Can I use custom brand colors?
Yes! Upload your logo to auto-extract 8 colors, or manually customize all colors via picker.
How do I report bugs?
Open a GitHub issue with description, reproduction steps, and screenshots.
MIT License - Copyright (c) 2026 JaZeR
See LICENSE file for full details.
π Launch Builder β’ π View Docs β’ π Report Issue
Built with π using React + Vite | Powered by Modern Web Technologies
Transform your Notion workspace with beautiful, customizable widgets