 73567c185c
			
		
	
	73567c185c
	
	
	
		
			
			This commit adds a complete style system alongside the existing theme system, allowing users to switch between different UI styles while maintaining theme color variations. **Core Features:** - Style enum (Default, Google Calendar) separate from Theme enum - Hot-swappable stylesheets with dynamic loading - Style preference persistence (localStorage + database) - Style picker UI in sidebar below theme picker **Frontend Implementation:** - Add Style enum to sidebar.rs with value/display methods - Implement dynamic stylesheet loading in app.rs - Add style picker dropdown with proper styling - Handle style state management and persistence - Add web-sys features for HtmlLinkElement support **Backend Integration:** - Add calendar_style column to user_preferences table - Update all database operations (insert/update/select) - Extend API models for style preference - Add migration for existing users **Google Calendar Style:** - Clean Material Design-inspired interface - White sidebar with proper contrast - Enhanced calendar grid with subtle shadows - Improved event styling with hover effects - Google Sans typography throughout - Professional color scheme and spacing **Technical Details:** - Trunk asset management for stylesheet copying - High CSS specificity to override theme styles - Modular CSS architecture for easy extensibility - Comprehensive text contrast fixes - Enhanced calendar cells and navigation Users can now choose between the original gradient design (Default) and a clean Google Calendar-inspired interface (Google Calendar), with full preference persistence across sessions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TOML
		
	
	
	
	
	
| [package]
 | |
| name = "calendar-app"
 | |
| version = "0.1.0"
 | |
| edition = "2021"
 | |
| 
 | |
| # Frontend binary only
 | |
| 
 | |
| [dependencies]
 | |
| calendar-models = { workspace = true, features = ["wasm"] }
 | |
| yew = { version = "0.21", features = ["csr"] }
 | |
| web-sys = { version = "0.3", features = [
 | |
|     "console",
 | |
|     "HtmlSelectElement", 
 | |
|     "HtmlInputElement",
 | |
|     "HtmlTextAreaElement",
 | |
|     "HtmlLinkElement",
 | |
|     "HtmlHeadElement",
 | |
|     "Event",
 | |
|     "MouseEvent",
 | |
|     "InputEvent",
 | |
|     "Element",
 | |
|     "Document",
 | |
|     "Window",
 | |
|     "Location",
 | |
|     "Headers",
 | |
|     "Request",
 | |
|     "RequestInit",
 | |
|     "RequestMode",
 | |
|     "Response",
 | |
|     "CssStyleDeclaration",
 | |
| ] }
 | |
| wasm-bindgen = "0.2"
 | |
| 
 | |
| # HTTP client for CalDAV requests
 | |
| reqwest = { version = "0.11", features = ["json"] }
 | |
| # Calendar and iCal parsing
 | |
| ical = "0.7"
 | |
| serde = { version = "1.0", features = ["derive"] }
 | |
| serde_json = "1.0"
 | |
| 
 | |
| # Date and time handling
 | |
| chrono = { version = "0.4", features = ["serde", "wasm-bindgen"] }
 | |
| chrono-tz = "0.8"
 | |
| 
 | |
| # Error handling
 | |
| anyhow = "1.0"
 | |
| thiserror = "1.0"
 | |
| 
 | |
| # Logging
 | |
| log = "0.4"
 | |
| console_log = "1.0"
 | |
| 
 | |
| # UUID generation for calendar events
 | |
| uuid = { version = "1.0", features = ["v4", "wasm-bindgen", "serde"] }
 | |
| getrandom = { version = "0.2", features = ["js"] }
 | |
| 
 | |
| # Environment variable handling
 | |
| dotenvy = "0.15"
 | |
| base64 = "0.21"
 | |
| 
 | |
| # XML/Regex parsing
 | |
| regex = "1.0"
 | |
| 
 | |
| # Yew routing and local storage (WASM only)
 | |
| yew-router = "0.18"
 | |
| gloo-storage = "0.3"
 | |
| gloo-timers = "0.3"
 | |
| wasm-bindgen-futures = "0.4"
 | |
| 
 |