 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>
		
			
				
	
	
		
			51 lines
		
	
	
		
			734 B
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			734 B
		
	
	
	
		
			CSS
		
	
	
	
	
	
| /* Base Styles - Always Loaded */
 | |
| * {
 | |
|     margin: 0;
 | |
|     padding: 0;
 | |
|     box-sizing: border-box;
 | |
| }
 | |
| 
 | |
| body {
 | |
|     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
 | |
|     background-color: #f8f9fa;
 | |
|     color: #333;
 | |
|     line-height: 1.6;
 | |
| }
 | |
| 
 | |
| .app {
 | |
|     min-height: 100vh;
 | |
|     display: flex;
 | |
|     flex-direction: row;
 | |
| }
 | |
| 
 | |
| .login-layout {
 | |
|     min-height: 100vh;
 | |
|     display: flex;
 | |
|     flex-direction: column;
 | |
|     width: 100%;
 | |
| }
 | |
| 
 | |
| /* Base Layout */
 | |
| .main-content {
 | |
|     flex: 1;
 | |
|     margin-left: 280px;
 | |
|     overflow-x: hidden;
 | |
| }
 | |
| 
 | |
| /* Basic Form Elements */
 | |
| input, select, textarea, button {
 | |
|     font-family: inherit;
 | |
| }
 | |
| 
 | |
| /* Utility Classes */
 | |
| .loading {
 | |
|     opacity: 0.7;
 | |
| }
 | |
| 
 | |
| .error {
 | |
|     color: #dc3545;
 | |
| }
 | |
| 
 | |
| .success {
 | |
|     color: #28a745;
 | |
| } |