Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.

Commit f6ddd48

Browse files
committed
feat(web): add Valentine's Day themed homepage update
1 parent fe722da commit f6ddd48

5 files changed

Lines changed: 107 additions & 6 deletions

File tree

apps/web-roo-code/src/app/globals.css

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,25 @@
7070
@apply bg-background text-foreground;
7171
}
7272
}
73+
74+
/* Valentine's Day floating hearts animation */
75+
@keyframes float-up {
76+
0% {
77+
transform: translateY(100%) rotate(0deg);
78+
opacity: 0;
79+
}
80+
10% {
81+
opacity: 0.6;
82+
}
83+
90% {
84+
opacity: 0.6;
85+
}
86+
100% {
87+
transform: translateY(-100vh) rotate(360deg);
88+
opacity: 0;
89+
}
90+
}
91+
92+
.animate-float-up {
93+
animation: float-up linear infinite;
94+
}

apps/web-roo-code/src/app/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
OptionOverviewSection,
88
PillarsSection,
99
UseExamplesSection,
10+
ValentinesBanner,
1011
} from "@/components/homepage"
1112
import { EXTERNAL_LINKS } from "@/lib/constants"
1213
import { ArrowRight } from "lucide-react"
@@ -19,9 +20,10 @@ export default async function Home() {
1920
return (
2021
<>
2122
<StructuredData />
23+
<ValentinesBanner />
2224
<section className="relative flex flex-col items-center overflow-hidden pt-20 pb-12 md:pt-32 md:pb-16">
2325
<div className="absolute inset-y-0 left-1/2 h-full w-full max-w-[1200px] -translate-x-1/2 z-1">
24-
<div className="absolute left-1/2 top-1/2 h-[400px] w-full -translate-x-1/2 -translate-y-1/2 rounded-full bg-violet-500/10 dark:bg-violet-700/20 blur-[140px]" />
26+
<div className="absolute left-1/2 top-1/2 h-[400px] w-full -translate-x-1/2 -translate-y-1/2 rounded-full bg-pink-500/10 dark:bg-rose-700/20 blur-[140px]" />
2527
</div>
2628
<div className="container relative z-10 mx-auto px-4 sm:px-6 lg:px-8 flex flex-col items-center text-center">
2729
<h1 className="text-3xl md:text-4xl font-bold tracking-tight text-foreground max-w-4xl mb-6">

apps/web-roo-code/src/components/homepage/cta-section.tsx

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
11
import { Button } from "@/components/ui"
2-
import { ArrowRight, Download } from "lucide-react"
2+
import { ArrowRight, Download, Heart } from "lucide-react"
33
import { EXTERNAL_LINKS } from "@/lib/constants"
44

55
export function CTASection() {
66
return (
7-
<section className="py-24 bg-muted/30 border-t border-border">
7+
<section className="py-24 bg-gradient-to-b from-muted/30 to-pink-50/30 dark:to-rose-950/10 border-t border-border">
88
<div className="container px-4 mx-auto sm:px-6 lg:px-8 text-center">
9-
<h2 className="text-3xl font-bold tracking-tight sm:text-5xl mb-8">Build faster. Solo or Together.</h2>
9+
<div className="flex items-center justify-center gap-2 mb-4">
10+
<Heart className="h-6 w-6 text-pink-500 fill-pink-500 animate-pulse" />
11+
<span className="text-pink-500 dark:text-pink-400 font-medium">Valentine&apos;s Special</span>
12+
<Heart className="h-6 w-6 text-pink-500 fill-pink-500 animate-pulse" />
13+
</div>
14+
<h2 className="text-3xl font-bold tracking-tight sm:text-5xl mb-4">Fall in Love with AI Coding</h2>
15+
<p className="text-muted-foreground mb-8 max-w-2xl mx-auto">
16+
This Valentine&apos;s Day, give your development workflow the love it deserves. Build faster,
17+
together.
18+
</p>
1019

1120
<div className="flex flex-col sm:flex-row items-center justify-center gap-4">
12-
<Button size="lg" className="w-full sm:w-auto h-12 px-8 text-base">
21+
<Button
22+
size="lg"
23+
className="w-full sm:w-auto h-12 px-8 text-base bg-gradient-to-r from-pink-500 to-rose-500 hover:from-pink-600 hover:to-rose-600 border-0">
1324
<a
1425
href={EXTERNAL_LINKS.MARKETPLACE}
1526
target="_blank"
@@ -20,7 +31,10 @@ export function CTASection() {
2031
</a>
2132
</Button>
2233

23-
<Button variant="outline" size="lg" className="w-full sm:w-auto h-12 px-8 text-base">
34+
<Button
35+
variant="outline"
36+
size="lg"
37+
className="w-full sm:w-auto h-12 px-8 text-base border-pink-300 dark:border-pink-800 hover:bg-pink-50 dark:hover:bg-pink-950/20">
2438
<a
2539
href={EXTERNAL_LINKS.CLOUD_APP_SIGNUP}
2640
target="_blank"

apps/web-roo-code/src/components/homepage/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ export * from "./cloud-section"
1212
export * from "./ecosystem-section"
1313
export * from "./cta-section"
1414
export * from "./use-examples-section"
15+
export * from "./valentines-banner"
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
"use client"
2+
3+
import { useEffect, useState } from "react"
4+
import { Heart } from "lucide-react"
5+
6+
interface FloatingHeart {
7+
id: number
8+
left: number
9+
delay: number
10+
duration: number
11+
size: number
12+
}
13+
14+
export function ValentinesBanner() {
15+
const [hearts, setHearts] = useState<FloatingHeart[]>([])
16+
17+
useEffect(() => {
18+
// Create floating hearts on mount
19+
const newHearts: FloatingHeart[] = Array.from({ length: 15 }, (_, i) => ({
20+
id: i,
21+
left: Math.random() * 100,
22+
delay: Math.random() * 5,
23+
duration: 3 + Math.random() * 4,
24+
size: 12 + Math.random() * 16,
25+
}))
26+
setHearts(newHearts)
27+
}, [])
28+
29+
return (
30+
<div className="relative overflow-hidden bg-gradient-to-r from-pink-500/90 via-rose-500/90 to-red-500/90 py-3">
31+
{/* Floating hearts background */}
32+
<div className="absolute inset-0 pointer-events-none">
33+
{hearts.map((heart) => (
34+
<div
35+
key={heart.id}
36+
className="absolute animate-float-up opacity-60"
37+
style={{
38+
left: `${heart.left}%`,
39+
animationDelay: `${heart.delay}s`,
40+
animationDuration: `${heart.duration}s`,
41+
}}>
42+
<Heart
43+
className="text-white/40 fill-white/20"
44+
style={{ width: heart.size, height: heart.size }}
45+
/>
46+
</div>
47+
))}
48+
</div>
49+
50+
{/* Banner content */}
51+
<div className="container mx-auto px-4 relative z-10">
52+
<div className="flex items-center justify-center gap-2 text-white font-medium">
53+
<Heart className="h-4 w-4 fill-white animate-pulse" />
54+
<span className="text-sm md:text-base">
55+
Happy Valentine&apos;s Day! Fall in love with AI-powered coding
56+
</span>
57+
<Heart className="h-4 w-4 fill-white animate-pulse" />
58+
</div>
59+
</div>
60+
</div>
61+
)
62+
}

0 commit comments

Comments
 (0)