Compare commits
2 Commits
2026050207
...
2026050511
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42cf6ed013 | ||
| 90a99fd061 |
@@ -2,6 +2,7 @@ import type { NextConfig } from "next";
|
|||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
/* config options here */
|
/* config options here */
|
||||||
|
output: "export",
|
||||||
devIndicators: false,
|
devIndicators: false,
|
||||||
allowedDevOrigins: [process.env.NEXT_PUBLIC_ALLOWED_DEV_DOMAIN || "http://localhost:3000"],
|
allowedDevOrigins: [process.env.NEXT_PUBLIC_ALLOWED_DEV_DOMAIN || "http://localhost:3000"],
|
||||||
basePath: process.env.BASE_PATH || "",
|
basePath: process.env.BASE_PATH || "",
|
||||||
|
|||||||
64
src/app/hello/page.tsx
Normal file
64
src/app/hello/page.tsx
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { motion } from "framer-motion";
|
||||||
|
import { Sparkles, ArrowLeft } from "lucide-react";
|
||||||
|
import Link from "next/link";
|
||||||
|
import { buttonVariants } from "@/components/ui/button";
|
||||||
|
import { cn } from "@/lib/utils";
|
||||||
|
|
||||||
|
export default function HelloPage() {
|
||||||
|
return (
|
||||||
|
<div className="mx-auto flex max-w-3xl flex-col items-center justify-center px-4 py-24 sm:px-6 lg:px-8">
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0, scale: 0.95 }}
|
||||||
|
animate={{ opacity: 1, scale: 1 }}
|
||||||
|
transition={{ duration: 0.4 }}
|
||||||
|
className="text-center"
|
||||||
|
>
|
||||||
|
<motion.div
|
||||||
|
initial={{ rotate: -10, scale: 0 }}
|
||||||
|
animate={{ rotate: 0, scale: 1 }}
|
||||||
|
transition={{ delay: 0.2, type: "spring", stiffness: 200 }}
|
||||||
|
>
|
||||||
|
<Sparkles className="mx-auto h-16 w-16 text-primary" />
|
||||||
|
</motion.div>
|
||||||
|
|
||||||
|
<motion.h1
|
||||||
|
initial={{ opacity: 0, y: 20 }}
|
||||||
|
animate={{ opacity: 1, y: 0 }}
|
||||||
|
transition={{ delay: 0.4, duration: 0.5 }}
|
||||||
|
className="mt-6 text-4xl font-bold tracking-tight sm:text-5xl"
|
||||||
|
>
|
||||||
|
Hello, Idea Guru!
|
||||||
|
</motion.h1>
|
||||||
|
|
||||||
|
<motion.p
|
||||||
|
initial={{ opacity: 0, y: 20 }}
|
||||||
|
animate={{ opacity: 1, y: 0 }}
|
||||||
|
transition={{ delay: 0.6, duration: 0.5 }}
|
||||||
|
className="mt-4 text-lg text-muted-foreground"
|
||||||
|
>
|
||||||
|
You've successfully navigated to the hello page. This is where your
|
||||||
|
journey begins.
|
||||||
|
</motion.p>
|
||||||
|
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0, y: 20 }}
|
||||||
|
animate={{ opacity: 1, y: 0 }}
|
||||||
|
transition={{ delay: 0.8, duration: 0.5 }}
|
||||||
|
className="mt-8"
|
||||||
|
>
|
||||||
|
<Link
|
||||||
|
href="/"
|
||||||
|
className={cn(
|
||||||
|
buttonVariants({ variant: "outline", size: "lg" })
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
<ArrowLeft className="mr-2 h-4 w-4" />
|
||||||
|
Back to Home
|
||||||
|
</Link>
|
||||||
|
</motion.div>
|
||||||
|
</motion.div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import { useRouter } from "next/navigation";
|
||||||
import { motion } from "framer-motion";
|
import { motion } from "framer-motion";
|
||||||
import {
|
import {
|
||||||
Layers,
|
Layers,
|
||||||
@@ -66,6 +67,8 @@ const itemVariants = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mx-auto max-w-7xl px-4 py-16 sm:px-6 lg:px-8">
|
<div className="mx-auto max-w-7xl px-4 py-16 sm:px-6 lg:px-8">
|
||||||
{/* Hero */}
|
{/* Hero */}
|
||||||
@@ -82,7 +85,7 @@ export default function Home() {
|
|||||||
A Next.js starter template with a curated tech stack
|
A Next.js starter template with a curated tech stack
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-8 flex items-center justify-center gap-4">
|
<div className="mt-8 flex items-center justify-center gap-4">
|
||||||
<Button size="lg">
|
<Button size="lg" onClick={() => router.push("/hello")}>
|
||||||
Get Started
|
Get Started
|
||||||
<ArrowRight className="ml-2 h-4 w-4" />
|
<ArrowRight className="ml-2 h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
'use client';
|
'use client';
|
||||||
|
|
||||||
|
import { useRouter } from "next/navigation";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { Sparkles } from "lucide-react";
|
import { Sparkles } from "lucide-react";
|
||||||
import { buttonVariants } from "@/components/ui/button";
|
import { buttonVariants } from "@/components/ui/button";
|
||||||
@@ -7,6 +8,8 @@ import { Button } from "@/components/ui/button";
|
|||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
|
|
||||||
export function Header() {
|
export function Header() {
|
||||||
|
const router = useRouter();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className="border-b border-border bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
|
<header className="border-b border-border bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60">
|
||||||
<div className="mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6 lg:px-8">
|
<div className="mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6 lg:px-8">
|
||||||
@@ -21,7 +24,9 @@ export function Header() {
|
|||||||
>
|
>
|
||||||
Home
|
Home
|
||||||
</Link>
|
</Link>
|
||||||
<Button size='sm'>Get Started</Button>
|
<Button size="sm" onClick={() => router.push("/hello")}>
|
||||||
|
Get Started
|
||||||
|
</Button>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|||||||
Reference in New Issue
Block a user