feat: update hero sections with new visual designs
- Added new hero section alternatives for Agents, Cloud, Compute and GPU pages with modern visual layouts - Updated hero background images with new high-quality assets for better visual appeal - Replaced spinning animation heroes with full-width image + text split layouts - Added consistent styling across hero sections with left-aligned text and right-side hero images - Updated hero copy to focus on platform capabilities and value propositions - Replace
This commit is contained in:
		@@ -1,125 +1,39 @@
 | 
			
		||||
'use client'
 | 
			
		||||
 | 
			
		||||
import { useId, useState } from 'react'
 | 
			
		||||
 | 
			
		||||
import { Button } from '../../components/Button'
 | 
			
		||||
import { Container } from '../../components/Container'
 | 
			
		||||
import ContactForm from '../../components/ContactForm'
 | 
			
		||||
 | 
			
		||||
function BackgroundIllustration(props: React.ComponentPropsWithoutRef<'div'>) {
 | 
			
		||||
  const id = useId()
 | 
			
		||||
 | 
			
		||||
export function ComputeHero() {
 | 
			
		||||
  return (
 | 
			
		||||
    <div {...props}>
 | 
			
		||||
      <svg
 | 
			
		||||
        viewBox="0 0 1026 1026"
 | 
			
		||||
        fill="none"
 | 
			
		||||
        aria-hidden="true"
 | 
			
		||||
        className="absolute inset-0 h-full w-full animate-spin-slow"
 | 
			
		||||
      >
 | 
			
		||||
        <path
 | 
			
		||||
          d="M1025 513c0 282.77-229.23 512-512 512S1 795.77 1 513 230.23 1 513 1s512 229.23 512 512Z"
 | 
			
		||||
          stroke="#D4D4D4"
 | 
			
		||||
          strokeOpacity="0.7"
 | 
			
		||||
    <div className="relative bg-white">
 | 
			
		||||
      <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">
 | 
			
		||||
        <img
 | 
			
		||||
          alt=""
 | 
			
		||||
          src="/images/computehero4.png"
 | 
			
		||||
          className="size-full object-cover"
 | 
			
		||||
        />
 | 
			
		||||
        <path
 | 
			
		||||
          d="M513 1025C230.23 1025 1 795.77 1 513"
 | 
			
		||||
          stroke={`url(#${id}-gradient-1)`}
 | 
			
		||||
          strokeLinecap="round"
 | 
			
		||||
        />
 | 
			
		||||
        <defs>
 | 
			
		||||
          <linearGradient
 | 
			
		||||
            id={`${id}-gradient-1`}
 | 
			
		||||
            x1="1"
 | 
			
		||||
            y1="513"
 | 
			
		||||
            x2="1"
 | 
			
		||||
            y2="1025"
 | 
			
		||||
            gradientUnits="userSpaceOnUse"
 | 
			
		||||
          >
 | 
			
		||||
            <stop stopColor="#06b6d4" />
 | 
			
		||||
            <stop offset="1" stopColor="#06b6d4" stopOpacity="0" />
 | 
			
		||||
          </linearGradient>
 | 
			
		||||
        </defs>
 | 
			
		||||
      </svg>
 | 
			
		||||
      <svg
 | 
			
		||||
        viewBox="0 0 1026 1026"
 | 
			
		||||
        fill="none"
 | 
			
		||||
        aria-hidden="true"
 | 
			
		||||
        className="absolute inset-0 h-full w-full animate-spin-reverse-slower"
 | 
			
		||||
      >
 | 
			
		||||
        <path
 | 
			
		||||
          d="M913 513c0 220.914-179.086 400-400 400S113 733.914 113 513s179.086-400 400-400 400 179.086 400 400Z"
 | 
			
		||||
          stroke="#D4D4D4"
 | 
			
		||||
          strokeOpacity="0.7"
 | 
			
		||||
        />
 | 
			
		||||
        <path
 | 
			
		||||
          d="M913 513c0 220.914-179.086 400-400 400"
 | 
			
		||||
          stroke={`url(#${id}-gradient-2)`}
 | 
			
		||||
          strokeLinecap="round"
 | 
			
		||||
        />
 | 
			
		||||
        <defs>
 | 
			
		||||
          <linearGradient
 | 
			
		||||
            id={`${id}-gradient-2`}
 | 
			
		||||
            x1="913"
 | 
			
		||||
            y1="513"
 | 
			
		||||
            x2="913"
 | 
			
		||||
            y2="913"
 | 
			
		||||
            gradientUnits="userSpaceOnUse"
 | 
			
		||||
          >
 | 
			
		||||
            <stop stopColor="#06b6d4" />
 | 
			
		||||
            <stop offset="1" stopColor="#06b6d4" stopOpacity="0" />
 | 
			
		||||
          </linearGradient>
 | 
			
		||||
        </defs>
 | 
			
		||||
      </svg>
 | 
			
		||||
       
 | 
			
		||||
      </div>
 | 
			
		||||
      <div className="relative mx-auto max-w-7xl py-24 sm:py-32 lg:px-8 lg:py-40">
 | 
			
		||||
        <div className="pr-6 pl-6 md:mr-auto md:w-2/3 md:pr-16 lg:w-1/2 lg:pl-0 lg:pr-24 xl:pr-32">
 | 
			
		||||
          <h2 className="text-base/7 font-semibold text-cyan-500">COMPUTE</h2>
 | 
			
		||||
          <p className="mt-2 text-4xl font-semibold tracking-tight text-gray-900 sm:text-5xl">The pulse of intelligence runs here.</p>
 | 
			
		||||
          <p className="mt-6 text-base/7 text-gray-600">
 | 
			
		||||
            Mycelium Compute brings predictable, sovereign performance — free from lock-in, free from drift.
 | 
			
		||||
            Deploy any workload, anywhere, with cryptographic precision and zero compromise.
 | 
			
		||||
            From micro-VMs to full clusters, every operation is deterministic, self-managing, and stateless by design.
 | 
			
		||||
            Compute that verifies itself. Expands itself. Heals itself.
 | 
			
		||||
          </p>
 | 
			
		||||
          <div className="mt-8">
 | 
			
		||||
            <Button
 | 
			
		||||
              href="#"
 | 
			
		||||
              className="inline-flex rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-xs hover:bg-indigo-500 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
 | 
			
		||||
            >
 | 
			
		||||
              {' '}
 | 
			
		||||
              Experience Deterministic Compute{' '}
 | 
			
		||||
            </Button>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function ComputeHero() {
 | 
			
		||||
  const [isContactOpen, setIsContactOpen] = useState(false)
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <>
 | 
			
		||||
      <div className="overflow-hidden pb-24 lg:py-32 lg:pb-0">
 | 
			
		||||
        <Container>
 | 
			
		||||
          <div className="flex flex-col-reverse gap-y-16 lg:grid lg:grid-cols-12 lg:gap-x-8 lg:gap-y-20">
 | 
			
		||||
            <div className="relative z-10 mx-auto max-w-2xl lg:col-span-7 lg:max-w-none lg:pt-6 xl:col-span-6">
 | 
			
		||||
              <h1 className="text-4xl font-medium tracking-tight text-gray-900 lg:text-6xl">
 | 
			
		||||
                Mycelium Compute
 | 
			
		||||
              </h1>
 | 
			
		||||
              <h2 className="mt-6 text-xl leading-normal tracking-tight text-gray-600 lg:text-2xl">
 | 
			
		||||
                Verifiable, decentralized serverless computing.
 | 
			
		||||
              </h2>
 | 
			
		||||
              <p className="mt-6 text-lg leading-tight text-gray-600 lg:text-xl lg:leading-normal">
 | 
			
		||||
                The Mycelium Compute layer offers a decentralized function-as-a-service platform, enabling developers to run code without managing infrastructure.
 | 
			
		||||
              </p>
 | 
			
		||||
              <div className="mt-8 flex flex-wrap gap-x-6 gap-y-4">
 | 
			
		||||
                <Button variant="solid" color="cyan" onClick={() => setIsContactOpen(true)}>
 | 
			
		||||
                  Join the Waitlist
 | 
			
		||||
                </Button>
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="relative mt-0 lg:mt-10 lg:col-span-5 lg:row-span-2 xl:col-span-6">
 | 
			
		||||
              <BackgroundIllustration className="absolute left-1/2 top-4 h-[1026px] w-[1026px] -translate-x-1/2 stroke-gray-300/70 sm:top-16 lg:-top-12 lg:ml-12" />
 | 
			
		||||
              <div className="mx-auto h-[420px] max-w-[640px] mask-[linear-gradient(to_bottom,white_60%,transparent)] lg:absolute lg:-inset-x-10 lg:-top-24 lg:h-auto lg:pt-10 xl:-bottom-36">
 | 
			
		||||
                <img
 | 
			
		||||
                  src="/images/data.png"
 | 
			
		||||
                  alt="Mycelium Compute illustration"
 | 
			
		||||
                  className="mx-auto w-full max-w-[520px]"
 | 
			
		||||
                  width={1024}
 | 
			
		||||
                  height={1024}
 | 
			
		||||
                />
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </Container>
 | 
			
		||||
      </div>
 | 
			
		||||
      <ContactForm
 | 
			
		||||
        isOpen={isContactOpen}
 | 
			
		||||
        onClose={() => setIsContactOpen(false)}
 | 
			
		||||
        title="Join the Waitlist"
 | 
			
		||||
        formType="compute_waitlist"
 | 
			
		||||
      />
 | 
			
		||||
    </>
 | 
			
		||||
  )
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user