add how it works section with diagram

This commit is contained in:
Pavel Sviderski
2025-01-21 19:38:38 +10:00
parent 2835edadeb
commit 8e53fd46fa
+62 -109
View File
@@ -312,152 +312,105 @@
</div> </div>
</section> </section>
<!-- Features #3 --> <!-- How it works + Features -->
<section <section
class="relative bg-zinc-800 after:absolute after:top-0 after:right-0 after:h-full after:w-96 after:pointer-events-none after:bg-gradient-to-l after:from-zinc-800 max-lg:after:hidden"> class="relative bg-zinc-800 text-zinc-400 after:absolute after:top-0 after:right-0 after:h-full after:w-96 after:pointer-events-none after:bg-gradient-to-l after:from-zinc-800 max-lg:after:hidden">
<div class="py-12 md:py-20"> <div class="py-12 md:py-20">
<!-- Carousel -->
<div class="max-w-xl lg:max-w-6xl mx-auto px-4 sm:px-6"> <div class="max-w-xl lg:max-w-6xl mx-auto px-4 sm:px-6">
<div class="lg:flex space-y-12 lg:space-y-0 lg:space-x-12 xl:space-x-24" x-data="{ tab: '1' }"> <div class="lg:flex space-y-12 lg:space-y-0 lg:space-x-12 2xl:space-x-24">
<!-- Content --> <!-- Content -->
<div class="lg:max-w-none lg:min-w-[524px]"> <div class="lg:max-w-none lg:min-w-[524px]">
<div class="mb-8"> <div class="mb-8">
<div class="inline-flex text-sm font-medium text-zinc-400 px-4 py-0.5 border border-transparent [background:linear-gradient(theme(colors.zinc.800),theme(colors.zinc.800))_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box] rounded-full mb-4"> <div class="inline-flex text-sm font-medium text-zinc-400 px-4 py-0.5 border border-transparent [background:linear-gradient(theme(colors.zinc.800),theme(colors.zinc.800))_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box] rounded-full mb-4">
Scale Your Team How it works
</div> </div>
<h3 class="font-inter-tight text-3xl font-bold text-zinc-200 mb-4">Design-powered <h3 class="font-inter-tight text-3xl font-bold text-zinc-100 mb-4">
workflows for teams of any size</h3> Simple by design,<br>
<p class="text-lg text-zinc-500">Gray can understand what you are designing, learn from powerful in practice
your feedback to take your creativity further, and turn it instantly into beautiful </h3>
images.</p> <p class="text-lg">
Uncloud replaces complex clusters with a simple network of machines working
seamlessly together — no maintenance overhead, just reliable infrastructure.
</p>
</div> </div>
<!-- Tabs buttons -->
<!-- Items -->
<div class="mb-8 md:mb-0 space-y-2"> <div class="mb-8 md:mb-0 space-y-2">
<button <!-- Secure private network -->
:class="tab !== '1' ? '' : '[background:linear-gradient(#2E2E32,#2E2E32)_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box]'" <div class="text-left flex items-center px-6 py-4 rounded border border-transparent">
class="text-left flex items-center px-6 py-4 rounded border border-transparent"
@click.prevent="tab = '1'"
>
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg" <svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
width="24" height="24"> width="24" height="24">
<path d="m7.951 14.537 6.296-7.196 1.506 1.318-7.704 8.804-3.756-3.756 1.414-1.414 2.244 2.244Zm11.296-7.196 1.506 1.318-7.704 8.804-1.756-1.756 1.414-1.414.244.244 6.296-7.196Z"/> <path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"/>
</svg> </svg>
<div> <div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">Make <div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">
designs feel real Secure private network
</div> </div>
<div class="text-zinc-500">Save time and keep things consistent with reusable <div>
images, and 3D assets in shared libraries. Each machine joins a WireGuard mesh network with automatic peer discovery
and NAT traversal. Containers get unique IPs and can communicate directly
across machines.
</div> </div>
</div> </div>
</button> </div>
<button
:class="tab !== '2' ? '' : '[background:linear-gradient(#2E2E32,#2E2E32)_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box]'" <!-- Fully decentralized -->
class="text-left flex items-center px-6 py-4 rounded border border-transparent" <div class="text-left flex items-center px-6 py-4 rounded border border-transparent">
@click.prevent="tab = '2'" <svg class="shrink-0 fill-zinc-400 stroke-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
> width="24" height="24">
<path d="M4 4h16M4 4v16M4 4L20 20M20 4v16M20 4L4 20M4 20h16 M4 1.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5M20 1.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5M4 17.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5M20 17.5a2.5 2.5 0 110 5 2.5 2.5 0 010-5"/>
<div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">
Fully decentralized
</div>
<div>
Unlike traditional orchestrators, there's no central control plane to
maintain. Each machine maintains a synchronized copy of the cluster state
through peer-to-peer communication, keeping cluster operations functional
even if some machines go offline.
</div>
</div>
</div>
<!-- Smart CLI -->
<div class="text-left flex items-center px-6 py-4 rounded border border-transparent">
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg" <svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
width="24" height="24"> width="24" height="24">
<path d="m16.997 19.056-1.78-.912A13.91 13.91 0 0 0 16.75 11.8c0-2.206-.526-4.38-1.533-6.344l1.78-.912A15.91 15.91 0 0 1 18.75 11.8c0 2.524-.602 5.01-1.753 7.256Zm-3.616-1.701-1.77-.93A9.944 9.944 0 0 0 12.75 11.8c0-1.611-.39-3.199-1.14-4.625l1.771-.93c.9 1.714 1.37 3.62 1.369 5.555 0 1.935-.47 3.841-1.369 5.555Zm-3.626-1.693-1.75-.968c.49-.885.746-1.881.745-2.895a5.97 5.97 0 0 0-.745-2.893l1.75-.968a7.968 7.968 0 0 1 .995 3.861 7.97 7.97 0 0 1-.995 3.863Zm-3.673-1.65-1.664-1.11c.217-.325.333-.709.332-1.103 0-.392-.115-.776-.332-1.102L6.082 9.59c.437.655.67 1.425.668 2.21a3.981 3.981 0 0 1-.668 2.212Z"/> <path d="M20 4H4c-1.11 0-2 .89-2 2v12c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V8h16v10zm-2-1h-6v-2h6v2zM7.5 17l-1.41-1.41L8.67 13l-2.58-2.59L7.5 9l4 4-4 4z"/>
</svg> </svg>
<div> <div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">Bring <div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">
creatives closer Smart CLI
</div> </div>
<div class="text-zinc-500">Save time and keep things consistent with reusable <div>
images, and 3D assets in shared libraries. Control your entire infrastructure using intuitive Docker-like commands from
anywhere. Deploy, monitor, and scale applications across all your machines
through a single SSH connection to any of them.
</div> </div>
</div> </div>
</button> </div>
<button
:class="tab !== '3' ? '' : '[background:linear-gradient(#2E2E32,#2E2E32)_padding-box,linear-gradient(120deg,theme(colors.zinc.700),theme(colors.zinc.700/0),theme(colors.zinc.700))_border-box]'"
class="text-left flex items-center px-6 py-4 rounded border border-transparent"
@click.prevent="tab = '3'"
>
<svg class="shrink-0 fill-zinc-400 mr-3" xmlns="http://www.w3.org/2000/svg"
width="24" height="24">
<path d="m11.293 5.293 1.414 1.414-8 8-1.414-1.414 8-8Zm7-1 1.414 1.414-8 8-1.414-1.414 8-8Zm0 6 1.414 1.414-8 8-1.414-1.414 8-8Z"/>
</svg>
<div>
<div class="font-inter-tight text-lg font-semibold text-zinc-200 mb-1">Scale and
align your design team
</div>
<div class="text-zinc-500">Save time and keep things consistent with reusable
images, and 3D assets in shared libraries.
</div>
</div>
</button>
</div> </div>
</div> </div>
<!-- Tabs items --> <!-- Diagram -->
<div class="relative lg:max-w-none"> <div class="relative lg:max-w-none">
<div class="relative flex flex-col"> <div class="relative flex flex-col">
<!-- Item 1 --> <figure class="w-full lg:mt-36">
<div <img class="lg:max-w-none mx-auto rounded-xl shadow-2xl"
class="w-full" src="./images/diagram.webp" width="700" alt="Uncloud cluster diagram"/>
x-show="tab === '1'" <figcaption class="text-center text-sm mt-2">
x-transition:enter="transition ease-in-out duration-700 transform order-first" Multi-provider cluster of 3 machines
x-transition:enter-start="opacity-0 translate-x-8" </figcaption>
x-transition:enter-end="opacity-100 translate-x-0" </figure>
x-transition:leave="transition ease-in-out duration-300 transform absolute"
x-transition:leave-start="opacity-100 translate-x-0"
x-transition:leave-end="opacity-0 -translate-x-8"
>
<div>
<img class="lg:max-w-none mx-auto rounded-lg shadow-2xl"
src="./images/carousel-illustration-01.jpg" width="800" height="620"
alt="Carousel 01"/>
</div>
</div>
<!-- Item 2 -->
<div
class="w-full"
x-show="tab === '2'"
x-transition:enter="transition ease-in-out duration-700 transform order-first"
x-transition:enter-start="opacity-0 translate-x-8"
x-transition:enter-end="opacity-100 translate-x-0"
x-transition:leave="transition ease-in-out duration-300 transform absolute"
x-transition:leave-start="opacity-100 translate-x-0"
x-transition:leave-end="opacity-0 -translate-x-8"
>
<div>
<img class="lg:max-w-none mx-auto rounded-lg shadow-2xl"
src="./images/carousel-illustration-01.jpg" width="800" height="620"
alt="Carousel 02"/>
</div>
</div>
<!-- Item 3 -->
<div
class="w-full"
x-show="tab === '3'"
x-transition:enter="transition ease-in-out duration-700 transform order-first"
x-transition:enter-start="opacity-0 translate-x-8"
x-transition:enter-end="opacity-100 translate-x-0"
x-transition:leave="transition ease-in-out duration-300 transform absolute"
x-transition:leave-start="opacity-100 translate-x-0"
x-transition:leave-end="opacity-0 -translate-x-8"
>
<div>
<img class="lg:max-w-none mx-auto rounded-lg shadow-2xl"
src="./images/carousel-illustration-01.jpg" width="800" height="620"
alt="Carousel 03"/>
</div>
</div>
</div> </div>
<!-- Gear illustration -->
<img class="absolute left-0 bottom-0 -translate-x-1/2 translate-y-1/3 mix-blend-exclusion max-lg:w-32"
src="./images/features-illustration.png" alt="Features 02 illustration" width="173"
height="167" aria-hidden="true">
</div> </div>
</div> </div>
</div> </div>
<!-- Features blocks --> <!-- Features blocks -->
<div class="max-w-6xl mx-auto px-4 sm:px-6 mt-24 lg:mt-32"> <div class="max-w-6xl mx-auto px-4 sm:px-6 mt-12 lg:mt-24">
<div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-16"> <div class="grid sm:grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-16">
<!-- Block #1 --> <!-- Block #1 -->
<div> <div>