12 Commits

Author SHA1 Message Date
1b9a69661f Merge version_3 into main
Merge version_3 into main
2026-03-05 12:39:56 +00:00
c319317f94 Update src/app/styles/variables.css 2026-03-05 12:39:52 +00:00
61b0ebcecb Update src/app/services/page.tsx 2026-03-05 12:39:52 +00:00
0585df6102 Update src/app/page.tsx 2026-03-05 12:39:51 +00:00
f1bc1a9394 Update src/app/layout.tsx 2026-03-05 12:39:51 +00:00
e841a65b29 Update src/app/contact/page.tsx 2026-03-05 12:39:50 +00:00
c73e5537c3 Merge version_2 into main
Merge version_2 into main
2026-03-05 12:19:29 +00:00
8758565fa4 Update src/app/page.tsx 2026-03-05 12:19:25 +00:00
0bb26d6a93 Update src/app/contact/page.tsx 2026-03-05 12:19:25 +00:00
021dbe721f Merge version_1 into main
Merge version_1 into main
2026-03-05 12:13:49 +00:00
8f8424c086 Merge version_1 into main
Merge version_1 into main
2026-03-05 12:12:33 +00:00
803d3af0e1 Merge version_1 into main
Merge version_1 into main
2026-03-05 12:10:59 +00:00
5 changed files with 62 additions and 79 deletions

View File

