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 @@ + +
+
+ +

Updates & News

+

Latest releases, patches, and project news.

+
+
Loading updates...
+
+
+
+ @@ -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.
'; + } + })();