From 2c0dcc1c76aa56e3c69a9f3d8d67f29da2dcdfad Mon Sep 17 00:00:00 2001 From: Luca <87448287+LUCA-PYTHON@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:39:44 +0200 Subject: [PATCH 1/3] Update home.css --- public/dashboard/home.css | 69 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 64 insertions(+), 5 deletions(-) diff --git a/public/dashboard/home.css b/public/dashboard/home.css index cc99a61..f50441a 100644 --- a/public/dashboard/home.css +++ b/public/dashboard/home.css @@ -10,6 +10,67 @@ body { background-color: #0d1117; } +/* -- Preloader -- */ + +.page-hidden { + opacity: 0; + visibility: hidden; +} + +#page { + transition: opacity 0.4s ease; +} + +#preloader { + position: fixed; + inset: 0; + z-index: 9999; + background: #0d1117; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 1.5rem; + transition: opacity 0.5s ease, visibility 0.5s ease; +} + +#preloader.hidden { + opacity: 0; + visibility: hidden; +} + +.preloader-logo { + font-size: 2rem; + font-weight: 600; + background: linear-gradient(135deg, #7ee8fa 0%, #58a6ff 35%, #a78bfa 70%, #c084fc 100%); + background-size: 200% auto; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + animation: shimmer 2s linear infinite; +} + +.preloader-bar { + width: 200px; + height: 3px; + background: #21262d; + border-radius: 99px; + overflow: hidden; +} + +.preloader-bar-inner { + height: 100%; + width: 0%; + background: linear-gradient(90deg, #58a6ff, #a78bfa); + border-radius: 99px; + animation: load-bar 1.2s ease forwards; +} + +@keyframes load-bar { + to { width: 100%; } +} + +/* -- Hero Section -- */ .hero { position: relative; width: 100vw; @@ -25,7 +86,7 @@ body { inset: 0; width: 100%; height: 100%; - opacity: 0.3; + opacity: 0.7; pointer-events: none; } @@ -38,7 +99,6 @@ body { z-index: 1; } -/* ── Content ────────────────────────────────────────── */ .hero-content { position: relative; z-index: 2; @@ -51,7 +111,6 @@ body { max-width: 680px; } -/* ── Info ───────────────────────────────────────────── */ .info { text-align: center; } @@ -80,7 +139,7 @@ body { letter-spacing: 0.04em; } -/* ── Terminal ───────────────────────────────────────── */ +/* -- Coding animation -- */ .terminal { width: 100%; background: rgba(22, 27, 34, 0.92); @@ -145,4 +204,4 @@ body { @keyframes blink { 50% { opacity: 0; } -} \ No newline at end of file +} From a816c6fbdd91f9f94b8ed792522203e1cb9c17e4 Mon Sep 17 00:00:00 2001 From: Luca <87448287+LUCA-PYTHON@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:39:58 +0200 Subject: [PATCH 2/3] Update home.js --- public/dashboard/home.js | 290 ++++++++++++++++++++++++++++++++------- 1 file changed, 242 insertions(+), 48 deletions(-) diff --git a/public/dashboard/home.js b/public/dashboard/home.js index c2df9ac..ae0a107 100644 --- a/public/dashboard/home.js +++ b/public/dashboard/home.js @@ -1,46 +1,114 @@ -// ── Canvas Rain ────────────────────────────────────────────────────────────── -const canvas = document.getElementById('code-canvas'); -const ctx = canvas.getContext('2d'); +/* -- React Preloader -- */ -function resizeCanvas() { - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; -} -resizeCanvas(); +const { useEffect, useRef } = React; + +function Preloader() { + const ref = useRef(null); + + useEffect(() => { + function showPage() { + ref.current.classList.add('hidden'); + + setTimeout(() => { + document.getElementById('page').classList.remove('page-hidden'); + startAnimations(); + }, 500); + } + + function trigger() { + setTimeout(showPage, 1300); + } -const FONT_SIZE = 14; -const CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789<>=+-*/[]{}();:#'.split(''); -let drops = []; + if (document.readyState === 'complete') { + trigger(); + } else { + window.addEventListener('load', trigger, { once: true }); + } + }, []); -function initDrops() { - const cols = Math.floor(canvas.width / FONT_SIZE); - drops = Array.from({ length: cols }, () => Math.floor(Math.random() * -(canvas.height / FONT_SIZE))); + return ( +
+
Nexory.Org
+
+
+
+
+ ); } -initDrops(); -window.addEventListener('resize', () => { resizeCanvas(); initDrops(); }); +ReactDOM.createRoot(document.getElementById('preloader-root')).render(); + +/* -- start animation for home page after page loaded -- */ + +function startAnimations() { + const canvas = document.getElementById('code-canvas'); + const ctx = canvas.getContext('2d'); + const PARTICLE_COUNT = 100; + const CONNECTION_DIST = 200; + const SPEED = 0.4; + let particles = []; + + function resize() { + canvas.width = window.innerWidth; + canvas.height = window.innerHeight; + } + resize(); + window.addEventListener('resize', resize); + + for (let i = 0; i < PARTICLE_COUNT; i++) { + particles.push({ + x: Math.random() * canvas.width, + y: Math.random() * canvas.height, + vx: (Math.random() - 0.5) * SPEED, + vy: (Math.random() - 0.5) * SPEED, + r: Math.random() * 1.8 + 1.2, + }); + } + + function draw() { + ctx.clearRect(0, 0, canvas.width, canvas.height); -function drawRain() { - ctx.fillStyle = 'rgba(13, 17, 23, 0.07)'; - ctx.fillRect(0, 0, canvas.width, canvas.height); - ctx.font = `${FONT_SIZE}px "Fira Code", monospace`; + particles.forEach(p => { + p.x += p.vx; + p.y += p.vy; + if (p.x < 0 || p.x > canvas.width) p.vx *= -1; + if (p.y < 0 || p.y > canvas.height) p.vy *= -1; + }); - drops.forEach((y, i) => { - const char = CHARS[Math.floor(Math.random() * CHARS.length)]; - const alpha = Math.random() * 0.5 + 0.05; - ctx.fillStyle = `rgba(88, 166, 255, ${alpha})`; - ctx.fillText(char, i * FONT_SIZE, y * FONT_SIZE); + for (let i = 0; i < particles.length; i++) { + for (let j = i + 1; j < particles.length; j++) { + const dx = particles[i].x - particles[j].x; + const dy = particles[i].y - particles[j].y; + const dist = Math.sqrt(dx * dx + dy * dy); - if (y * FONT_SIZE > canvas.height && Math.random() > 0.975) { - drops[i] = 0; + if (dist < CONNECTION_DIST) { + const alpha = 1 - dist / CONNECTION_DIST; + ctx.beginPath(); + ctx.moveTo(particles[i].x, particles[i].y); + ctx.lineTo(particles[j].x, particles[j].y); + ctx.strokeStyle = `rgba(88, 166, 255, ${alpha * 0.6})`; + ctx.lineWidth = 1; + ctx.stroke(); + } + } } - drops[i]++; - }); -} -setInterval(drawRain, 40); + particles.forEach(p => { + ctx.beginPath(); + ctx.arc(p.x, p.y, p.r, 0, Math.PI * 2); + ctx.fillStyle = 'rgba(167, 139, 250, 0.95)'; + ctx.shadowColor = 'rgba(167, 139, 250, 0.6)'; + ctx.shadowBlur = 6; + ctx.fill(); + ctx.shadowBlur = 0; + }); -const CODE = `class NexoryOrg: + requestAnimationFrame(draw); + } + draw(); + + const CODE = +`class NexoryOrg: def __init__(self, org_name): self.org = org_name self.people = [] @@ -57,24 +125,150 @@ if __name__ == "__main__": org.join("Your Name") org.run()`; -const output = document.getElementById('code-output'); -const TYPE_SPEED = 58; -const WAIT_MS = 20000; - -function startTyping() { - output.textContent = ''; - let i = 0; + const output = document.getElementById('code-output'); + const TYPE_SPEED = 58; + const WAIT_MS = 20000; - function type() { - if (i < CODE.length) { - output.textContent = CODE.slice(0, i + 1); - i++; - setTimeout(type, TYPE_SPEED); - } else { - setTimeout(startTyping, WAIT_MS); + function startTyping() { + output.textContent = ''; + let i = 0; + function type() { + if (i < CODE.length) { + output.textContent = CODE.slice(0, i + 1); + i++; + setTimeout(type, TYPE_SPEED); + } else { + setTimeout(startTyping, WAIT_MS); + } } + type(); } - type(); + startTyping(); +} + +/* -- Hero Section with Canvas and Typewriter -- */ +function Hero() { + const canvasRef = useRef(null); + const outputRef = useRef(null); + + useEffect(() => { + const canvas = canvasRef.current; + const ctx = canvas.getContext('2d'); + const FONT_SIZE = 14; + const CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789<>=+-*/[]{}();:#'.split(''); + let drops = []; + + function resize() { + canvas.width = window.innerWidth; + canvas.height = window.innerHeight; + const cols = Math.floor(canvas.width / FONT_SIZE); + drops = Array.from({ length: cols }, () => + Math.floor(Math.random() * -(canvas.height / FONT_SIZE)) + ); + } + resize(); + window.addEventListener('resize', resize); + + const interval = setInterval(() => { + ctx.fillStyle = 'rgba(13, 17, 23, 0.07)'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.font = `${FONT_SIZE}px "Fira Code", monospace`; + + drops.forEach((y, i) => { + const char = CHARS[Math.floor(Math.random() * CHARS.length)]; + const alpha = Math.random() * 0.5 + 0.05; + ctx.fillStyle = `rgba(88, 166, 255, ${alpha})`; + ctx.fillText(char, i * FONT_SIZE, y * FONT_SIZE); + if (y * FONT_SIZE > canvas.height && Math.random() > 0.975) drops[i] = 0; + drops[i]++; + }); + }, 40); + + return () => { + clearInterval(interval); + window.removeEventListener('resize', resize); + }; + }, []); + + useEffect(() => { + const CODE = +`class NexoryOrg: + def __init__(self, org_name): + self.org = org_name + self.people = [] + + def join(self, new_user): + self.people.append(new_user) + print(f"Success, {new_user} joined") + + def run(self): + print(f"Welcome to {self.org}!") + +if __name__ == "__main__": + org = NexoryOrg("Nexory.Org") + org.join("Your Name") + org.run()`; + + const TYPE_SPEED = 58; + const WAIT_MS = 20000; + let timeout; + + function startTyping() { + outputRef.current.textContent = ''; + let i = 0; + function type() { + if (i < CODE.length) { + outputRef.current.textContent = CODE.slice(0, i + 1); + i++; + timeout = setTimeout(type, TYPE_SPEED); + } else { + timeout = setTimeout(startTyping, WAIT_MS); + } + } + type(); + } + startTyping(); + + return () => clearTimeout(timeout); + }, []); + + return ( +
+ + +
+
+

Nexory.Org

+

Open source projects · Python, JavaScript, PHP and more

+
+ +
+
+ + + + nexory.py +
+
+

+                        
+                    
+
+
+
+ ); +} + +/* -- App -- */ +function App() { + const [loaded, setLoaded] = useState(false); + + return ( + <> + {!loaded && setLoaded(true)} />} + + + ); } -startTyping(); \ No newline at end of file +ReactDOM.createRoot(document.getElementById('root')).render(); From db20dd48e26d9484a440f32329f1b45fbea8be48 Mon Sep 17 00:00:00 2001 From: Luca <87448287+LUCA-PYTHON@users.noreply.github.com> Date: Fri, 3 Apr 2026 13:40:09 +0200 Subject: [PATCH 3/3] Update home.php --- public/dashboard/home.php | 49 ++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/public/dashboard/home.php b/public/dashboard/home.php index a6fbeca..868cbc0 100644 --- a/public/dashboard/home.php +++ b/public/dashboard/home.php @@ -17,34 +17,41 @@ - +
-
- +
+ -
-
-

Nexory.Org

-

Open source projects · Python, JavaScript, PHP and more

-
+
+ -
-
- - - - nexory.py +
+
+

Nexory.Org

+

Open source projects · Python, JavaScript, PHP and more

-
-

+
+                    
+
+ + + + nexory.py +
+
+

+                        
-
-
+
- + + - + + + + - \ No newline at end of file +