@@ -4,9 +4,9 @@ import Link from "next/link";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboard from "@/components/sections/hero/HeroBillboard";
import FaqSplitText from "@/components/sections/faq/FaqSplitText";
import ContactFaq from "@/components/sections/contact/ContactFaq";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import { Mail, MessageSquare } from "lucide-react";
import { MessageSquare, Phone } from "lucide-react";
export default function ContactPage() {
return (
@@ -54,14 +54,7 @@ export default function ContactPage() {
</div>
<div id="faq" data-section="faq">
<FaqSplitText
sideTitle="Frequently Asked Questions"
sideDescription="Everything you need to know about bulk printing, file formats, delivery, and pricing."
textPosition="left"
useInvertedBackground={true}
animationType="smooth"
showCard={true}
faqsAnimation="slide-up"
<ContactFaq
faqs={[
{
id: "1", title: "What file formats should I upload?", content: "We accept PDF, PNG, and JPG formats. PDF is recommended for best results. File size should not exceed 100MB. For optimal quality, ensure your design is in CMYK color mode (not RGB) and has 300 DPI resolution."
@@ -82,6 +75,12 @@ export default function ContactPage() {
id: "6", title: "What payment methods do you accept?", content: "We accept all major credit/debit cards, UPI, net banking, and digital wallets via Razorpay. 50% advance payment required at booking, balance due before dispatch. EMI options available for large orders above ₹50,000."
}
]}
ctaTitle="Book an intro call"
ctaDescription="Let's get started with a brief intro call to understand your printing needs and provide personalized solutions."
ctaButton={{ text: "Schedule a Call", href: "tel:+919876543210" }}
ctaIcon={Phone}
useInvertedBackground={false}
animationType="slide-up"
/>
</div>
@@ -94,4 +93,4 @@ export default function ContactPage() {
</div>
</ThemeProvider>
);
}
}

View File

@@ -1,67 +1,20 @@
import type { Metadata } from "next";
import { Public_Sans } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const publicSans = Public_Sans({
variable: "--font-public-sans",
subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "PrintHub India - Bulk Printing Services Nationwide",
description: "Professional bulk printing services in India. Flyers, books, pamphlets, exam copies, and more. Affordable pricing, fast delivery, trusted quality. Get instant quote today!",
keywords: "bulk printing India, flyer printing, book printing, exam copy printing, pamphlet printing, nationwide delivery",
metadataBase: new URL("https://printhub-india.com"),
alternates: {
canonical: "https://printhub-india.com"
},
robots: {
index: true,
follow: true
},
openGraph: {
title: "PrintHub India - Bulk Printing Made Simple",
description: "Get high-quality bulk printing with fast nationwide delivery across India. Schools, businesses, and publishers trust us.",
url: "https://printhub-india.com",
siteName: "PrintHub India",
type: "website",
images: [
{
url: "http://img.b2bpic.net/free-photo/close-up-shot-screw-cutting-machine-factory-that-makes-metal-details_645730-81.jpg",
alt: "PrintHub India - Professional Printing Press"
}
]
},
twitter: {
card: "summary_large_image",
title: "PrintHub India - Bulk Printing Services",
description: "Professional bulk printing with fast delivery across India",
images: ["http://img.b2bpic.net/free-photo/close-up-shot-screw-cutting-machine-factory-that-makes-metal-details_645730-81.jpg"]
}
};
title: "PrintHub India - Bulk Printing Services", description: "Professional bulk printing services across India. Flyers, books, pamphlets, exam copies, and more with premium quality and affordable pricing."};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${publicSans.variable} ${inter.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body className={inter.className}>{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -1429,7 +1382,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}
}

View File

@@ -10,7 +10,8 @@ import SocialProofOne from "@/components/sections/socialProof/SocialProofOne";
import TestimonialCardFifteen from "@/components/sections/testimonial/TestimonialCardFifteen";
import MetricCardOne from "@/components/sections/metrics/MetricCardOne";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import { CheckCircle, Zap, Award, DollarSign, TrendingUp, Users, FileText, BookOpen, FileStack, ClipboardList, Layers, CreditCard, Star, Truck, Shield, FileCheck } from "lucide-react";
import ContactFaq from "@/components/sections/contact/ContactFaq";
import { CheckCircle, Zap, Award, DollarSign, TrendingUp, Users, FileText, BookOpen, FileStack, ClipboardList, Layers, CreditCard, Star, Truck, Shield, FileCheck, Phone } from "lucide-react";
export default function HomePage() {
return (
@@ -132,15 +133,15 @@ export default function HomePage() {
plans={[
{
id: "starter", badge: "For Small Orders", badgeIcon: Zap,
price: "₹500", subtitle: "500-1000 units minimum", features: ["Flyers, pamphlets, business cards", "Standard paper quality (100-150 GSM)", "Single or 4-color printing", "5-7 business days delivery", "Free file upload and consultation"]
price: "Custom Quote", subtitle: "500-1000 units minimum", features: ["Flyers, pamphlets, business cards", "Standard paper quality (100-150 GSM)", "Single or 4-color printing", "5-7 business days delivery", "Free file upload and consultation"]
},
{
id: "professional", badge: "Most Popular", badgeIcon: Award,
price: "₹250", subtitle: "1000-5000 units bulk orders", features: ["All Starter features included", "Premium paper quality (150-250 GSM)", "Premium finish options (matte, gloss, laminate)", "2-3 business days express delivery", "Dedicated account manager", "Free design consultation"]
price: "Custom Quote", subtitle: "1000-5000 units bulk orders", features: ["All Starter features included", "Premium paper quality (150-250 GSM)", "Premium finish options (matte, gloss, laminate)", "2-3 business days express delivery", "Dedicated account manager", "Free design consultation"]
},
{
id: "enterprise", badge: "Maximum Savings", badgeIcon: Zap,
price: "₹100", subtitle: "5000+ units enterprise orders", features: ["All Professional features included", "Custom paper types and sizes", "Premium finish guarantee", "24-48 hour express delivery", "Dedicated project manager", "Custom solutions and special requests", "Volume discounts and loyalty rewards"]
price: "Custom Quote", subtitle: "5000+ units enterprise orders", features: ["All Professional features included", "Custom paper types and sizes", "Premium finish guarantee", "24-48 hour express delivery", "Dedicated project manager", "Custom solutions and special requests", "Volume discounts and loyalty rewards"]
}
]}
/>
@@ -200,6 +201,37 @@ export default function HomePage() {
/>
</div>
<div id="faq" data-section="faq">
<ContactFaq
faqs={[
{
id: "1", title: "What file formats should I upload?", content: "We accept PDF, PNG, and JPG formats. PDF is recommended for best results. File size should not exceed 100MB. For optimal quality, ensure your design is in CMYK color mode (not RGB) and has 300 DPI resolution."
},
{
id: "2", title: "How long does printing take?", content: "Standard printing takes 5-7 business days. Express printing is available within 2-3 days for an additional charge. For urgent orders, 24-48 hour rush printing is available on selected products. Processing starts after file approval."
},
{
id: "3", title: "Do you deliver across all of India?", content: "Yes! We deliver to every state in India via trusted courier partners. Standard shipping takes 2-5 days depending on location. We provide tracking numbers for all orders. Delivery charges vary by location and order weight."
},
{
id: "4", title: "What is the minimum order quantity?", content: "Minimum order varies by product: Flyers (500 units), Books (100 units), Business Cards (500 units), Exam Papers (100 units). Special custom requests may have different minimums. Contact our team for quantity exceptions."
},
{
id: "5", title: "Can I get a price quote before ordering?", content: "Absolutely! Use our instant price calculator on the website or contact our team directly. Upload your design and specifications to get an accurate quote within 1 hour. No obligation to order."
},
{
id: "6", title: "What payment methods do you accept?", content: "We accept all major credit/debit cards, UPI, net banking, and digital wallets via Razorpay. 50% advance payment required at booking, balance due before dispatch. EMI options available for large orders above ₹50,000."
}
]}
ctaTitle="Get Your Instant Quote"
ctaDescription="Upload your design and get a detailed price quote within 24 hours. Simple, fast, and transparent."
ctaButton={{ text: "Get Quote Now", href: "/contact" }}
ctaIcon={Phone}
useInvertedBackground={false}
animationType="slide-up"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
logoText="PrintHub India"
@@ -209,4 +241,4 @@ export default function HomePage() {
</div>
</ThemeProvider>
);
}
}

View File

@@ -107,4 +107,4 @@ export default function ServicesPage() {
</div>
</ThemeProvider>
);
}
}

View File

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