26 Commits

Author SHA1 Message Date
ceeea0a2d4 Merge version_7 into main
Merge version_7 into main
2026-03-09 21:54:19 +00:00
2b1e0a9867 Update src/app/page.tsx 2026-03-09 21:54:15 +00:00
bde437f5b9 Update src/app/layout.tsx 2026-03-09 21:54:15 +00:00
4aa6b91d5c Update src/app/contact/page.tsx 2026-03-09 21:54:14 +00:00
2da4e60f40 Merge version_7 into main
Merge version_7 into main
2026-03-09 21:53:18 +00:00
ca626149f0 Update src/app/page.tsx 2026-03-09 21:53:14 +00:00
fb624a3a17 Update src/app/contact/page.tsx 2026-03-09 21:53:14 +00:00
158f9bbf7a Merge version_5 into main
Merge version_5 into main
2026-03-09 21:50:02 +00:00
85940e40e6 Update src/app/contact/page.tsx 2026-03-09 21:49:58 +00:00
e80995a5d9 Merge version_5 into main
Merge version_5 into main
2026-03-09 21:49:02 +00:00
8277a71930 Update src/app/page.tsx 2026-03-09 21:48:58 +00:00
33cccae0b0 Update src/app/contact/page.tsx 2026-03-09 21:48:58 +00:00
27552304a3 Merge version_5 into main
Merge version_5 into main
2026-03-09 21:47:42 +00:00
7cbdc542b7 Update src/app/page.tsx 2026-03-09 21:47:23 +00:00
92c02c8d29 Add src/app/contact/page.tsx 2026-03-09 21:47:23 +00:00
25686faacc Update src/app/page.tsx 2026-03-09 21:46:08 +00:00
f738150a5e Update src/app/layout.tsx 2026-03-09 21:46:08 +00:00
c29a8f3715 Update src/app/contact/page.tsx 2026-03-09 21:46:07 +00:00
ad3ab30805 Switch to version 4: remove src/app/contact/page.tsx 2026-03-09 21:45:27 +00:00
4b795cdbf0 Switch to version 4: modified src/app/page.tsx 2026-03-09 21:45:27 +00:00
61e213f4bc Switch to version 4: modified src/app/layout.tsx 2026-03-09 21:45:26 +00:00
14e704ed97 Merge version_6 into main
Merge version_6 into main
2026-03-09 21:45:07 +00:00
e3e417d097 Update src/app/page.tsx 2026-03-09 21:43:52 +00:00
ee5bb2e6d4 Update src/app/layout.tsx 2026-03-09 21:43:51 +00:00
5f92b80815 Update src/app/contact/page.tsx 2026-03-09 21:43:51 +00:00
f1acd66ead Merge version_6 into main
Merge version_6 into main
2026-03-09 21:43:33 +00:00
3 changed files with 83 additions and 399 deletions

View File

