diff --git a/frontend/apps/artcraft-website/public/images/artcraft-logo.png b/frontend/apps/artcraft-website/public/images/artcraft-logo.png new file mode 100644 index 0000000000..8cf2cab819 Binary files /dev/null and b/frontend/apps/artcraft-website/public/images/artcraft-logo.png differ diff --git a/frontend/apps/artcraft-website/public/videos/artcraft-3d-demo.mp4 b/frontend/apps/artcraft-website/public/videos/artcraft-3d-demo.mp4 new file mode 100644 index 0000000000..3ceb1656a9 Binary files /dev/null and b/frontend/apps/artcraft-website/public/videos/artcraft-3d-demo.mp4 differ diff --git a/frontend/apps/artcraft-website/public/videos/artcraft-canvas-demo.mp4 b/frontend/apps/artcraft-website/public/videos/artcraft-canvas-demo.mp4 new file mode 100644 index 0000000000..a910aa6144 Binary files /dev/null and b/frontend/apps/artcraft-website/public/videos/artcraft-canvas-demo.mp4 differ diff --git a/frontend/apps/artcraft-website/src/app/app.tsx b/frontend/apps/artcraft-website/src/app/app.tsx index c40c37a596..ff2fffa836 100644 --- a/frontend/apps/artcraft-website/src/app/app.tsx +++ b/frontend/apps/artcraft-website/src/app/app.tsx @@ -1,9 +1,10 @@ import { Route, Routes } from "react-router-dom"; import Landing from "../pages/landing/landing"; - +import Navbar from "../components/navbar/navbar"; export function App() { return ( -
+
+ {/*
  • diff --git a/frontend/apps/artcraft-website/src/components/navbar/navbar.tsx b/frontend/apps/artcraft-website/src/components/navbar/navbar.tsx new file mode 100644 index 0000000000..b5bbee91dd --- /dev/null +++ b/frontend/apps/artcraft-website/src/components/navbar/navbar.tsx @@ -0,0 +1,88 @@ +import { + Disclosure, + DisclosureButton, + DisclosurePanel, +} from "@headlessui/react"; +import { faBars } from "@fortawesome/pro-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { Button } from "@storyteller/ui-button"; + +const navigation = [{ name: "Home", href: "#", current: true }]; + +function classNames(...classes: string[]) { + return classes.filter(Boolean).join(" "); +} + +export default function Navbar() { + return ( + +
    +
    +
    +
    + ArtCraft +
    +
    + {navigation.map((item) => ( + + {item.name} + + ))} +
    +
    +
    +
    + +
    +
    + {/* Mobile menu button */} + + + Open main menu + + +
    +
    +
    +
    + + +
    + {navigation.map((item) => ( + + {item.name} + + ))} +
    +
    +
    + ); +} diff --git a/frontend/apps/artcraft-website/src/config/downloads.ts b/frontend/apps/artcraft-website/src/config/downloads.ts new file mode 100644 index 0000000000..6a122688f8 --- /dev/null +++ b/frontend/apps/artcraft-website/src/config/downloads.ts @@ -0,0 +1,4 @@ +export const DOWNLOAD_LINKS = { + WINDOWS: "https://getartcraft.com/", // Replace with actual Windows download link + MACOS: "https://getartcraft.com/", // Replace with actual MacOS download link +} as const; diff --git a/frontend/apps/artcraft-website/src/pages/landing/landing.tsx b/frontend/apps/artcraft-website/src/pages/landing/landing.tsx index 365cdb8568..f4755a4a32 100644 --- a/frontend/apps/artcraft-website/src/pages/landing/landing.tsx +++ b/frontend/apps/artcraft-website/src/pages/landing/landing.tsx @@ -1,9 +1,39 @@ import { Button } from "@storyteller/ui-button"; -import { faApple } from "@fortawesome/free-brands-svg-icons"; +import { faApple, faWindows } from "@fortawesome/free-brands-svg-icons"; import { faDesktop } from "@fortawesome/pro-solid-svg-icons"; -import { isMobile } from "react-device-detect"; +import { isMobile, isWindows, isMacOs } from "react-device-detect"; +import { useRef, useState } from "react"; +import { DOWNLOAD_LINKS } from "../../config/downloads"; const Landing = () => { + const [currentVideoIndex, setCurrentVideoIndex] = useState(0); + const videoRef = useRef(null); + + const videos = [ + "/videos/artcraft-canvas-demo.mp4", + "/videos/artcraft-3d-demo.mp4", + ]; + + const handleVideoEnd = () => { + if (videoRef.current) { + const nextIndex = (currentVideoIndex + 1) % videos.length; + setCurrentVideoIndex(nextIndex); + videoRef.current.src = videos[nextIndex]; + videoRef.current.play(); + } + }; + + const handleDownload = () => { + const downloadLink = isWindows + ? DOWNLOAD_LINKS.WINDOWS + : isMacOs + ? DOWNLOAD_LINKS.MACOS + : null; + if (downloadLink) { + window.open(downloadLink, "_blank"); + } + }; + const features = [ { title: "Lorem ipsum dolor sit", @@ -39,12 +69,12 @@ const Landing = () => {
    - MIRA + ArtCraft

    - Realtime AI editor. + AI editor.
    On your local machine.

    @@ -57,22 +87,30 @@ const Landing = () => {
    -
- AI Video Creation
diff --git a/frontend/apps/artcraft-website/src/styles.css b/frontend/apps/artcraft-website/src/styles.css index 803efa1298..cc7e40b290 100644 --- a/frontend/apps/artcraft-website/src/styles.css +++ b/frontend/apps/artcraft-website/src/styles.css @@ -6,5 +6,6 @@ body { font-family: "Source Sans 3", sans-serif; color: #ffffff; + background-color: #101014; } }