Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f475d0fac6 | |||
| b2ecde2454 | |||
| 04d098055a | |||
| 6f576a5046 | |||
| 14991f3683 | |||
| e136b926f1 | |||
| dab0afeeed | |||
| 9f8937f966 | |||
| 783a08fdbd | |||
| c20c54e195 | |||
| 4cfe609272 | |||
| 9037daa791 | |||
| 31711e05af | |||
| e56ab89250 | |||
| 65c9019eef | |||
| 570431daae | |||
| f9b1176061 | |||
| fb3b048d3a | |||
| 289f878246 | |||
| db6bd9f65e |
@@ -4,10 +4,9 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
|||||||
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||||
import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard";
|
import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCard";
|
||||||
import FeatureCardNine from "@/components/sections/feature/FeatureCardNine";
|
import FeatureCardNine from "@/components/sections/feature/FeatureCardNine";
|
||||||
import TeamCardSix from "@/components/sections/team/TeamCardSix";
|
|
||||||
import ContactText from "@/components/sections/contact/ContactText";
|
import ContactText from "@/components/sections/contact/ContactText";
|
||||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
import { Heart, Workflow, Users } from "lucide-react";
|
import { Heart, Workflow } from "lucide-react";
|
||||||
|
|
||||||
export default function AboutPage() {
|
export default function AboutPage() {
|
||||||
const navItems = [
|
const navItems = [
|
||||||
@@ -59,24 +58,6 @@ export default function AboutPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="team" data-section="team">
|
|
||||||
<TeamCardSix
|
|
||||||
members={[
|
|
||||||
{
|
|
||||||
id: "1", name: "Lucas Pereira", role: "Lead Designer & Strategy", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-confident-mal-1772527369460-6104c452.png?_wi=3", imageAlt: "Lucas Pereira"
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
gridVariant="uniform-all-items-equal"
|
|
||||||
animationType="slide-up"
|
|
||||||
title="Meet Our Team"
|
|
||||||
description="The talented people behind our success"
|
|
||||||
textboxLayout="default"
|
|
||||||
useInvertedBackground={false}
|
|
||||||
tag="Team"
|
|
||||||
tagIcon={Users}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="process" data-section="process">
|
<div id="process" data-section="process">
|
||||||
<FeatureCardNine
|
<FeatureCardNine
|
||||||
title="Our Values & Culture"
|
title="Our Values & Culture"
|
||||||
|
|||||||
@@ -4,12 +4,8 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
|||||||
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||||
import ContactText from "@/components/sections/contact/ContactText";
|
import ContactText from "@/components/sections/contact/ContactText";
|
||||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
import { useState } from "react";
|
|
||||||
|
|
||||||
export default function ContactPage() {
|
export default function ContactPage() {
|
||||||
const [bookingFormData, setBookingFormData] = useState({
|
|
||||||
email: "", fullName: "", phoneNumber: ""});
|
|
||||||
|
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{ name: "Home", id: "/" },
|
{ name: "Home", id: "/" },
|
||||||
{ name: "Services", id: "/services" },
|
{ name: "Services", id: "/services" },
|
||||||
@@ -18,12 +14,6 @@ export default function ContactPage() {
|
|||||||
{ name: "Contact", id: "/contact" },
|
{ name: "Contact", id: "/contact" },
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleBookingSubmit = (e: React.FormEvent) => {
|
|
||||||
e.preventDefault();
|
|
||||||
console.log("Booking submitted:", bookingFormData);
|
|
||||||
setBookingFormData({ email: "", fullName: "", phoneNumber: "" });
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="hover-magnetic"
|
defaultButtonVariant="hover-magnetic"
|
||||||
@@ -57,70 +47,11 @@ export default function ContactPage() {
|
|||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
buttons={[
|
buttons={[
|
||||||
{ text: "Email Us", href: "mailto:hello@pulsedigital.com" },
|
{ text: "Email Us", href: "mailto:hello@pulsedigital.com" },
|
||||||
{ text: "Schedule a Call", href: "#booking" },
|
{ text: "Schedule a Call", href: "#" },
|
||||||
]}
|
]}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="booking" data-section="booking" className="py-20 bg-gradient-to-b from-background to-card">
|
|
||||||
<div className="container mx-auto px-4 max-w-2xl">
|
|
||||||
<div className="text-center mb-12">
|
|
||||||
<h2 className="text-4xl font-bold text-foreground mb-4">Schedule a Consultation</h2>
|
|
||||||
<p className="text-lg text-foreground/80">Book a meeting with our team to discuss your project</p>
|
|
||||||
</div>
|
|
||||||
<form onSubmit={handleBookingSubmit} className="bg-card rounded-lg p-8 shadow-lg border border-accent/20">
|
|
||||||
<div className="mb-6">
|
|
||||||
<label htmlFor="fullName" className="block text-sm font-medium text-foreground mb-2">
|
|
||||||
Full Name *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
id="fullName"
|
|
||||||
required
|
|
||||||
value={bookingFormData.fullName}
|
|
||||||
onChange={(e) => setBookingFormData({ ...bookingFormData, fullName: e.target.value })}
|
|
||||||
placeholder="Your full name"
|
|
||||||
className="w-full px-4 py-2 rounded-lg bg-background text-foreground border border-accent/30 focus:border-primary-cta focus:outline-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="mb-6">
|
|
||||||
<label htmlFor="email" className="block text-sm font-medium text-foreground mb-2">
|
|
||||||
Email Address *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="email"
|
|
||||||
id="email"
|
|
||||||
required
|
|
||||||
value={bookingFormData.email}
|
|
||||||
onChange={(e) => setBookingFormData({ ...bookingFormData, email: e.target.value })}
|
|
||||||
placeholder="your.email@example.com"
|
|
||||||
className="w-full px-4 py-2 rounded-lg bg-background text-foreground border border-accent/30 focus:border-primary-cta focus:outline-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="mb-6">
|
|
||||||
<label htmlFor="phoneNumber" className="block text-sm font-medium text-foreground mb-2">
|
|
||||||
Phone Number *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="tel"
|
|
||||||
id="phoneNumber"
|
|
||||||
required
|
|
||||||
value={bookingFormData.phoneNumber}
|
|
||||||
onChange={(e) => setBookingFormData({ ...bookingFormData, phoneNumber: e.target.value })}
|
|
||||||
placeholder="+1 (555) 000-0000"
|
|
||||||
className="w-full px-4 py-2 rounded-lg bg-background text-foreground border border-accent/30 focus:border-primary-cta focus:outline-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
className="w-full bg-primary-cta text-primary-cta-text font-semibold py-3 rounded-lg hover:opacity-90 transition-opacity"
|
|
||||||
>
|
|
||||||
Schedule Consultation
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="footer" data-section="footer">
|
<div id="footer" data-section="footer">
|
||||||
<FooterBase
|
<FooterBase
|
||||||
logoText="Pulse Digital"
|
logoText="Pulse Digital"
|
||||||
|
|||||||
126
src/app/page.tsx
126
src/app/page.tsx
@@ -7,18 +7,13 @@ import TestimonialAboutCard from "@/components/sections/about/TestimonialAboutCa
|
|||||||
import FeatureCardNine from "@/components/sections/feature/FeatureCardNine";
|
import FeatureCardNine from "@/components/sections/feature/FeatureCardNine";
|
||||||
import ProductCardOne from "@/components/sections/product/ProductCardOne";
|
import ProductCardOne from "@/components/sections/product/ProductCardOne";
|
||||||
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
|
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
|
||||||
import TestimonialCardThirteen from "@/components/sections/testimonial/TestimonialCardThirteen";
|
|
||||||
import ContactText from "@/components/sections/contact/ContactText";
|
import ContactText from "@/components/sections/contact/ContactText";
|
||||||
import FooterBase from "@/components/sections/footer/FooterBase";
|
import FooterBase from "@/components/sections/footer/FooterBase";
|
||||||
import TeamCardSix from "@/components/sections/team/TeamCardSix";
|
import TeamCardTwo from "@/components/sections/team/TeamCardTwo";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { Zap, Heart, Rocket, Lightbulb, Star, TrendingUp, Workflow, MessageCircle, Mail, Users } from "lucide-react";
|
import { Zap, Heart, Rocket, Lightbulb, Star, TrendingUp, Workflow, MessageCircle, Linkedin, Twitter } from "lucide-react";
|
||||||
import { useState } from "react";
|
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const [bookingFormData, setBookingFormData] = useState({
|
|
||||||
email: "", fullName: "", phoneNumber: ""});
|
|
||||||
|
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{ name: "Home", id: "/" },
|
{ name: "Home", id: "/" },
|
||||||
{ name: "Services", id: "/services" },
|
{ name: "Services", id: "/services" },
|
||||||
@@ -27,12 +22,6 @@ export default function HomePage() {
|
|||||||
{ name: "Contact", id: "/contact" },
|
{ name: "Contact", id: "/contact" },
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleBookingSubmit = (e: React.FormEvent) => {
|
|
||||||
e.preventDefault();
|
|
||||||
console.log("Booking submitted:", bookingFormData);
|
|
||||||
setBookingFormData({ email: "", fullName: "", phoneNumber: "" });
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="hover-magnetic"
|
defaultButtonVariant="hover-magnetic"
|
||||||
@@ -115,115 +104,28 @@ export default function HomePage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="testimonials" data-section="testimonials">
|
|
||||||
<TestimonialCardThirteen
|
|
||||||
testimonials={[
|
|
||||||
{
|
|
||||||
id: "1", name: "Sarah Mitchell", handle: "@sarahmitchell", testimonial: "Pulse Digital transformed our online presence. The website they built not only looks stunning but has increased our sales by 40%. Highly recommend!", rating: 5,
|
|
||||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-confident-fem-1772527369324-28809a03.png", imageAlt: "Sarah Mitchell, CEO"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "2", name: "James Chen", handle: "@jameschen", testimonial: "Working with Pulse Digital was seamless. They understood our vision, delivered on time, and provided excellent support throughout the project.", rating: 5,
|
|
||||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-confident-mal-1772527369460-6104c452.png?_wi=1", imageAlt: "James Chen, Founder"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "3", name: "Emily Rodriguez", handle: "@emilyrodriguez", testimonial: "The team at Pulse Digital is incredibly talented and professional. They took our outdated website and created something truly exceptional.", rating: 5,
|
|
||||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-young-female--1772527369938-37ff44ff.png", imageAlt: "Emily Rodriguez, Marketing Director"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "4", name: "David Park", handle: "@davidpark", testimonial: "From initial consultation to launch, Pulse Digital was exceptional. Our new website has become a powerful business tool.", rating: 5,
|
|
||||||
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-confident-mal-1772527370017-a9558657.png", imageAlt: "David Park, Business Owner"
|
|
||||||
}
|
|
||||||
]}
|
|
||||||
showRating={true}
|
|
||||||
title="What Clients Say"
|
|
||||||
description="Real feedback from businesses we've helped succeed"
|
|
||||||
tag="Testimonials"
|
|
||||||
tagIcon={MessageCircle}
|
|
||||||
tagAnimation="slide-up"
|
|
||||||
animationType="slide-up"
|
|
||||||
textboxLayout="default"
|
|
||||||
useInvertedBackground={true}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="team" data-section="team">
|
<div id="team" data-section="team">
|
||||||
<TeamCardSix
|
<TeamCardTwo
|
||||||
members={[
|
members={[
|
||||||
{
|
{
|
||||||
id: "1", name: "Lucas Pereira", role: "Lead Designer & Strategy", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-confident-mal-1772527369460-6104c452.png?_wi=2", imageAlt: "Lucas Pereira"
|
id: "1", name: "Sarah Mitchell", role: "Creative Director", description: "Former co-founder of Design Studio. Early staff at Spotify and Clearbit. Leading our design vision with 12 years of experience.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AQaMoBX7jFwK0QlMohZLIPqdAi/professional-headshot-of-a-confident-fem-1772527369324-28809a03.png?_wi=1", imageAlt: "Sarah Mitchell, Creative Director", socialLinks: [
|
||||||
|
{ icon: Linkedin, url: "https://linkedin.com" },
|
||||||
|
{ icon: Twitter, url: "https://twitter.com" }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]}
|
]}
|
||||||
|
title="Meet Our Team"
|
||||||
|
description="Meet the talented professionals behind Pulse Digital's success"
|
||||||
|
tag="Our Team"
|
||||||
|
tagIcon={Heart}
|
||||||
|
tagAnimation="slide-up"
|
||||||
|
textboxLayout="default"
|
||||||
gridVariant="uniform-all-items-equal"
|
gridVariant="uniform-all-items-equal"
|
||||||
animationType="slide-up"
|
animationType="slide-up"
|
||||||
title="Meet Our Team"
|
useInvertedBackground={true}
|
||||||
description="The talented people behind our success"
|
|
||||||
textboxLayout="default"
|
|
||||||
useInvertedBackground={false}
|
|
||||||
tag="Team"
|
|
||||||
tagIcon={Users}
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="booking" data-section="booking" className="py-20 bg-gradient-to-b from-background to-card">
|
|
||||||
<div className="container mx-auto px-4 max-w-2xl">
|
|
||||||
<div className="text-center mb-12">
|
|
||||||
<h2 className="text-4xl font-bold text-foreground mb-4">Schedule a Consultation</h2>
|
|
||||||
<p className="text-lg text-foreground/80">Book a meeting with our team to discuss your project</p>
|
|
||||||
</div>
|
|
||||||
<form onSubmit={handleBookingSubmit} className="bg-card rounded-lg p-8 shadow-lg border border-accent/20">
|
|
||||||
<div className="mb-6">
|
|
||||||
<label htmlFor="fullName" className="block text-sm font-medium text-foreground mb-2">
|
|
||||||
Full Name *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
id="fullName"
|
|
||||||
required
|
|
||||||
value={bookingFormData.fullName}
|
|
||||||
onChange={(e) => setBookingFormData({ ...bookingFormData, fullName: e.target.value })}
|
|
||||||
placeholder="Your full name"
|
|
||||||
className="w-full px-4 py-2 rounded-lg bg-background text-foreground border border-accent/30 focus:border-primary-cta focus:outline-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="mb-6">
|
|
||||||
<label htmlFor="email" className="block text-sm font-medium text-foreground mb-2">
|
|
||||||
Email Address *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="email"
|
|
||||||
id="email"
|
|
||||||
required
|
|
||||||
value={bookingFormData.email}
|
|
||||||
onChange={(e) => setBookingFormData({ ...bookingFormData, email: e.target.value })}
|
|
||||||
placeholder="your.email@example.com"
|
|
||||||
className="w-full px-4 py-2 rounded-lg bg-background text-foreground border border-accent/30 focus:border-primary-cta focus:outline-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="mb-6">
|
|
||||||
<label htmlFor="phoneNumber" className="block text-sm font-medium text-foreground mb-2">
|
|
||||||
Phone Number *
|
|
||||||
</label>
|
|
||||||
<input
|
|
||||||
type="tel"
|
|
||||||
id="phoneNumber"
|
|
||||||
required
|
|
||||||
value={bookingFormData.phoneNumber}
|
|
||||||
onChange={(e) => setBookingFormData({ ...bookingFormData, phoneNumber: e.target.value })}
|
|
||||||
placeholder="+1 (555) 000-0000"
|
|
||||||
className="w-full px-4 py-2 rounded-lg bg-background text-foreground border border-accent/30 focus:border-primary-cta focus:outline-none"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<button
|
|
||||||
type="submit"
|
|
||||||
className="w-full bg-primary-cta text-primary-cta-text font-semibold py-3 rounded-lg hover:opacity-90 transition-opacity"
|
|
||||||
>
|
|
||||||
Schedule Consultation
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="contact" data-section="contact">
|
<div id="contact" data-section="contact">
|
||||||
<ContactText
|
<ContactText
|
||||||
text="Ready to bring your digital vision to life? Let's work together to create something extraordinary."
|
text="Ready to bring your digital vision to life? Let's work together to create something extraordinary."
|
||||||
|
|||||||
Reference in New Issue
Block a user