ButtonStudio- Main design orchestration island (islands/ButtonStudio.tsx)GradientSoundDemo- Sound gradient demo (islands/GradientSoundDemo.tsx)
VoiceButton- Main voice recording component with transcription (components/VoiceButton.tsx)CustomizationPanel- Design interface with collapsible sections (components/CustomizationPanel.tsx)EmojiPicker- Custom emoji/text selection interface (components/EmojiPicker.tsx)AudioSettings- Global audio/haptic toggle controls (components/AudioSettings.tsx)AudioVisualizer- Real-time waveform visualization (components/AudioVisualizer.tsx)SoundPicker- Sound theme selection interface (components/SoundPicker.tsx)ToastContainer- Notification system (components/ToastContainer.tsx)PWAShareModal- PWA export modal (components/PWAShareModal.tsx)InstallGuide- PWA installation guide (components/InstallGuide.tsx)KeyboardShortcutsModal- Keyboard shortcuts help (components/KeyboardShortcutsModal.tsx)LoadingSpinner- Loading state component (components/LoadingSpinner.tsx)
soundMapping.ts- Universal sound API (playSound.primaryClick(), etc.)soundConfig.ts- Centralized audio configurationsoundService.ts- Web Audio API playback enginesynthEngine.ts- Sound synthesishapticService.ts- Haptic feedback patterns
ButtonExporter.ts- Main export engine with Unicode supporttemplates/- HTML, PWA, mobile app generatorsshareLink.ts- URL-safe encoding/decoding with compression
- Soft Stack Design - Warm pastels, rounded corners, gentle shadows
- Flamingo Brutalist - Bold, chunky design with strong colors
- Export Formats - HTML standalone, PWA, share links, embed code, mobile templates
- Power User Features - Auto-start recording, auto-copy transcripts, custom branding
- Gemini Transcription - Browser-compatible speech-to-text (user provides API key)
- Signal-Based State - Preact signals for buttonConfig, buttonState, transcript
- Color-Coded Panels - 8 colors for visual organization (red/orange/pink/yellow/cyan/purple/green/blue)
- Monetization - $1 per-button-feature unlocks (history, premium themes, power features)