Overview
The Settings page allows you to personalize your CryptoDash experience. Switch between dark and light themes, change the interface language between English and Spanish, and configure notification preferences (coming soon).Key Features
Theme Toggle
Switch between dark and light mode with animated transitions
Language Selection
Toggle between English and Spanish interface languages
Persistent Settings
All preferences are saved to localStorage
Developer Tools
Test error boundaries and 404 pages (dev mode only)
Appearance Settings
Theme Toggle
Switch between dark and light themes with a single click:SettingsPage.jsx:21-24
- Dark Mode: Optimized for low-light environments with dark backgrounds
- Light Mode: Clean, bright interface for daytime use
- Smooth Transitions: CSS transitions ensure smooth color changes
- Persistent: Theme preference saved to localStorage
The theme is managed by the
SettingsContext and applies globally across all pages.Implementation
The theme toggle uses theuseSettings hook:
SettingsPage.jsx:10
SettingsContext.jsx:25-33
Language Settings
Language Toggle
Switch between English and Spanish with instant UI updates:SettingsPage.jsx:26-31
- English (EN): Default language
- Spanish (ES): Complete translation of all UI elements
Translation System
All text is managed through theuseTranslations hook:
SettingsPage.jsx:12
Notification Settings
Notification features are currently under development and marked as “Coming Soon” in the UI.
Planned Features
- Price Alerts: Get notified when cryptocurrencies reach target prices
- Email Notifications: Receive portfolio updates via email
- Push Notifications: Browser push notifications for important events
SettingsPage.jsx:118-162
Developer Tools
When running in development mode, the Settings page includes two testing utilities:Test Error Boundary
Click the “Test Error Boundary” button to trigger a React error and verify the ErrorBoundary component is working correctly:SettingsPage.jsx:14-19
- Error boundary functionality
- Error recovery UI
- Developer info display (stack trace in dev mode)
Test 404 Page
Navigate to a non-existent route to test the 404 page:SettingsPage.jsx:209-215
- Friendly error message
- Navigation back to dashboard
- Animated illustrations
UI Components
The Settings page uses several UI patterns:Toggle Switches
Custom toggle switches with smooth animations:SettingsPage.jsx:64-77
- Animated Position: Switch position animates with CSS transitions
- Icon Display: Shows current state icon inside the switch
- Color Coding: Uses brand green (#2bee79) for active state
Setting Cards
Each setting is contained in a rounded card:SettingsPage.jsx:45-79
Data Persistence
All settings are persisted to localStorage:SettingsContext.jsx:6-14
crypto-dash-theme: “dark” or “light”crypto-dash-language: “en” or “es”
Toast Notifications
The Settings page displays success toasts when settings are changed:SettingsPage.jsx:11-12
- English: “Theme changed successfully”
- Spanish: “Tema cambiado exitosamente”
- Auto-dismiss: Toasts disappear after 5 seconds
- Progress Bar: Visual countdown to dismissal
- Pause on Hover: Hovering pauses the countdown
- Smooth Animations: Slide-in from the top-right corner
Related Documentation
Settings Context
API reference for useSettings hook
Toast Context
Toast notification system
Translations
Internationalization system
Theming
Dark/light theme implementation
