26 Commits

Author SHA1 Message Date
81368e48ad Merge version_5 into main
Merge version_5 into main
2026-04-17 11:59:21 +00:00
6dc303027a Update theme colors 2026-04-17 11:59:18 +00:00
e81205f051 Merge version_4 into main
Merge version_4 into main
2026-04-17 11:50:22 +00:00
6c3f0a512e Update src/app/feed/page.tsx 2026-04-17 11:50:16 +00:00
a9b751cfd3 Merge version_3 into main
Merge version_3 into main
2026-04-17 11:43:08 +00:00
f2333d8f8c Update src/app/login/page.tsx 2026-04-17 11:43:05 +00:00
452d93ac52 Merge version_3 into main
Merge version_3 into main
2026-04-17 11:42:43 +00:00
7526acff2e Update src/app/login/page.tsx 2026-04-17 11:42:37 +00:00
cdd7144432 Merge version_3 into main
Merge version_3 into main
2026-04-17 11:42:17 +00:00
bf9eaa78ff Update src/app/profile/page.tsx 2026-04-17 11:42:13 +00:00
7cfe4a5412 Update src/app/page.tsx 2026-04-17 11:42:13 +00:00
86f1f3a39f Update src/app/notifications/page.tsx 2026-04-17 11:42:13 +00:00
5397f038a1 Update src/app/login/page.tsx 2026-04-17 11:42:12 +00:00
5c4a4e4a7f Update src/app/feed/page.tsx 2026-04-17 11:42:12 +00:00
003f1846d1 Merge version_2 into main
Merge version_2 into main
2026-04-17 11:40:12 +00:00
043970756d Update src/app/signup/page.tsx 2026-04-17 11:40:06 +00:00
b2dee85734 Update src/app/login/page.tsx 2026-04-17 11:40:06 +00:00
fb71c12df7 Merge version_2 into main
Merge version_2 into main
2026-04-17 11:39:44 +00:00
ceab102022 Add src/app/signup/page.tsx 2026-04-17 11:39:41 +00:00
97e64d531f Add src/app/profile/page.tsx 2026-04-17 11:39:41 +00:00
78573845bc Update src/app/page.tsx 2026-04-17 11:39:40 +00:00
0ac7700ed1 Add src/app/notifications/page.tsx 2026-04-17 11:39:40 +00:00
435936c73e Add src/app/messaging/page.tsx 2026-04-17 11:39:40 +00:00
c8f46cc9da Add src/app/login/page.tsx 2026-04-17 11:39:39 +00:00
b9dfe94e5e Add src/app/feed/page.tsx 2026-04-17 11:39:39 +00:00
c8e091f9d3 Add src/app/create-post/page.tsx 2026-04-17 11:39:38 +00:00
9 changed files with 564 additions and 254 deletions

View File

@@ -0,0 +1,84 @@
"use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import Input from '@/components/form/Input';
import { Upload, FileText, CheckCircle } from "lucide-react";
export default function CreatePostPage() {
const [content, setContent] = useState("");
const [title, setTitle] = useState("");
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="grid"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Features", id: "/#features" },
{ name: "Community", id: "/#testimonials" },
{ name: "FAQ", id: "/#faq" },
{ name: "Create Post", id: "/create-post" },
]}
brandName="Connect"
/>
<main className="min-h-screen pt-32 pb-20 px-6">
<div className="max-w-3xl mx-auto bg-white p-8 rounded-lg shadow-sm border border-slate-200">
<h1 className="text-3xl font-bold mb-8">Create a New Post</h1>
<div className="space-y-6">
<div>
<label className="block text-sm font-medium mb-2">Title</label>
<Input value={title} onChange={setTitle} placeholder="Enter post title" />
</div>
<div>
<label className="block text-sm font-medium mb-2">Content</label>
<textarea
value={content}
onChange={(e) => setContent(e.target.value)}
className="w-full min-h-[200px] p-4 border border-slate-200 rounded-md"
placeholder="Write your story..."
/>
</div>
<div className="border-2 border-dashed border-slate-300 rounded-lg p-8 flex flex-col items-center justify-center text-center">
<Upload className="w-10 h-10 text-slate-400 mb-4" />
<p className="text-slate-600">Drag & drop media or click to upload</p>
</div>
<button
className="w-full bg-blue-600 text-white py-3 rounded-md font-semibold hover:bg-blue-700 flex items-center justify-center gap-2"
onClick={() => alert("Post published!")}
>
<CheckCircle className="w-5 h-5" />
Publish Post
</button>
</div>
</div>
</main>
<FooterBaseReveal
logoText="Connect"
columns={[
{ title: "Product", items: [{ label: "Features", href: "/#features" }, { label: "Community", href: "/#testimonials" }] },
{ title: "Company", items: [{ label: "About", href: "#" }, { label: "Careers", href: "#" }] },
{ title: "Legal", items: [{ label: "Privacy", href: "#" }, { label: "Terms", href: "#" }] },
]}
/>
</ThemeProvider>
);
}

