diff options
Diffstat (limited to 'source/96/src')
| -rw-r--r-- | source/96/src/app/globals.css | 5 | ||||
| -rw-r--r-- | source/96/src/app/layout.js | 30 | ||||
| -rw-r--r-- | source/96/src/app/not-found.js | 31 | ||||
| -rw-r--r-- | source/96/src/app/opengraph-image.png | bin | 0 -> 146823 bytes | |||
| -rw-r--r-- | source/96/src/app/page.js | 59 | ||||
| -rw-r--r-- | source/96/src/app/twitter-image.png | bin | 0 -> 146823 bytes | |||
| -rw-r--r-- | source/96/src/components/animations/FadeIn.js | 17 | ||||
| -rw-r--r-- | source/96/src/data/talent.js | 179 |
8 files changed, 321 insertions, 0 deletions
diff --git a/source/96/src/app/globals.css b/source/96/src/app/globals.css new file mode 100644 index 0000000..dad740a --- /dev/null +++ b/source/96/src/app/globals.css @@ -0,0 +1,5 @@ +@import "tailwindcss"; + +p { + text-align: justify; +} diff --git a/source/96/src/app/layout.js b/source/96/src/app/layout.js new file mode 100644 index 0000000..7d7f919 --- /dev/null +++ b/source/96/src/app/layout.js @@ -0,0 +1,30 @@ +import "./globals.css"; +import { Space_Mono } from "next/font/google"; + +const mainFont = Space_Mono({ + weight: ["400", "700"], + style: ["normal", "italic"], + subsets: ["latin-ext"], + display: "swap", +}); + +export const metadata = { + metadataBase: new URL("https://96.zue.dev"), + title: "96: Where creatives thrive.", + description: + "Experience a fresh, open-source revolution in digital empowerment. We fuse influencer marketing with post-modern innovation into a full-service online talent management platform—designed so you can shine while we handle every digital detail.", + icons: { + icon: "/96_logo.png", + }, +}; + +export default ({ children }) => { + return ( + <html + lang="en" + className={`${mainFont.className} bg-linear-to-br from-green-500 to-emerald-500 text-black min-h-screen`} + > + <body>{children}</body> + </html> + ); +}; diff --git a/source/96/src/app/not-found.js b/source/96/src/app/not-found.js new file mode 100644 index 0000000..7298535 --- /dev/null +++ b/source/96/src/app/not-found.js @@ -0,0 +1,31 @@ +"use client"; + +import { useEffect, useState } from "react"; +import { useRouter } from "next/navigation"; + +export default () => { + const router = useRouter(); + + const [seconds, setSeconds] = useState(5); + + useEffect(() => { + const interval = setInterval(() => { + setSeconds((prev) => prev - 1); + }, 1000); + + if (seconds === 0) { + router.push("/"); + } + + return () => clearInterval(interval); + }, [seconds]); + + return ( + <div className="min-h-screen flex flex-col justify-center items-center space-y-4"> + <h2 className="text-3xl font-bold">404 - Page Not Found</h2> + <p> + Redirecting to <a href="/">Home</a> in {seconds} seconds... + </p> + </div> + ); +}; diff --git a/source/96/src/app/opengraph-image.png b/source/96/src/app/opengraph-image.png Binary files differnew file mode 100644 index 0000000..5a71def --- /dev/null +++ b/source/96/src/app/opengraph-image.png diff --git a/source/96/src/app/page.js b/source/96/src/app/page.js new file mode 100644 index 0000000..1ceba7d --- /dev/null +++ b/source/96/src/app/page.js @@ -0,0 +1,59 @@ +import Link from "next/link"; +import { metadata } from "./layout"; +import FadeIn from "@/components/animations/FadeIn"; +import talent from "@/data/talent"; + +export default () => { + return ( + <> + <div className="flex flex-col justify-center max-w-2xl mx-auto p-8 space-y-4 min-h-screen"> + <FadeIn props={{ delay: 0.25 }}> + <h1 className="text-4xl font-bold">{metadata.title}</h1> + </FadeIn> + + <FadeIn props={{ delay: 0.5 }}> + <p className="text-lg">{metadata.description}</p> + </FadeIn> + + <FadeIn props={{ delay: 0.75 }}> + <div className="flex justify-between items-center gap-4"> + <div className="flex flex-row gap-4"> + {[ + { + href: "https://x.com/area96digital", + icon: "https://cdn.simpleicons.org/x/black", + title: "X/Twitter", + }, + { + href: "https://bsky.app/profile/96.zue.dev", + icon: "https://cdn.simpleicons.org/bluesky/black", + title: "Bluesky", + }, + ].map((social) => ( + <Link + href={social.href} + key={social.title} + className="transform hover:scale-110 transition-transform" + > + <img + src={social.icon} + className="h-[2rem] w-[2rem] object-contain" + alt={social.title} + title={social.title} + /> + </Link> + ))} + </div> + + <span className="text-xs opacity-50 text-right p-1"> + "96" is made with ❤️ by{" "} + <a href="https://zue.dev" target="_blank"> + zue.dev + </a> + </span> + </div> + </FadeIn> + </div> + </> + ); +}; diff --git a/source/96/src/app/twitter-image.png b/source/96/src/app/twitter-image.png Binary files differnew file mode 100644 index 0000000..5a71def --- /dev/null +++ b/source/96/src/app/twitter-image.png diff --git a/source/96/src/components/animations/FadeIn.js b/source/96/src/components/animations/FadeIn.js new file mode 100644 index 0000000..21589ce --- /dev/null +++ b/source/96/src/components/animations/FadeIn.js @@ -0,0 +1,17 @@ +"use client"; + +import { motion } from "motion/react"; + +export default ({ children, props }) => { + const { duration = 1, delay = 0 } = props || {}; + + return ( + <motion.div + initial={{ opacity: 0 }} + animate={{ opacity: 1 }} + transition={{ duration, delay }} + > + {children} + </motion.div> + ); +}; diff --git a/source/96/src/data/talent.js b/source/96/src/data/talent.js new file mode 100644 index 0000000..eafe0d6 --- /dev/null +++ b/source/96/src/data/talent.js @@ -0,0 +1,179 @@ +export default [ + { + name: "YayJayBae", + description: "Two-Form Dragon Bat Vtuber", + website: "https://yayjaybae.com", + socials: [ + { + href: "https://x.com/yayjaybae", + icon: "https://cdn.simpleicons.org/x/white", + title: "X/Twitter", + }, + { + href: "https://twitch.tv/yayjaybae", + icon: "https://cdn.simpleicons.org/twitch/white", + title: "Twitch", + }, + { + href: "https://discord.gg/emrjUtKbUR", + icon: "https://cdn.simpleicons.org/discord/white", + title: "Discord", + }, + { + href: "https://www.youtube.com/@yayjaybae", + icon: "https://cdn.simpleicons.org/youtube", + title: "YouTube", + }, + { + href: "https://www.tiktok.com/@yayjaybae", + icon: "https://cdn.simpleicons.org/tiktok", + title: "TikTok", + }, + { + name: "JustAWoney", + description: "Existential Horror Vtuber", + website: "https://linktr.ee/justawoney", + socials: [ + { + href: "https://www.twitch.tv/justawoney", + icon: "https://cdn.simpleicons.org/twitch", + title: "Twitch", + }, + { + href: "https://twitter.com/justawoney", + icon: "https://cdn.simpleicons.org/x", + title: "X/Twitter", + }, + { + href: "https://www.youtube.com/@JustAWoney", + icon: "https://cdn.simpleicons.org/youtube", + title: "YouTube", + }, + { + href: "https://www.tiktok.com/@justawoney", + icon: "https://cdn.simpleicons.org/tiktok", + title: "TikTok", + }, + { + href: "https://discord.gg/t8GQsat32Y", + icon: "https://cdn.simpleicons.org/discord", + title: "Discord", + }, + ], + }, + { + name: "TygiWygi", + description: "Floofy Tiger Monstergirl", + website: "https://tygismaragd.carrd.co", + socials: [ + { + href: "https://www.youtube.com/@TygiWygi", + icon: "https://cdn.simpleicons.org/youtube", + title: "YouTube", + }, + { + href: "https://twitter.com/TygiWygi", + icon: "https://cdn.simpleicons.org/x", + title: "X/Twitter", + }, + { + href: "https://www.twitch.tv/tygiwygi", + icon: "https://cdn.simpleicons.org/twitch", + title: "Twitch", + }, + { + href: "https://discord.gg/eh8WGUt5uy", + icon: "https://cdn.simpleicons.org/discord", + title: "Discord", + }, + ], + }, + { + name: "NarikoNabi", + description: "The North Star", + website: "https://beacons.ai/narikonabi", + socials: [ + { + href: "https://twitter.com/NarikoNabi", + icon: "https://cdn.simpleicons.org/x", + title: "X/Twitter", + }, + { + href: "https://www.twitch.tv/narikonabi", + icon: "https://cdn.simpleicons.org/twitch", + title: "Twitch", + }, + { + href: "https://www.youtube.com/@BlackVirtualEntertainment", + icon: "https://cdn.simpleicons.org/youtube", + title: "YouTube", + }, + ], + }, + { + name: "Sweets", + description: "Cyberpunk Catgirl Fixer", + website: "https://teamsweets.com", + socials: [ + { + href: "https://twitch.tv/vtSweets", + icon: "https://cdn.simpleicons.org/twitch", + title: "Twitch", + }, + { + href: "https://x.com/vtubersweets", + icon: "https://cdn.simpleicons.org/x", + title: "X/Twitter", + }, + { + href: "https://bsky.app/profile/vtubersweets.bsky.social", + icon: "https://cdn.simpleicons.org/bluesky", + title: "BlueSky", + }, + { + href: "https://www.tiktok.com/@vt.sweets", + icon: "https://cdn.simpleicons.org/tiktok", + title: "TikTok", + }, + ], + }, + { + name: "BunniBana", + description: "Pyro Bunny of the BanaBeans!", + website: "https://bunnibana.carrd.co/", + socials: [ + { + href: "https://www.twitch.tv/bunnibana", + icon: "https://cdn.simpleicons.org/twitch", + title: "Twitch", + }, + { + href: "https://x.com/BunniBana", + icon: "https://cdn.simpleicons.org/x", + title: "X/Twitter", + }, + { + href: "https://bsky.app/profile/bunnibana.bsky.social", + icon: "https://cdn.simpleicons.org/bluesky", + title: "BlueSky", + }, + { + href: "https://www.tiktok.com/@bunnibana", + icon: "https://cdn.simpleicons.org/tiktok", + title: "TikTok", + }, + { + href: "https://www.youtube.com/@bunnibanach", + icon: "https://cdn.simpleicons.org/youtube", + title: "YouTube", + }, + { + href: "https://open.spotify.com/artist/0o0MabTbNZqT8ZQkM93bqA?si=NZSK_LnkRjCyaX0phc-U4g", + icon: "https://cdn.simpleicons.org/spotify", + title: "Spotify", + }, + ], + }, + ], + }, +]; |
