 1a66ebdfc4
			
		
	
	
		1a66ebdfc4
		
	
	
	
	
		
			
			- 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
		
			
				
	
	
		
			444 lines
		
	
	
		
			No EOL
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			444 lines
		
	
	
		
			No EOL
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html lang="en">
 | |
| <head>
 | |
|     <meta charset="UTF-8">
 | |
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | |
|     <title>Welcome to RideAware!</title>
 | |
|     <!--[if mso]>
 | |
|     <noscript>
 | |
|         <xml>
 | |
|             <o:OfficeDocumentSettings>
 | |
|                 <o:PixelsPerInch>96</o:PixelsPerInch>
 | |
|             </o:OfficeDocumentSettings>
 | |
|         </xml>
 | |
|     </noscript>
 | |
|     <![endif]-->
 | |
|     <style>
 | |
|         /* Reset and base styles */
 | |
|         * {
 | |
|             margin: 0;
 | |
|             padding: 0;
 | |
|             box-sizing: border-box;
 | |
|         }
 | |
| 
 | |
|         body {
 | |
|             font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
 | |
|             line-height: 1.6;
 | |
|             color: #1a1a1a;
 | |
|             background-color: #f8fafc;
 | |
|             margin: 0;
 | |
|             padding: 0;
 | |
|             -webkit-text-size-adjust: 100%;
 | |
|             -ms-text-size-adjust: 100%;
 | |
|         }
 | |
| 
 | |
|         table {
 | |
|             border-collapse: collapse;
 | |
|             mso-table-lspace: 0pt;
 | |
|             mso-table-rspace: 0pt;
 | |
|         }
 | |
| 
 | |
|         img {
 | |
|             border: 0;
 | |
|             height: auto;
 | |
|             line-height: 100%;
 | |
|             outline: none;
 | |
|             text-decoration: none;
 | |
|             -ms-interpolation-mode: bicubic;
 | |
|             max-width: 100%;
 | |
|         }
 | |
| 
 | |
|         /* Container */
 | |
|         .email-container {
 | |
|             max-width: 600px;
 | |
|             margin: 0 auto;
 | |
|             background-color: #ffffff;
 | |
|             border-radius: 16px;
 | |
|             box-shadow: 0 10px 30px rgba(30, 78, 156, 0.1);
 | |
|             overflow: hidden;
 | |
|         }
 | |
| 
 | |
|         .email-wrapper {
 | |
|             background-color: #f8fafc;
 | |
|             padding: 20px;
 | |
|         }
 | |
| 
 | |
|         /* Header */
 | |
