+
+
+
+ 404
+Page Not Found
-
404
- Page Not Found
The page you are looking for doesn't exist or has been moved.
Please check the URL or return to the home page. diff --git a/views/pages/changelog.ejs b/views/pages/changelog.ejs index 2f5525a..b9de8f2 100644 --- a/views/pages/changelog.ejs +++ b/views/pages/changelog.ejs @@ -25,10 +25,57 @@ .container { min-height: auto; } + + /* Override hero styles for changelog */ + .hero { + text-align: center; + padding: var(--spacing-2xl) 0; + } + + .hero .container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 1200px; + margin: 0 auto; + padding: 0 var(--spacing-lg); + } + + .hero-logo { + max-width: 280px; + height: auto; + margin: 0 auto var(--spacing-xl) auto; + display: block; + filter: drop-shadow(var(--shadow-glow)); + transition: transform 0.3s ease; + } + + .hero-title { + color: var(--text-primary); + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 800; + margin: 0 0 var(--spacing-lg) 0; + background: var(--gradient-primary); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + text-align: center; + } + + .hero-subtitle { + color: var(--text-secondary); + font-size: var(--text-lg); + font-weight: 500; + margin: 0; + text-align: center; + max-width: 600px; + } + .changelog-section { max-width: 900px; margin: 0 auto; - padding: 20px; + padding: var(--spacing-xl); } .refresh-overlay { position: fixed; @@ -36,7 +83,8 @@ left: 0; width: 100%; height: 100%; - background-color: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); display: flex; justify-content: center; align-items: center; @@ -72,12 +120,13 @@ position: absolute; width: 60px; height: 60px; - background: rgba(0, 188, 212, 0.7); - border: 2px solid #008ba3; + background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); + border: 2px solid var(--primary); display: flex; align-items: center; justify-content: center; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + box-shadow: var(--shadow-lg); + border-radius: var(--radius-sm); } .refresh-spinner .front { @@ -107,70 +156,206 @@ .loading-message { text-align: center; color: var(--text-secondary); - margin-top: 20px; - font-size: 1.1em; + margin-top: var(--spacing-lg); + font-size: var(--text-lg); + font-weight: 500; } .version-card { - background-color: var(--bg-card); - border-radius: 8px; - padding: 20px; - margin-bottom: 20px; - border: 1px solid var(--border); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + background: var(--bg-card); + border-radius: var(--radius-lg); + padding: var(--spacing-xl); + margin-bottom: var(--spacing-xl); + border: 1px solid var(--surface-border); + box-shadow: var(--shadow-md); + transition: all 0.3s ease; + position: relative; + overflow: hidden; + } + + .version-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 4px; + background: linear-gradient(90deg, var(--primary) 0%, var(--secondary) 50%, var(--accent) 100%); + } + + .version-card:hover { + background: var(--surface-hover); + transform: translateY(-4px); + box-shadow: var(--shadow-lg); + border-color: var(--primary); } .version-header { display: flex; justify-content: space-between; align-items: center; - margin-bottom: 15px; + margin-bottom: var(--spacing-lg); + padding-bottom: var(--spacing-md); + border-bottom: 2px solid var(--surface-border); } .version-title { - font-size: 1.3em; - font-weight: 600; + font-size: var(--text-xl); + font-weight: 700; + color: var(--text); + text-shadow: 0 1px 2px rgba(0,0,0,0.1); } .version-date { color: var(--text-secondary); + font-size: var(--text-sm); + font-weight: 500; + background: var(--bg-secondary); + padding: var(--spacing-xs) var(--spacing-sm); + border-radius: var(--radius-sm); + border: 1px solid var(--surface-border); } .changelog-category { - margin-top: 15px; + margin-top: var(--spacing-lg); } .category-title { - font-size: 1.1em; - font-weight: 600; - margin-bottom: 10px; - padding-bottom: 5px; - border-bottom: 1px solid var(--border); + font-size: var(--text-lg); + font-weight: 700; + margin-bottom: var(--spacing-md); + padding-bottom: var(--spacing-xs); + border-bottom: 2px solid var(--primary); + color: var(--text); + text-transform: uppercase; + letter-spacing: 0.5px; + position: relative; + } + + .category-title::after { + content: ''; + position: absolute; + bottom: -2px; + left: 0; + width: 30%; + height: 2px; + background: linear-gradient(90deg, var(--accent), transparent); } .category-features { - color: var(--primary); + border-bottom-color: var(--primary); } .change-list { - padding-left: 25px; - margin: 10px 0; + padding-left: var(--spacing-xl); + margin: var(--spacing-md) 0; } .change-list li { - margin-bottom: 8px; + margin-bottom: var(--spacing-sm); + color: var(--text); + line-height: 1.6; + position: relative; + } + + .change-list li::marker { + color: var(--primary); } .back-link { display: inline-flex; align-items: center; - gap: 5px; - margin-bottom: 20px; + gap: var(--spacing-xs); + margin-bottom: var(--spacing-xl); color: var(--primary); text-decoration: none; + font-weight: 600; + padding: var(--spacing-sm) var(--spacing-md); + background: var(--bg-card); + border-radius: var(--radius-md); + border: 2px solid var(--primary); + transition: all 0.3s ease; } .back-link:hover { + background: var(--primary); + color: white; + transform: translateX(-4px); + box-shadow: var(--shadow-sm); + } + + .category-description { + color: var(--text); + line-height: 1.7; + font-size: var(--text-base); + } + + .category-description br { + margin-bottom: var(--spacing-xs); + } + + /* Footer specific styles */ + .footer { + background: var(--surface); + border-top: 1px solid var(--surface-border); + padding: var(--spacing-2xl) 0; + margin-top: var(--spacing-3xl); + text-align: center; + } + + .footer .container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 1200px; + margin: 0 auto; + padding: 0 var(--spacing-lg); + } + + .footer-logo { + max-width: 200px; + height: auto; + margin: 0 auto var(--spacing-lg) auto; + display: block; + filter: drop-shadow(var(--shadow-sm)); + transition: transform 0.3s ease; + } + + .footer-logo:hover { + transform: scale(1.02); + } + + .footer-subtitle { + color: var(--text-primary); + font-size: var(--text-lg); + font-weight: 600; + margin-bottom: var(--spacing-sm); + background: var(--gradient-primary); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + } + + .footer-info { + color: var(--text-secondary); + font-size: var(--text-sm); + margin-bottom: var(--spacing-sm); + } + + .footer-copyright { + color: var(--text-tertiary); + font-size: var(--text-sm); + } + + .footer-copyright a { + color: var(--primary); + text-decoration: none; + transition: color 0.3s ease; + } + + .footer-copyright a:hover { + color: var(--accent); text-decoration: underline; } @@ -195,20 +380,46 @@ Back to Home - -
-
Please check the URL or return to the home page. diff --git a/views/pages/changelog.ejs b/views/pages/changelog.ejs index 2f5525a..b9de8f2 100644 --- a/views/pages/changelog.ejs +++ b/views/pages/changelog.ejs @@ -25,10 +25,57 @@ .container { min-height: auto; } + + /* Override hero styles for changelog */ + .hero { + text-align: center; + padding: var(--spacing-2xl) 0; + } + + .hero .container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 1200px; + margin: 0 auto; + padding: 0 var(--spacing-lg); + } + + .hero-logo { + max-width: 280px; + height: auto; + margin: 0 auto var(--spacing-xl) auto; + display: block; + filter: drop-shadow(var(--shadow-glow)); + transition: transform 0.3s ease; + } + + .hero-title { + color: var(--text-primary); + font-size: clamp(2.5rem, 6vw, 4rem); + font-weight: 800; + margin: 0 0 var(--spacing-lg) 0; + background: var(--gradient-primary); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + text-align: center; + } + + .hero-subtitle { + color: var(--text-secondary); + font-size: var(--text-lg); + font-weight: 500; + margin: 0; + text-align: center; + max-width: 600px; + } + .changelog-section { max-width: 900px; margin: 0 auto; - padding: 20px; + padding: var(--spacing-xl); } .refresh-overlay { position: fixed; @@ -36,7 +83,8 @@ left: 0; width: 100%; height: 100%; - background-color: rgba(0, 0, 0, 0.2); + background: rgba(0, 0, 0, 0.6); + backdrop-filter: blur(4px); display: flex; justify-content: center; align-items: center; @@ -72,12 +120,13 @@ position: absolute; width: 60px; height: 60px; - background: rgba(0, 188, 212, 0.7); - border: 2px solid #008ba3; + background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); + border: 2px solid var(--primary); display: flex; align-items: center; justify-content: center; - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + box-shadow: var(--shadow-lg); + border-radius: var(--radius-sm); } .refresh-spinner .front { @@ -107,70 +156,206 @@ .loading-message { text-align: center; color: var(--text-secondary); - margin-top: 20px; - font-size: 1.1em; + margin-top: var(--spacing-lg); + font-size: var(--text-lg); + font-weight: 500; } .version-card { - background-color: var(--bg-card); - border-radius: 8px; - padding: 20px; - margin-bottom: 20px; - border: 1px solid var(--border); - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + background: var(--bg-card); + border-radius: var(--radius-lg); + padding: var(--spacing-xl); + margin-bottom: var(--spacing-xl); + border: 1px solid var(--surface-border); + box-shadow: var(--shadow-md); + transition: all 0.3s ease; + position: relative; + overflow: hidden; + } + + .version-card::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 4px; + background: linear-gradient(90deg, var(--primary) 0%, var(--secondary) 50%, var(--accent) 100%); + } + + .version-card:hover { + background: var(--surface-hover); + transform: translateY(-4px); + box-shadow: var(--shadow-lg); + border-color: var(--primary); } .version-header { display: flex; justify-content: space-between; align-items: center; - margin-bottom: 15px; + margin-bottom: var(--spacing-lg); + padding-bottom: var(--spacing-md); + border-bottom: 2px solid var(--surface-border); } .version-title { - font-size: 1.3em; - font-weight: 600; + font-size: var(--text-xl); + font-weight: 700; + color: var(--text); + text-shadow: 0 1px 2px rgba(0,0,0,0.1); } .version-date { color: var(--text-secondary); + font-size: var(--text-sm); + font-weight: 500; + background: var(--bg-secondary); + padding: var(--spacing-xs) var(--spacing-sm); + border-radius: var(--radius-sm); + border: 1px solid var(--surface-border); } .changelog-category { - margin-top: 15px; + margin-top: var(--spacing-lg); } .category-title { - font-size: 1.1em; - font-weight: 600; - margin-bottom: 10px; - padding-bottom: 5px; - border-bottom: 1px solid var(--border); + font-size: var(--text-lg); + font-weight: 700; + margin-bottom: var(--spacing-md); + padding-bottom: var(--spacing-xs); + border-bottom: 2px solid var(--primary); + color: var(--text); + text-transform: uppercase; + letter-spacing: 0.5px; + position: relative; + } + + .category-title::after { + content: ''; + position: absolute; + bottom: -2px; + left: 0; + width: 30%; + height: 2px; + background: linear-gradient(90deg, var(--accent), transparent); } .category-features { - color: var(--primary); + border-bottom-color: var(--primary); } .change-list { - padding-left: 25px; - margin: 10px 0; + padding-left: var(--spacing-xl); + margin: var(--spacing-md) 0; } .change-list li { - margin-bottom: 8px; + margin-bottom: var(--spacing-sm); + color: var(--text); + line-height: 1.6; + position: relative; + } + + .change-list li::marker { + color: var(--primary); } .back-link { display: inline-flex; align-items: center; - gap: 5px; - margin-bottom: 20px; + gap: var(--spacing-xs); + margin-bottom: var(--spacing-xl); color: var(--primary); text-decoration: none; + font-weight: 600; + padding: var(--spacing-sm) var(--spacing-md); + background: var(--bg-card); + border-radius: var(--radius-md); + border: 2px solid var(--primary); + transition: all 0.3s ease; } .back-link:hover { + background: var(--primary); + color: white; + transform: translateX(-4px); + box-shadow: var(--shadow-sm); + } + + .category-description { + color: var(--text); + line-height: 1.7; + font-size: var(--text-base); + } + + .category-description br { + margin-bottom: var(--spacing-xs); + } + + /* Footer specific styles */ + .footer { + background: var(--surface); + border-top: 1px solid var(--surface-border); + padding: var(--spacing-2xl) 0; + margin-top: var(--spacing-3xl); + text-align: center; + } + + .footer .container { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + max-width: 1200px; + margin: 0 auto; + padding: 0 var(--spacing-lg); + } + + .footer-logo { + max-width: 200px; + height: auto; + margin: 0 auto var(--spacing-lg) auto; + display: block; + filter: drop-shadow(var(--shadow-sm)); + transition: transform 0.3s ease; + } + + .footer-logo:hover { + transform: scale(1.02); + } + + .footer-subtitle { + color: var(--text-primary); + font-size: var(--text-lg); + font-weight: 600; + margin-bottom: var(--spacing-sm); + background: var(--gradient-primary); + -webkit-background-clip: text; + background-clip: text; + -webkit-text-fill-color: transparent; + } + + .footer-info { + color: var(--text-secondary); + font-size: var(--text-sm); + margin-bottom: var(--spacing-sm); + } + + .footer-copyright { + color: var(--text-tertiary); + font-size: var(--text-sm); + } + + .footer-copyright a { + color: var(--primary); + text-decoration: none; + transition: color 0.3s ease; + } + + .footer-copyright a:hover { + color: var(--accent); text-decoration: underline; } @@ -195,20 +380,46 @@ Back to Home - -
-
@@ -221,168 +432,5 @@
-
-
-
-
-
-
-
+
+ <% if (changelogData && changelogData.length > 0) { %>
+ <% changelogData.forEach(day => { %>
+
+ <% } %>
+
+ <% }) %>
+ <% } else { %>
+
+
+
+ <%= day.date %>
+ <%= day.commits.length %> commit<%= day.commits.length !== 1 ? 's' : '' %>
+
+
+ Changes
+ -
+ <% day.commits.forEach(commit => { %>
+
- + + <%= commit.message %> + + + by <%= commit.author %> at <%= commit.time %> (<%= commit.sha %>) + + + <% }) %> +
+
-
+
+ No Changelog Data
+
+
- + Unable to load changelog data. Please visit our + GitHub repository + to view recent changes. +
Loading changelog data...