diff --git a/Frontend/bun.lockb b/Frontend/bun.lockb index fc03632..40c3a24 100644 Binary files a/Frontend/bun.lockb and b/Frontend/bun.lockb differ diff --git a/Frontend/package.json b/Frontend/package.json index 8db2c28..b1cd836 100644 --- a/Frontend/package.json +++ b/Frontend/package.json @@ -11,6 +11,7 @@ "lint": "next lint" }, "dependencies": { + "@heroicons/react": "^2.1.3", "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-tooltip": "^1.0.7", "class-variance-authority": "^0.7.0", diff --git a/Frontend/src/app/(pages)/layout.tsx b/Frontend/src/app/(pages)/layout.tsx index eca52ea..163f9f0 100644 --- a/Frontend/src/app/(pages)/layout.tsx +++ b/Frontend/src/app/(pages)/layout.tsx @@ -1,6 +1,7 @@ import Navbar from "@/components/navbar"; import { TooltipProvider } from "@/components/ui/tooltip"; import config from "@/config"; +import { cn } from "@/lib/utils"; import ThemeProvider from "@/provider/theme-provider"; import type { Metadata, Viewport } from "next"; import PlausibleProvider from "next-plausible"; @@ -31,7 +32,7 @@ const RootLayout = ({ }>): JSX.Element => { const analyticsDomain: string | undefined = config.analyticsDomain; return ( - + {analyticsDomain && ( ( -
- Hello World +const LandingPage = (): JSX.Element => ( +
+
); -export default HomePage; +export default LandingPage; diff --git a/Frontend/src/app/components/landing/hero.tsx b/Frontend/src/app/components/landing/hero.tsx new file mode 100644 index 0000000..53cb0b6 --- /dev/null +++ b/Frontend/src/app/components/landing/hero.tsx @@ -0,0 +1,18 @@ +import config from "@/config"; +import { minecrafter } from "@/font/fonts"; +import { cn } from "@/lib/utils"; + +const Hero = (): JSX.Element => ( +
+ {/* Title */} +

+ {config.siteName} +

+ + {/* Subtitle */} +

{config.metadata.description}

+
+); +export default Hero; diff --git a/Frontend/src/app/components/minecraft-button.tsx b/Frontend/src/app/components/minecraft-button.tsx new file mode 100644 index 0000000..1e6c4bc --- /dev/null +++ b/Frontend/src/app/components/minecraft-button.tsx @@ -0,0 +1,35 @@ +import { Button } from "@/components/ui/button"; +import { cn } from "@/lib/utils"; + +/** + * A Minecraft styled button. + * + * @returns the button jsx + */ +const MinecraftButton = ({ + className, + children, + ...props +}: Readonly<{ + className?: string; + children: React.ReactNode; +}>): JSX.Element => ( + +); +export default MinecraftButton; diff --git a/Frontend/src/app/components/navbar.tsx b/Frontend/src/app/components/navbar.tsx index 2a18092..a3c3d02 100644 --- a/Frontend/src/app/components/navbar.tsx +++ b/Frontend/src/app/components/navbar.tsx @@ -1,41 +1,57 @@ +import MinecraftButton from "@/components/minecraft-button"; import config from "@/config"; -import localFont from "next/font/local"; +import { minecrafter } from "@/font/fonts"; +import { cn } from "@/lib/utils"; +import { StarIcon } from "@heroicons/react/24/outline"; import Link from "next/link"; -/** - * The title font to use to brand the site. - */ -const minecrafter = localFont({ - src: "../font/Minecrafter.ttf", -}); - /** * The navbar for the site. * * @returns the navbar jsx */ -const Navbar = () => ( -