diff --git a/apps/web/src/app/(home)/_components/Navbar.tsx b/apps/web/src/app/(home)/_components/Navbar.tsx index b0ad99e..b7eb950 100644 --- a/apps/web/src/app/(home)/_components/Navbar.tsx +++ b/apps/web/src/app/(home)/_components/Navbar.tsx @@ -1,5 +1,5 @@ "use client"; -import { Github, Menu, X } from "lucide-react"; +import { Github, Maximize2, Menu, X } from "lucide-react"; import Link from "next/link"; import { useEffect, useRef, useState } from "react"; import PackageIcon from "./Icons"; @@ -47,10 +47,10 @@ const Navbar = () => { return ( <> - {/* Mobile Menu - Terminal Style */}
{ }`} >
- {/* Terminal Header */}
@@ -190,7 +195,6 @@ const Navbar = () => {
- {/* Terminal Body */}
diff --git a/apps/web/src/app/(home)/_components/StackArchitech.tsx b/apps/web/src/app/(home)/_components/StackArchitech.tsx index 2cb42a2..209b7a0 100644 --- a/apps/web/src/app/(home)/_components/StackArchitech.tsx +++ b/apps/web/src/app/(home)/_components/StackArchitech.tsx @@ -14,11 +14,13 @@ import { ClipboardCopy, HelpCircle, InfoIcon, + Maximize2, RefreshCw, Settings, Star, Terminal, } from "lucide-react"; +import Link from "next/link"; import { useCallback, useEffect, useState } from "react"; const validateProjectName = (name: string): string | undefined => { @@ -46,7 +48,11 @@ const validateProjectName = (name: string): string | undefined => { return undefined; }; -const StackArchitect = () => { +const StackArchitect = ({ + fullscreen = false, +}: { + fullscreen?: boolean; +}) => { const [stack, setStack] = useState(DEFAULT_STACK); const [command, setCommand] = useState( "npx create-better-t-stack@latest my-better-t-app --yes", @@ -520,7 +526,7 @@ const StackArchitect = () => { }, []); return ( -
+
@@ -548,6 +554,13 @@ const StackArchitect = () => { > + + +
-
+
{TECH_OPTIONS[activeTab as keyof typeof TECH_OPTIONS].map( (tech) => { let isSelected = false; diff --git a/apps/web/src/app/(home)/layout.tsx b/apps/web/src/app/(home)/layout.tsx index 180666b..1fa8897 100644 --- a/apps/web/src/app/(home)/layout.tsx +++ b/apps/web/src/app/(home)/layout.tsx @@ -6,7 +6,7 @@ export default function Layout({ children }: { children: ReactNode }) { return (
- {children} +
{children}
); diff --git a/apps/web/src/app/(home)/new/page.tsx b/apps/web/src/app/(home)/new/page.tsx new file mode 100644 index 0000000..0ca26c6 --- /dev/null +++ b/apps/web/src/app/(home)/new/page.tsx @@ -0,0 +1,56 @@ +"use client"; + +import { motion } from "framer-motion"; +import { useEffect } from "react"; +import StackArchitect from "../_components/StackArchitech"; + +export default function FullScreenStackArchitect() { + useEffect(() => { + const setVh = () => { + const vh = window.innerHeight * 0.01; + document.documentElement.style.setProperty("--vh", `${vh}px`); + }; + + setVh(); + window.addEventListener("resize", setVh); + return () => window.removeEventListener("resize", setVh); + }, []); + + return ( +
+ +
+
+

+ Design Your Ideal Full Stack +

+

+ Configure every aspect of your TypeScript application with the + interactive stack architect. Choose your technologies, add + features, and generate your startup command. +

+
+ + + +
+

+ Need help getting started? +

+

+ Select a preset template for common configurations, or customize + each component of your stack. When you are ready, copy the + generated command and run it in your terminal to create your + project. +

+
+
+
+
+ ); +} diff --git a/bun.lock b/bun.lock index 2327422..25418b8 100644 --- a/bun.lock +++ b/bun.lock @@ -14,7 +14,7 @@ }, "apps/cli": { "name": "create-better-t-stack", - "version": "1.12.1", + "version": "1.12.3", "bin": { "create-better-t-stack": "dist/index.js", },