|
1 | | -import Image from "next/image"; |
| 1 | +"use client"; |
| 2 | + |
| 3 | +import { useState } from "react"; |
| 4 | +import { Tomorrow } from "next/font/google"; |
| 5 | +import Link from "next/link"; |
| 6 | +import { FaGithub, FaTwitter } from "react-icons/fa"; |
| 7 | + |
| 8 | +// Tomorrow font for logo |
| 9 | +const tomorrow = Tomorrow({ subsets: ["latin"], weight: ["400", "600", "800"] }); |
2 | 10 |
|
3 | 11 | export default function Home() { |
4 | | - return ( |
5 | | - <div className="font-sans grid grid-rows-[20px_1fr_20px] items-center justify-items-center min-h-screen p-8 pb-20 gap-16 sm:p-20"> |
6 | | - <main className="flex flex-col gap-[32px] row-start-2 items-center sm:items-start"> |
7 | | - <Image |
8 | | - className="dark:invert" |
9 | | - src="/next.svg" |
10 | | - alt="Next.js logo" |
11 | | - width={180} |
12 | | - height={38} |
13 | | - priority |
14 | | - /> |
15 | | - <ol className="font-mono list-inside list-decimal text-sm/6 text-center sm:text-left"> |
16 | | - <li className="mb-2 tracking-[-.01em]"> |
17 | | - Get started by editing{" "} |
18 | | - <code className="bg-black/[.05] dark:bg-white/[.06] font-mono font-semibold px-1 py-0.5 rounded"> |
19 | | - src/app/page.tsx |
20 | | - </code> |
21 | | - . |
22 | | - </li> |
23 | | - <li className="tracking-[-.01em]"> |
24 | | - Save and see your changes instantly. |
25 | | - </li> |
26 | | - </ol> |
| 12 | + const [email, setEmail] = useState(""); |
| 13 | + const [submitted, setSubmitted] = useState(false); |
| 14 | + |
| 15 | + const handleSubmit = (e: React.FormEvent) => { |
| 16 | + e.preventDefault(); |
| 17 | + if (!email.trim()) return; |
| 18 | + setSubmitted(true); |
| 19 | + setEmail(""); |
| 20 | + }; |
27 | 21 |
|
28 | | - <div className="flex gap-4 items-center flex-col sm:flex-row"> |
29 | | - <a |
30 | | - className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] font-medium text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 sm:w-auto" |
31 | | - href="https://vercel.com/new?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" |
| 22 | + return ( |
| 23 | + <div className={`${tomorrow.className} min-h-screen bg-[#031f56] text-[#c6cceb] flex flex-col`}> |
| 24 | + {/* Navbar */} |
| 25 | + <nav className="flex justify-between items-center flex-wrap gap-4 px-4 sm:px-6 py-4 mx-4 mt-5 rounded-full border border-[#9765db]/30"> |
| 26 | + <div |
| 27 | + className="text-2xl sm:text-3xl font-extrabold bg-gradient-to-r from-[#f682a0] to-[#9765db] bg-clip-text text-transparent" |
| 28 | + > |
| 29 | + ZUNO |
| 30 | + </div> |
| 31 | + <div className="flex items-center gap-4 sm:gap-6"> |
| 32 | + <Link |
| 33 | + href="https://github.com/coder-philosopher/zuno" |
32 | 34 | target="_blank" |
33 | 35 | rel="noopener noreferrer" |
| 36 | + aria-label="GitHub" |
| 37 | + className="text-[#c6cceb] hover:text-[#f682a0] transition-colors" |
34 | 38 | > |
35 | | - <Image |
36 | | - className="dark:invert" |
37 | | - src="/vercel.svg" |
38 | | - alt="Vercel logomark" |
39 | | - width={20} |
40 | | - height={20} |
41 | | - /> |
42 | | - Deploy now |
43 | | - </a> |
44 | | - <a |
45 | | - className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent font-medium text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5 w-full sm:w-auto md:w-[158px]" |
46 | | - href="https://nextjs.org/docs?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" |
| 39 | + <FaGithub className="text-2xl" /> |
| 40 | + </Link> |
| 41 | + <Link |
| 42 | + href="https://x.com/abdsbit" |
47 | 43 | target="_blank" |
48 | 44 | rel="noopener noreferrer" |
| 45 | + aria-label="Twitter / X" |
| 46 | + className="text-[#c6cceb] hover:text-[#f682a0] transition-colors" |
49 | 47 | > |
50 | | - Read our docs |
51 | | - </a> |
| 48 | + <FaTwitter className="text-2xl" /> |
| 49 | + </Link> |
| 50 | + </div> |
| 51 | + </nav> |
| 52 | + |
| 53 | + {/* Hero Section */} |
| 54 | + <main className="flex flex-col items-center justify-center flex-grow px-4 text-center"> |
| 55 | + <h1 className="text-4xl sm:text-6xl md:text-8xl font-bold mb-6 sm:mb-8 bg-gradient-to-r from-[#f682a0] via-[#9765db] to-[#c6cceb] bg-clip-text text-transparent break-words"> |
| 56 | + Zuno |
| 57 | + </h1> |
| 58 | + <p className="text-base sm:text-xl md:text-2xl text-[#c6cceb]/80 max-w-2xl mb-8 sm:mb-12 leading-relaxed"> |
| 59 | + Zuno is an AI-powered, fully customizable chatbot platform that |
| 60 | + integrates with your data to deliver intelligent, real-time customer |
| 61 | + interactions. |
| 62 | + <br /> |
| 63 | + COMING SOON. |
| 64 | + </p> |
| 65 | + |
| 66 | + {/* Waitlist Form */} |
| 67 | + <div className="w-full max-w-md"> |
| 68 | + {!submitted ? ( |
| 69 | + <form |
| 70 | + onSubmit={handleSubmit} |
| 71 | + className="flex flex-col sm:flex-row gap-3 mb-4" |
| 72 | + > |
| 73 | + <input |
| 74 | + type="email" |
| 75 | + value={email} |
| 76 | + onChange={(e) => setEmail(e.target.value)} |
| 77 | + placeholder="Enter your email" |
| 78 | + required |
| 79 | + className="flex-1 px-4 py-3 bg-[#031f56] text-[#c6cceb] placeholder-[#c6cceb]/50 border border-[#9765db] rounded-md focus:outline-none focus:ring-2 focus:ring-[#f682a0] w-full" |
| 80 | + /> |
| 81 | + <button |
| 82 | + type="submit" |
| 83 | + className="px-6 py-3 font-semibold rounded-md bg-gradient-to-r from-[#f682a0] to-[#9765db] hover:opacity-90 focus:outline-none focus:ring-2 focus:ring-[#f682a0] transition w-full sm:w-auto" |
| 84 | + > |
| 85 | + Join Waitlist |
| 86 | + </button> |
| 87 | + </form> |
| 88 | + ) : ( |
| 89 | + <div className="bg-[#9765db]/20 border border-[#9765db] rounded-md p-4 text-center text-[#c6cceb] mb-4"> |
| 90 | + Thanks for joining! We’ll be giving you access soon. |
| 91 | + </div> |
| 92 | + )} |
| 93 | + |
| 94 | + {/* Social Proof */} |
| 95 | + <p className="text-sm text-[#f682a0] mb-8"> |
| 96 | + 10+ developers already joined |
| 97 | + </p> |
52 | 98 | </div> |
53 | 99 | </main> |
54 | | - <footer className="row-start-3 flex gap-[24px] flex-wrap items-center justify-center"> |
55 | | - <a |
56 | | - className="flex items-center gap-2 hover:underline hover:underline-offset-4" |
57 | | - href="https://nextjs.org/learn?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" |
58 | | - target="_blank" |
59 | | - rel="noopener noreferrer" |
60 | | - > |
61 | | - <Image |
62 | | - aria-hidden |
63 | | - src="/file.svg" |
64 | | - alt="File icon" |
65 | | - width={16} |
66 | | - height={16} |
67 | | - /> |
68 | | - Learn |
69 | | - </a> |
70 | | - <a |
71 | | - className="flex items-center gap-2 hover:underline hover:underline-offset-4" |
72 | | - href="https://vercel.com/templates?framework=next.js&utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" |
73 | | - target="_blank" |
74 | | - rel="noopener noreferrer" |
75 | | - > |
76 | | - <Image |
77 | | - aria-hidden |
78 | | - src="/window.svg" |
79 | | - alt="Window icon" |
80 | | - width={16} |
81 | | - height={16} |
82 | | - /> |
83 | | - Examples |
84 | | - </a> |
85 | | - <a |
86 | | - className="flex items-center gap-2 hover:underline hover:underline-offset-4" |
87 | | - href="https://nextjs.org?utm_source=create-next-app&utm_medium=appdir-template-tw&utm_campaign=create-next-app" |
88 | | - target="_blank" |
89 | | - rel="noopener noreferrer" |
90 | | - > |
91 | | - <Image |
92 | | - aria-hidden |
93 | | - src="/globe.svg" |
94 | | - alt="Globe icon" |
95 | | - width={16} |
96 | | - height={16} |
97 | | - /> |
98 | | - Go to nextjs.org → |
99 | | - </a> |
| 100 | + |
| 101 | + {/* Footer */} |
| 102 | + <footer className="flex flex-col sm:flex-row justify-between items-center gap-3 px-4 sm:px-6 py-4 text-sm text-[#c6cceb]/80 text-center"> |
| 103 | + <span>CREATED BY THE ABDULLAH</span> |
| 104 | + <div className="flex items-center gap-2"> |
| 105 | + <span>Powered by</span> |
| 106 | + <span className="font-bold text-[#f682a0]">Next.js</span> |
| 107 | + </div> |
100 | 108 | </footer> |
101 | 109 | </div> |
102 | 110 | ); |
|
0 commit comments