Initial commit

This commit is contained in:
2026-02-05 14:41:09 +02:00
commit 7c708cb845
7 changed files with 1736 additions and 0 deletions

2
.env Normal file
View File

@@ -0,0 +1,2 @@
NEXT_PUBLIC_API_URL=undefined
NEXT_PUBLIC_PROJECT_ID=43ff307b-6556-436d-8fe1-81c91c1235c4

View File

@@ -0,0 +1,57 @@
name: Code Check
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to check'
required: true
default: 'main'
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout branch
uses: actions/checkout@v3
with:
ref: ${{ gitea.event.inputs.branch }}
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 24
- name: Install dependencies
run: |
set -euo pipefail
npm ci --prefer-offline --no-audit 2>&1 | tee install.log
env:
NODE_OPTIONS: '--max-old-space-size=4096'
- name: TypeScript check
run: |
set -euo pipefail
npm run typecheck 2>&1 | tee build.log
- name: ESLint check
run: |
set -euo pipefail
npm run lint 2>&1 | tee build.log
- name: Upload build log on failure
if: failure()
uses: actions/upload-artifact@v3
with:
name: build-log
path: build.log
if-no-files-found: ignore
- name: Check completed
if: success()
run: echo "Typecheck and lint passed successfully"

106
src/app/blog/page.tsx Normal file
View File

@@ -0,0 +1,106 @@
"use client";
import ReactLenis from "lenis/react";
import BlogCardOne from '@/components/sections/blog/BlogCardOne';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import { useBlogPosts } from "@/hooks/useBlogPosts";
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
const handlePrivacy = () => {
console.log("Privacy clicked");
};
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="reveal-blur"
borderRadius="pill"
contentWidth="smallMedium"
sizing="mediumLarge"
background="none"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="extrabold"
>
<ReactLenis root>
<div className="min-h-screen bg-background">
<NavbarStyleFullscreen
brandName="iPhone"
navItems={[
{ name: "Home", id: "/" },
{ name: "Products", id: "products" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
{ name: "Contact", id: "contact" },
{ name: "Support", id: "support" }
]}
bottomLeftText="Premium Devices"
bottomRightText="shop@iphone.com"
/>
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center">
<p className="text-foreground">Loading posts...</p>
</div>
) : (
<BlogCardOne
blogs={posts}
title="Latest iPhone Insights"
description="Discover the latest updates, features, and innovations from the world of iPhone technology"
tag="Blog"
textboxLayout="default"
useInvertedBackground="noInvert"
carouselMode="buttons"
animationType="slide-up"
buttons={[
{ text: "View All Posts", href: "#all-posts" },
{ text: "Subscribe", href: "#subscribe" }
]}
/>
)}
<FooterBaseCard
logoText="iPhone"
columns={[
{
title: "Products", items: [
{ label: "iPhone Pro Max", href: "#products" },
{ label: "iPhone Pro", href: "#products" },
{ label: "iPhone Standard", href: "#products" }
]
},
{
title: "Support", items: [
{ label: "Help & Support", href: "#support" },
{ label: "Warranty", href: "#warranty" },
{ label: "Returns", href: "#returns" }
]
},
{
title: "Company", items: [
{ label: "About Us", href: "#about" },
{ label: "Blog", href: "#blog" },
{ label: "Careers", href: "#careers" }
]
},
{
title: "Connect", items: [
{ label: "Contact Us", href: "#contact" },
{ label: "Newsletter", href: "#newsletter" },
{ label: "Community", href: "#community" }
]
}
]}
copyrightText="© 2025 iPhone. All rights reserved."
onPrivacyClick={handlePrivacy}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

5
src/app/globals.css Normal file
View File

@@ -0,0 +1,5 @@
@import "tailwindcss";
@import "./styles/variables.css";
@import "./styles/theme.css";
@import "./styles/utilities.css";
@import "./styles/base.css";

1264
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

297
src/app/page.tsx Normal file
View File

