From 3684bcef3897addef7f9044be408c835ddca6a18 Mon Sep 17 00:00:00 2001
From: Ben de Roo
Date: Sat, 21 Feb 2026 19:46:54 +0100
Subject: [PATCH] Update install/index.html
---
install/index.html | 98 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 98 insertions(+)
diff --git a/install/index.html b/install/index.html
index 5b0bb0a..ef900cd 100644
--- a/install/index.html
+++ b/install/index.html
@@ -492,6 +492,61 @@
100% { opacity: 0; transform: translateY(-10vh) scale(1); }
}
+ /* ===== UPDATES / CHANGELOG ===== */
+ .updates-list { display: flex; flex-direction: column; gap: 0; max-width: 680px; margin: 0 auto; }
+ .update-item {
+ position: relative;
+ padding: 20px 20px 20px 40px;
+ border-left: 2px solid var(--border);
+ transition: border-color 0.2s;
+ }
+ .update-item:hover { border-left-color: var(--green); }
+ .update-item:last-child { border-left-color: transparent; }
+ .update-dot {
+ position: absolute; left: -6px; top: 24px;
+ width: 10px; height: 10px; border-radius: 50%;
+ background: var(--border); border: 2px solid var(--bg);
+ transition: background 0.2s, box-shadow 0.2s;
+ }
+ .update-item:hover .update-dot {
+ background: var(--green);
+ box-shadow: 0 0 8px rgba(34,197,94,0.4);
+ }
+ .update-meta {
+ display: flex; align-items: center; gap: 10px;
+ margin-bottom: 6px;
+ }
+ .update-badge {
+ display: inline-flex; align-items: center; gap: 4px;
+ padding: 2px 10px; border-radius: 9999px;
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 11px; font-weight: 600;
+ text-transform: uppercase; letter-spacing: 0.5px;
+ }
+ .update-badge[data-type="release"] { background: var(--green-glow); color: var(--green); }
+ .update-badge[data-type="patch"] { background: rgba(6,182,212,0.12); color: var(--cyan); }
+ .update-badge[data-type="news"] { background: rgba(234,179,8,0.12); color: var(--yellow); }
+ .update-date {
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 12px; color: var(--text-muted);
+ }
+ .update-title {
+ font-size: 15px; font-weight: 600; color: var(--text);
+ margin-bottom: 4px;
+ }
+ .update-desc {
+ font-size: 13px; color: var(--text-dim); line-height: 1.6;
+ }
+ .update-version {
+ font-family: 'JetBrains Mono', monospace;
+ font-size: 11px; color: var(--text-muted);
+ }
+ .updates-empty {
+ text-align: center; padding: 40px 20px;
+ color: var(--text-muted); font-size: 14px;
+ font-family: 'JetBrains Mono', monospace;
+ }
+
/* ===== GLOW CURSOR FOLLOWER ===== */
.cursor-glow {
position: fixed;
@@ -1007,6 +1062,18 @@
+
+
+
+
// changelog
+
Updates & News
+
Latest releases, patches, and project news.
+
+
+
+
@@ -1321,6 +1389,36 @@
glow.style.top = e.clientY + 'px';
});
})();
+
+ // === LOAD UPDATES FROM JSON ===
+ (async function loadUpdates() {
+ const container = document.getElementById('updatesList');
+ try {
+ const res = await fetch('/updates.json?v=' + Date.now());
+ if (!res.ok) throw new Error('Failed to load');
+ const updates = await res.json();
+
+ if (!updates.length) {
+ container.innerHTML = 'No updates yet. Check back soon.
';
+ return;
+ }
+
+ container.innerHTML = updates.map(item => `
+
+
+
+ ${item.type}
+ ${item.version ? `${item.version}` : ''}
+ ${new Date(item.date).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })}
+
+
${item.title}
+
${item.description}
+
+ `).join('');
+ } catch (e) {
+ container.innerHTML = 'Could not load updates.
';
+ }
+ })();