91
src/app/feed/page.tsx Normal file
View File

@@ -0,0 +1,91 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import { Heart, MessageCircle, Share2, MoreHorizontal } from "lucide-react";
import { useState, useEffect, useCallback, useRef } from "react";
const POSTS_DATA = [
{ id: "1", author: "Alex J.", content: "Just launched the new version of our platform! So excited to share it with everyone. #tech #launch", likes: 120, comments: 45 },
{ id: "2", author: "Sam K.", content: "Beautiful morning in the office. Productive day ahead! ☕", likes: 85, comments: 12 },
{ id: "3", author: "Jamie R.", content: "Exploring new design patterns today. What do you think about minimalism?", likes: 210, comments: 89 },
{ id: "4", author: "Jordan L.", content: "Finally finished that project. Time for a long break.", likes: 300, comments: 56 },
{ id: "5", author: "Casey B.", content: "Check out these cool new features coming soon to the app!", likes: 450, comments: 120 },
];
export default function FeedPage() {
const [posts, setPosts] = useState(POSTS_DATA);
const [loading, setLoading] = useState(false);
const lenisRef = useRef<any>(null);
const loadMore = useCallback(() => {
if (loading) return;
setLoading(true);
setTimeout(() => {
setPosts(prev => [...prev, ...POSTS_DATA.map(p => ({ ...p, id: Math.random().toString() }))]);
setLoading(false);
}, 1000);
}, [loading]);
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="grid"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root ref={lenisRef}>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Feed", id: "/feed" },
]}
brandName="Connect"
/>
<main className="pt-32 pb-20 px-4 max-w-2xl mx-auto space-y-6">
<h1 className="text-4xl font-bold mb-8">Community Feed</h1>
{posts.map((post) => (
<div
key={post.id}
onClick={() => {
const lenis = lenisRef.current?.lenis;
if (lenis) lenis.scrollTo(`#post-${post.id}`, { offset: -100 });
}}
id={`post-${post.id}`}
className="p-6 rounded-2xl border bg-card shadow-sm hover:shadow-md transition-shadow cursor-pointer"
>
<div className="flex items-center justify-between mb-4">
<div className="flex items-center gap-3">
<div className="w-10 h-10 rounded-full bg-accent" />
<span className="font-semibold">{post.author}</span>
</div>
<MoreHorizontal className="text-muted-foreground cursor-pointer" />
</div>
<p className="text-lg mb-6">{post.content}</p>
<div className="flex gap-6 text-muted-foreground">
<button className="flex items-center gap-2 hover:text-primary"><Heart size={20} /> {post.likes}</button>
<button className="flex items-center gap-2 hover:text-primary"><MessageCircle size={20} /> {post.comments}</button>
<button className="flex items-center gap-2 hover:text-primary"><Share2 size={20} /></button>
</div>
</div>
))}
{loading && <div className="text-center py-4">Loading more posts...</div>}
</main>
<FooterBaseReveal
logoText="Connect"
columns={[]}
/>
</ReactLenis>
</ThemeProvider>
);
}

60
src/app/login/page.tsx Normal file
View File

