Skip to content

Commit 708272a

Browse files
committed
feat(home): add Vendor & Topic Hub strip, glowing yarn curve, and Stitch 16:9 spotlight player
1 parent a46fb93 commit 708272a

2 files changed

Lines changed: 156 additions & 111 deletions

File tree

‎apps/site/src/components/AnimatedHero.astro‎

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,10 @@ import AjAnimatedMascot from "@/components/AjAnimatedMascot.astro";
212212
</div>
213213
</div>
214214

215-
{/* Lower Connector & Yellow Sticky Note + WebSockets Row */}
216-
<div class="flex w-full flex-col items-center justify-between gap-4 pt-2 sm:flex-row sm:px-2">
215+
{/* Lower Connector & Yellow Sticky Note + Glowing Purple Yarn Swirl + AJ Mascot Row */}
216+
<div class="relative flex w-full flex-col items-center justify-between gap-4 pt-2 sm:flex-row sm:px-2">
217217
{/* Hand-drawn Yellow Sticky Note */}
218-
<div class="max-w-[235px] -rotate-2 rounded-xl border-2 border-[#2A1155] bg-[#FEF08A] p-3.5 text-[#2A1155] shadow-sketch-sm dark:border-yellow-600">
218+
<div class="relative z-10 max-w-[220px] -rotate-2 rounded-xl border-2 border-[#2A1155] bg-[#FEF08A] p-3.5 text-[#2A1155] shadow-sketch-sm dark:border-yellow-600">
219219
<div class="font-hand text-lg font-bold leading-tight text-[#713F12]">
220220
✏️ AJ&apos;s Tip:
221221
</div>
@@ -224,20 +224,44 @@ import AjAnimatedMascot from "@/components/AjAnimatedMascot.astro";
224224
</p>
225225
</div>
226226

227+
{/* Glowing Purple Yarn Curve connecting Sticky Note to Yarn Ball */}
228+
<svg
229+
class="pointer-events-none hidden h-20 w-40 shrink-0 sm:block"
230+
viewBox="0 0 180 80"
231+
fill="none"
232+
xmlns="http://www.w3.org/2000/svg"
233+
aria-hidden="true"
234+
>
235+
<path
236+
d="M 4 28 C 42 10, 62 72, 108 56 C 138 44, 152 24, 174 44"
237+
stroke="#A855F7"
238+
stroke-width="7"
239+
stroke-linecap="round"
240+
class="opacity-45 blur-[3px]"
241+
/>
242+
<path
243+
d="M 4 28 C 42 10, 62 72, 108 56 C 138 44, 152 24, 174 44"
244+
stroke="#7C3AED"
245+
stroke-width="3.5"
246+
stroke-linecap="round"
247+
stroke-dasharray="8 4"
248+
/>
249+
</svg>
250+
227251
{/* Center Converging Node */}
228-
<div class="rotate-1 rounded-xl border-2 border-[#2A1155] bg-white px-5 py-2.5 shadow-sketch-sm dark:border-[#A855F7] chalk-hatch">
252+
<div class="relative z-10 rotate-1 rounded-xl border-2 border-[#2A1155] bg-white px-4 py-2 shadow-sketch-sm dark:border-[#A855F7] dark:bg-[#171F33] chalk-hatch">
229253
<span class="font-mono text-xs font-extrabold text-[#2A1155] dark:text-purple-100">
230254
⚡ WebSockets &amp; AI Stream
231255
</span>
232256
</div>
233257

234258
{/* Spacer for AJ Mascot on desktop */}
235-
<div class="hidden w-24 sm:block"></div>
259+
<div class="hidden w-28 sm:block"></div>
236260
</div>
237261
</div>
238262

239-
{/* Interactive Purple Yarn Swirl & Ball */}
240-
<div class="mt-3 flex items-center justify-between border-t-2 border-dashed border-[#2A1155]/15 pt-3 dark:border-white/15">
263+
{/* Interactive Purple Yarn Swirl & Ball Footer */}
264+
<div class="mt-3 flex flex-wrap items-center justify-between gap-2 border-t-2 border-dashed border-[#2A1155]/15 pt-3 pr-0 sm:pr-32 dark:border-white/15">
241265
<div class="flex items-center gap-3">
242266
<div class="flex size-9 items-center justify-center rounded-full border-2 border-[#2A1155] bg-[#7C3AED] shadow-sketch-sm dark:border-white/80 dark:bg-gradient-to-tr dark:from-[#7C3AED] dark:to-[#D946EF]">
243267
<svg class="size-5 text-white" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24" aria-hidden="true">
@@ -249,13 +273,25 @@ import AjAnimatedMascot from "@/components/AjAnimatedMascot.astro";
249273
Follow the purple yarn trail down the page ↓
250274
</span>
251275
</div>
252-
<span class="hidden font-mono text-[11px] font-bold text-[#2A1155]/60 dark:text-slate-400 sm:inline">
253-
AAA Contrast · Screen-Reader Ready
254-
</span>
276+
<a
277+
href="/mascot-lab"
278+
class="font-mono text-[11px] font-extrabold text-[#7C3AED] hover:underline dark:text-[#C084FC]"
279+
>
280+
Open AJ Mascot Lab →
281+
</a>
255282
</div>
256283

257-
{/* Articulated Interactive 2D Vector AJ Mascot in Bottom-Right Corner */}
258-
<div class="mt-4 flex flex-col items-center sm:absolute sm:-bottom-6 sm:-right-4 sm:mt-0">
284+
{/* Articulated Interactive 2D Vector AJ Mascot + Glowing Yarn Ball in Bottom-Right Corner */}
285+
<div class="mt-4 flex items-end justify-center gap-1 sm:absolute sm:-bottom-5 sm:-right-3 sm:mt-0">
286+
<div class="relative -mr-3 mb-3 size-12 shrink-0">
287+
<div class="absolute inset-0 animate-pulse rounded-full bg-[#A855F7] opacity-60 blur-md"></div>
288+
<svg class="relative size-full" viewBox="0 0 100 100" fill="none" aria-hidden="true">
289+
<circle cx="50" cy="50" r="42" fill="#7C3AED" stroke="#2A1155" stroke-width="5"></circle>
290+
<path d="M 20 40 Q 50 10 80 40" stroke="#DDD6FE" stroke-width="4" stroke-linecap="round"></path>
291+
<path d="M 20 60 Q 50 90 80 60" stroke="#C4B5FD" stroke-width="4" stroke-linecap="round"></path>
292+
<path d="M 30 25 Q 70 50 40 85" stroke="#EDE9FE" stroke-width="3.5" stroke-linecap="round"></path>
293+
</svg>
294+
</div>
259295
<AjAnimatedMascot
260296
id="hero-aj"
261297
variant="full-body"

0 commit comments

Comments
 (0)