- 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
91 lines
No EOL
3.6 KiB
HTML
91 lines
No EOL
3.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>RideAware - Newsletters</title>
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/newsletter_styles.css') }}">
|
|
</head>
|
|
<body>
|
|
<!-- Navigation -->
|
|
<nav class="navbar">
|
|
<div class="nav-container">
|
|
<a href="/" class="logo">Ride<span class="logo-accent">Aware</span></a>
|
|
<ul class="nav-links">
|
|
<li><a href="/">Home</a></li>
|
|
<li><a href="/newsletters" class="active">Newsletters</a></li>
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Page Header -->
|
|
<section class="page-header">
|
|
<div class="page-header-content">
|
|
<div class="header-icon">
|
|
<i class="fas fa-newspaper"></i>
|
|
</div>
|
|
<h1>RideAware Newsletters</h1>
|
|
<p>Stay updated with the latest cycling tips, training insights, and product updates from our team.</p>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Main Content -->
|
|
<main class="main-content">
|
|
{% if newsletters %}
|
|
<div class="newsletters-grid">
|
|
{% for nl in newsletters %}
|
|
<article class="newsletter-card">
|
|
<div class="newsletter-header">
|
|
<div class="newsletter-icon">
|
|
<i class="fas fa-envelope-open-text"></i>
|
|
</div>
|
|
<div class="newsletter-info">
|
|
<h2>
|
|
<a href="/newsletter/{{ nl['id'] }}">{{ nl['subject'] }}</a>
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="newsletter-date">
|
|
<i class="fas fa-calendar-alt"></i>
|
|
<span>Sent on: {{ nl['sent_at'] }}</span>
|
|
</div>
|
|
|
|
<div class="newsletter-excerpt">
|
|
{% if nl.get('preview') %}
|
|
{{ nl['preview'][:150] }}...
|
|
{% else %}
|
|
Get the latest updates on cycling training, performance tips, and RideAware features in this newsletter edition.
|
|
{% endif %}
|
|
</div>
|
|
|
|
<a href="/newsletter/{{ nl['id'] }}" class="read-more-btn">
|
|
Read Full Newsletter
|
|
<i class="fas fa-arrow-right"></i>
|
|
</a>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<div class="empty-state">
|
|
<div class="empty-icon">
|
|
<i class="fas fa-inbox"></i>
|
|
</div>
|
|
<h3>No Newsletters Yet</h3>
|
|
<p>We're working on some amazing content for you. Subscribe to be the first to know when we publish our newsletters!</p>
|
|
<a href="/" class="subscribe-prompt">
|
|
<i class="fas fa-bell"></i>
|
|
Subscribe for Updates
|
|
</a>
|
|
</div>
|
|
{% endif %}
|
|
</main>
|
|
|
|
<!-- Footer -->
|
|
<footer class="footer">
|
|
<p>© 2025 RideAware. All rights reserved.</p>
|
|
</footer>
|
|
<script src="{{ url_for('static', filename='js/main.js') }}"></script>
|
|
</body>
|
|
</html> |