Component Architecture Overview
Meelio’s component architecture is organized into a modular structure within the shared package, enabling code reuse across web and extension platforms.Package Structure
All components are located in:packages/shared/src/index.tsx
Component Categories
Meelio components are organized into three main categories:Common Components
Common Components
Foundational, reusable UI components used throughout the application.Location:
packages/shared/src/components/common/Progressive image loading with blur hash placeholders
Network connectivity status indicator
Layout wrapper with consistent spacing
Meelio brand logo component
Material Design-style ripple animations
Application-wide theme context provider
Core Components
Core Components
Feature-specific components that implement Meelio’s main functionality.Location:
packages/shared/src/components/core/Backgrounds
Backgrounds- Background image/video managementShadowOverlay- Overlay effects for backgroundsBackgroundSelectorSheet- Background selection UI
Breathing Pod
BreathingPod- Main breathing exercise componentBreathingCircle- Animated breathing visualizationBreathingMethodSelectorDialog- Breathing technique selectorBreathingRings- Ring animation effectsBreathingText- Instruction text displayBreathingTimer- Breathing exercise timer
Clock
Clock- Time display component
Dock
Dock- Main dock containerClockDock- Clock widget for dockLanguageSwitcherDock- Language selectionSettingsDock- Settings accessDockButton- Reusable dock button component
Timer
Timer- Main Pomodoro timer componentTimerDonutGraph- Circular progress visualizationTimerExpandedContent- Detailed timer viewTimerSessionIndicators- Session progress indicatorsTimerStats- Timer statistics displayTimerNextTask- Next task previewTimerResetDialog- Reset confirmation dialogTimerStatsDialog- Statistics modalTimerSettingsDialog- Timer configuration
Tasks
TasksSheet- Task list containerCreateList- List creation formCreateTask- Task creation formTaskList- Task list display
Notes
NotesSheet- Notes container and editor
Soundscapes
SoundscapesSheet- Main soundscapes interfaceCombos- Sound combination managementCategoryItem- Sound category displayCategoryList- Category list viewSoundList- Sound selection listSoundTileIcon- Sound preview tileSoundPlayer- Audio playback controlsGlobalVolumeControl- Master volume controlOscillationButton- Volume oscillation togglePlayButton- Play/pause controlResetGlobalSoundSettingsDialog- Reset sound settingsSaveComboButton- Save sound combinationsShareButton- Share sound configurationsShuffleButton- Random sound selectionSoundControlBar- Sound control interface
Other Features
Quote- Inspirational quote displayGreetingsMantras- Personalized greeting messagesSettingsDialog- Application settingsAccountForm- User account managementProfileDropdown- User profile menuSiteBlockerSheet- Website blocking featureTabStashSheet- Tab managementBookmarks- Bookmark managementCalendar- Calendar integrationSearch- Search functionalityShortcutsModal- Keyboard shortcuts helpLayout- Main layout component
Export Structure
All components are exported through
packages/shared/src/components/index.ts, making them easily importable:Component Organization Principles
Modular Design
Components are self-contained with clear responsibilities
Shared State
Components connect to Zustand stores for state management
Reusability
Common components serve multiple features
Platform Agnostic
Components work across web and extension platforms
Key Component Files
Next Steps
State Management
Learn about Zustand stores that power components
Custom Hooks
Explore reusable hooks for component logic