@@ -2,253 +2,100 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
import HeroSplitTestimonial from "@/components/sections/hero/HeroSplitTestimonial";
import ContactCTA from "@/components/sections/contact/ContactCTA";
import FooterMedia from "@/components/sections/footer/FooterMedia";
import { Mail, Phone, MapPin } from "lucide-react";
import { useState } from "react";
import Textarea from "@/components/form/Textarea";
import ButtonDirectionalHover from "@/components/button/ButtonDirectionalHover/ButtonDirectionalHover";
interface Project {
id: string;
title: string;
description: string;
image: string;
}
const projects: Project[] = [
{
id: "1", title: "Brand Identity", description: "Complete visual identity system with logo, colors, and typography guidelines", image: "/placeholders/placeholder1.jpg"},
{
id: "2", title: "Website Redesign", description: "Modern responsive website with improved user experience and conversion rates", image: "/placeholders/placeholder2.jpg"},
{
id: "3", title: "Marketing Campaign", description: "Integrated digital marketing strategy across social media and email channels", image: "/placeholders/placeholder3.jpg"},
{
id: "4", title: "Product Launch", description: "End-to-end product launch campaign with positioning and messaging strategy", image: "/placeholders/placeholder4.jpg"},
{
id: "5", title: "UI Design System", description: "Comprehensive design system with components, patterns, and documentation", image: "/placeholders/placeholder5.jpg"},
{
id: "6", title: "Social Media Strategy", description: "Content strategy and calendar for consistent brand presence across platforms", image: "/placeholders/placeholder6.jpg"},
];
export default function ContactPage() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "About", id: "#about" },
{ name: "Features", id: "#features" },
{ name: "Pricing", id: "#pricing" },
{ name: "Contact", id: "/contact" },
];
const [formData, setFormData] = useState({
name: "", email: "", subject: "", message: ""
});
const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const { name, value } = e.target;
setFormData((prev) => ({ ...prev, [name]: value }));
};
const handleTextareaChange = (value: string) => {
setFormData((prev) => ({ ...prev, message: value }));
};
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
console.log("Form submitted:", formData);
// Handle form submission logic here
setFormData({ name: "", email: "", subject: "", message: "" });
};
const [hoveredId, setHoveredId] = useState<string | null>(null);
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="bold"
>
<div id="nav" data-section="nav">
<NavbarStyleApple navItems={navItems} brandName="Vortex" />
</div>
<div id="hero" data-section="hero">
<HeroSplitTestimonial
background={{ variant: "glowing-orb" }}
title="Get in Touch With Us"
description="Have questions or ready to start your project? We'd love to hear from you. Reach out and let's discuss how we can help transform your vision into reality."
tag="Contact"
imagePosition="right"
imageSrc="https://images.unsplash.com/photo-1552664730-d307ca884978?w=800&h=600&fit=crop"
imageAlt="Contact us"
testimonials={[
{
name: "Quick Response", handle: "We typically reply within 24 hours", testimonial: "Your inquiry is important to us and we prioritize quick, thoughtful responses.", rating: 5,
},
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Contact", id: "/contact" },
]}
buttons={[
{ text: "Send Message", href: "#contact-form" },
{ text: "Back Home", href: "/" },
]}
mediaAnimation="slide-up"
buttonAnimation="slide-up"
brandName="Vortex"
/>
</div>
<div id="contact-form" data-section="contact-form" className="py-20 px-4 md:px-0">
<div className="max-w-2xl mx-auto">
<div className="grid grid-cols-1 md:grid-cols-2 gap-12">
{/* Contact Information */}
<div className="space-y-8">
<div>
<h2 className="text-2xl md:text-3xl font-bold mb-6">Contact Information</h2>
<p className="text-base text-foreground/70 mb-8">
Get in touch with our team. We're here to help and answer any question you might have.
</p>
</div>
<div id="contact" data-section="contact" className="min-h-screen bg-background py-20 px-4">
<div className="max-w-7xl mx-auto">
<div className="mb-16">
<h1 className="text-4xl md:text-5xl font-bold mb-4 text-foreground">Our Work</h1>
<p className="text-lg text-foreground/70">Explore our portfolio of projects and mockups</p>
</div>
<div className="space-y-6">
<div className="flex items-start gap-4">
<div className="flex-shrink-0 mt-1">
<Mail className="w-6 h-6 text-primary-cta" />
</div>
<div>
<h3 className="font-semibold text-foreground mb-1">Email</h3>
<p className="text-foreground/70">hello@vortexweb.com</p>
<p className="text-sm text-foreground/50">We'll respond within 24 hours</p>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
{projects.map((project) => (
<div
key={project.id}
className="group cursor-pointer overflow-hidden rounded-lg"
onMouseEnter={() => setHoveredId(project.id)}
onMouseLeave={() => setHoveredId(null)}
>
{/* Image container */}
<div className="relative h-64 md:h-72 overflow-hidden rounded-lg bg-card">
<img
src={project.image}
alt={project.title}
className="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"
/>
{/* Overlay on hover */}
<div
className={`absolute inset-0 bg-background/90 flex items-center justify-center rounded-lg transition-opacity duration-300 ${
hoveredId === project.id ? "opacity-100" : "opacity-0"
}`}
>
<div className="text-center px-4">
<p className="text-foreground text-sm leading-relaxed">{project.description}</p>
</div>
</div>
</div>
<div className="flex items-start gap-4">
<div className="flex-shrink-0 mt-1">
<Phone className="w-6 h-6 text-primary-cta" />
</div>
<div>
<h3 className="font-semibold text-foreground mb-1">Phone</h3>
<p className="text-foreground/70">+1 (555) 123-4567</p>
<p className="text-sm text-foreground/50">Mon-Fri, 9am-6pm EST</p>
</div>
</div>
<div className="flex items-start gap-4">
<div className="flex-shrink-0 mt-1">
<MapPin className="w-6 h-6 text-primary-cta" />
</div>
<div>
<h3 className="font-semibold text-foreground mb-1">Office</h3>
<p className="text-foreground/70">123 Design Street</p>
<p className="text-foreground/70">San Francisco, CA 94105</p>
</div>
{/* Title underneath */}
<div className="mt-4">
<h3 className="text-lg font-semibold text-foreground">{project.title}</h3>
<p className="text-sm text-foreground/60 mt-1">{project.description}</p>
</div>
</div>
</div>
{/* Contact Form */}
<div>
<form onSubmit={handleSubmit} className="space-y-6">
<div>
<label htmlFor="name" className="block text-sm font-medium mb-2">
Full Name
</label>
<input
type="text"
id="name"
name="name"
value={formData.name}
onChange={handleInputChange}
required
className="w-full px-4 py-2 bg-card border border-accent/20 rounded-lg focus:outline-none focus:border-primary-cta transition-colors"
placeholder="John Doe"
/>
</div>
<div>
<label htmlFor="email" className="block text-sm font-medium mb-2">
Email Address
</label>
<input
type="email"
id="email"
name="email"
value={formData.email}
onChange={handleInputChange}
required
className="w-full px-4 py-2 bg-card border border-accent/20 rounded-lg focus:outline-none focus:border-primary-cta transition-colors"
placeholder="john@example.com"
/>
</div>
<div>
<label htmlFor="subject" className="block text-sm font-medium mb-2">
Subject
</label>
<input
type="text"
id="subject"
name="subject"
value={formData.subject}
onChange={handleInputChange}
required
className="w-full px-4 py-2 bg-card border border-accent/20 rounded-lg focus:outline-none focus:border-primary-cta transition-colors"
placeholder="Project inquiry"
/>
</div>
<div>
<label htmlFor="message" className="block text-sm font-medium mb-2">
Message
</label>
<Textarea
value={formData.message}
onChange={handleTextareaChange}
placeholder="Tell us about your project..."
rows={5}
required
/>
</div>
<div className="pt-4">
<ButtonDirectionalHover
text="Send Message"
type="submit"
/>
</div>
</form>
</div>
))}
</div>
</div>
</div>
<div id="contact-cta" data-section="contact-cta">
<ContactCTA
tag="Have Questions?"
tagIcon={Mail}
title="Can't Find What You're Looking For?"
description="Check out our FAQ page or reach out directly. Our support team is always ready to assist you."
buttons={[
{ text: "View FAQ", href: "/" },
{ text: "Back Home", href: "/" },
]}
background={{ variant: "radial-gradient" }}
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="https://images.unsplash.com/photo-1517694712202-14dd9538aa97?w=1920&h=600&fit=crop"
imageAlt="Footer background"
columns={[
{
title: "Product", items: [
{ label: "Features", href: "#features" },
{ label: "Pricing", href: "#pricing" },
{ label: "About", href: "#about" },
],
},
{
title: "Company", items: [
{ label: "Blog", href: "/" },
{ label: "Careers", href: "/" },
{ label: "Contact", href: "/contact" },
],
},
{
title: "Legal", items: [
{ label: "Privacy", href: "/" },
{ label: "Terms", href: "/" },
{ label: "Security", href: "/" },
],
},
]}
logoText="Vortex Web"
copyrightText="© 2025 Vortex Web. All rights reserved."
/>
</div>
</ThemeProvider>
);
}

