feat(web): redesign Roomote announcement banner with violet branding

This commit is contained in:
Roo Code 2026-04-20 19:41:34 +00:00
parent 3e202ebf5b
commit c6526081ba
4 changed files with 44 additions and 10 deletions

View file

@ -70,3 +70,12 @@
@apply bg-background text-foreground;
}
}
@keyframes banner-shimmer {
0% {
background-position: 200% 0;
}
100% {
background-position: -200% 0;
}
}

View file

@ -4,6 +4,7 @@ import { Inter } from "next/font/google"
import { SEO } from "@/lib/seo"
import { ogImageUrl } from "@/lib/og"
import { CookieConsentWrapper } from "@/components/CookieConsentWrapper"
import { RoomoteAnnouncementBanner } from "@/components/RoomoteAnnouncementBanner"
import { Providers } from "@/components/providers"
@ -97,16 +98,7 @@ export default function RootLayout({ children }: { children: React.ReactNode })
/>
</head>
<body className={inter.className}>
<div className="bg-black text-white text-center py-4 px-4 text-sm">
The Roo Code team is about to launch something new.{" "}
<a
href="https://roomote.dev"
target="_blank"
rel="noopener noreferrer"
className="inline-block ml-2 rounded-full bg-white text-black px-4 py-1 text-sm font-medium hover:bg-gray-200 transition-colors">
Check out Roomote
</a>
</div>
<RoomoteAnnouncementBanner />
<div itemScope itemType="https://schema.org/WebSite">
<link itemProp="url" href={SEO.url} />
<meta itemProp="name" content={SEO.name} />

View file

@ -0,0 +1,32 @@
"use client"
import { ArrowRight, Sparkles } from "lucide-react"
export function RoomoteAnnouncementBanner() {
return (
<div className="relative overflow-hidden bg-gradient-to-r from-violet-700 via-purple-600 to-violet-700 text-white">
{/* Animated shimmer overlay */}
<div className="pointer-events-none absolute inset-0 bg-[length:200%_100%] animate-banner-shimmer bg-gradient-to-r from-transparent via-white/10 to-transparent" />
<div className="relative flex flex-col sm:flex-row items-center justify-center gap-3 sm:gap-4 px-4 py-3 sm:py-4">
<div className="flex items-center gap-2">
<span className="inline-flex items-center gap-1.5 rounded-full bg-white/20 backdrop-blur-sm px-3 py-1 text-xs font-semibold uppercase tracking-wider">
<Sparkles className="size-3.5" />
New
</span>
<p className="text-sm sm:text-base font-medium">
Introducing <span className="font-bold">Roomote</span> — AI-powered coding, now in Slack
</p>
</div>
<a
href="https://roomote.dev"
target="_blank"
rel="noopener noreferrer"
className="group inline-flex items-center gap-1.5 rounded-full bg-white text-violet-700 px-5 py-2 text-sm font-bold shadow-lg shadow-violet-900/30 hover:bg-violet-50 hover:shadow-violet-900/40 transition-all duration-300">
Explore Roomote
<ArrowRight className="size-4 transition-transform duration-300 group-hover:translate-x-0.5" />
</a>
</div>
</div>
)
}

View file

@ -106,6 +106,7 @@ const config: Config = {
"fade-in": "fade-in 0.5s ease-out",
"fade-out": "fade-out 0.5s ease-out",
"pulse-glow": "pulse-glow 3s infinite",
"banner-shimmer": "banner-shimmer 3s ease-in-out infinite",
},
screens: {
xs: "420px",