diff --git a/src/app/(main)/page.tsx b/src/app/(main)/page.tsx index eb5fc99..1baa1b2 100644 --- a/src/app/(main)/page.tsx +++ b/src/app/(main)/page.tsx @@ -7,7 +7,7 @@ import { HomeHeroLight } from '@/components/HomeHeroLight' import { HomeHeroLight2 } from '@/components/HomeHeroLight2' import { HomeAbout } from '@/components/HomeAbout' import { ClickableGallery } from '@/components/ClickableGallery' -import { StackSectionPreview } from '@/components/StackSection' +import { StackSectionLight } from '@/components/StackSectionLight' import { Companies } from '@/components/Companies' import { CallToAction } from '@/components/CallToAction' import { ScrollDown } from '@/components/ui/ScrollDown' @@ -27,7 +27,7 @@ export default function Home() {
- +
diff --git a/src/components/StackSectionLight.tsx b/src/components/StackSectionLight.tsx new file mode 100644 index 0000000..377d4e8 --- /dev/null +++ b/src/components/StackSectionLight.tsx @@ -0,0 +1,37 @@ +"use client"; + +import { StackedCubesLight } from "@/components/ui/StackedCubesLight"; +import { H1, H2, P } from '@/components/Texts'; +import { FadeIn } from "./FadeIn"; + +export function StackSectionLight() { + + return ( +
+
+
+ {/* Left Column - Text (1/3 width) */} +
+ +

+ The Mycelium Stack +

+
+ + +

+ Built with Mycelium technology, our AI infrastructure ensures unbreakable networks, complete data sovereignty, ultra-secure agent-human communication, and unhackable data storage systems. +

+
+
+ {/* Right Column - Stacked Cubes (2/3 width) */} +
+ + + +
+
+
+
+ ); +} diff --git a/src/components/Texts.tsx b/src/components/Texts.tsx index a58e0c7..5270fb2 100644 --- a/src/components/Texts.tsx +++ b/src/components/Texts.tsx @@ -8,6 +8,7 @@ const colorVariants = { secondary: 'text-gray-200', custom: 'text-[#015eff]', light: '[#fcfcfc]', + dark: 'text-gray-800', } as const type TextOwnProps = { diff --git a/src/components/ui/CubeLight.tsx b/src/components/ui/CubeLight.tsx new file mode 100644 index 0000000..556d2f2 --- /dev/null +++ b/src/components/ui/CubeLight.tsx @@ -0,0 +1,131 @@ +"use client"; + +import React from "react"; +import { motion } from "framer-motion"; + +interface CubeProps { + title: string; + descriptionTitle: string; + description: string; + isActive: boolean; + index: number; + onHover: () => void; + onLeave: () => void; + onClick: () => void; +} + +const CubeSvg: React.FC & { index: number }> = ({ index, ...props }) => ( + + + + + + + + + +); + +export function CubeLight({ title, descriptionTitle, description, isActive, index, onHover, onLeave, onClick }: CubeProps) { + return ( +
+ + {/* SVG Cube */} + + + {/* Title overlay */} +
+

+ {title} +

+
+ + {/* Description with arrow line - Desktop */} + {isActive && ( + + {/* Arrow line */} + + + + + {/* Description text */} +
+

+ {descriptionTitle} +

+

+ {description} +

+
+
+ )} + + {/* Description for Mobile - Below cube */} +
+
+ ); +} diff --git a/src/components/ui/StackedCubesLight.tsx b/src/components/ui/StackedCubesLight.tsx new file mode 100644 index 0000000..03c2ce5 --- /dev/null +++ b/src/components/ui/StackedCubesLight.tsx @@ -0,0 +1,95 @@ +"use client"; + +import { useState } from "react"; +import { motion } from "framer-motion"; +import { CubeLight } from "@/components/ui/CubeLight" + +const stackData = [ + { + id: "agent", + title: "Agent Layer", + descriptionTitle: "Your sovereign agent with private memory and permissioned data access—always under your control.", + description: + "Choose from a wide library of open-source LLMs, paired with built-in semantic search and retrieval.\nIt coordinates across people, apps, and other agents to plan, create, and execute.\nIt operates inside a compliant legal & financial sandbox, ready for real-world transactions and operations.\nMore than just an assistant—an intelligent partner that learns and does your way.", + position: "top", + }, + { + id: "network", + title: "Network Layer", + descriptionTitle: "A global, end-to-end encrypted overlay that simply doesn’t break.", + description: + "Shortest-path routing moves your traffic the fastest way, every time.\nInstant discovery with integrated DNS, semantic search, and indexing.\nA distributed CDN and edge delivery keep content available and tamper-resistant worldwide.\nBuilt-in tool services and secure coding sandboxes—seamless on phones, desktops, and edge.", + position: "middle", + }, + { + id: "cloud", + title: "Cloud Layer", + descriptionTitle: "An autonomous, stateless OS that enforces pre-deterministic deployments you define.", + description: + "Workloads are cryptographically bound to your private key—location and access are yours.\nNo cloud vendor or middleman in the path: end-to-end ownership and isolation by default.\nGeo-aware placement delivers locality, compliance, and ultra-low latency where it matters.\nEncrypted, erasure-coded storage, decentralized compute and GPU on demand—including LLMs.", + position: "bottom", + }, +]; + +export function StackedCubesLight() { + const [active, setActive] = useState("agent"); + const [selectedForMobile, setSelectedForMobile] = useState("agent"); + + const handleCubeClick = (id: string) => { + setSelectedForMobile(prev => (prev === id ? null : id)); + }; + + const selectedMobileLayer = stackData.find(layer => layer.id === selectedForMobile); + + return ( +
+
setActive("agent")} + > + + {stackData.map((layer, index) => ( +
+ setActive(layer.id)} + onLeave={() => {}} + onClick={() => handleCubeClick(layer.id)} + /> +
+ ))} +
+
+ {selectedMobileLayer && ( +
+

+ {selectedMobileLayer.descriptionTitle} +

+

+ {selectedMobileLayer.description} +

+
+ )} +
+ ); +}