View File

@@ -2,7 +2,7 @@ import type { Metadata } from "next";
import "./styles/globals.css";
export const metadata: Metadata = {
title: "Vortex Web - Digital Solutions", description: "Create exceptional digital experiences with our innovative design and marketing solutions."};
title: "Vortex", description: "Innovative design and marketing solutions for modern brands"};
export default function RootLayout({
children,

View File

@@ -2,204 +2,41 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleApple from "@/components/navbar/NavbarStyleApple/NavbarStyleApple";
import HeroSplitTestimonial from "@/components/sections/hero/HeroSplitTestimonial";
import MediaAbout from "@/components/sections/about/MediaAbout";
import FeatureCardTwentySix from "@/components/sections/feature/FeatureCardTwentySix";
import PricingCardOne from "@/components/sections/pricing/PricingCardOne";
import TestimonialCardTwo from "@/components/sections/testimonial/TestimonialCardTwo";
import ContactCTA from "@/components/sections/contact/ContactCTA";
import FooterMedia from "@/components/sections/footer/FooterMedia";
import { ArrowRight, Mail, Quote, Package } from "lucide-react";
import HeroLogo from "@/components/sections/hero/HeroLogo";
export default function Home() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "About", id: "#about" },
{ name: "Features", id: "#features" },
{ name: "Pricing", id: "#pricing" },
{ name: "Contact", id: "/contact" },
];
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="bold"
>
<div id="nav" data-section="nav">
<NavbarStyleApple navItems={navItems} brandName="Vortex" />
<NavbarStyleApple
navItems={[
{ name: "Home", id: "/" },
{ name: "Contact", id: "/contact" },
]}
brandName="Vortex"
/>
</div>
<div id="hero" data-section="hero">
<HeroSplitTestimonial
background={{ variant: "glowing-orb" }}
title="Build Better Digital Experiences"
description="Create exceptional user experiences with our innovative design and marketing solutions. We help modern brands stand out in the digital landscape."
tag="Digital Innovation"
imagePosition="right"
imageSrc="https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=800&h=600&fit=crop"
imageAlt="Digital design workspace"
testimonials={[
{
name: "Sarah Johnson", handle: "CEO, TechCorp", testimonial: "This transformed our digital presence completely. Amazing results!", rating: 5,
imageSrc: "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=100&h=100&fit=crop"
},
{
name: "Michael Chen", handle: "Founder, StartupX", testimonial: "The best design studio we've worked with. Highly recommended!", rating: 5,
imageSrc: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop"
},
]}
<HeroLogo
logoText="Vortex"
description="Innovative design and marketing solutions for modern brands"
buttons={[
{ text: "Get Started", href: "/contact" },
{ text: "Learn More", href: "#about" },
{ text: "Get Started", href: "https://github.com" },
{ text: "Learn More", href: "/contact" },
]}
mediaAnimation="slide-up"
buttonAnimation="slide-up"
/>
</div>
<div id="about" data-section="about">
<MediaAbout
title="About Vortex Web"
description="We're a team of designers, developers, and marketers passionate about creating digital solutions that matter. Our approach combines creativity with strategy to deliver results."
tag="About Us"
imageSrc="https://images.unsplash.com/photo-1552664730-d307ca884978?w=800&h=600&fit=crop"
imageAlt="Our team collaborating"
buttons={[{ text: "Explore Our Work", href: "#features" }]}
useInvertedBackground={false}
/>
</div>
<div id="features" data-section="features">
<FeatureCardTwentySix
features={[
{
title: "Strategic Design", description: "We create designs that align with your business goals and user needs.", imageSrc: "https://images.unsplash.com/photo-1561070791-2526d30994b5?w=800&h=600&fit=crop", imageAlt: "Strategic design process", buttonIcon: ArrowRight,
buttonHref: "/"
},
{
title: "Digital Marketing", description: "Reach your audience with targeted, data-driven marketing campaigns.", imageSrc: "https://images.unsplash.com/photo-1552664730-d307ca884978?w=800&h=600&fit=crop", imageAlt: "Marketing strategy session", buttonIcon: ArrowRight,
buttonHref: "/"
},
{
title: "Web Development", description: "Fast, secure, and scalable websites built with modern technology.", imageSrc: "https://images.unsplash.com/photo-1517694712202-14dd9538aa97?w=800&h=600&fit=crop", imageAlt: "Web development", buttonIcon: ArrowRight,
buttonHref: "/"
},
{
title: "Brand Strategy", description: "Build a strong brand identity that resonates with your target market.", imageSrc: "https://images.unsplash.com/photo-1561070791-2526d30994b5?w=800&h=600&fit=crop", imageAlt: "Brand strategy workshop", buttonIcon: ArrowRight,
buttonHref: "/"
},
]}
title="Our Services"
description="Comprehensive solutions for your digital needs"
tag="What We Offer"
textboxLayout="default"
useInvertedBackground={false}
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardOne
plans={[
{
id: "1", badge: "Starter", price: "$999", subtitle: "Perfect for small projects", features: [
"Up to 5 pages", "Responsive design", "Basic SEO optimization", "2 months support"
],
},
{
id: "2", badge: "Professional", badgeIcon: Package,
price: "$2,499", subtitle: "Most popular choice", features: [
"Up to 15 pages", "Advanced SEO", "E-commerce integration", "6 months support", "Analytics setup"
],
},
{
id: "3", badge: "Enterprise", price: "Custom", subtitle: "For large scale projects", features: [
"Unlimited pages", "Custom development", "Full marketing suite", "12 months support", "Dedicated account manager"
],
},
]}
title="Simple, Transparent Pricing"
description="Choose the perfect plan for your needs"
tag="Pricing"
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardTwo
testimonials={[
{
id: "1", name: "Alex Rivera", role: "Marketing Director", testimonial: "Working with Vortex Web was a game-changer for our company. Their attention to detail and creative approach delivered exceptional results.", imageSrc: "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=200&h=200&fit=crop", imageAlt: "Alex Rivera"
},
{
id: "2", name: "Emma Thompson", role: "CEO, Tech Innovations", testimonial: "The team understood our vision perfectly and executed it flawlessly. Highly professional and results-oriented.", imageSrc: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200&h=200&fit=crop", imageAlt: "Emma Thompson"
},
{
id: "3", name: "James Wilson", role: "Founder, Digital Co.", testimonial: "Outstanding work from start to finish. Our website traffic increased by 300% within the first month. Couldn't be happier!", imageSrc: "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200&h=200&fit=crop", imageAlt: "James Wilson"
},
]}
title="What Our Clients Say"
description="Real testimonials from companies we've partnered with"
tag="Testimonials"
textboxLayout="default"
useInvertedBackground={false}
animationType="slide-up"
/>
</div>
<div id="contact-cta" data-section="contact-cta">
<ContactCTA
tag="Get in Touch"
tagIcon={Mail}
title="Ready to Transform Your Digital Presence?"
description="Let's work together to create something amazing. Our team is ready to help you bring your vision to life."
buttons={[
{ text: "Contact Us", href: "/contact" },
{ text: "Schedule a Call", href: "/contact" },
]}
background={{ variant: "radial-gradient" }}
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterMedia
imageSrc="https://images.unsplash.com/photo-1517694712202-14dd9538aa97?w=1920&h=600&fit=crop"
imageAlt="Footer background"
columns={[
{
title: "Product", items: [
{ label: "Features", href: "#features" },
{ label: "Pricing", href: "#pricing" },
{ label: "About", href: "#about" },
],
},
{
title: "Company", items: [
{ label: "Blog", href: "/" },
{ label: "Careers", href: "/" },
{ label: "Contact", href: "/contact" },
],
},
{
title: "Legal", items: [
{ label: "Privacy", href: "/" },
{ label: "Terms", href: "/" },
{ label: "Security", href: "/" },
],
},
]}
logoText="Vortex Web"
copyrightText="© 2025 Vortex Web. All rights reserved."
imageSrc="/placeholders/placeholder5.jpg"
imageAlt="Hero background"
/>
</div>
</ThemeProvider>