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 (
+
+
+
+
+
+

+
+
+
+
+
+
+
+
+ {/* 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 = () => {
-
-
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;
}
}