@@ -0,0 +1,297 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
import FeatureCardTwentySix from '@/components/sections/feature/FeatureCardTwentySix';
import PricingCardEight from '@/components/sections/pricing/PricingCardEight';
import TestimonialCardTen from '@/components/sections/testimonial/TestimonialCardTen';
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import FaqDouble from '@/components/sections/faq/FaqDouble';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import { Sparkles, ArrowRight, Star, Crown } from "lucide-react";
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="reveal-blur"
borderRadius="pill"
contentWidth="smallMedium"
sizing="mediumLarge"
background="none"
cardStyle="solid"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="extrabold"
>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
brandName="iPhone"
navItems={[
{ name: "Products", id: "products" },
{ name: "Features", id: "features" },
{ name: "Pricing", id: "pricing" },
{ name: "Contact", id: "contact" },
{ name: "Support", id: "support" }
]}
bottomLeftText="Premium Devices"
bottomRightText="shop@iphone.com"
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardRotatedCarousel
title="Innovation in Every Touch"
description="Experience the pinnacle of mobile technology. Discover the future of smartphones with cutting-edge features designed to elevate your digital life."
tag="Latest Release"
tagIcon={Sparkles}
background={{ variant: "plain" }}
buttons={[
{ text: "Shop Now", href: "#products" },
{ text: "Learn More", href: "#features" }
]}
carouselItems={[
{
id: "1", imageSrc: "https://img.b2bpic.net/free-photo/busy-cheerful-man-just-got-very-good-message-by-his-smartphone_613910-20877.jpg", imageAlt: "iPhone front view"
},
{
id: "2", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-laptop-side-view_1057-4326.jpg", imageAlt: "iPhone side perspective"
},
{
id: "3", imageSrc: "https://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722646.jpg", imageAlt: "iPhone back design"
},
{
id: "4", imageSrc: "https://img.b2bpic.net/free-photo/mobile-phone-pen_23-2147978224.jpg", imageAlt: "iPhone camera system"
},
{
id: "5", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-a18-bionic-social-media-banner-design-template_47987-33085.jpg", imageAlt: "iPhone display technology"
},
{
id: "6", imageSrc: "https://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722640.jpg", imageAlt: "iPhone in hand"
}
]}
autoPlay={true}
autoPlayInterval={4000}
/>
</div>
<div id="products" data-section="products">
<ProductCardThree
title="Choose Your iPhone"
description="Select from our premium lineup of iPhones, each engineered for excellence and designed to inspire."
products={[
{
id: "1", name: "iPhone Pro Max", price: "$1,199", imageSrc: "https://img.b2bpic.net/free-photo/still-life-tech-device_23-2150722629.jpg", imageAlt: "iPhone Pro Max premium model", initialQuantity: 1
},
{
id: "2", name: "iPhone Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-photo/smartphone-lying-laptop_1057-4320.jpg", imageAlt: "iPhone Pro advanced features", initialQuantity: 1
},
{
id: "3", name: "iPhone Standard", price: "$799", imageSrc: "https://img.b2bpic.net/free-photo/high-angle-smartphone-wooden-board_23-2149554988.jpg", imageAlt: "iPhone standard bestseller", initialQuantity: 1
}
]}
textboxLayout="default"
useInvertedBackground="invertDefault"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
/>
</div>
<div id="features" data-section="features">
<FeatureCardTwentySix
title="Revolutionary Features"
description="Discover what makes iPhone the world's most loved smartphone. Every detail engineered for perfection."
features={[
{
title: "Exceptional Camera System", description: "Capture stunning photos and cinematic videos with advanced computational photography and professional-grade controls.", imageSrc: "https://img.b2bpic.net/free-photo/closeup-shot-black-camera-lens_181624-24125.jpg", imageAlt: "Advanced camera technology", buttonIcon: ArrowRight,
buttonHref: "#camera"
},
{
title: "All-Day Battery Life", description: "Power through your day with intelligent battery technology that learns your usage patterns and optimizes performance.", imageSrc: "https://img.b2bpic.net/free-photo/optical-lens-technology-background-purple-blue-gradient_53876-124678.jpg", imageAlt: "Extended battery performance", buttonIcon: ArrowRight,
buttonHref: "#battery"
},
{
title: "Lightning-Fast Performance", description: "Experience seamless multitasking with the fastest chip in any smartphone, delivering desktop-class computing power.", imageSrc: "https://img.b2bpic.net/free-photo/still-life-shot-dslr-camera-lens_1401-329.jpg", imageAlt: "High-performance processor", buttonIcon: ArrowRight,
buttonHref: "#performance"
},
{
title: "Stunning Retina Display", description: "Immerse yourself in vibrant colors and incredible detail with our advanced Super Retina XDR display technology.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-professional-camera-lens_23-2150720442.jpg", imageAlt: "Premium display quality", buttonIcon: ArrowRight,
buttonHref: "#display"
}
]}
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="pricing" data-section="pricing">
<PricingCardEight
title="Flexible Pricing Plans"
description="Choose the perfect plan tailored to your needs. All plans include premium support and warranty coverage."
plans={[
{
id: "basic", badge: "Popular", badgeIcon: Sparkles,
price: "$799", subtitle: "Perfect for everyday users", buttons: [
{ text: "Get Started", href: "#contact" }
],
features: [
"128GB Storage", "6-month warranty", "Standard support", "Water resistance", "5G connectivity"
]
},
{
id: "pro", badge: "Best Value", badgeIcon: Star,
price: "$999", subtitle: "Ideal for professionals", buttons: [
{ text: "Choose Plan", href: "#contact" }
],
features: [
"256GB Storage", "1-year warranty", "Priority support", "Advanced water resistance", "5G Pro connectivity", "Enhanced security"
]
},
{
id: "premium", badge: "Premium", badgeIcon: Crown,
price: "$1,199", subtitle: "Maximum power and performance", buttons: [
{ text: "Upgrade Now", href: "#contact" }
],
features: [
"512GB Storage", "2-year warranty", "24/7 concierge support", "Military-grade protection", "5G Pro Max", "Exclusive accessories"
]
}
]}
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardTen
title="Loved by Millions Worldwide"
description="See what our customers have to say about their iPhone experience and how it transformed their daily lives."
testimonials={[
{
id: "1", title: "The Perfect Daily Companion", quote: "This iPhone has completely transformed how I work and stay connected. The camera quality is absolutely phenomenal, and the battery life keeps up with my busiest days.", name: "Sarah Mitchell", role: "Creative Director", imageSrc: "https://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg", imageAlt: "Sarah Mitchell professional headshot"
},
{
id: "2", title: "Outstanding Photography", quote: "As a professional photographer, I'm amazed at what I can achieve with the computational photography. The low-light performance is restaurant industry-leading.", name: "Michael Chen", role: "Photographer", imageSrc: "https://img.b2bpic.net/free-photo/smiling-homosexual-man-official-suit-looking-camera-close-up-shot-happy-gay-getting-dressed-wedding-ceremony-standing-hotel-room-with-his-partner-background-love-emotion-concept_74855-22675.jpg", imageAlt: "Michael Chen professional headshot"
},
{
id: "3", title: "Seamless Integration", quote: "The ecosystem integration across all my Apple devices is seamless. Everything just works together effortlessly, saving me hours every week.", name: "Emma Rodriguez", role: "Software Engineer", imageSrc: "https://img.b2bpic.net/free-photo/close-up-competitive-employee_1098-2870.jpg", imageAlt: "Emma Rodriguez professional headshot"
},
{
id: "4", title: "Excellence in Every Detail", quote: "From the sleek design to the powerful performance, every aspect of this iPhone reflects Apple's commitment to excellence and user experience.", name: "James Park", role: "Business Executive", imageSrc: "https://img.b2bpic.net/free-photo/closeup-handsome-middle-aged-business-leader_1262-4822.jpg", imageAlt: "James Park professional headshot"
},
{
id: "5", title: "Incredible Value", quote: "Best investment I've made in mobile technology. The features, build quality, and long-term support make it worth every penny.", name: "Lisa Thompson", role: "Entrepreneur", imageSrc: "https://img.b2bpic.net/free-photo/happy-young-professional-posing-office_1262-21170.jpg", imageAlt: "Lisa Thompson professional headshot"
},
{
id: "6", title: "Future-Proof Technology", quote: "The performance and capabilities are truly ahead of the curve. This phone will remain relevant and powerful for years to come.", name: "David Kumar", role: "Tech Enthusiast", imageSrc: "https://img.b2bpic.net/free-photo/positive-middle-aged-business-leader-window_1262-5388.jpg", imageAlt: "David Kumar professional headshot"
}
]}
textboxLayout="default"
useInvertedBackground="noInvert"
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardSeven
title="Why Choose iPhone"
description="Join millions of satisfied customers who trust iPhone for superior quality, innovation, and reliability."
metrics={[
{
id: "1", value: "2B+", title: "Active Devices Worldwide", items: [
"Largest ecosystem", "Global support network", "Continuous innovation"
]
},
{
id: "2", value: "98%", title: "Customer Satisfaction Rate", items: [
"Highest in industry", "Best user experience", "Loyal community"
]
},
{
id: "3", value: "10Y", title: "Average Device Lifespan", items: [
"Industry-leading longevity", "Regular software updates", "Reliable performance"
]
},
{
id: "4", value: "#1", title: "Ranked in Customer Loyalty", items: [
"Brand trust leader", "Highest retention rate", "Premium positioning"
]
}
]}
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
/>
</div>
<div id="faq" data-section="faq">
<FaqDouble
title="Frequently Asked Questions"
description="Find answers to common questions about our iPhone products, features, warranty, and support."
faqs={[
{
id: "1", title: "What's the warranty coverage?", content: "All iPhones come with a standard 1-year limited warranty covering manufacturing defects. AppleCare+ extends coverage to 2 years with accidental damage protection."
},
{
id: "2", title: "Is the phone water resistant?", content: "Yes, all current iPhone models feature water resistance. They are rated IP68 or IP67, meaning they can withstand submersion in water up to specific depths and durations."
},
{
id: "3", title: "How long does the battery last?", content: "Battery life varies by model, but most iPhones provide 15-29 hours of mixed usage. Actual battery life depends on your usage patterns and settings."
},
{
id: "4", title: "Can I upgrade my storage?", content: "Storage is fixed at purchase and cannot be upgraded. Choose from 128GB, 256GB, or 512GB depending on your model and needs."
},
{
id: "5", title: "What payment options are available?", content: "We accept all major credit cards, Apple Pay, and offer flexible financing options through our partner programs with zero interest available."
},
{
id: "6", title: "How do I set up my new iPhone?", content: "Setup is simple with guided instructions. You can transfer data from your previous device, restore from iCloud backup, or start fresh. We provide in-store setup assistance."
}
]}
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="smooth"
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseCard
logoText="iPhone"
columns={[
{
title: "Products", items: [
{ label: "iPhone Pro Max", href: "#products" },
{ label: "iPhone Pro", href: "#products" },
{ label: "iPhone Standard", href: "#products" }
]
},
{
title: "Support", items: [
{ label: "Help & Support", href: "#support" },
{ label: "Warranty", href: "#warranty" },
{ label: "Returns", href: "#returns" }
]
},
{
title: "Company", items: [
{ label: "About Us", href: "#about" },
{ label: "Blog", href: "#blog" },
{ label: "Careers", href: "#careers" }
]
},
{
title: "Connect", items: [
{ label: "Contact Us", href: "#contact" },
{ label: "Newsletter", href: "#newsletter" },
{ label: "Community", href: "#community" }
]
}
]}
copyrightText="© 2025 iPhone. All rights reserved."
/>
</div>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

@@ -0,0 +1,5 @@
{
"installCommand": "npm ci",
"buildCommand": "npm run build",
"outputDirectory": ".next"
}