Improve homepage by adding interactive cursor effects and animation

Implement a canvas-based, cursor-reactive dot field background and update the typewriter animation to include a scramble effect.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 6def8112-39d2-4641-b93b-f39108179f33
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 3df64324-7337-48d0-9099-7bab54585b37
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/42ae33dd-8759-4196-85a5-434465c72ece/6def8112-39d2-4641-b93b-f39108179f33/8hzGboW
Replit-Helium-Checkpoint-Created: true
This commit is contained in:
keshavananddev
2026-04-24 03:37:24 +00:00
parent b79bf1d4ca
commit d5fde28b15
4 changed files with 236 additions and 120 deletions

View File

@@ -10,28 +10,21 @@
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
</head>
<body>
<main class="stage">
<p class="hello">hi, i'm keshav.</p>
<canvas id="field" aria-hidden="true"></canvas>
<div class="command-row">
<div class="command-box" id="commandBox" role="button" tabindex="0" aria-label="Copy ssh command">
<span class="dollar">$</span><span class="typed" id="typed"></span><span class="caret" id="caret">&#9608;</span>
<button class="copy-btn" id="copyBtn" aria-label="Copy to clipboard">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
</svg>
</button>
</div>
<span class="hint" id="hint">click to copy</span>
<main class="stage">
<div class="command-box" id="commandBox" role="button" tabindex="0" aria-label="Copy ssh command">
<span class="dollar">$</span><span class="typed" id="typed"></span><span class="caret" id="caret">&#9608;</span>
<button class="copy-btn" id="copyBtn" aria-label="Copy to clipboard">
<svg id="copyIcon" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z" />
</svg>
</button>
</div>
<a href="/docs.html" class="docs-link" id="docsLink">how it works &rarr;</a>
<a href="/docs.html" class="docs-link">how it works &rarr;</a>
</main>
<footer class="byline">
<span>// hand-written, not vibe-coded</span>
</footer>
<script type="module" src="/src/main.ts"></script>
</body>
</html>