From 42969c428debbd6169eff658800f12ee25460073 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 14:19:21 +0000 Subject: [PATCH 1/3] Initial plan From b92d3014b4d31033658d69e63b2b23c4601e6b87 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 14:22:33 +0000 Subject: [PATCH 2/3] =?UTF-8?q?Add=20fest=20Easter=20egg:=20type=20\"fest\?= =?UTF-8?q?"=20anywhere=20to=20launch=20confetti=20=F0=9F=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent-Logs-Url: https://github.com/UiASub/Topside/sessions/39661e19-abcb-41d6-941d-851f86a32555 Co-authored-by: lindestad <99703478+lindestad@users.noreply.github.com> --- static/js/fest.js | 94 ++++++++++++++++++++++++++++++++++++++ static/templates/base.html | 2 + 2 files changed, 96 insertions(+) create mode 100644 static/js/fest.js diff --git a/static/js/fest.js b/static/js/fest.js new file mode 100644 index 0000000..4a7e5d6 --- /dev/null +++ b/static/js/fest.js @@ -0,0 +1,94 @@ +/** + * Fest Easter egg – type "fest" anywhere on the page to celebrate 🎉 + * Triggered by: typing the letters f-e-s-t in sequence. + */ +(function () { + const TRIGGER = "fest"; + const PARTICLE_COUNT = 120; + const DURATION_MS = 4000; + const COLORS = [ + "#ff595e", "#ffca3a", "#6a4c93", "#1982c4", + "#8ac926", "#ff6d00", "#00b4d8", "#e040fb", + ]; + + let buffer = ""; + + document.addEventListener("keydown", (e) => { + if (e.ctrlKey || e.altKey || e.metaKey) return; + if (e.key.length !== 1) return; + + buffer = (buffer + e.key.toLowerCase()).slice(-TRIGGER.length); + if (buffer === TRIGGER) { + launchFest(); + buffer = ""; + } + }); + + function launchFest() { + const container = document.createElement("div"); + container.setAttribute("aria-hidden", "true"); + Object.assign(container.style, { + position: "fixed", + top: "0", + left: "0", + width: "100%", + height: "100%", + pointerEvents: "none", + overflow: "hidden", + zIndex: "9999", + }); + document.body.appendChild(container); + + for (let i = 0; i < PARTICLE_COUNT; i++) { + spawnParticle(container); + } + + setTimeout(() => container.remove(), DURATION_MS + 500); + } + + function spawnParticle(container) { + const el = document.createElement("div"); + const color = COLORS[Math.floor(Math.random() * COLORS.length)]; + const size = 8 + Math.random() * 8; + const startX = Math.random() * 100; + const delay = Math.random() * 1200; + const spinDir = Math.random() < 0.5 ? 1 : -1; + const shape = Math.random() < 0.5 ? "50%" : "0%"; + + Object.assign(el.style, { + position: "absolute", + top: "-20px", + left: startX + "%", + width: size + "px", + height: size + "px", + backgroundColor: color, + borderRadius: shape, + opacity: "1", + animation: `fest-fall ${DURATION_MS}ms ${delay}ms ease-in forwards`, + transform: `rotate(${Math.random() * 360}deg)`, + }); + + el.animate( + [ + { + top: "-20px", + transform: `rotate(0deg) translateX(0px)`, + opacity: 1, + }, + { + top: "110%", + transform: `rotate(${spinDir * (360 + Math.random() * 720)}deg) translateX(${(Math.random() - 0.5) * 80}px)`, + opacity: 0.2, + }, + ], + { + duration: DURATION_MS, + delay: delay, + easing: "ease-in", + fill: "forwards", + } + ); + + container.appendChild(el); + } +})(); diff --git a/static/templates/base.html b/static/templates/base.html index 66d20c5..6b2e440 100644 --- a/static/templates/base.html +++ b/static/templates/base.html @@ -81,5 +81,7 @@

ROV Mission Dashboard

+ + From 13aaf0951127f9f3cbc81cc7a21fa7700155fc7b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 14:23:08 +0000 Subject: [PATCH 3/3] Remove unused CSS animation property; use Web Animations API only Agent-Logs-Url: https://github.com/UiASub/Topside/sessions/39661e19-abcb-41d6-941d-851f86a32555 Co-authored-by: lindestad <99703478+lindestad@users.noreply.github.com> --- static/js/fest.js | 1 - 1 file changed, 1 deletion(-) diff --git a/static/js/fest.js b/static/js/fest.js index 4a7e5d6..0c223d8 100644 --- a/static/js/fest.js +++ b/static/js/fest.js @@ -64,7 +64,6 @@ backgroundColor: color, borderRadius: shape, opacity: "1", - animation: `fest-fall ${DURATION_MS}ms ${delay}ms ease-in forwards`, transform: `rotate(${Math.random() * 360}deg)`, });