diff --git a/package-lock.json b/package-lock.json index 02ae8a8..89885c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@headlessui/react": "^2.2.9", "@heroicons/react": "^2.2.0", "@lobehub/icons": "^1.97.2", + "@radix-ui/react-icons": "^1.3.2", "@react-three/drei": "^9.89.2", "@react-three/fiber": "^8.15.12", "@tabler/icons-react": "^3.35.0", @@ -2478,6 +2479,15 @@ "react": "^16.8 || ^17.0 || ^18.0" } }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz", + "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", + "license": "MIT", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/@radix-ui/react-id": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz", diff --git a/package.json b/package.json index b44e8b8..351525c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@headlessui/react": "^2.2.9", "@heroicons/react": "^2.2.0", "@lobehub/icons": "^1.97.2", + "@radix-ui/react-icons": "^1.3.2", "@react-three/drei": "^9.89.2", "@react-three/fiber": "^8.15.12", "@tabler/icons-react": "^3.35.0", diff --git a/public/images/benefits/autonomous.webp b/public/images/benefits/autonomous.webp new file mode 100644 index 0000000..7778a37 Binary files /dev/null and b/public/images/benefits/autonomous.webp differ diff --git a/public/images/benefits/cost.webp b/public/images/benefits/cost.webp new file mode 100644 index 0000000..5088e05 Binary files /dev/null and b/public/images/benefits/cost.webp differ diff --git a/public/images/benefits/energy.webp b/public/images/benefits/energy.webp new file mode 100644 index 0000000..2955b9f Binary files /dev/null and b/public/images/benefits/energy.webp differ diff --git a/public/images/benefits/sovereign.webp b/public/images/benefits/sovereign.webp new file mode 100644 index 0000000..8c8b1db Binary files /dev/null and b/public/images/benefits/sovereign.webp differ diff --git a/src/components/magicui/bento-grid.tsx b/src/components/magicui/bento-grid.tsx new file mode 100644 index 0000000..bf18ebe --- /dev/null +++ b/src/components/magicui/bento-grid.tsx @@ -0,0 +1,77 @@ +import type { ReactNode } from "react"; +import { Button } from "@/components/ui/button"; +import { ArrowRightIcon } from "@radix-ui/react-icons"; +import { cn } from "@/lib/utils"; + +const BentoGrid = ({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) => { + return ( +
+ {children} +
+ ); +}; + +const BentoCard = ({ + name, + className, + background, + Icon, + description, + href, + cta, +}: { + name: string; + className: string; + background: ReactNode; + Icon: any; + description: string; + href: string; + cta: string; +}) => ( +
+
{background}
+
+ +

+ {name} +

+

{description}

+
+ +
+ +
+
+); + +export { BentoCard, BentoGrid }; diff --git a/src/pages/home/HomeBenefits.tsx b/src/pages/home/HomeBenefits.tsx index b4eb602..72eac60 100644 --- a/src/pages/home/HomeBenefits.tsx +++ b/src/pages/home/HomeBenefits.tsx @@ -3,7 +3,6 @@ import createGlobe from "cobe"; import { useEffect, useRef, type ReactNode } from "react"; import { motion } from "motion/react"; import { IconBrandYoutubeFilled } from "@tabler/icons-react"; -import { LockClosedIcon, CogIcon, BoltIcon, CurrencyDollarIcon } from '@heroicons/react/24/solid' import { H2, P } from '@/components/Texts' @@ -13,30 +12,30 @@ export function HomeBenefits() { title: "Sovereign", description: "Own your infrastructure and your data. Mycelium Cloud eliminates dependency on centralized providers, giving you full digital sovereignty.", - icon: , + image: "/images/benefits/sovereign.webp", }, { title: "Autonomous", description: "The cloud that runs itself. From deployment to scaling, Mycelium Cloud automates everything — so your systems stay fast, resilient, and adaptive.", - icon: , + image: "/images/benefits/autonomous.webp", }, { title: "Energy Efficient", description: "Built on distributed nodes designed for minimal energy use, Mycelium Cloud redefines sustainability without compromising performance.", - icon: , + image: "/images/benefits/energy.webp", }, { title: "Cost Efficient", description: "No middlemen. No inflated bills. Just pure compute power at a fraction of traditional cloud costs — optimized, transparent, and fair.", - icon: , + image: "/images/benefits/cost.webp", }, ]; return (
-
+

Why It Changes Everything

@@ -46,60 +45,88 @@ export function HomeBenefits() {

-
-
-
- {features.map((feature) => ( - - {feature.title} - {feature.description} - - ))} +
+
+
+
+
+ {features[0].title} +
+
+

{features[0].title}

+

+ {features[0].description} +

+
+
+
+
+
+
+
+
+ {features[1].title} +
+
+

{features[1].title}

+

+ {features[1].description} +

+
+
+
+
+
+
+
+
+ {features[2].title} +
+
+

{features[2].title}

+

+ {features[2].description} +

+
+
+
+
+
+
+
+
+ {features[3].title} +
+
+

{features[3].title}

+

+ {features[3].description} +

+
+
+
-
); } -const FeatureCard = ({ - children, - className, -}: { - children?: ReactNode; - className?: string; -}) => { - return ( -
- {children} -
- ); -}; - -const FeatureTitle = ({ children, icon }: { children?: ReactNode; icon?: ReactNode }) => { - return ( -
- {icon} -

- {children} -

-
- ); -}; - -const FeatureDescription = ({ children }: { children?: ReactNode }) => { - return ( -

- {children} -

- ); -}; export const SkeletonOne = () => { return (