|         .header {
 | |
|             background: linear-gradient(135deg, #1e4e9c 0%, #337cf2 50%, #00d4ff 100%);
 | |
|             padding: 50px 30px;
 | |
|             text-align: center;
 | |
|             position: relative;
 | |
|         }
 | |
| 
 | |
|         .header::before {
 | |
|             content: '';
 | |
|             position: absolute;
 | |
|             top: 0;
 | |
|             left: 0;
 | |
|             right: 0;
 | |
|             bottom: 0;
 | |
|             background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="celebration" width="50" height="50" patternUnits="userSpaceOnUse"><circle cx="10" cy="10" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="40" cy="25" r="1.5" fill="rgba(0,212,255,0.2)"/><circle cx="25" cy="40" r="1" fill="rgba(255,255,255,0.15)"/></pattern></defs><rect width="100%" height="100%" fill="url(%23celebration)"/></svg>');
 | |
|             opacity: 0.4;
 | |
|         }
 | |
| 
 | |
|         .welcome-icon {
 | |
|             width: 80px;
 | |
|             height: 80px;
 | |
|             background: rgba(255, 255, 255, 0.2);
 | |
|             border-radius: 50%;
 | |
|             display: flex;
 | |
|             align-items: center;
 | |
|             justify-content: center;
 | |
|             margin: 0 auto 20px;
 | |
|             font-size: 2.5rem;
 | |
|             position: relative;
 | |
|             z-index: 1;
 | |
|         }
 | |
| 
 | |
|         .logo {
 | |
|             font-size: 24px;
 | |
|             font-weight: 700;
 | |
|             color: white;
 | |
|             text-decoration: none;
 | |
|             position: relative;
 | |
|             z-index: 1;
 | |
|             margin-bottom: 15px;
 | |
|             display: inline-block;
 | |
|         }
 | |
| 
 | |
|         .logo-accent {
 | |
|             color: #00d4ff;
 | |
|         }
 | |
| 
 | |
|         .header h1 {
 | |
|             color: white;
 | |
|             font-size: 28px;
 | |
|             font-weight: 800;
 | |
|             margin: 0 0 10px;
 | |
|             position: relative;
 | |
|             z-index: 1;
 | |
|         }
 | |
| 
 | |
|         .header .subtitle {
 | |
|             color: rgba(255, 255, 255, 0.9);
 | |
|             font-size: 16px;
 | |
|             font-weight: 300;
 | |
|             position: relative;
 | |
|             z-index: 1;
 | |
|         }
 | |
| 
 | |
|         /* Content */
 | |
|         .content {
 | |
|             padding: 40px 30px;
 | |
|             text-align: center;
 | |
|         }
 | |
| 
 | |
|         .main-message {
 | |
|             font-size: 18px;
 | |
|             color: #1a1a1a;
 | |
|             margin-bottom: 25px;
 | |
|             font-weight: 500;
 | |
|         }
 | |
| 
 | |
|         .description {
 | |
|             font-size: 16px;
 | |
|             color: #6b7280;
 | |
|             margin-bottom: 35px;
 | |
|             line-height: 1.7;
 | |
|         }
 | |
| 
 | |
|         /* Feature highlights */
 | |
|         .features {
 | |
|             background: linear-gradient(135deg, rgba(30, 78, 156, 0.05) 0%, rgba(0, 212, 255, 0.05) 100%);
 | |
|             border-radius: 12px;
 | |
|             padding: 30px 25px;
 | |
|             margin: 30px 0;
 | |
|             border: 1px solid rgba(30, 78, 156, 0.1);
 | |
|         }
 | |
| 
 | |
|         .features h3 {
 | |
|             color: #1e4e9c;
 | |
|             font-size: 20px;
 | |
|             font-weight: 700;
 | |
|             margin-bottom: 20px;
 | |
|         }
 | |
| 
 | |
|         .feature-grid {
 | |
|             display: grid;
 | |
|             grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
 | |
|             gap: 20px;
 | |
|             margin-top: 20px;
 | |
|         }
 | |
| 
 | |
|         .feature-item {
 | |
|             text-align: center;
 | |
|             padding: 15px;
 | |
|             background: white;
 | |
|             border-radius: 10px;
 | |
|             box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
 | |
|         }
 | |
| 
 | |
|         .feature-icon {
 | |
|             font-size: 2rem;
 | |
|             margin-bottom: 8px;
 | |
|             display: block;
 | |
|         }
 | |
| 
 | |
|         .feature-title {
 | |
|             font-size: 14px;
 | |
|             font-weight: 600;
 | |
|             color: #1a1a1a;
 | |
|             margin-bottom: 5px;
 | |
|         }
 | |
| 
 | |
|         .feature-desc {
 | |
|             font-size: 12px;
 | |
|             color: #6b7280;
 | |
|             line-height: 1.4;
 | |
|         }
 | |
| 
 | |
|         /* CTA Button */
 | |
|         .cta-section {
 | |
|             margin: 35px 0;
 | |
|             padding: 25px;
 | |
|         }
 | |
| 
 | |
|         .cta-button {
 | |
|             display: inline-block;
 | |
|             background: linear-gradient(135deg, #1e4e9c 0%, #337cf2 100%);
 | |
|             color: white;
 | |
|             text-decoration: none;
 | |
|             padding: 15px 35px;
 | |
|             border-radius: 25px;
 | |
|             font-weight: 600;
 | |
|             font-size: 16px;
 | |
|             transition: all 0.3s ease;
 | |
|             box-shadow: 0 5px 15px rgba(30, 78, 156, 0.3);
 | |
|         }
 | |
| 
 | |
|         .cta-button:hover {
 | |
|             transform: translateY(-2px);
 | |
|             box-shadow: 0 8px 25px rgba(30, 78, 156, 0.4);
 | |
|             text-decoration: none;
 | |
|             color: white;
 | |
|         }
 | |
| 
 | |
|         /* Social links */
 | |
|         .social-section {
 | |
|             margin: 30px 0;
 | |
|             padding: 25px;
 | |
|             background: #f8fafc;
 | |
|             border-radius: 12px;
 | |
|         }
 | |
| 
 | |
|         .social-section h4 {
 | |
|             color: #1a1a1a;
 | |
|             font-size: 16px;
 | |
|             font-weight: 600;
 | |
|             margin-bottom: 15px;
 | |
|         }
 | |
| 
 | |
|         .social-links {
 | |
|             display: flex;
 | |
|             justify-content: center;
 | |
|             gap: 15px;
 | |
|         }
 | |
| 
 | |
|         .social-link {
 | |
|             display: inline-block;
 | |
|             width: 40px;
 | |
|             height: 40px;
 | |
|             background: linear-gradient(135deg, #1e4e9c 0%, #337cf2 100%);
 | |
|             color: white;
 | |
|             text-decoration: none;
 | |
|             border-radius: 50%;
 | |
|             display: flex;
 | |
|             align-items: center;
 | |
|             justify-content: center;
 | |
|             font-size: 16px;
 | |
|             transition: all 0.3s ease;
 | |
|         }
 | |
| 
 | |
|         .social-link:hover {
 | |
|             transform: translateY(-2px) scale(1.05);
 | |
|             box-shadow: 0 5px 15px rgba(30, 78, 156, 0.3);
 | |
|         }
 | |
| 
 | |
|         /* Footer */
 | |
|         .footer {
 | |
|             background: #1a1a1a;
 | |
|             color: white;
 | |
|             padding: 30px;
 | |
|             text-align: center;
 | |
|         }
 | |
| 
 | |
|         .footer-content {
 | |
|             margin-bottom: 20px;
 | |
|         }
 | |
| 
 | |
|         .footer p {
 | |
|             margin: 5px 0;
 | |
|             opacity: 0.8;
 | |
|             font-size: 14px;
 | |
|         }
 | |
| 
 | |
|         .unsubscribe {
 | |
|             margin-top: 20px;
 | |
|             padding-top: 20px;
 | |
|             border-top: 1px solid rgba(255, 255, 255, 0.1);
 | |
|         }
 | |
| 
 | |
|         .unsubscribe a {
 | |
|             color: #9ca3af;
 | |
|             text-decoration: none;
 | |
|             font-size: 13px;
 | |
|         }
 | |
| 
 | |
|         .unsubscribe a:hover {
 | |
|             color: #00d4ff;
 | |
|             text-decoration: underline;
 | |
|         }
 | |
| 
 | |
|         /* Links */
 | |
|         a {
 | |
|             color: #337cf2;
 | |
|             text-decoration: none;
 | |
|             font-weight: 500;
 | |
|         }
 | |
| 
 | |
|         a:hover {
 | |
|             color: #1e4e9c;
 | |
|             text-decoration: underline;
 | |
|         }
 | |
| 
 | |
|         /* Mobile responsive */
 | |
|         @media only screen and (max-width: 600px) {
 | |
|             .email-wrapper {
 | |
|                 padding: 10px;
 | |
|             }
 | |
|             
 | |
|             .header {
 | |
|                 padding: 40px 20px;
 | |
|             }
 | |
|             
 | |
|             .header h1 {
 | |
|                 font-size: 24px;
 | |
|             }
 | |
|             
 | |
|             .content {
 | |
|                 padding: 30px 20px;
 | |
|             }
 | |
|             
 | |
|             .features {
 | |
|                 padding: 25px 20px;
 | |
|             }
 | |
|             
 | |
|             .feature-grid {
 | |
|                 grid-template-columns: 1fr;
 | |
|                 gap: 15px;
 | |
|             }
 | |
|             
 | |
|             .social-links {
 | |
|                 gap: 10px;
 | |
|             }
 | |
|             
 | |
|             .footer {
 | |
|                 padding: 25px 20px;
 | |
|             }
 | |
|         }
 | |
|     </style>
 | |
| </head>
 | |
| <body>
 | |
|     <div class="email-wrapper">
 | |
|         <div class="email-container">
 | |
|             <!-- Header -->
 | |
|             <div class="header">
 | |
|                 <div class="welcome-icon">🎉</div>
 | |
|                 <div class="logo">Ride<span class="logo-accent">Aware</span></div>
 | |
|                 <h1>Welcome Aboard!</h1>
 | |
|                 <p class="subtitle">You're now part of the RideAware community</p>
 | |
|             </div>
 | |
| 
 | |
|             <!-- Content -->
 | |
|             <div class="content">
 | |
|                 <p class="main-message">Thanks for subscribing to RideAware newsletter!</p>
 | |
|                 
 | |
|                 <p class="description">
 | |
|                     We're absolutely thrilled to have you join our community of passionate cyclists. Get ready for exclusive insights, training tips, feature updates, and much more delivered straight to your inbox.
 | |
|                 </p>
 | |
| 
 | |
|                 <!-- What to expect -->
 | |
|                 <div class="features">
 | |
|                     <h3>What to expect from us:</h3>
 | |
|                     <div class="feature-grid">
 | |
|                         <div class="feature-item">
 | |
|                             <span class="feature-icon">🚴♂️</span>
 | |
|                             <div class="feature-title">Training Tips</div>
 | |
|                             <div class="feature-desc">Expert advice to improve your performance</div>
 | |
|                         </div>
 | |
|                         <div class="feature-item">
 | |
|                             <span class="feature-icon">📊</span>
 | |
|                             <div class="feature-title">Performance Insights</div>
 | |
|                             <div class="feature-desc">Data-driven analysis for better rides</div>
 | |
|                         </div>
 | |
|                         <div class="feature-item">
 | |
|                             <span class="feature-icon">🆕</span>
 | |
|                             <div class="feature-title">Feature Updates</div>
 | |
|                             <div class="feature-desc">Be first to know about new releases</div>
 | |
|                         </div>
 | |
|                         <div class="feature-item">
 | |
|                             <span class="feature-icon">👥</span>
 | |
|                             <div class="feature-title">Community Stories</div>
 | |
|                             <div class="feature-desc">Inspiring journeys from fellow cyclists</div>
 | |
|                         </div>
 | |
|                     </div>
 | |
|                 </div>
 | |
| 
 | |
|                 <!-- CTA -->
 | |
|                 <div class="cta-section">
 | |
|                     <p style="margin-bottom: 20px;">Ready to start your journey with RideAware?</p>
 | |
|                     <a href="https://rideaware.com" target="_blank" class="cta-button">
 | |
|                         Explore RideAware →
 | |
|                     </a>
 | |
|                 </div>
 | |
| 
 | |
|                 <!-- Social section -->
 | |
|                 <div class="social-section">
 | |
|                     <h4>Stay Connected</h4>
 | |
|                     <div class="social-links">
 | |
|                         <a href="#" class="social-link" title="Follow us on Twitter">🐦</a>
 | |
|                         <a href="#" class="social-link" title="Like us on Facebook">📘</a>
 | |
|                         <a href="#" class="social-link" title="Follow us on Instagram">📷</a>
 | |
|                     </div>
 | |
|                 </div>
 | |
| 
 | |
|                 <p style="color: #6b7280; font-size: 14px; margin-top: 30px;">
 | |
|                     We're excited to share our journey with you and help you achieve your cycling goals. Welcome to the RideAware family! 🚴♀️
 | |
|                 </p>
 | |
|             </div>
 | |
| 
 | |
|             <!-- Footer -->
 | |
|             <div class="footer">
 | |
|                 <div class="footer-content">
 | |
|                     <p><strong>RideAware Team</strong></p>
 | |
|                     <p>Empowering cyclists, one ride at a time</p>
 | |
|                 </div>
 | |
|                 
 | |
|                 <div class="unsubscribe">
 | |
|                     <p>
 | |
|                         <a href="{{ unsubscribe_link }}">Unsubscribe</a> | 
 | |
|                         <a href="mailto:support@rideaware.com">Contact Support</a> |
 | |
|                     </p>
 | |
|                     <p style="font-size: 12px; color: #6b7280; margin-top: 10px;">
 | |
|                         © 2025 RideAware. All rights reserved.
 | |
|                     </p>
 | |
|                     <p style="font-size: 11px; color: #9ca3af; margin-top: 8px;">
 | |
|                         This email was sent to you because you subscribed to RideAware updates.
 | |
|                     </p>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
|     </div>
 | |
| </body>
 | |
| </html> |