snowbase-templates-installer 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/bin/cli.js +140 -0
- package/landing-pages/ai-saas-template/.orchids/orchids.json +8 -0
- package/landing-pages/ai-saas-template/README.md +36 -0
- package/landing-pages/ai-saas-template/bun.lock +2062 -0
- package/landing-pages/ai-saas-template/components.json +22 -0
- package/landing-pages/ai-saas-template/eslint.config.mjs +33 -0
- package/landing-pages/ai-saas-template/next.config.ts +24 -0
- package/landing-pages/ai-saas-template/package-lock.json +11708 -0
- package/landing-pages/ai-saas-template/package.json +114 -0
- package/landing-pages/ai-saas-template/postcss.config.mjs +7 -0
- package/landing-pages/ai-saas-template/public/file.svg +1 -0
- package/landing-pages/ai-saas-template/public/globe.svg +1 -0
- package/landing-pages/ai-saas-template/public/next.svg +1 -0
- package/landing-pages/ai-saas-template/public/vercel.svg +1 -0
- package/landing-pages/ai-saas-template/public/window.svg +1 -0
- package/landing-pages/ai-saas-template/src/app/favicon.ico +0 -0
- package/landing-pages/ai-saas-template/src/app/global-error.tsx +5 -0
- package/landing-pages/ai-saas-template/src/app/globals.css +172 -0
- package/landing-pages/ai-saas-template/src/app/layout.tsx +42 -0
- package/landing-pages/ai-saas-template/src/app/page.tsx +23 -0
- package/landing-pages/ai-saas-template/src/components/ErrorReporter.tsx +136 -0
- package/landing-pages/ai-saas-template/src/components/sections/cta.tsx +62 -0
- package/landing-pages/ai-saas-template/src/components/sections/features-grid.tsx +205 -0
- package/landing-pages/ai-saas-template/src/components/sections/footer.tsx +111 -0
- package/landing-pages/ai-saas-template/src/components/sections/hero.tsx +92 -0
- package/landing-pages/ai-saas-template/src/components/sections/logos.tsx +69 -0
- package/landing-pages/ai-saas-template/src/components/sections/navbar.tsx +83 -0
- package/landing-pages/ai-saas-template/src/components/sections/testimonials-header.tsx +41 -0
- package/landing-pages/ai-saas-template/src/components/sections/value-props.tsx +97 -0
- package/landing-pages/ai-saas-template/src/components/ui/accordion.tsx +66 -0
- package/landing-pages/ai-saas-template/src/components/ui/alert-dialog.tsx +157 -0
- package/landing-pages/ai-saas-template/src/components/ui/alert.tsx +66 -0
- package/landing-pages/ai-saas-template/src/components/ui/aspect-ratio.tsx +11 -0
- package/landing-pages/ai-saas-template/src/components/ui/avatar.tsx +53 -0
- package/landing-pages/ai-saas-template/src/components/ui/badge.tsx +46 -0
- package/landing-pages/ai-saas-template/src/components/ui/breadcrumb.tsx +109 -0
- package/landing-pages/ai-saas-template/src/components/ui/button-group.tsx +83 -0
- package/landing-pages/ai-saas-template/src/components/ui/button.tsx +59 -0
- package/landing-pages/ai-saas-template/src/components/ui/calendar.tsx +213 -0
- package/landing-pages/ai-saas-template/src/components/ui/card.tsx +92 -0
- package/landing-pages/ai-saas-template/src/components/ui/carousel.tsx +241 -0
- package/landing-pages/ai-saas-template/src/components/ui/chart.tsx +353 -0
- package/landing-pages/ai-saas-template/src/components/ui/checkbox.tsx +32 -0
- package/landing-pages/ai-saas-template/src/components/ui/collapsible.tsx +33 -0
- package/landing-pages/ai-saas-template/src/components/ui/command.tsx +184 -0
- package/landing-pages/ai-saas-template/src/components/ui/context-menu.tsx +252 -0
- package/landing-pages/ai-saas-template/src/components/ui/dialog.tsx +143 -0
- package/landing-pages/ai-saas-template/src/components/ui/drawer.tsx +135 -0
- package/landing-pages/ai-saas-template/src/components/ui/dropdown-menu.tsx +257 -0
- package/landing-pages/ai-saas-template/src/components/ui/empty.tsx +104 -0
- package/landing-pages/ai-saas-template/src/components/ui/field.tsx +248 -0
- package/landing-pages/ai-saas-template/src/components/ui/form.tsx +167 -0
- package/landing-pages/ai-saas-template/src/components/ui/hover-card.tsx +44 -0
- package/landing-pages/ai-saas-template/src/components/ui/input-group.tsx +170 -0
- package/landing-pages/ai-saas-template/src/components/ui/input-otp.tsx +77 -0
- package/landing-pages/ai-saas-template/src/components/ui/input.tsx +21 -0
- package/landing-pages/ai-saas-template/src/components/ui/item.tsx +193 -0
- package/landing-pages/ai-saas-template/src/components/ui/kbd.tsx +28 -0
- package/landing-pages/ai-saas-template/src/components/ui/label.tsx +24 -0
- package/landing-pages/ai-saas-template/src/components/ui/menubar.tsx +276 -0
- package/landing-pages/ai-saas-template/src/components/ui/navigation-menu.tsx +168 -0
- package/landing-pages/ai-saas-template/src/components/ui/pagination.tsx +127 -0
- package/landing-pages/ai-saas-template/src/components/ui/popover.tsx +48 -0
- package/landing-pages/ai-saas-template/src/components/ui/progress.tsx +31 -0
- package/landing-pages/ai-saas-template/src/components/ui/radio-group.tsx +45 -0
- package/landing-pages/ai-saas-template/src/components/ui/resizable.tsx +56 -0
- package/landing-pages/ai-saas-template/src/components/ui/scroll-area.tsx +58 -0
- package/landing-pages/ai-saas-template/src/components/ui/select.tsx +185 -0
- package/landing-pages/ai-saas-template/src/components/ui/separator.tsx +28 -0
- package/landing-pages/ai-saas-template/src/components/ui/sheet.tsx +139 -0
- package/landing-pages/ai-saas-template/src/components/ui/sidebar.tsx +726 -0
- package/landing-pages/ai-saas-template/src/components/ui/skeleton.tsx +13 -0
- package/landing-pages/ai-saas-template/src/components/ui/slider.tsx +63 -0
- package/landing-pages/ai-saas-template/src/components/ui/sonner.tsx +25 -0
- package/landing-pages/ai-saas-template/src/components/ui/spinner.tsx +16 -0
- package/landing-pages/ai-saas-template/src/components/ui/switch.tsx +31 -0
- package/landing-pages/ai-saas-template/src/components/ui/table.tsx +116 -0
- package/landing-pages/ai-saas-template/src/components/ui/tabs.tsx +66 -0
- package/landing-pages/ai-saas-template/src/components/ui/textarea.tsx +18 -0
- package/landing-pages/ai-saas-template/src/components/ui/toggle-group.tsx +73 -0
- package/landing-pages/ai-saas-template/src/components/ui/toggle.tsx +47 -0
- package/landing-pages/ai-saas-template/src/components/ui/tooltip.tsx +61 -0
- package/landing-pages/ai-saas-template/src/hooks/use-mobile.ts +19 -0
- package/landing-pages/ai-saas-template/src/lib/hooks/use-mobile.tsx +21 -0
- package/landing-pages/ai-saas-template/src/lib/utils.ts +6 -0
- package/landing-pages/ai-saas-template/src/visual-edits/VisualEditsMessenger.tsx +2159 -0
- package/landing-pages/ai-saas-template/src/visual-edits/component-tagger-loader.js +460 -0
- package/landing-pages/ai-saas-template/tsconfig.json +42 -0
- package/landing-pages/open-engineer-template/.orchids/orchids.json +8 -0
- package/landing-pages/open-engineer-template/README.md +36 -0
- package/landing-pages/open-engineer-template/bun.lock +2062 -0
- package/landing-pages/open-engineer-template/components.json +22 -0
- package/landing-pages/open-engineer-template/eslint.config.mjs +33 -0
- package/landing-pages/open-engineer-template/next.config.ts +24 -0
- package/landing-pages/open-engineer-template/package-lock.json +13669 -0
- package/landing-pages/open-engineer-template/package.json +114 -0
- package/landing-pages/open-engineer-template/postcss.config.mjs +7 -0
- package/landing-pages/open-engineer-template/public/file.svg +1 -0
- package/landing-pages/open-engineer-template/public/globe.svg +1 -0
- package/landing-pages/open-engineer-template/public/next.svg +1 -0
- package/landing-pages/open-engineer-template/public/vercel.svg +1 -0
- package/landing-pages/open-engineer-template/public/window.svg +1 -0
- package/landing-pages/open-engineer-template/src/app/favicon.ico +0 -0
- package/landing-pages/open-engineer-template/src/app/global-error.tsx +5 -0
- package/landing-pages/open-engineer-template/src/app/globals.css +189 -0
- package/landing-pages/open-engineer-template/src/app/layout.tsx +42 -0
- package/landing-pages/open-engineer-template/src/app/page.tsx +31 -0
- package/landing-pages/open-engineer-template/src/components/ErrorReporter.tsx +136 -0
- package/landing-pages/open-engineer-template/src/components/sections/cta-stats.tsx +71 -0
- package/landing-pages/open-engineer-template/src/components/sections/faq.tsx +188 -0
- package/landing-pages/open-engineer-template/src/components/sections/features-grid.tsx +193 -0
- package/landing-pages/open-engineer-template/src/components/sections/footer.tsx +137 -0
- package/landing-pages/open-engineer-template/src/components/sections/header.tsx +105 -0
- package/landing-pages/open-engineer-template/src/components/sections/hero.tsx +118 -0
- package/landing-pages/open-engineer-template/src/components/sections/how-it-works.tsx +123 -0
- package/landing-pages/open-engineer-template/src/components/sections/pricing.tsx +168 -0
- package/landing-pages/open-engineer-template/src/components/sections/testimonials-logos.tsx +88 -0
- package/landing-pages/open-engineer-template/src/components/sections/use-cases.tsx +141 -0
- package/landing-pages/open-engineer-template/src/components/sections/workflow-tabs.tsx +792 -0
- package/landing-pages/open-engineer-template/src/components/ui/accordion.tsx +66 -0
- package/landing-pages/open-engineer-template/src/components/ui/alert-dialog.tsx +157 -0
- package/landing-pages/open-engineer-template/src/components/ui/alert.tsx +66 -0
- package/landing-pages/open-engineer-template/src/components/ui/aspect-ratio.tsx +11 -0
- package/landing-pages/open-engineer-template/src/components/ui/avatar.tsx +53 -0
- package/landing-pages/open-engineer-template/src/components/ui/badge.tsx +46 -0
- package/landing-pages/open-engineer-template/src/components/ui/breadcrumb.tsx +109 -0
- package/landing-pages/open-engineer-template/src/components/ui/button-group.tsx +83 -0
- package/landing-pages/open-engineer-template/src/components/ui/button.tsx +59 -0
- package/landing-pages/open-engineer-template/src/components/ui/calendar.tsx +213 -0
- package/landing-pages/open-engineer-template/src/components/ui/card.tsx +92 -0
- package/landing-pages/open-engineer-template/src/components/ui/carousel.tsx +241 -0
- package/landing-pages/open-engineer-template/src/components/ui/chart.tsx +353 -0
- package/landing-pages/open-engineer-template/src/components/ui/checkbox.tsx +32 -0
- package/landing-pages/open-engineer-template/src/components/ui/collapsible.tsx +33 -0
- package/landing-pages/open-engineer-template/src/components/ui/command.tsx +184 -0
- package/landing-pages/open-engineer-template/src/components/ui/context-menu.tsx +252 -0
- package/landing-pages/open-engineer-template/src/components/ui/dialog.tsx +143 -0
- package/landing-pages/open-engineer-template/src/components/ui/drawer.tsx +135 -0
- package/landing-pages/open-engineer-template/src/components/ui/dropdown-menu.tsx +257 -0
- package/landing-pages/open-engineer-template/src/components/ui/empty.tsx +104 -0
- package/landing-pages/open-engineer-template/src/components/ui/field.tsx +248 -0
- package/landing-pages/open-engineer-template/src/components/ui/form.tsx +167 -0
- package/landing-pages/open-engineer-template/src/components/ui/hover-card.tsx +44 -0
- package/landing-pages/open-engineer-template/src/components/ui/input-group.tsx +170 -0
- package/landing-pages/open-engineer-template/src/components/ui/input-otp.tsx +77 -0
- package/landing-pages/open-engineer-template/src/components/ui/input.tsx +21 -0
- package/landing-pages/open-engineer-template/src/components/ui/item.tsx +193 -0
- package/landing-pages/open-engineer-template/src/components/ui/kbd.tsx +28 -0
- package/landing-pages/open-engineer-template/src/components/ui/label.tsx +24 -0
- package/landing-pages/open-engineer-template/src/components/ui/menubar.tsx +276 -0
- package/landing-pages/open-engineer-template/src/components/ui/navigation-menu.tsx +168 -0
- package/landing-pages/open-engineer-template/src/components/ui/pagination.tsx +127 -0
- package/landing-pages/open-engineer-template/src/components/ui/popover.tsx +48 -0
- package/landing-pages/open-engineer-template/src/components/ui/progress.tsx +31 -0
- package/landing-pages/open-engineer-template/src/components/ui/radio-group.tsx +45 -0
- package/landing-pages/open-engineer-template/src/components/ui/resizable.tsx +56 -0
- package/landing-pages/open-engineer-template/src/components/ui/scroll-area.tsx +58 -0
- package/landing-pages/open-engineer-template/src/components/ui/select.tsx +185 -0
- package/landing-pages/open-engineer-template/src/components/ui/separator.tsx +28 -0
- package/landing-pages/open-engineer-template/src/components/ui/sheet.tsx +139 -0
- package/landing-pages/open-engineer-template/src/components/ui/sidebar.tsx +726 -0
- package/landing-pages/open-engineer-template/src/components/ui/skeleton.tsx +13 -0
- package/landing-pages/open-engineer-template/src/components/ui/slider.tsx +63 -0
- package/landing-pages/open-engineer-template/src/components/ui/sonner.tsx +25 -0
- package/landing-pages/open-engineer-template/src/components/ui/spinner.tsx +16 -0
- package/landing-pages/open-engineer-template/src/components/ui/switch.tsx +31 -0
- package/landing-pages/open-engineer-template/src/components/ui/table.tsx +116 -0
- package/landing-pages/open-engineer-template/src/components/ui/tabs.tsx +66 -0
- package/landing-pages/open-engineer-template/src/components/ui/textarea.tsx +18 -0
- package/landing-pages/open-engineer-template/src/components/ui/toggle-group.tsx +73 -0
- package/landing-pages/open-engineer-template/src/components/ui/toggle.tsx +47 -0
- package/landing-pages/open-engineer-template/src/components/ui/tooltip.tsx +61 -0
- package/landing-pages/open-engineer-template/src/hooks/use-mobile.ts +19 -0
- package/landing-pages/open-engineer-template/src/lib/hooks/use-mobile.tsx +21 -0
- package/landing-pages/open-engineer-template/src/lib/utils.ts +6 -0
- package/landing-pages/open-engineer-template/src/visual-edits/VisualEditsMessenger.tsx +2159 -0
- package/landing-pages/open-engineer-template/src/visual-edits/component-tagger-loader.js +460 -0
- package/landing-pages/open-engineer-template/tsconfig.json +42 -0
- package/package.json +36 -0
- package/templates.json +22 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import React from "react";
|
|
4
|
+
import Image from "next/image";
|
|
5
|
+
import { Plus, Send, CheckCircle2, Cloud, HardDrive, Cpu, Terminal } from "lucide-react";
|
|
6
|
+
|
|
7
|
+
const FeaturesGrid = () => {
|
|
8
|
+
return (
|
|
9
|
+
<section className="bg-white py-24 px-4 overflow-hidden">
|
|
10
|
+
<div className="max-w-7xl mx-auto">
|
|
11
|
+
{/* Header Section */}
|
|
12
|
+
<div className="text-center mb-16 space-y-4">
|
|
13
|
+
<h2 className="text-[48px] font-semibold tracking-tight text-black leading-tight max-w-2xl mx-auto">
|
|
14
|
+
Packed with thousands of features
|
|
15
|
+
</h2>
|
|
16
|
+
<p className="text-[18px] text-muted-foreground max-w-2xl mx-auto">
|
|
17
|
+
From Image generation to video generation, Everything AI has APIs for literally everything. It can even create this website copy for you.
|
|
18
|
+
</p>
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
{/* Bento Grid Top Row */}
|
|
22
|
+
<div className="grid grid-cols-1 md:grid-cols-12 gap-0 border-t border-l border-dashed border-gray-200">
|
|
23
|
+
|
|
24
|
+
{/* Feature 1: Generate images with text */}
|
|
25
|
+
<div className="md:col-span-7 border-r border-b border-dashed border-gray-200 p-8 lg:p-12 relative h-[600px] overflow-hidden">
|
|
26
|
+
<div className="relative z-10 mb-8">
|
|
27
|
+
<h3 className="text-2xl font-semibold mb-3 text-black">Generate images with text</h3>
|
|
28
|
+
<p className="text-muted-foreground text-sm max-w-md">
|
|
29
|
+
Generate images from a text prompt, a video, or a video segment in bulk at the speed of light.
|
|
30
|
+
</p>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
{/* Image generation UI mockup */}
|
|
34
|
+
<div className="relative mt-12">
|
|
35
|
+
<div className="absolute top-0 left-0 w-full h-full bg-white/50 backdrop-blur-[1px] z-0 rounded-xl border border-gray-100 shadow-sm p-6">
|
|
36
|
+
<div className="space-y-4 opacity-40">
|
|
37
|
+
<div className="flex gap-3">
|
|
38
|
+
<div className="w-8 h-8 rounded-full bg-blue-100" />
|
|
39
|
+
<div className="h-4 w-48 bg-gray-100 rounded" />
|
|
40
|
+
</div>
|
|
41
|
+
<div className="flex gap-3">
|
|
42
|
+
<div className="w-8 h-8 rounded-full bg-purple-100" />
|
|
43
|
+
<div className="h-4 w-60 bg-gray-100 rounded" />
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
{/* Overlapping Images Layer */}
|
|
49
|
+
<div className="relative z-10 flex justify-center items-center h-[350px]">
|
|
50
|
+
<div className="absolute transform -translate-x-12 -translate-y-12 rotate-[-4deg] border-4 border-white shadow-2xl rounded-2xl overflow-hidden w-64 h-64">
|
|
51
|
+
<Image
|
|
52
|
+
src="https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_7.png"
|
|
53
|
+
alt="AI Generated Content"
|
|
54
|
+
width={256}
|
|
55
|
+
height={256}
|
|
56
|
+
className="object-cover grayscale"
|
|
57
|
+
/>
|
|
58
|
+
</div>
|
|
59
|
+
<div className="absolute transform translate-x-12 translate-y-12 rotate-[4deg] border-4 border-white shadow-2xl rounded-2xl overflow-hidden w-64 h-64">
|
|
60
|
+
<Image
|
|
61
|
+
src="https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_8.png"
|
|
62
|
+
alt="AI Generated Portrait"
|
|
63
|
+
width={256}
|
|
64
|
+
height={256}
|
|
65
|
+
className="object-cover grayscale"
|
|
66
|
+
/>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
{/* Feature 2: Create stupid simple chatbots */}
|
|
73
|
+
<div className="md:col-span-5 border-r border-b border-dashed border-gray-200 p-8 lg:p-12 relative overflow-hidden bg-gray-50/30">
|
|
74
|
+
<div className="relative z-10 mb-8">
|
|
75
|
+
<h3 className="text-2xl font-semibold mb-3 text-black">Create stupid simple chatbots</h3>
|
|
76
|
+
<p className="text-muted-foreground text-sm">
|
|
77
|
+
Create Chatbots with a single button click. Customize as per your requirements and the AI will take care of the rest.
|
|
78
|
+
</p>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
{/* iPhone/Mobile Chat Frame */}
|
|
82
|
+
<div className="mt-6 mx-auto max-w-[280px] bg-white rounded-[40px] border-[8px] border-gray-100 shadow-2xl h-[480px] overflow-y-auto custom-scrollbar relative">
|
|
83
|
+
<div className="absolute top-0 inset-x-0 h-6 bg-white z-20 sticky flex justify-center">
|
|
84
|
+
<div className="w-16 h-4 bg-gray-100 rounded-b-xl" />
|
|
85
|
+
</div>
|
|
86
|
+
<div className="p-4 pt-8 space-y-3">
|
|
87
|
+
<div className="bg-gray-100 rounded-2xl rounded-tl-sm p-3 text-[11px] text-gray-700 max-w-[85%]">
|
|
88
|
+
Hello chat! Give me all the links from this website - https://ui.aceternity.com
|
|
89
|
+
</div>
|
|
90
|
+
<div className="bg-black text-white rounded-2xl rounded-tr-sm p-3 text-[11px] ml-auto max-w-[85%]">
|
|
91
|
+
Why don't you do it yourself?
|
|
92
|
+
</div>
|
|
93
|
+
<div className="bg-gray-100 rounded-2xl rounded-tl-sm p-3 text-[11px] text-gray-700 max-w-[85%] text-balance">
|
|
94
|
+
Umm.. Because I'm paying $20/mo for your services?
|
|
95
|
+
</div>
|
|
96
|
+
<div className="bg-black text-white rounded-2xl rounded-tr-sm p-3 text-[11px] ml-auto max-w-[85%]">
|
|
97
|
+
You think I work for the money?
|
|
98
|
+
</div>
|
|
99
|
+
<div className="bg-gray-100 rounded-2xl rounded-tl-sm p-3 text-[11px] text-gray-700 max-w-[85%]">
|
|
100
|
+
Who do you think you are?
|
|
101
|
+
</div>
|
|
102
|
+
<div className="bg-black text-white rounded-2xl rounded-tr-sm p-3 text-[11px] ml-auto max-w-[85%] font-medium italic">
|
|
103
|
+
I' batman.
|
|
104
|
+
</div>
|
|
105
|
+
<div className="bg-black text-white rounded-2xl p-3 text-[11px] ml-auto max-w-[85%] flex items-center gap-2">
|
|
106
|
+
<div className="w-2 h-2 rounded-full bg-blue-500 animate-pulse" />
|
|
107
|
+
<div>
|
|
108
|
+
<span className="opacity-70">Now Playing</span>
|
|
109
|
+
<p className="text-[10px]">Something in the way - Nirvana</p>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
{/* Feature 3: We support every single LLM */}
|
|
117
|
+
<div className="md:col-span-6 border-r border-b border-dashed border-gray-200 p-8 lg:p-12 relative bg-white">
|
|
118
|
+
<div className="mb-10">
|
|
119
|
+
<h3 className="text-2xl font-semibold mb-3 text-black">We support every single LLM</h3>
|
|
120
|
+
<p className="text-muted-foreground text-sm max-w-sm">
|
|
121
|
+
Whether it's OpenAI, GroQ or Your Mom's Basement LLM, we support everything.
|
|
122
|
+
</p>
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
{/* Model List UI */}
|
|
126
|
+
<div className="bg-[#f9fafb] border border-gray-100 rounded-2xl p-6 shadow-sm max-w-sm">
|
|
127
|
+
<div className="flex justify-between items-center mb-6 pb-4 border-b border-gray-200">
|
|
128
|
+
<span className="font-semibold text-sm">Add LLM</span>
|
|
129
|
+
<button className="flex items-center gap-1 text-[11px] bg-white border border-gray-200 rounded-full px-3 py-1 font-medium hover:bg-gray-50 transition-colors">
|
|
130
|
+
<Plus className="w-3 h-3" /> Add
|
|
131
|
+
</button>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<ul className="space-y-4">
|
|
135
|
+
{[
|
|
136
|
+
{ name: "Groq LLM", date: "23rd March", active: true },
|
|
137
|
+
{ name: "OpenAI GPT0", date: "21st March", active: true },
|
|
138
|
+
{ name: "Stable Diffusion", date: "3rd May", active: false },
|
|
139
|
+
{ name: "Llama 2", date: "1st April", active: false },
|
|
140
|
+
].map((item, idx) => (
|
|
141
|
+
<li key={idx} className="flex items-center justify-between text-xs">
|
|
142
|
+
<div className="flex flex-col">
|
|
143
|
+
<span className="font-medium text-gray-900">{item.name}</span>
|
|
144
|
+
<span className="text-gray-400 text-[10px]">{item.date}</span>
|
|
145
|
+
</div>
|
|
146
|
+
<div className={`w-8 h-4 rounded-full relative transition-colors duration-200 ${item.active ? 'bg-black' : 'bg-gray-300'}`}>
|
|
147
|
+
<div className={`absolute top-0.5 w-3 h-3 rounded-full bg-white transition-all duration-200 ${item.active ? 'left-4.5' : 'left-0.5'}`} />
|
|
148
|
+
</div>
|
|
149
|
+
</li>
|
|
150
|
+
))}
|
|
151
|
+
</ul>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
|
|
155
|
+
{/* Feature 4: Deploy in seconds */}
|
|
156
|
+
<div className="md:col-span-6 border-r border-b border-dashed border-gray-200 p-8 lg:p-12 relative bg-white">
|
|
157
|
+
<div className="mb-10">
|
|
158
|
+
<h3 className="text-2xl font-semibold mb-3 text-black">Deploy in seconds</h3>
|
|
159
|
+
<p className="text-muted-foreground text-sm max-w-md">
|
|
160
|
+
With our blazing fast, state of the art, cutting edge, we are so back cloud services (read AWS) - you can deploy your model in seconds.
|
|
161
|
+
</p>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
{/* Cloud Architecture visualization */}
|
|
165
|
+
<div className="flex flex-wrap gap-2 items-center justify-start mt-8">
|
|
166
|
+
{[
|
|
167
|
+
{ name: "Framer Motion", icon: <CheckCircle2 className="w-3 h-3" /> },
|
|
168
|
+
{ name: "Redis", icon: <HardDrive className="w-3 h-3" /> },
|
|
169
|
+
{ name: "Vercel", icon: <Terminal className="w-3 h-3" /> },
|
|
170
|
+
{ name: "AWS", icon: <Cloud className="w-3 h-3" /> },
|
|
171
|
+
{ name: "GitHub", icon: <Cpu className="w-3 h-3" /> },
|
|
172
|
+
{ name: "Docker", icon: <CheckCircle2 className="w-3 h-3" /> },
|
|
173
|
+
{ name: "Tailwind CSS", icon: <Terminal className="w-3 h-3" /> }
|
|
174
|
+
].map((tech, idx) => (
|
|
175
|
+
<div
|
|
176
|
+
key={idx}
|
|
177
|
+
className="flex items-center gap-1.5 px-3 py-1.5 bg-white border border-gray-100 rounded-lg text-[10px] font-medium shadow-sm"
|
|
178
|
+
>
|
|
179
|
+
<span className="text-gray-500">{tech.icon}</span>
|
|
180
|
+
<span>{tech.name}</span>
|
|
181
|
+
</div>
|
|
182
|
+
))}
|
|
183
|
+
|
|
184
|
+
{/* Dynamic Connecting Lines Visual (Simplified) */}
|
|
185
|
+
<div className="w-full h-px bg-gradient-to-r from-transparent via-gray-200 to-transparent mt-8 relative">
|
|
186
|
+
<div className="absolute top-1/2 left-1/4 -translate-y-1/2 w-2 h-2 rounded-full bg-black shadow-[0_0_10px_rgba(0,0,0,0.5)]" />
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
</div>
|
|
192
|
+
|
|
193
|
+
<style jsx global>{`
|
|
194
|
+
.custom-scrollbar::-webkit-scrollbar {
|
|
195
|
+
width: 0px;
|
|
196
|
+
}
|
|
197
|
+
.left-4.5 {
|
|
198
|
+
left: 1.125rem;
|
|
199
|
+
}
|
|
200
|
+
`}</style>
|
|
201
|
+
</section>
|
|
202
|
+
);
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
export default FeaturesGrid;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
const Footer = () => {
|
|
4
|
+
return (
|
|
5
|
+
<footer className="relative w-full bg-white pt-24 pb-0 overflow-hidden border-t border-border/40">
|
|
6
|
+
<div className="max-w-7xl mx-auto px-6 lg:px-8">
|
|
7
|
+
<div className="flex flex-col md:flex-row justify-between items-start gap-12 md:gap-4 pb-20">
|
|
8
|
+
{/* Logo and Copyright Section */}
|
|
9
|
+
<div className="flex flex-col items-start space-y-4 max-w-sm">
|
|
10
|
+
<div className="flex items-center gap-2">
|
|
11
|
+
<div className="h-5 w-6 bg-black rounded-br-lg rounded-tr-sm rounded-tl-lg rounded-bl-sm" />
|
|
12
|
+
<span className="font-semibold text-base text-black tracking-tight">Every AI</span>
|
|
13
|
+
</div>
|
|
14
|
+
<div className="space-y-1">
|
|
15
|
+
<p className="text-[13px] text-muted-foreground font-normal leading-relaxed">
|
|
16
|
+
Copyright © 2024 Every Labs
|
|
17
|
+
</p>
|
|
18
|
+
<p className="text-[13px] text-muted-foreground font-normal leading-relaxed">
|
|
19
|
+
All rights reserved
|
|
20
|
+
</p>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
{/* Links Grid */}
|
|
25
|
+
<div className="grid grid-cols-2 sm:grid-cols-3 gap-x-12 lg:gap-x-24 gap-y-10">
|
|
26
|
+
{/* Column 1 */}
|
|
27
|
+
<div className="flex flex-col space-y-4">
|
|
28
|
+
<a
|
|
29
|
+
href="/pricing"
|
|
30
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
31
|
+
>
|
|
32
|
+
Pricing
|
|
33
|
+
</a>
|
|
34
|
+
<a
|
|
35
|
+
href="/blog"
|
|
36
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
37
|
+
>
|
|
38
|
+
Blog
|
|
39
|
+
</a>
|
|
40
|
+
<a
|
|
41
|
+
href="/contact"
|
|
42
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
43
|
+
>
|
|
44
|
+
Contact
|
|
45
|
+
</a>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
{/* Column 2 */}
|
|
49
|
+
<div className="flex flex-col space-y-4">
|
|
50
|
+
<a
|
|
51
|
+
href="/privacy"
|
|
52
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
53
|
+
>
|
|
54
|
+
Privacy Policy
|
|
55
|
+
</a>
|
|
56
|
+
<a
|
|
57
|
+
href="/terms"
|
|
58
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
59
|
+
>
|
|
60
|
+
Terms of Service
|
|
61
|
+
</a>
|
|
62
|
+
<a
|
|
63
|
+
href="/refund"
|
|
64
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
65
|
+
>
|
|
66
|
+
Refund Policy
|
|
67
|
+
</a>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
{/* Column 3 */}
|
|
71
|
+
<div className="flex flex-col space-y-4">
|
|
72
|
+
<a
|
|
73
|
+
href="https://twitter.com"
|
|
74
|
+
target="_blank"
|
|
75
|
+
rel="noopener noreferrer"
|
|
76
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
77
|
+
>
|
|
78
|
+
Twitter
|
|
79
|
+
</a>
|
|
80
|
+
<a
|
|
81
|
+
href="https://linkedin.com"
|
|
82
|
+
target="_blank"
|
|
83
|
+
rel="noopener noreferrer"
|
|
84
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
85
|
+
>
|
|
86
|
+
LinkedIn
|
|
87
|
+
</a>
|
|
88
|
+
<a
|
|
89
|
+
href="https://github.com"
|
|
90
|
+
target="_blank"
|
|
91
|
+
rel="noopener noreferrer"
|
|
92
|
+
className="text-[13px] text-muted-foreground hover:text-black transition-colors"
|
|
93
|
+
>
|
|
94
|
+
GitHub
|
|
95
|
+
</a>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
{/* Massive Watermark Text */}
|
|
102
|
+
<div className="w-full select-none pointer-events-none mt-12 mb-[-5vw] flex items-center justify-center">
|
|
103
|
+
<h2 className="text-[22vw] leading-none font-bold tracking-tighter text-[#F3F4F6] transition-colors duration-500 whitespace-nowrap px-4 text-center">
|
|
104
|
+
EVERY AI
|
|
105
|
+
</h2>
|
|
106
|
+
</div>
|
|
107
|
+
</footer>
|
|
108
|
+
);
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export default Footer;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Image from "next/image";
|
|
3
|
+
import { MoveRight } from "lucide-react";
|
|
4
|
+
|
|
5
|
+
const HeroSection = () => {
|
|
6
|
+
return (
|
|
7
|
+
<section className="relative pt-[120px] pb-[80px] overflow-hidden bg-white">
|
|
8
|
+
{/* Background with Grid and Animated Light Rays Simulation */}
|
|
9
|
+
<div className="absolute inset-0 z-0 h-full w-full pointer-events-none">
|
|
10
|
+
{/* The Grid Pattern from globals.css */}
|
|
11
|
+
<div className="absolute inset-0 h-full w-full grid-pattern opacity-40"></div>
|
|
12
|
+
|
|
13
|
+
{/* Radial fade to hide edges of the grid */}
|
|
14
|
+
<div className="absolute inset-0 h-full w-full bg-white [mask-image:radial-gradient(ellipse_at_center,transparent,white)]"></div>
|
|
15
|
+
|
|
16
|
+
{/* Decorative Grid Nodes & Vertical Lines (Technical Blueprint Feel) */}
|
|
17
|
+
<div className="absolute top-0 left-1/2 -translate-x-1/2 w-full max-w-[1440px] flex justify-between px-10">
|
|
18
|
+
{[...Array(6)].map((_, i) => (
|
|
19
|
+
<div key={i} className="flex flex-col items-center">
|
|
20
|
+
<div className="h-6 w-6 bg-white border border-gray-100 flex items-center justify-center rounded-full shadow-sm">
|
|
21
|
+
<div className="h-2 w-2 bg-gray-200 rounded-full"></div>
|
|
22
|
+
</div>
|
|
23
|
+
<div className="h-[400px] w-px bg-gradient-to-b from-gray-100 via-gray-50 to-transparent"></div>
|
|
24
|
+
</div>
|
|
25
|
+
))}
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div className="container relative z-10 flex flex-col items-center text-center">
|
|
30
|
+
{/* Seed Funding Badge */}
|
|
31
|
+
<div className="inline-flex items-center gap-2 px-3 py-1 mb-8 text-xs font-medium text-gray-600 bg-gray-50 border border-gray-200 rounded-full transition-colors hover:bg-gray-100 cursor-default">
|
|
32
|
+
<span>We've raised $69M seed funding</span>
|
|
33
|
+
<MoveRight className="w-3 h-3" />
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
{/* Main Headline */}
|
|
37
|
+
<h1 className="max-w-4xl text-[72px] font-bold tracking-tight text-black leading-[1.1] text-balance mb-6">
|
|
38
|
+
Generate Images, Text and Videos with AI
|
|
39
|
+
</h1>
|
|
40
|
+
|
|
41
|
+
{/* Subheadline */}
|
|
42
|
+
<p className="max-w-2xl text-lg text-gray-500 mb-10 text-balance leading-relaxed">
|
|
43
|
+
Everything AI seamlessly integrated all the modern AI generation tools into one platform so that you can generate content with a single click.
|
|
44
|
+
</p>
|
|
45
|
+
|
|
46
|
+
{/* CTA Buttons */}
|
|
47
|
+
<div className="flex flex-wrap items-center justify-center gap-4 mb-20">
|
|
48
|
+
<a
|
|
49
|
+
href="/signup"
|
|
50
|
+
className="px-8 py-3.5 text-sm font-medium text-white bg-[#171717] rounded-full hover:bg-black transition-all shadow-[0px_-1px_0px_0px_#FFFFFF40_inset,0px_1px_0px_0px_#FFFFFF40_inset]"
|
|
51
|
+
>
|
|
52
|
+
Get started
|
|
53
|
+
</a>
|
|
54
|
+
<a
|
|
55
|
+
href="/contact"
|
|
56
|
+
className="group flex items-center gap-2 px-8 py-3.5 text-sm font-medium text-black bg-transparent border border-transparent hover:bg-gray-50 rounded-full transition-all"
|
|
57
|
+
>
|
|
58
|
+
Contact us
|
|
59
|
+
<MoveRight className="w-4 h-4 transition-transform group-hover:translate-x-1" />
|
|
60
|
+
</a>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
{/* Dashboard Preview Image Container */}
|
|
64
|
+
<div className="relative w-full max-w-[1200px] mx-auto group">
|
|
65
|
+
{/* Subtle Glow beneath the image */}
|
|
66
|
+
<div className="absolute -inset-4 bg-gradient-to-b from-gray-100 to-transparent opacity-50 blur-3xl rounded-[32px] -z-10 transition-opacity group-hover:opacity-75"></div>
|
|
67
|
+
|
|
68
|
+
<div className="relative rounded-2xl border border-gray-200 bg-white p-2 shadow-2xl overflow-hidden">
|
|
69
|
+
{/* The actual Dashboard Image */}
|
|
70
|
+
<Image
|
|
71
|
+
src="https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_1.png"
|
|
72
|
+
alt="Every AI Dashboard Preview"
|
|
73
|
+
width={1200}
|
|
74
|
+
height={800}
|
|
75
|
+
className="w-full h-auto rounded-xl border border-gray-100"
|
|
76
|
+
priority
|
|
77
|
+
/>
|
|
78
|
+
|
|
79
|
+
{/* Bottom Gradient Fade Overlay */}
|
|
80
|
+
<div className="absolute inset-x-0 bottom-0 h-40 bg-gradient-to-t from-white via-white/80 to-transparent pointer-events-none"></div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
{/* Floating UI Elements (Abstract representation of the "light rays" and depth) */}
|
|
84
|
+
<div className="absolute -top-10 -right-10 w-40 h-40 bg-blue-50/30 rounded-full blur-[80px]"></div>
|
|
85
|
+
<div className="absolute top-1/2 -left-20 w-60 h-60 bg-purple-50/20 rounded-full blur-[100px]"></div>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
</section>
|
|
89
|
+
);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export default HeroSection;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Image from "next/image";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Logos component featuring "Trusted by the best companies" section
|
|
6
|
+
* with monochrome/grayscale tech company logos.
|
|
7
|
+
*/
|
|
8
|
+
const Logos = () => {
|
|
9
|
+
const partners = [
|
|
10
|
+
{
|
|
11
|
+
name: "Netflix",
|
|
12
|
+
logo: "https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_2.png",
|
|
13
|
+
width: 120,
|
|
14
|
+
height: 40,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "Google",
|
|
18
|
+
logo: "https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_3.png",
|
|
19
|
+
width: 120,
|
|
20
|
+
height: 40,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: "Meta",
|
|
24
|
+
logo: "https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_4.png",
|
|
25
|
+
width: 120,
|
|
26
|
+
height: 40,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "OnlyFans",
|
|
30
|
+
logo: "https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/images_5.png",
|
|
31
|
+
width: 120,
|
|
32
|
+
height: 40,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
return (
|
|
37
|
+
<section className="py-24 md:py-32 bg-white overflow-hidden">
|
|
38
|
+
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
|
39
|
+
<div className="text-center mb-16 md:mb-20">
|
|
40
|
+
<h2 className="text-2xl md:text-[40px] font-semibold text-black tracking-tight mb-4">
|
|
41
|
+
Trusted by the best companies
|
|
42
|
+
</h2>
|
|
43
|
+
<p className="text-sm md:text-base text-muted-foreground max-w-2xl mx-auto font-normal">
|
|
44
|
+
Every AI is the choice of all the fortune 500 companies.
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div className="grid grid-cols-2 md:grid-cols-4 gap-8 md:gap-12 items-center justify-items-center">
|
|
49
|
+
{partners.map((partner) => (
|
|
50
|
+
<div
|
|
51
|
+
key={partner.name}
|
|
52
|
+
className="group relative flex items-center justify-center grayscale transition-all duration-300 hover:grayscale-0"
|
|
53
|
+
>
|
|
54
|
+
<Image
|
|
55
|
+
src={partner.logo}
|
|
56
|
+
alt={partner.name}
|
|
57
|
+
width={partner.width}
|
|
58
|
+
height={partner.height}
|
|
59
|
+
className="max-h-12 w-auto object-contain transition-transform duration-300 group-hover:scale-105"
|
|
60
|
+
/>
|
|
61
|
+
</div>
|
|
62
|
+
))}
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</section>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default Logos;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { Sun, Menu } from "lucide-react";
|
|
4
|
+
|
|
5
|
+
const Navbar = () => {
|
|
6
|
+
return (
|
|
7
|
+
<nav className="max-w-[1280px] fixed top-4 mx-auto inset-x-0 z-50 w-[95%] lg:w-full">
|
|
8
|
+
<div className="hidden lg:block w-full">
|
|
9
|
+
<div className="w-full flex relative justify-between items-center px-4 py-2 rounded-full glass-nav transition duration-200">
|
|
10
|
+
<div className="flex flex-row gap-2 items-center">
|
|
11
|
+
<a
|
|
12
|
+
className="font-normal flex space-x-2 items-center text-sm mr-4 text-black px-2 py-1 relative z-20"
|
|
13
|
+
href="/"
|
|
14
|
+
>
|
|
15
|
+
<div className="h-5 w-6 bg-black rounded-br-lg rounded-tr-sm rounded-tl-lg rounded-bl-sm"></div>
|
|
16
|
+
<span className="font-semibold text-black text-[16px] tracking-normal">
|
|
17
|
+
Every AI
|
|
18
|
+
</span>
|
|
19
|
+
</a>
|
|
20
|
+
|
|
21
|
+
<div className="flex items-center gap-1.5">
|
|
22
|
+
<a
|
|
23
|
+
className="flex items-center justify-center text-[14px] font-medium leading-[110%] px-4 py-2 rounded-md hover:bg-[#F5F5F5] transition-colors text-[#525252] hover:text-black"
|
|
24
|
+
href="/pricing"
|
|
25
|
+
>
|
|
26
|
+
Pricing
|
|
27
|
+
</a>
|
|
28
|
+
<a
|
|
29
|
+
className="flex items-center justify-center text-[14px] font-medium leading-[110%] px-4 py-2 rounded-md hover:bg-[#F5F5F5] transition-colors text-[#525252] hover:text-black"
|
|
30
|
+
href="/blog"
|
|
31
|
+
>
|
|
32
|
+
Blog
|
|
33
|
+
</a>
|
|
34
|
+
<a
|
|
35
|
+
className="flex items-center justify-center text-[14px] font-medium leading-[110%] px-4 py-2 rounded-md hover:bg-[#F5F5F5] transition-colors text-[#525252] hover:text-black"
|
|
36
|
+
href="/contact"
|
|
37
|
+
>
|
|
38
|
+
Contact
|
|
39
|
+
</a>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div className="flex space-x-2 items-center">
|
|
44
|
+
<button className="w-10 h-10 flex hover:bg-gray-50 rounded-lg items-center justify-center outline-none transition-colors overflow-hidden">
|
|
45
|
+
<Sun className="h-4 w-4 text-neutral-700" />
|
|
46
|
+
<span className="sr-only">Toggle theme</span>
|
|
47
|
+
</button>
|
|
48
|
+
|
|
49
|
+
<a
|
|
50
|
+
className="relative z-10 bg-transparent hover:bg-gray-100 border border-transparent text-black text-[14px] transition font-medium duration-200 rounded-full px-4 py-2 flex items-center justify-center"
|
|
51
|
+
href="/login"
|
|
52
|
+
>
|
|
53
|
+
Login
|
|
54
|
+
</a>
|
|
55
|
+
<a
|
|
56
|
+
className="bg-[#171717] relative z-10 hover:bg-black/90 border border-transparent text-white text-[14px] transition font-medium duration-200 rounded-full px-4 py-2 flex items-center justify-center shadow-[0px_-1px_0px_0px_rgba(255,255,255,0.25)_inset,0px_1px_0px_0px_rgba(255,255,255,0.25)_inset]"
|
|
57
|
+
href="/signup"
|
|
58
|
+
>
|
|
59
|
+
Sign Up
|
|
60
|
+
</a>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
65
|
+
<div className="flex h-full w-full items-center lg:hidden">
|
|
66
|
+
<div className="flex justify-between items-center w-full bg-white/80 backdrop-blur-md border border-neutral-200/50 rounded-full px-3 py-2 transition duration-200 shadow-sm">
|
|
67
|
+
<a
|
|
68
|
+
className="font-normal flex space-x-2 items-center text-sm mr-4 text-black px-2 py-1 relative z-20"
|
|
69
|
+
href="/"
|
|
70
|
+
>
|
|
71
|
+
<div className="h-5 w-6 bg-black rounded-br-lg rounded-tr-sm rounded-tl-lg rounded-bl-sm"></div>
|
|
72
|
+
<span className="font-semibold text-black">Every AI</span>
|
|
73
|
+
</a>
|
|
74
|
+
<button className="p-2">
|
|
75
|
+
<Menu className="text-black h-6 w-6" />
|
|
76
|
+
</button>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
</nav>
|
|
80
|
+
);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export default Navbar;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* TestimonialsHeader Component
|
|
5
|
+
*
|
|
6
|
+
* Clones the 'Loved by people all over the universe' section with pixel-perfect accuracy.
|
|
7
|
+
* Adheres to the light theme and typography specified in the design instructions.
|
|
8
|
+
*/
|
|
9
|
+
export default function TestimonialsHeader() {
|
|
10
|
+
// Styles derived from computed_styles and high_level_design
|
|
11
|
+
// H2 Heading: 48px, 600 (SemiBold), 1.2 line-height, -0.02em letter-spacing
|
|
12
|
+
// Body (Lead/Small): 14px-18px, 400 (Regular), 1.6 line-height, muted-foreground (#666666)
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<section className="relative w-full pt-[120px] pb-[40px] px-4 md:px-0 bg-white">
|
|
16
|
+
<div className="max-w-7xl mx-auto flex flex-col items-center justify-center text-center">
|
|
17
|
+
|
|
18
|
+
{/* Main Heading */}
|
|
19
|
+
<h2 className="text-[32px] md:text-[48px] font-semibold text-black tracking-[-0.02em] leading-[1.2] mb-4 max-w-3xl mx-auto">
|
|
20
|
+
Loved by people all over the universe
|
|
21
|
+
</h2>
|
|
22
|
+
|
|
23
|
+
{/* Subtext regarding social media influence */}
|
|
24
|
+
<div className="max-w-[580px] mx-auto space-y-1">
|
|
25
|
+
<p className="text-[14px] md:text-[16px] text-muted-foreground font-normal leading-[1.6]">
|
|
26
|
+
Every AI is used by millions of people around the globe.
|
|
27
|
+
</p>
|
|
28
|
+
<p className="text-[14px] md:text-[16px] text-muted-foreground font-normal leading-[1.6]">
|
|
29
|
+
Our APIs have fan bases and people fight for us over twitter.
|
|
30
|
+
</p>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
</div>
|
|
34
|
+
|
|
35
|
+
{/*
|
|
36
|
+
Note: Per the high-level design, this section precedes the testimonial grid.
|
|
37
|
+
The layout uses generous white space (120px padding) to maintain the clean SaaS aesthetic.
|
|
38
|
+
*/}
|
|
39
|
+
</section>
|
|
40
|
+
);
|
|
41
|
+
}
|