@@ -0,0 +1,60 @@
"use client";
import { useState } from 'react';
import { ThemeProvider } from '@/providers/themeProvider/ThemeProvider';
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import Input from '@/components/form/Input';
import ButtonTextShift from '@/components/button/ButtonTextShift/ButtonTextShift';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
export default function LoginPage() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const navLinks = [
{ name: "Home", id: "/" },
{ name: "Login", id: "/login" },
];
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<div className="min-h-screen flex flex-col">
<div id="nav" data-section="nav">
<NavbarStyleApple
brandName="Connect"
navItems={navLinks}
/>
</div>
<main className="flex-grow flex items-center justify-center p-6">
<div className="w-full max-w-md p-8 bg-card rounded-xl border border-border space-y-6">
<h1 className="text-3xl font-bold">Welcome Back</h1>
<div className="space-y-4">
<Input value={email} onChange={setEmail} placeholder="Email" />
<Input value={password} onChange={setPassword} placeholder="Password" type="password" />
<ButtonTextShift text="Login" className="w-full" />
</div>
</div>
</main>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="Connect"
columns={[
{ title: "Navigation", items: [{ label: "Home", href: "/" }, { label: "Login", href: "/login" }] }
]}
/>
</div>
</div>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,83 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import { useState } from 'react';
import { MessageCircle, Send, Search, ChevronLeft } from 'lucide-react';
export default function MessagingPage() {
const [activeChat, setActiveChat] = useState<string | null>(null);
const conversations = [
{ id: '1', name: 'Alex J.', lastMessage: 'See you later!', time: '10:30 AM' },
{ id: '2', name: 'Sam K.', lastMessage: 'Great idea!', time: '9:15 AM' },
{ id: '3', name: 'Jamie R.', lastMessage: 'Thanks for the help.', time: 'Yesterday' },
];
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="grid"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<div className="min-h-screen flex flex-col">
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Messaging", id: "/messaging" }
]}
brandName="Connect"
/>
<main className="flex-1 flex max-w-6xl mx-auto w-full pt-24 pb-12 gap-6 px-4">
<div className={`w-full md:w-1/3 border rounded-xl p-4 flex flex-col gap-4 ${activeChat ? 'hidden md:flex' : 'flex'}`}>
<div className="flex items-center gap-2 border-b pb-4">
<Search className="w-5 h-5 text-gray-500" />
<input placeholder="Search chats..." className="flex-1 outline-none" />
</div>
{conversations.map(chat => (
<button key={chat.id} onClick={() => setActiveChat(chat.id)} className="flex justify-between items-center p-3 hover:bg-gray-100 rounded-lg">
<div className="flex items-center gap-3">
<div className="w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center"><MessageCircle className="w-5 h-5 text-blue-600" /></div>
<div>
<p className="font-semibold">{chat.name}</p>
<p className="text-sm text-gray-500 text-left">{chat.lastMessage}</p>
</div>
</div>
<span className="text-xs text-gray-400">{chat.time}</span>
</button>
))}
</div>
<div className={`w-full md:w-2/3 border rounded-xl p-6 flex flex-col ${activeChat ? 'flex' : 'hidden md:flex items-center justify-center text-gray-400'}`}>
{activeChat ? (
<div className="flex flex-col h-full">
<button onClick={() => setActiveChat(null)} className="md:hidden flex items-center mb-4">
<ChevronLeft /> Back
</button>
<div className="flex-1 space-y-4">
<p className="text-center text-sm text-gray-400">Today</p>
<div className="max-w-[70%] p-3 rounded-lg bg-blue-600 text-white self-end ml-auto">Hey, how are you?</div>
<div className="max-w-[70%] p-3 rounded-lg bg-gray-100 self-start">Doing great, thanks!</div>
</div>
<div className="flex gap-2 mt-4">
<input className="flex-1 border rounded-lg px-4 py-2" placeholder="Type a message..." />
<button className="bg-blue-600 text-white px-4 py-2 rounded-lg"><Send className="w-5 h-5" /></button>
</div>
</div>
) : (
<p>Select a conversation to start messaging</p>
)}
</div>
</main>
</div>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,73 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import { Bell, Heart, MessageCircle, UserPlus } from "lucide-react";
export default function NotificationsPage() {
const notifications = [
{ id: "1", type: "like", user: "Alex J.", content: "liked your photo", icon: Heart, time: "2m ago" },
{ id: "2", type: "comment", user: "Jamie R.", content: "commented on your post", icon: MessageCircle, time: "1h ago" },
{ id: "3", type: "follow", user: "Sam K.", content: "started following you", icon: UserPlus, time: "3h ago" },
{ id: "4", type: "like", user: "Jordan L.", content: "liked your comment", icon: Heart, time: "5h ago" },
];
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="grid"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Notifications", id: "/notifications" },
]}
brandName="Connect"
/>
</div>
<main className="pt-32 pb-20 px-6 max-w-4xl mx-auto min-h-screen">
<h1 className="text-4xl font-bold mb-10 flex items-center gap-3">
<Bell className="w-8 h-8" /> Notifications
</h1>
<div className="space-y-4">
{notifications.map((n) => (
<div key={n.id} className="p-4 rounded-xl border border-border flex items-center gap-4 bg-card">
<div className="p-3 rounded-full bg-primary/10">
<n.icon className="w-5 h-5 text-primary" />
</div>
<div>
<p className="font-medium">{n.user} {n.content}</p>
<p className="text-sm text-muted-foreground">{n.time}</p>
</div>
</div>
))}
</div>
</main>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="Connect"
columns={[
{ title: "Product", items: [{ label: "Features", href: "/#features" }, { label: "Community", href: "/#testimonials" }] },
{ title: "Company", items: [{ label: "About", href: "/#about" }, { label: "Careers", href: "#" }] },
{ title: "Legal", items: [{ label: "Privacy", href: "#" }, { label: "Terms", href: "#" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -32,22 +32,10 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarStyleApple
navItems={[
{
name: "Home",
id: "hero",
},
{
name: "Features",
id: "features",
},
{
name: "Community",
id: "testimonials",
},
{
name: "FAQ",
id: "faq",
},
{ name: "Home", id: "hero" },
{ name: "Features", id: "features" },
{ name: "Community", id: "testimonials" },
{ name: "FAQ", id: "faq" },
]}
brandName="Connect"
/>
@@ -56,100 +44,33 @@ export default function LandingPage() {
<div id="hero" data-section="hero">
<HeroSplitTestimonial
useInvertedBackground={false}
background={{
variant: "gradient-bars",
}}
background={{ variant: "gradient-bars" }}
title="Your world, connected."
description="Experience the next generation of social interaction. Share, connect, and discover your community in one seamless interface."
testimonials={[
{
name: "Alex J.",
handle: "@alexj",
testimonial: "The best platform for connecting with like-minded creators.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-co-worker-spending-time-office_23-2149328340.jpg",
},
{
name: "Sam K.",
handle: "@samk",
testimonial: "Finally, a social app that values privacy and design.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/dining-office_1098-15489.jpg",
},
{
name: "Jamie R.",
handle: "@jamier",
testimonial: "My go-to space for daily inspiration.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/glad-young-man-with-african-hairstyle-posing-with-arms-crossed-his-office-with-other-employees-male-manager-blue-shirt-smiling-conference-workplace_197531-3748.jpg",
},
{
name: "Jordan L.",
handle: "@jordanl",
testimonial: "Incredibly smooth and intuitive, highly recommended.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-cheerful-businesswoman-drinking-coffee-smiling-workplace-office_176420-6974.jpg",
},
{
name: "Casey B.",
handle: "@caseyb",
testimonial: "The community features are simply unmatched.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-camera-with-crossed-arms-happy-confident-satisfied-expression-lateral-view_1194-632052.jpg",
},
]}
buttons={[
{
text: "Get Started",
href: "#",
},
{ name: "Alex J.", handle: "@alexj", testimonial: "The best platform for connecting with like-minded creators.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-co-worker-spending-time-office_23-2149328340.jpg" },
{ name: "Sam K.", handle: "@samk", testimonial: "Finally, a social app that values privacy and design.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/dining-office_1098-15489.jpg" },
{ name: "Jamie R.", handle: "@jamier", testimonial: "My go-to space for daily inspiration.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/glad-young-man-with-african-hairstyle-posing-with-arms-crossed-his-office-with-other-employees-male-manager-blue-shirt-smiling-conference-workplace_197531-3748.jpg" },
{ name: "Jordan L.", handle: "@jordanl", testimonial: "Incredibly smooth and intuitive, highly recommended.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/young-beautiful-cheerful-businesswoman-drinking-coffee-smiling-workplace-office_176420-6974.jpg" },
{ name: "Casey B.", handle: "@caseyb", testimonial: "The community features are simply unmatched.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/smiling-camera-with-crossed-arms-happy-confident-satisfied-expression-lateral-view_1194-632052.jpg" },
]}
buttons={[{ text: "Get Started", href: "#" }]}
imageSrc="http://img.b2bpic.net/free-photo/cool-different-types-buttons_23-2150170585.jpg"
imageAlt="social media interface mockup"
mediaAnimation="blur-reveal"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/person-using-smartphone-his-automated-home_23-2149036912.jpg",
alt: "User avatar 1",
},
{
src: "http://img.b2bpic.net/free-photo/man-holding-smartphone-with-home-automation-app_23-2149036830.jpg",
alt: "User avatar 2",
},
{
src: "http://img.b2bpic.net/free-photo/man-controlling-smart-lamp-with-his-phone_23-2149036887.jpg",
alt: "User avatar 3",
},
{
src: "http://img.b2bpic.net/free-photo/high-angle-hands-holding-smartphone_23-2150671596.jpg",
alt: "User avatar 4",
},
{
src: "http://img.b2bpic.net/free-photo/close-up-modern-laptop-with-rate-charts-display-while-man-woman-working-business-project-design-computer-screen-with-data-chart-information-finance-analysis-desk_482257-40065.jpg",
alt: "User avatar 5",
},
{ src: "http://img.b2bpic.net/free-photo/person-using-smartphone-his-automated-home_23-2149036912.jpg", alt: "User avatar 1" },
{ src: "http://img.b2bpic.net/free-photo/man-holding-smartphone-with-home-automation-app_23-2149036830.jpg", alt: "User avatar 2" },
{ src: "http://img.b2bpic.net/free-photo/man-controlling-smart-lamp-with-his-phone_23-2149036887.jpg", alt: "User avatar 3" },
{ src: "http://img.b2bpic.net/free-photo/high-angle-hands-holding-smartphone_23-2150671596.jpg", alt: "User avatar 4" },
{ src: "http://img.b2bpic.net/free-photo/close-up-modern-laptop-with-rate-charts-display-while-man-woman-working-business-project-design-computer-screen-with-data-chart-information-finance-analysis-desk_482257-40065.jpg", alt: "User avatar 5" },
]}
marqueeItems={[
{
type: "text",
text: "Connect with creators",
},
{
type: "text",
text: "Privacy-first design",
},
{
type: "text",
text: "Global interaction",
},
{
type: "text",
text: "Real-time updates",
},
{
type: "text",
text: "Join the revolution",
},
{ type: "text", text: "Connect with creators" },
{ type: "text", text: "Privacy-first design" },
{ type: "text", text: "Global interaction" },
{ type: "text", text: "Real-time updates" },
{ type: "text", text: "Join the revolution" },
]}
/>
</div>
@@ -159,11 +80,7 @@ export default function LandingPage() {
useInvertedBackground={true}
title="Built for Connection"
description="We believe social media should be an empowering space. Our platform focuses on quality interactions, intuitive design, and user-centric features."
buttons={[
{
text: "Learn More",
},
]}
buttons={[{ text: "Learn More" }]}
imageSrc="http://img.b2bpic.net/free-photo/woman-property-engineer-searching-layout-details-laptop-office_482257-130146.jpg"
imageAlt="digital connection ui concept"
/>
@@ -176,27 +93,9 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
features={[
{
title: "Real-time Messaging",
description: "Instant connections with end-to-end encryption.",
imageSrc: "http://img.b2bpic.net/free-photo/geometric-abstract-phone-wallpaper-technology-concept-connecting-dots-design_53876-160212.jpg",
titleImageSrc: "http://img.b2bpic.net/free-photo/business-network-background-connecting-dots-technology-design_53876-160210.jpg",
buttonText: "Discover",
},
{
title: "Media Creation",
description: "Powerful tools to edit and share text, images, and video.",
imageSrc: "http://img.b2bpic.net/free-vector/business-elements-technology_1257-252.jpg",
titleImageSrc: "http://img.b2bpic.net/free-vector/website-design-proposal-template-design_742173-25243.jpg",
buttonText: "Create",
},
{
title: "Smart Notifications",
description: "Never miss what matters with our intelligent alert system.",
imageSrc: "http://img.b2bpic.net/free-photo/speech-bubble-chat-message-icon-with-bell-notification-alert-notice-reminder-symbol-conversation-button-icon-symbol-background-3d-illustration_56104-2083.jpg",
titleImageSrc: "http://img.b2bpic.net/free-photo/closeup-calendar-app_116348-5.jpg",
buttonText: "Configure",
},
{ title: "Real-time Messaging", description: "Instant connections with end-to-end encryption.", imageSrc: "http://img.b2bpic.net/free-photo/geometric-abstract-phone-wallpaper-technology-concept-connecting-dots-design_53876-160212.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/business-network-background-connecting-dots-technology-design_53876-160210.jpg", buttonText: "Discover" },
{ title: "Media Creation", description: "Powerful tools to edit and share text, images, and video.", imageSrc: "http://img.b2bpic.net/free-vector/business-elements-technology_1257-252.jpg", titleImageSrc: "http://img.b2bpic.net/free-vector/website-design-proposal-template-design_742173-25243.jpg", buttonText: "Create" },
{ title: "Smart Notifications", description: "Never miss what matters with our intelligent alert system.", imageSrc: "http://img.b2bpic.net/free-photo/speech-bubble-chat-message-icon-with-bell-notification-alert-notice-reminder-symbol-conversation-button-icon-symbol-background-3d-illustration_56104-2083.jpg", titleImageSrc: "http://img.b2bpic.net/free-photo/closeup-calendar-app_116348-5.jpg", buttonText: "Configure" },
]}
title="Feature Rich Experience"
description="Powerful tools designed to keep you connected and inspired."
@@ -209,24 +108,9 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={true}
metrics={[
{
id: "m1",
icon: Users,
title: "Active Users",
value: "1M+",
},
{
id: "m2",
icon: MessageCircle,
title: "Messages Daily",
value: "50M",
},
{
id: "m3",
icon: Share2,
title: "Posts Shared",
value: "10M",
},
{ id: "m1", icon: Users, title: "Active Users", value: "1M+" },
{ id: "m2", icon: MessageCircle, title: "Messages Daily", value: "50M" },
{ id: "m3", icon: Share2, title: "Posts Shared", value: "10M" },
]}
title="Our Community"
description="Growing rapidly with a global user base."
@@ -237,13 +121,7 @@ export default function LandingPage() {
<SocialProofOne
textboxLayout="default"
useInvertedBackground={false}
names={[
"TechCorp",
"Innovate",
"GlobalConnect",
"CreatorBase",
"SocialWave",
]}
names={["TechCorp", "Innovate", "GlobalConnect", "CreatorBase", "SocialWave"]}
title="Trusted by Communities"
description="Our platform is growing worldwide."
/>
@@ -254,46 +132,11 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={true}
testimonials={[
{
id: "1",
title: "Amazing",
quote: "The best social experience ever.",
name: "Sarah",
role: "User",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-businesswoman_23-2149153830.jpg",
},
{
id: "2",
title: "Love it",
quote: "I find so much inspiration here.",
name: "Mark",
role: "Creator",
imageSrc: "http://img.b2bpic.net/free-photo/nervous-puzzled-woman-banker-bites-lips-worries_273609-45620.jpg",
},
{
id: "3",
title: "Great features",
quote: "The messaging system is flawless.",
name: "Anna",
role: "User",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-it-technician-using-pc-innovative-startup-office_482257-125548.jpg",
},
{
id: "4",
title: "Highly recommend",
quote: "Community feel is unmatched.",
name: "David",
role: "User",
imageSrc: "http://img.b2bpic.net/free-photo/confident-senior-executive-looking-camera_1262-2374.jpg",
},
{
id: "5",
title: "Fantastic app",
quote: "My favorite social platform.",
name: "Elena",
role: "Creator",
imageSrc: "http://img.b2bpic.net/free-photo/closeup-caucasian-man-with-poker-face-wearing-glasses-with-red-light-effect_181624-25965.jpg",
},
{ id: "1", title: "Amazing", quote: "The best social experience ever.", name: "Sarah", role: "User", imageSrc: "http://img.b2bpic.net/free-photo/close-up-young-businesswoman_23-2149153830.jpg" },
{ id: "2", title: "Love it", quote: "I find so much inspiration here.", name: "Mark", role: "Creator", imageSrc: "http://img.b2bpic.net/free-photo/nervous-puzzled-woman-banker-bites-lips-worries_273609-45620.jpg" },
{ id: "3", title: "Great features", quote: "The messaging system is flawless.", name: "Anna", role: "User", imageSrc: "http://img.b2bpic.net/free-photo/portrait-cheerful-it-technician-using-pc-innovative-startup-office_482257-125548.jpg" },
{ id: "4", title: "Highly recommend", quote: "Community feel is unmatched.", name: "David", role: "User", imageSrc: "http://img.b2bpic.net/free-photo/confident-senior-executive-looking-camera_1262-2374.jpg" },
{ id: "5", title: "Fantastic app", quote: "My favorite social platform.", name: "Elena", role: "Creator", imageSrc: "http://img.b2bpic.net/free-photo/closeup-caucasian-man-with-poker-face-wearing-glasses-with-red-light-effect_181624-25965.jpg" },
]}
title="Community Voices"
description="Hear what our users are saying."
@@ -305,21 +148,9 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
faqs={[
{
id: "f1",
title: "Is the account free?",
content: "Yes, basic account features are free.",
},
{
id: "f2",
title: "How to verify?",
content: "Follow the instructions in your profile settings.",
},
{
id: "f3",
title: "Privacy settings?",
content: "You can customize visibility in settings.",
},
{ id: "f1", title: "Is the account free?", content: "Yes, basic account features are free." },
{ id: "f2", title: "How to verify?", content: "Follow the instructions in your profile settings." },
{ id: "f3", title: "Privacy settings?", content: "You can customize visibility in settings." },
]}
imageSrc="http://img.b2bpic.net/free-photo/orange-crystal-background_1017-3751.jpg"
title="Need Help?"
@@ -332,15 +163,9 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactText
useInvertedBackground={true}
background={{
variant: "sparkles-gradient",
}}
background={{ variant: "sparkles-gradient" }}
text="Ready to join the network?"
buttons={[
{
text: "Sign Up Now",
},
]}
buttons={[{ text: "Sign Up Now" }]}
/>
</div>
@@ -349,42 +174,21 @@ export default function LandingPage() {
logoText="Connect"
columns={[
{
title: "Product",
items: [
{
label: "Features",
href: "#features",
},
{
label: "Community",
href: "#testimonials",
},
title: "Product", items: [
{ label: "Features", href: "#features" },
{ label: "Community", href: "#testimonials" },
],
},
{
title: "Company",
items: [
{
label: "About",
href: "#",
},
{
label: "Careers",
href: "#",
},
title: "Company", items: [
{ label: "About", href: "#" },
{ label: "Careers", href: "#" },
],
},
{
title: "Legal",
items: [
{
label: "Privacy",
href: "#",
},
{
label: "Terms",
href: "#",
},
title: "Legal", items: [
{ label: "Privacy", href: "#" },
{ label: "Terms", href: "#" },
],
},
]}
@@ -393,4 +197,4 @@ export default function LandingPage() {
</ReactLenis>
</ThemeProvider>
);
}
}

69
src/app/profile/page.tsx Normal file
View File

@@ -0,0 +1,69 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
export default function ProfilePage() {
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
defaultTextAnimation="entrance-slide"
borderRadius="soft"
contentWidth="medium"
sizing="mediumLarge"
background="grid"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root>
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Features", id: "/#features" },
{ name: "Community", id: "/#testimonials" },
{ name: "FAQ", id: "/#faq" },
{ name: "Profile", id: "/profile" },
]}
brandName="Connect"
/>
<main className="pt-24 pb-12 min-h-screen px-6">
<div className="max-w-4xl mx-auto space-y-8">
<h1 className="text-4xl font-bold">User Profile</h1>
<div className="bg-[var(--card)] p-8 rounded-lg shadow-sm border border-[var(--background-accent)]">
<div className="flex items-center gap-6">
<div className="w-24 h-24 rounded-full bg-[var(--background-accent)] flex items-center justify-center text-2xl font-bold">JD</div>
<div>
<h2 className="text-2xl font-semibold">John Doe</h2>
<p className="text-[var(--foreground)] opacity-70">@johndoe</p>
</div>
</div>
<div className="mt-8">
<h3 className="text-lg font-medium">Bio</h3>
<p className="mt-2 opacity-80">Creative soul, photography enthusiast, and tech explorer. Always looking for new connections!</p>
</div>
</div>
<div className="bg-[var(--card)] p-8 rounded-lg shadow-sm border border-[var(--background-accent)]">
<h3 className="text-xl font-semibold mb-6">Account Settings</h3>
<div className="space-y-4">
<button className="px-6 py-2 bg-[var(--primary-cta)] text-white rounded">Edit Profile</button>
<button className="px-6 py-2 bg-[var(--secondary-cta)] text-[var(--foreground)] rounded ml-4">Change Password</button>
</div>
</div>
</div>
</main>
<FooterBaseReveal
logoText="Connect"
columns={[
{ title: "Product", items: [{ label: "Features", href: "/#features" }, { label: "Community", href: "/#testimonials" }] },
{ title: "Company", items: [{ label: "About", href: "/#" }, { label: "Careers", href: "/#" }] },
{ title: "Legal", items: [{ label: "Privacy", href: "/#" }, { label: "Terms", href: "/#" }] },
]}
/>
</ReactLenis>
</ThemeProvider>
);
}

46
src/app/signup/page.tsx Normal file
View File

@@ -0,0 +1,46 @@
"use client";
import { useState } from 'react';
import { ThemeProvider } from '@/providers/themeProvider/ThemeProvider';
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import Input from '@/components/form/Input';
import ButtonTextShift from '@/components/button/ButtonTextShift/ButtonTextShift';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
export default function SignupPage() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<div className="min-h-screen flex flex-col">
<NavbarStyleApple
brandName="Connect"
navItems={[{ name: "Home", id: "/" }]}
/>
<main className="flex-grow flex items-center justify-center p-6">
<div className="w-full max-w-md p-8 bg-card rounded-xl border border-border space-y-6">
<h1 className="text-3xl font-bold">Create Account</h1>
<div className="space-y-4">
<Input value={email} onChange={setEmail} placeholder="Email" />
<Input value={password} onChange={setPassword} placeholder="Password" type="password" />
<ButtonTextShift text="Sign Up" className="w-full" />
</div>
</div>
</main>
<FooterBaseReveal logoText="Connect" columns={[]} />
</div>
</ThemeProvider>
);
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #0a0a0a;
--card: #1a1a1a;
--foreground: #ffffffe6;
--primary-cta: #e6e6e6;
--primary-cta-text: #0a0a0a;
--secondary-cta: #1a1a1a;
--secondary-cta-text: #ffffffe6;
--accent: #737373;
--background-accent: #737373;
--background: #ffffff;
--card: #f9f9f9;
--foreground: #000612e6;
--primary-cta: #15479c;
--primary-cta-text: #ffffff;
--secondary-cta: #f9f9f9;
--secondary-cta-text: #000612e6;
--accent: #e2e2e2;
--background-accent: #c4c4c4;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);