+ {/* Dismiss button */}
+
+
+ {/* Eyebrow */}
+
+ Free Guide
+
- {/* Eyebrow */}
+ {/* Title */}
+
+ From Prototype to Production
+
+
+ {step === 'cta' && (
+ <>
- Free Guide
+ Six production-readiness dimensions for Angular agents. Get the guide.
+
+
+
+
+ >
+ )}
- {/* Title */}
+ {step === 'form' && (
+
+ )}
+
+ {step === 'sent' && (
+
- From Prototype to Production
+ ✓ Check your inbox — the guide is on its way!
-
- {step === 'cta' && (
- <>
-
- Six production-readiness dimensions for Angular agents. Get the guide.
-
-
-
-
-
- >
- )}
-
- {step === 'form' && (
-
- )}
-
- {step === 'sent' && (
-
-
- ✓ Check your inbox — the guide is on its way!
-
-
- )}
-
+
)}
-
+
);
}
diff --git a/apps/website/src/components/shared/Footer.tsx b/apps/website/src/components/shared/Footer.tsx
index d89cd9541..e68301148 100644
--- a/apps/website/src/components/shared/Footer.tsx
+++ b/apps/website/src/components/shared/Footer.tsx
@@ -1,10 +1,12 @@
'use client';
import { useState } from 'react';
import Link from 'next/link';
-import { motion } from 'framer-motion';
import { tokens } from '@ngaf/design-tokens';
import { analyticsEvents } from '../../lib/analytics/events';
import { track, trackCtaClick, trackExternalLinkClick } from '../../lib/analytics/client';
+import { LogoMark } from '../ui/LogoMark';
+import { Button } from '../ui/Button';
+import { Eyebrow } from '../ui/Eyebrow';
function GitHubIcon() {
return (
@@ -74,26 +76,20 @@ function NewsletterForm() {
disabled={state === 'submitting'}
className="text-sm rounded-lg px-3 py-2 flex-1"
style={{
- background: 'rgba(255,255,255,0.7)',
- border: `1px solid ${tokens.glass.border}`,
+ background: tokens.surfaces.surface,
+ border: `1px solid ${tokens.surfaces.border}`,
color: tokens.colors.textPrimary,
outline: 'none',
}}
/>
-