2 Commits

Author SHA1 Message Date
0f2f6df299 feat: redesign compute capabilities section with dark theme
- Updated ComputeCapabilities component with dark background, bordered container layout, and improved visual hierarchy
- Replaced icon components with technology-specific images (Kubernetes, VM, Linux)
- Standardized button color scheme across components (gray to white outline variant)
2025-11-06 23:03:36 +01:00
c56f67ae2e refactor: redesign ComputeHero component layout and styling
- Restructured hero section with boxed container and background image positioning
- Added onGetStartedClick callback prop for interactive button handling
- Updated button variants and added tagline about network compatibility
2025-11-06 23:03:25 +01:00
11 changed files with 120 additions and 67 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
public/images/linux.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
public/images/vm.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@@ -75,7 +75,7 @@ export function CloudArchitecture() {
<Button variant="solid" color="cyan" href="/start"> <Button variant="solid" color="cyan" href="/start">
Get Started Get Started
</Button> </Button>
<Button variant="outline" color="gray" href="/docs"> <Button variant="outline" color="white" href="/docs">
Explore Docs Explore Docs
</Button> </Button>
</div> </div>

View File

@@ -1,58 +1,95 @@
import { 'use client';
CpuChipIcon,
CubeIcon,
ServerIcon,
} from '@heroicons/react/24/solid'
import { Eyebrow, H3, P, CT, CP } from '@/components/Texts'
import { Container } from '@/components/Container' import { Container } from '@/components/Container'
import { Eyebrow, H3, P } from '@/components/Texts'
import { Button } from '@/components/Button'
const capabilities = [ const capabilities = [
{ {
name: 'Containers', title: 'Containers & K3s',
description: 'Services, web apps, APIs. Fully compatible with Kubernetes.', description:
icon: CubeIcon, 'Deploy services, web apps, and APIs with full Kubernetes compatibility.',
icon: (
<div className=" flex items-center justify-center">
<img src="/images/kubernetes.webp" alt="Kubernetes" className="h-full w-full object-cover" />
</div>
),
}, },
{ {
name: 'Virtual Machines', title: 'Virtual Machines',
description: description:
'Legacy apps and specialized runtime stacks. Secure boot + attestation included.', 'Run legacy apps and specialized stacks with secure boot and attestation.',
icon: ServerIcon, icon: (
<div className="flex items-center justify-center">
<img src="/images/vm.webp" alt="Virtual Machines" className="h-full w-full object-cover" />
</div>
),
}, },
{ {
name: 'Native Linux Workloads', title: 'Native Linux Workloads',
description: description:
'Agents, batch jobs, tooling. Runs statelessly anywhere.', 'Execute agents, batch jobs, and custom tooling statelessly across the grid.',
icon: CpuChipIcon, icon: (
<div className="flex items-center justify-center">
<img src="/images/linux.png" alt="Linux" className="h-full w-full object-cover" />
</div>
),
}, },
] ]
export function ComputeCapabilities() { export function ComputeCapabilities() {
return ( return (
<section className="bg-white py-24 sm:py-32"> <section className="bg-[#121212] w-full max-w-8xl mx-auto">
<Container> {/* Top horizontal spacer */}
<div className="mx-auto max-w-3xl text-center"> <div className="max-w-7xl mx-auto py-6 border border-t-0 border-b-0 border-gray-800 bg-transparent" />
<Eyebrow>CAPABILITIES</Eyebrow> <div className="w-full border-t border-l border-r border-gray-800" />
<H3 className="mt-4 text-gray-900">What You Can Run</H3>
<P className="mt-6 text-gray-600">
Mycelium Compute supports multiple workload types on a single
execution fabric.
</P>
</div>
<div className="mx-auto mt-16 max-w-5xl"> {/* Boxed container */}
<dl className="grid grid-cols-1 gap-12 sm:grid-cols-2 lg:grid-cols-3"> <div className="relative mx-auto max-w-7xl border border-t-0 border-b-0 border-gray-800 bg-[#111111] py-12">
{capabilities.map((feature) => ( <Container>
<div key={feature.name} className="flex flex-col text-center"> <div className="mx-auto max-w-4xl sm:text-center">
<div className="mx-auto flex size-12 items-center justify-center rounded-xl bg-cyan-50"> <Eyebrow className="text-cyan-400">CAPABILITIES</Eyebrow>
<feature.icon aria-hidden="true" className="size-6 text-cyan-600" /> <H3 className="text-3xl lg:text-4xl font-medium tracking-tight text-white">
</div> What You Can Run
<CT className="mt-6 text-gray-900">{feature.name}</CT> </H3>
<CP className="mt-2 text-gray-600">{feature.description}</CP> <P className="mt-6 text-lg text-gray-300">
</div> Mycelium Compute supports multiple workload types on a single execution
fabric, from legacy VMs to modern Kubernetes clusters.
</P>
</div>
{/* Card layout */}
<ul
role="list"
className="mx-auto mt-12 grid max-w-2xl grid-cols-1 gap-6 text-sm sm:grid-cols-2 lg:max-w-none lg:grid-cols-3 md:gap-y-10"
>
{capabilities.map((capability) => (
<li
key={capability.title}
className="rounded-xl border border-gray-800 bg-[#111]/60 p-6 text-center lg:text-left"
>
{capability.icon}
<h3 className="text-lg font-semibold text-white">{capability.title}</h3>
<p className="mt-2 text-gray-400 leading-snug">{capability.description}</p>
</li>
))} ))}
</dl> </ul>
</div>
</Container> {/* Button section */}
<div className="mx-auto mt-12 flex justify-center gap-6">
<Button variant="solid" color="cyan" href="#">
Get Started
</Button>
<Button variant="outline" color="white" href="#">
Explore Docs
</Button>
</div>
</Container>
</div>
{/* Bottom border + spacer */}
<div className="w-full border-b border-gray-800" />
<div className="max-w-7xl mx-auto py-6 border border-t-0 border-b-0 border-gray-800 bg-transparent" />
</section> </section>
) )
} }

View File

@@ -1,35 +1,51 @@
'use client' import { H3, Eyebrow } from "@/components/Texts"
import { Button } from "@/components/Button"
import { Button } from '@/components/Button' export function ComputeHero({ onGetStartedClick = () => {} }: { onGetStartedClick?: () => void }) {
import { Eyebrow, P, H3 } from '@/components/Texts'
export function ComputeHero() {
return ( return (
<div className="relative bg-white"> <div className="">
<div className="relative h-80 overflow-hidden bg-transparent md:absolute md:right-0 md:h-full md:w-1/3 lg:w-1/2"> {/* Boxed container */}
<img <div
alt="" className="relative mx-auto max-w-7xl border border-t-0 border-b-0 border-gray-200 bg-white overflow-hidden bg-contain bg-right bg-no-repeat"
src="/images/computehero.webp" style={{ backgroundImage: "url('/images/computehero.webp')", backgroundSize: "contain" }}
className="size-full object-contain" >
/> {/* Inner padding */}
<div className="px-6 py-16 lg:py-16">
</div> <div className="max-w-xl lg:pl-6">
<div className="relative mx-auto max-w-7xl py-12 lg:py-24 lg:px-8"> <Eyebrow>
<div className="max-w-2xl pr-6 pl-6 md:mr-auto md:w-2/3 md:pr-16 lg:w-1/2 lg:pl-0 lg:pr-24"> Mycelium Compute
<Eyebrow className="text-base/7 font-semibold text-cyan-500">COMPUTE</Eyebrow> </Eyebrow>
<H3 className="mt-2 text-gray-900">Deterministic Compute You Control</H3> <H3 className="mt-4">
<P className="mt-6 text-gray-600"> Deterministic Compute You Control
Run workloads on sovereign, self-verifying infrastructure. </H3>
Mycelium Compute delivers predictable execution, zero drift, and automatic healing, whether youre running containers, VMs, agents, or full Kubernetes clusters. <p className="mt-6 text-lg">
</P> Run workloads on sovereign, self-verifying infrastructure.
<div className="mt-12"> Mycelium Compute delivers predictable execution, zero drift, and automatic healing, whether youre running containers, VMs, agents, or full Kubernetes clusters.
<Button href="#" variant="solid" color="cyan"> </p>
How it works <p className="mt-4 lg:text-base italic text-gray-600 text-sm">
</Button> Works Alone. Works Together.
<Button href="#" variant="outline" color="cyan">Explore Docs</Button> Mycelium Compute can run on any network fabric, or pair with Mycelium Network
for sovereign connectivity.
</p>
<div className="mt-10 flex items-center gap-x-6">
<Button
onClick={onGetStartedClick}
variant="solid"
color="cyan"
>
Get started
</Button>
<Button to="#" variant="outline">
Documentation <span aria-hidden="true"></span>
</Button>
</div>
</div> </div>
</div> </div>
</div> </div>
{/* ✅ Bottom horizontal line with spacing */}
<div className="w-full border-b border-gray-200" />
<div className="max-w-7xl bg-transparent mx-auto py-6 border border-t-0 border-b-0 border-gray-200"></div>
</div> </div>
) )
} }

View File

@@ -19,7 +19,7 @@ export function HomeHero() {
Start Hosting Start Hosting
</Button> </Button>
<Button href="#" variant="outline" color="gray"> <Button href="#" variant="outline" color="white">
Deploy in Cloud <span aria-hidden="true"></span> Deploy in Cloud <span aria-hidden="true"></span>
</Button> </Button>
</div> </div>