feat: Complete UI/UX redesign with modern responsive design
- Redesign landing page with contemporary gradient backgrounds and glassmorphism - Add 3D phone mockup with floating animation and interactive stats display - Implement modern navigation with blur backdrop and smooth scroll effects - Update feature cards with icons, hover animations, and improved typography - Integrate countdown timer into hero CTA section with glassmorphic styling - Add responsive email signup form with enhanced validation - Modernize newsletters listing page with card-based grid layout - Add empty state design with call-to-action for newsletter subscription - Implement smooth loading animations and hover effects for newsletter cards - Update navigation consistency across all pages - Redesign newsletter detail page with professional article layout - Add reading metadata display (date, reading time, author, tags) - Enhance content typography with proper heading hierarchy and styling - Implement share functionality with Web Share API and clipboard fallback - Add print-optimized styles and action buttons - Improve mobile reading experience with responsive design - Establish consistent design system with CSS custom properties - Use CSS Grid and Flexbox for modern, flexible layouts - Add comprehensive mobile responsiveness (320px to desktop) - Implement smooth animations and micro-interactions throughout - Maintain accessibility with semantic HTML and proper contrast ratios - Preserve all existing Flask template functionality and JavaScript features Breaking changes: Complete visual redesign requires updated asset references Performance: Optimized CSS with efficient animations and modern layout techniques
This commit is contained in:
		
							parent
							
								
									778533b655
								
							
						
					
					
						commit
						1a66ebdfc4
					
				
					 9 changed files with 2612 additions and 546 deletions
				
			
		|  | @ -1,20 +1,20 @@ | |||
| // Countdown timer
 | ||||
| const targetDate = new Date("2025-01-31T00:00:00Z"); // Set your launch date
 | ||||
| const targetDate = new Date("2025-12-31T00:00:00Z"); | ||||
| 
 | ||||
| function updateCountdown() { | ||||
|     const now = new Date(); | ||||
|     const difference = targetDate - now; | ||||
| 
 | ||||
|      | ||||
|     if (difference < 0) { | ||||
|         document.getElementById("countdown").innerHTML = "<p>We're Live!</p>"; | ||||
|         document.getElementById("countdown").innerHTML = "<p style='color: white; font-size: 1.5rem;'>We're Live!</p>"; | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|      | ||||
|     const days = Math.floor(difference / (1000 * 60 * 60 * 24)); | ||||
|     const hours = Math.floor((difference / (1000 * 60 * 60)) % 24); | ||||
|     const minutes = Math.floor((difference / (1000 * 60)) % 60); | ||||
|     const seconds = Math.floor((difference / 1000) % 60); | ||||
| 
 | ||||
|      | ||||
|     document.getElementById("days").textContent = days.toString().padStart(2, "0"); | ||||
|     document.getElementById("hours").textContent = hours.toString().padStart(2, "0"); | ||||
|     document.getElementById("minutes").textContent = minutes.toString().padStart(2, "0"); | ||||
|  | @ -22,3 +22,4 @@ function updateCountdown() { | |||
| } | ||||
| 
 | ||||
| setInterval(updateCountdown, 1000); | ||||
| updateCountdown(); // Run immediately
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Cipher Vance
						Cipher Vance