From 1a0304f324cc6a979dec55cd16fa61ef782347ea Mon Sep 17 00:00:00 2001 From: Alan Daniel Date: Mon, 23 Mar 2026 18:58:01 -0400 Subject: [PATCH] edge functions cards --- .../(home)/_components/OpenSourceSection.tsx | 4 +- .../_components/ExamplesSection.tsx | 124 ++++++++---------- .../_components/LocalDXSection.tsx | 43 +++--- .../_components/ObservabilitySection.tsx | 21 ++- .../Products/Functions/NpmEcosystem.tsx | 2 +- 5 files changed, 89 insertions(+), 105 deletions(-) diff --git a/apps/www/app/(home)/_components/OpenSourceSection.tsx b/apps/www/app/(home)/_components/OpenSourceSection.tsx index d2ac92e9187..0f7d781ff88 100644 --- a/apps/www/app/(home)/_components/OpenSourceSection.tsx +++ b/apps/www/app/(home)/_components/OpenSourceSection.tsx @@ -67,11 +67,11 @@ const LEVELS_BG = [ ] const LEVELS_TEXT = [ - 'hsl(var(--brand-400))', - 'hsl(var(--brand-500))', 'hsl(var(--brand-600))', 'hsl(var(--brand-default))', 'hsl(var(--brand-default))', + 'hsl(var(--brand-600))', + 'hsl(var(--brand-500))', ] function makeGrid(): { level: number; isText: boolean }[][] { diff --git a/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx b/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx index 0d7f7a31a08..44e8b5bffe7 100644 --- a/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/ExamplesSection.tsx @@ -36,74 +36,64 @@ export function ExamplesSection() { {/* Cards */}
-
- {/* Featured row - 2 large cells */} -
- {featuredExamples.map((example, i) => { - const tag = example.tags?.[0] - const icon = tag ? EXAMPLE_ICON[tag] : undefined - return ( - -
- {icon && ( - - )} -
-

{example.title}

-

- {example.description} -

- - ) - })} -
+ {/* Featured row - 2 large cells */} +
+ {featuredExamples.map((example) => { + const tag = example.tags?.[0] + const icon = tag ? EXAMPLE_ICON[tag] : undefined + return ( + +
+ {icon && ( + + )} +
+

{example.title}

+

+ {example.description} +

+ + ) + })} +
- {/* Grid row - 4 smaller cells */} -
- {gridExamples.map((example, i) => { - const tag = example.tags?.[0] - const icon = tag ? EXAMPLE_ICON[tag] : undefined - return ( - -
- {icon && ( - - )} -
-

{example.title}

-

- {example.description} -

- - ) - })} -
+ {/* Grid row - 4 smaller cells */} +
+ {gridExamples.map((example) => { + const tag = example.tags?.[0] + const icon = tag ? EXAMPLE_ICON[tag] : undefined + return ( + +
+ {icon && ( + + )} +
+

{example.title}

+

+ {example.description} +

+ + ) + })}
diff --git a/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx b/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx index e7a5604c7ce..6caf1491f4a 100644 --- a/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/LocalDXSection.tsx @@ -3,7 +3,6 @@ import dynamic from 'next/dynamic' import Link from 'next/link' import { useState } from 'react' -import { cn } from 'ui' const LocalDXImage = dynamic(() => import('~/components/Products/Functions/LocalDXImage')) const ParityImage = dynamic(() => import('~/components/Products/Functions/ParityImage')) @@ -15,14 +14,14 @@ function EcosystemCard() { return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} >
-
+

Use any NPM module

Tap into the 2+ million modules in the Deno and NPM ecosystem @@ -32,25 +31,19 @@ function EcosystemCard() { ) } -const GRID_CLASS: Record = { - localDX: 'col-span-1 md:border-r', - parity: 'col-span-1 xl:border-r', - ci: 'col-span-1 md:col-span-2 xl:border-r !border-b-0', -} - function ParityCard() { const [isHovered, setIsHovered] = useState(false) return (

setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} >
-
+

Dev and Prod parity

The open source{' '} @@ -73,14 +66,20 @@ function CICard() { return (

setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} > -
+
-
+

Continuous Integration

Use the{' '} @@ -103,14 +102,14 @@ function LocalDXCard() { return (

setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} >
-
+

First-class local dev experience

Write code with hot code reloading, a fast Language server for autocompletion, type @@ -148,13 +147,11 @@ export function LocalDXSection() { {/* Bento grid */}

-
-
- - - - -
+
+ + + +
diff --git a/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx b/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx index 2877a82e0a6..e50fa552386 100644 --- a/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx +++ b/apps/www/app/(products)/edge-functions/_components/ObservabilitySection.tsx @@ -40,12 +40,12 @@ function ObservabilityCard({ return (
setIsHovered(true)} onMouseLeave={() => setIsHovered(false)} >
{card.render(isHovered)}
-
+

{card.label}

{card.paragraph}

@@ -72,16 +72,13 @@ export function ObservabilitySection() { {/* 3-column grid */}
-
-
- {cards.map((card, i) => ( - - ))} -
+
+ {cards.map((card) => ( + + ))}
diff --git a/apps/www/components/Products/Functions/NpmEcosystem.tsx b/apps/www/components/Products/Functions/NpmEcosystem.tsx index 43827cf1037..a27d1e72433 100644 --- a/apps/www/components/Products/Functions/NpmEcosystem.tsx +++ b/apps/www/components/Products/Functions/NpmEcosystem.tsx @@ -199,7 +199,7 @@ const NpmEcosystem = ({ isHovered = false }: { isHovered?: boolean }) => {