Skip to content

Commit efc656d

Browse files
committed
Refactor AnnouncementBanner.
1 parent 502a946 commit efc656d

File tree

2 files changed

+51
-15
lines changed

2 files changed

+51
-15
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
"use client";
2+
3+
import { motion } from "framer-motion";
4+
import { ArrowRight } from "lucide-react";
5+
import Link from "next/link";
6+
7+
export default function AnnouncementBanner() {
8+
return (
9+
<motion.div
10+
initial={{ y: -20, opacity: 0 }}
11+
animate={{ y: 0, opacity: 1 }}
12+
transition={{ duration: 0.4, ease: "easeOut" }}
13+
>
14+
<div className="relative isolate z-50 overflow-hidden border-b border-gray-200 bg-gradient-to-r from-blue-50 via-white to-blue-100 px-4 py-3 text-sm dark:border-gray-700 dark:from-[#101010] dark:via-[#0f0f0f] dark:to-[#111] md:flex md:items-center md:justify-center">
15+
{/* Gradient background */}
16+
<div className="absolute inset-0 -z-10 blur-lg">
17+
<div className="absolute inset-y-0 left-0 w-1/2 bg-gradient-to-tr from-blue-300/30 via-indigo-300/20 to-transparent dark:from-blue-500/10" />
18+
<div className="absolute inset-y-0 right-0 w-1/2 bg-gradient-to-bl from-blue-300/30 via-purple-300/20 to-transparent dark:from-indigo-500/10" />
19+
</div>
20+
21+
{/* Label */}
22+
<span className="inline-flex items-center gap-1 rounded-full bg-white/70 px-3 py-0.5 text-xs font-semibold uppercase tracking-wide text-blue-800 shadow-sm ring-1 ring-inset ring-blue-200 backdrop-blur-sm dark:bg-white/5 dark:text-blue-300 dark:ring-blue-800/30">
23+
<svg className="h-3.5 w-3.5 animate-pulse text-blue-500 dark:text-blue-400" fill="currentColor" viewBox="0 0 8 8">
24+
<circle cx="4" cy="4" r="3" />
25+
</svg>
26+
New feature
27+
</span>
28+
29+
{/* Text */}
30+
<p className="ml-2 font-medium text-gray-900 dark:text-white">
31+
We just launched the new{" "}
32+
<span className="text-blue-700 dark:text-blue-400 font-semibold">
33+
Notification Generator
34+
</span>
35+
, fully interactive and customizable!
36+
</p>
37+
38+
{/* CTA */}
39+
<Link
40+
href="/notification-generator"
41+
className="ml-3 inline-flex items-center gap-1 text-sm font-semibold text-blue-700 transition-colors hover:text-indigo-700 dark:text-blue-400 dark:hover:text-indigo-300"
42+
>
43+
Try it now <ArrowRight className="h-4 w-4" />
44+
</Link>
45+
</div>
46+
</motion.div>
47+
);
48+
}

components/hero/Navbar.tsx

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { AnimatePresence, motion } from "framer-motion";
44
import Image from "next/image";
55
import Link from "next/link";
6-
import { useState, useCallback, useEffect, useRef } from "react";
6+
import { useCallback, useEffect, useRef, useState } from "react";
77

88
import { Button } from "@/components/ui/button";
99
import logo from "@/public/logo.svg";
@@ -14,6 +14,7 @@ import NewWindow from "../icons/new-window";
1414

1515
import ThemeSwitchButton from "./ThemeSwitchButton";
1616
import { ToolsDropdown } from "./ToolsDropdown";
17+
import AnnouncementBanner from "@/components/hero/AnnouncementBanner";
1718

1819
interface NavLink {
1920
href: string;
@@ -92,20 +93,7 @@ export default function Navbar() {
9293
role="navigation"
9394
aria-label="Main navigation"
9495
>
95-
<div className="z-[60] flex w-full items-center justify-center gap-2 border-b border-gray-200 bg-lightGray-200 px-4 py-2 text-center text-sm font-medium text-gray-800 dark:border-gray-700 dark:bg-gray-800 dark:text-white">
96-
<span className="mr-2 inline-block rounded bg-white/60 px-2 py-0.5 text-xs font-bold uppercase tracking-wide text-blue-700 dark:bg-white/10 dark:text-blue-300">
97-
New
98-
</span>
99-
<span className="font-semibold">
100-
We launched the new Notification generator, fully interactive and customizable!
101-
</span>
102-
<a
103-
href="/notification-generator"
104-
className="ml-2 font-semibold text-blue-700 underline underline-offset-2 transition-colors hover:text-indigo-700 dark:text-blue-300 dark:hover:text-indigo-300"
105-
>
106-
Check it out &rarr;
107-
</a>
108-
</div>
96+
<AnnouncementBanner />
10997

11098
<div className="mx-auto flex max-w-screen-xl flex-wrap items-center justify-between px-4 py-4 md:py-6">
11199
<Link href="/" className="flex items-center" aria-label="Go to homepage">

0 commit comments

Comments
 (0)