From 3297c00a1c5972ebcab1ab1f8d3220ada4376915 Mon Sep 17 00:00:00 2001 From: Myron Blair Date: Mon, 1 Jun 2026 23:39:25 +0000 Subject: [PATCH] Add futuristic floating UI: particles, panel float, HUD corners, scanline sweep, arc reactor, parallel refresh, animated counters - Ambient particle canvas: 65 nodes with dynamic connection lines (GPU-accelerated) - Floating panels: translateY oscillation with staggered phases per panel (pure CSS) - HUD corner brackets on every panel (4-corner L-brackets via CSS ::after gradients) - Animated grid drift: background-position keyframes give moving-through-space effect - Scanline sweep: bright horizontal band that slowly scans the full viewport - Mini arc reactor in top bar: always-on spinning rings + pulsing core - Parallel API fetches in refreshAll(): Promise.all cuts refresh latency ~3x - Animated number counters: CPU/mem/disk roll smoothly to new values (ease-out cubic) --- public_html/index.html | 207 ++++++++++++++++++++++++++++++++++------- 1 file changed, 173 insertions(+), 34 deletions(-) diff --git a/public_html/index.html b/public_html/index.html index 31fbbc8..6fc2a64 100644 --- a/public_html/index.html +++ b/public_html/index.html @@ -33,7 +33,8 @@ } html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:var(--font-body)} -/* ── GRID BACKGROUND ──────────────────────────────────────────────── */ +/* ── GRID BACKGROUND — animated drift ─────────────────────────────── */ +@keyframes gridDrift{from{background-position:0 0,0 0}to{background-position:40px 40px,40px 40px}} body::before{ content:''; position:fixed;inset:0; @@ -43,6 +44,7 @@ body::before{ background-size:40px 40px; z-index:0; pointer-events:none; + animation:gridDrift 18s linear infinite; } body::after{ content:''; @@ -60,6 +62,38 @@ body::after{ } @keyframes scanMove{0%{background-position:0 0}100%{background-position:0 100%}} +/* ── SCANLINE SWEEP ───────────────────────────────────────────────── */ +.scanline-sweep{ + position:fixed;top:0;left:0;right:0;height:120px; + background:linear-gradient(180deg,transparent 0%,rgba(0,212,255,0.04) 40%,rgba(0,212,255,0.12) 50%,rgba(0,212,255,0.04) 60%,transparent 100%); + pointer-events:none;z-index:2; + animation:sweepDown 7s linear infinite; + box-shadow:0 0 12px rgba(0,212,255,0.15); +} +@keyframes sweepDown{ + 0%{transform:translateY(-120px);opacity:0} + 3%{opacity:1} + 97%{opacity:0.7} + 100%{transform:translateY(100vh);opacity:0} +} + +/* ── PARTICLE CANVAS ──────────────────────────────────────────────── */ +#particleCanvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0.7} + +/* ── PANEL FLOAT + GLOW ───────────────────────────────────────────── */ +@keyframes panelFloat{ + 0%,100%{transform:translateY(0px);box-shadow:0 4px 20px rgba(0,0,0,0.4),0 0 0px rgba(0,212,255,0)} + 50%{transform:translateY(-7px);box-shadow:0 16px 40px rgba(0,0,0,0.5),0 0 30px rgba(0,212,255,0.06),0 0 60px rgba(0,212,255,0.02)} +} + +/* ── HUD CORNER BRACKETS ──────────────────────────────────────────── */ +/* ── MINI ARC REACTOR ─────────────────────────────────────────────── */ +.tb-reactor{width:30px;height:30px;position:relative;flex-shrink:0} +.tbr-ring{position:absolute;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%)} +.tbr-r1{width:30px;height:30px;border:1px solid rgba(0,212,255,0.35);animation:spinRing 9s linear infinite} +.tbr-r2{width:20px;height:20px;border:1px solid var(--orange);box-shadow:0 0 6px var(--orange);animation:spinRing 4s linear infinite reverse} +.tbr-core{position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,#fff 0%,var(--cyan) 50%,var(--cyan2) 100%);box-shadow:0 0 10px var(--cyan),0 0 20px rgba(0,212,255,0.5);top:50%;left:50%;transform:translate(-50%,-50%);animation:corePulse 2s ease-in-out infinite} + /* ── LOGIN SCREEN ─────────────────────────────────────────────────── */ #loginScreen{ position:fixed;inset:0;z-index:1000; @@ -224,11 +258,28 @@ body::after{ overflow:hidden; position:relative; backdrop-filter:blur(4px); + animation:panelFloat 7s ease-in-out infinite; + will-change:transform; } .panel::before{ content:'';position:absolute;top:0;left:0;right:0;height:1px; background:linear-gradient(90deg,transparent,var(--cyan),transparent); opacity:0.4; + z-index:2; +} +/* HUD corner brackets */ +.panel::after{ + content:'';position:absolute;inset:0;pointer-events:none;z-index:2; + background: + linear-gradient(to right,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) top left / 14px 1px no-repeat, + linear-gradient(to bottom,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) top left / 1px 14px no-repeat, + linear-gradient(to right,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) top right / 14px 1px no-repeat, + linear-gradient(to bottom,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) top right / 1px 14px no-repeat, + linear-gradient(to right,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) bottom left / 14px 1px no-repeat, + linear-gradient(to bottom,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) bottom left / 1px 14px no-repeat, + linear-gradient(to right,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) bottom right / 14px 1px no-repeat, + linear-gradient(to bottom,rgba(0,212,255,0.8),rgba(0,212,255,0.8)) bottom right / 1px 14px no-repeat; + opacity:0.55; } .panel-title{ font-family:var(--font-display);font-size:0.6rem;font-weight:700; @@ -626,7 +677,9 @@ body::after{ +
+
@@ -651,7 +704,7 @@ body::after{
@@ -900,6 +953,68 @@ body::after{