Initial commit

This commit is contained in:
2026-02-05 16:33:38 +02:00
commit 37b769ac0c
7 changed files with 1772 additions and 0 deletions

2
.env Normal file
View File

@@ -0,0 +1,2 @@
NEXT_PUBLIC_API_URL=undefined
NEXT_PUBLIC_PROJECT_ID=0bfe2bef-9453-4b5e-a132-1e16263257b8

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"

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

@@ -0,0 +1,98 @@
"use client";
import ReactLenis from "lenis/react";
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import { useBlogPosts } from "@/hooks/useBlogPosts";
export default function BlogPage() {
const { posts, isLoading } = useBlogPosts();
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="mediumLarge"
sizing="mediumLarge"
background="none"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<ReactLenis root>
<div className="min-h-screen bg-background">
<NavbarStyleCentered
brandName="iPhone"
navItems={[
{ name: "Home", id: "/" },
{ name: "Products", id: "products" },
{ name: "Features", id: "features" },
{ name: "Reviews", id: "reviews" },
{ name: "Specs", id: "specs" },
{ name: "Support", id: "contact" }
]}
button={{ text: "Buy Now", href: "products" }}
/>
{isLoading ? (
<div className="w-content-width mx-auto py-20 text-center">
<p className="text-foreground">Loading posts...</p>
</div>
) : (
<BlogCardTwo
blogs={posts}
title="Latest iPhone News"
description="Stay updated with the latest iPhone news, tips, and reviews"
textboxLayout="default"
useInvertedBackground="noInvert"
carouselMode="buttons"
animationType="slide-up"
/>
)}
<FooterLogoEmphasis
logoText="iPhone"
columns={[
{
items: [
{ label: "Shop", href: "products" },
{ label: "Mac", href: "#" },
{ label: "iPad", href: "#" },
{ label: "Apple Watch", href: "#" }
]
},
{
items: [
{ label: "Support", href: "contact" },
{ label: "AppleCare", href: "#" },
{ label: "Service", href: "#" },
{ label: "Repair", href: "#" }
]
},
{
items: [
{ label: "About", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Press", href: "#" },
{ label: "Contact", href: "contact" }
]
},
{
items: [
{ label: "Privacy", href: "#" },
{ label: "Legal", href: "#" },
{ label: "Terms", href: "#" },
{ label: "Cookies", href: "#" }
]
}
]}
/>
</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";

1267
src/app/layout.tsx Normal file

File diff suppressed because it is too large Load Diff

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

@@ -0,0 +1,338 @@
"use client"
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';
import ProductCardFour from '@/components/sections/product/ProductCardFour';
import FeatureCardTwentyFive from '@/components/sections/feature/FeatureCardTwentyFive';
import MetricCardOne from '@/components/sections/metrics/MetricCardOne';
import PricingCardTwo from '@/components/sections/pricing/PricingCardTwo';
import TestimonialCardThirteen from '@/components/sections/testimonial/TestimonialCardThirteen';
import ContactFaq from '@/components/sections/contact/ContactFaq';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import { Award, Battery, Camera, Crown, Heart, Package, Phone, Quote, Shield, Smartphone, Sparkles, Star, TrendingUp, Users, Zap } from 'lucide-react';
export default function LandingPage() {
return (
<ThemeProvider
defaultButtonVariant="elastic-effect"
defaultTextAnimation="background-highlight"
borderRadius="pill"
contentWidth="mediumLarge"
sizing="mediumLarge"
background="none"
cardStyle="gradient-radial"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Products", id: "products" },
{ name: "Features", id: "features" },
{ name: "Reviews", id: "reviews" },
{ name: "Specs", id: "specs" },
{ name: "Support", id: "contact" }
]}
button={{ text: "Buy Now", href: "products" }}
brandName="iPhone"
/>
</div>
<div id="hero" data-section="hero">
<HeroBillboardGallery
background={{ variant: "plain" }}
title="The Ultimate iPhone Experience"
description="Discover the latest iPhone technology with stunning cameras, powerful performance, and all-day battery life."
tag="New Releases"
tagIcon={Sparkles}
mediaItems={[
{
imageSrc: "https://img.b2bpic.net/free-vector/pack-three-mobiles-with-elegant-colored-wallpapers_23-2147667014.jpg", imageAlt: "iPhone Pro Max in titanium"
},
{
imageSrc: "https://img.b2bpic.net/free-vector/abstract-mobile-wallpapers-pack_23-2147658285.jpg", imageAlt: "iPhone Pro showing advanced camera system"
},
{
imageSrc: "https://img.b2bpic.net/free-vector/colorful-defocused-mobile-wallpapers_23-2147658286.jpg", imageAlt: "iPhone Pro Max display"
},
{
imageSrc: "https://img.b2bpic.net/free-vector/pack-three-unfocused-mobile-wallpapers_23-2147659772.jpg", imageAlt: "iPhone SE compact design"
},
{
imageSrc: "https://img.b2bpic.net/free-vector/pack-three-mobiles-with-elegant-colored-wallpapers_23-2147667014.jpg", imageAlt: "iPhone with ceramic shield protection"
}
]}
buttons={[
{ text: "Shop Now", href: "products" },
{ text: "Learn More", href: "features" }
]}
/>
</div>
<div id="products" data-section="products">
<ProductCardFour
title="Our iPhone Collection"
description="Premium smartphones designed for every need and budget"
tag="Latest Models"
tagIcon={Package}
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
gridVariant="uniform-all-items-equal"
products={[
{
id: "iphone-15-pro", name: "iPhone 15 Pro", price: "$999", variant: "Titanium | 5 Colors", imageSrc: "https://img.b2bpic.net/free-vector/abstract-mobile-wallpapers-pack_23-2147658285.jpg", imageAlt: "iPhone 15 Pro"
},
{
id: "iphone-15-pro-max", name: "iPhone 15 Pro Max", price: "$1,099", variant: "Titanium | 5 Colors", imageSrc: "https://img.b2bpic.net/free-vector/colorful-defocused-mobile-wallpapers_23-2147658286.jpg", imageAlt: "iPhone 15 Pro Max"
},
{
id: "iphone-15", name: "iPhone 15", price: "$799", variant: "Multiple Colors | 6 Options", imageSrc: "https://img.b2bpic.net/free-vector/pack-three-mobiles-with-elegant-colored-wallpapers_23-2147667014.jpg", imageAlt: "iPhone 15"
},
{
id: "iphone-se", name: "iPhone SE", price: "$429", variant: "Classic Design | 3 Colors", imageSrc: "https://img.b2bpic.net/free-vector/pack-three-unfocused-mobile-wallpapers_23-2147659772.jpg", imageAlt: "iPhone SE"
}
]}
/>
</div>
<div id="features" data-section="features">
<FeatureCardTwentyFive
title="Cutting-Edge Features"
description="Experience revolutionary technology in every interaction"
tag="Technology"
tagIcon={Zap}
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="depth-3d"
features={[
{
title: "Pro Camera System", description: "Capture stunning photos and videos with our advanced computational photography", icon: Camera,
mediaItems: [
{
imageSrc: "https://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg", imageAlt: "Camera system technology"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg", imageAlt: "Low light photography capability"
}
]
},
{
title: "Super Retina XDR Display", description: "Brilliant, vibrant colors with exceptional brightness and contrast", icon: Smartphone,
mediaItems: [
{
imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-using-smartphone-with-pop-socket-outdoors_23-2150168486.jpg", imageAlt: "OLED display technology"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/portrait-woman-using-smartphone-with-pop-socket-outdoors_23-2150168486.jpg", imageAlt: "High refresh rate performance"
}
]
},
{
title: "All-Day Battery Life", description: "Stay connected with industry-leading battery performance and fast charging", icon: Battery,
mediaItems: [
{
imageSrc: "https://img.b2bpic.net/free-photo/close-up-hands-taking-coffee-photos_23-2149294500.jpg", imageAlt: "Battery efficiency"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/close-up-hands-taking-coffee-photos_23-2149294500.jpg", imageAlt: "Wireless charging capability"
}
]
},
{
title: "Premium Design", description: "Crafted with surgical-grade stainless steel and durable materials", icon: Award,
mediaItems: [
{
imageSrc: "https://img.b2bpic.net/free-photo/senior-woman-traveling-areound-world_23-2149172097.jpg", imageAlt: "Premium materials"
},
{
imageSrc: "https://img.b2bpic.net/free-photo/senior-woman-traveling-areound-world_23-2149172097.jpg", imageAlt: "Ceramic shield protection"
}
]
}
]}
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardOne
title="Why Choose iPhone"
description="Industry-leading performance and customer satisfaction"
tag="Statistics"
tagIcon={TrendingUp}
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
gridVariant="uniform-all-items-equal"
metrics={[
{
id: "1", value: "98%", title: "satisfaction", description: "Customer satisfaction rating", icon: Heart
},
{
id: "2", value: "2B+", title: "users", description: "Active iPhone users worldwide", icon: Users
},
{
id: "3", value: "10+", title: "years", description: "Software update support", icon: Shield
},
{
id: "4", value: "#1", title: "rated", description: "Most trusted smartphone brand", icon: Star
}
]}
/>
</div>
<div id="specs" data-section="specs">
<PricingCardTwo
title="Choose Your Perfect Model"
description="Find the iPhone that fits your lifestyle and budget"
tag="Specifications"
tagIcon={Smartphone}
textboxLayout="default"
useInvertedBackground="noInvert"
animationType="slide-up"
plans={[
{
id: "1", badge: "iPhone 15 Pro Max", badgeIcon: Crown,
price: "$1,099", subtitle: "The ultimate flagship experience", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Compare", href: "contact" }
],
features: [
"6.7-inch Super Retina XDR display", "Advanced Pro camera system", "A17 Pro chip with 8GB RAM", "Titanium design with ceramic shield", "All-day battery + fast charging", "Emergency SOS via satellite"
]
},
{
id: "2", badge: "iPhone 15 Pro", badgeIcon: Zap,
price: "$999", subtitle: "Professional performance and power", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Compare", href: "contact" }
],
features: [
"6.1-inch Super Retina XDR display", "Pro camera system", "A17 Pro chip with 8GB RAM", "Titanium design with ceramic shield", "All-day battery + fast charging", "Advanced LiDAR scanner"
]
},
{
id: "3", badge: "iPhone 15", badgeIcon: Sparkles,
price: "$799", subtitle: "Powerful and vibrant", buttons: [
{ text: "Buy Now", href: "contact" },
{ text: "Compare", href: "contact" }
],
features: [
"6.1-inch Liquid Retina display", "Dual camera system", "A16 Bionic chip with 6GB RAM", "Aluminum design with glass back", "All-day battery + fast charging", "Dynamic Island"
]
}
]}
/>
</div>
<div id="reviews" data-section="reviews">
<TestimonialCardThirteen
title="What Customers Love"
description="Real reviews from iPhone users around the world"
tag="Reviews"
tagIcon={Quote}
textboxLayout="default"
useInvertedBackground="invertDefault"
animationType="slide-up"
showRating={true}
testimonials={[
{
id: "1", name: "Sarah Chen", handle: "@sarahtech", testimonial: "The camera quality is absolutely incredible. Night mode photos look like they're taken in daylight. Best upgrade I've made.", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg", imageAlt: "Sarah Chen"
},
{
id: "2", name: "Marcus Johnson", handle: "@techreviewer", testimonial: "Battery life easily gets me through a full day of heavy use. The performance is lightning-fast and smooth.", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/smiling-businessman-face-portrait-wearing-suit_53876-148135.jpg", imageAlt: "Marcus Johnson"
},
{
id: "3", name: "Elena Rodriguez", handle: "@designlover", testimonial: "The design is stunning. The titanium finish feels premium and durable. Worth every penny.", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg", imageAlt: "Elena Rodriguez"
},
{
id: "4", name: "David Kim", handle: "@videographer", testimonial: "ProRes video recording changed my mobile filmmaking workflow. The stabilization is exceptional.", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/happy-businessman-smiling-camera_1163-4660.jpg", imageAlt: "David Kim"
},
{
id: "5", name: "Jessica Williams", handle: "@appledeveloper", testimonial: "As a developer, the A17 Pro chip handles everything I throw at it. Apps launch instantly and multitasking is seamless.", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/close-up-portrait-caucasian-unshaved-man-eyeglasses-looking-camera-with-sincere-smile-isolated-gray_171337-630.jpg", imageAlt: "Jessica Williams"
},
{
id: "6", name: "Thomas Brown", handle: "@mobilegamer", testimonial: "Gaming performance is unmatched. Frame rates stay consistent even in demanding games with maxed-out graphics.", rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/portrait-business-woman-office_1398-6.jpg", imageAlt: "Thomas Brown"
}
]}
/>
</div>
<div id="contact" data-section="contact">
<ContactFaq
ctaTitle="Ready to upgrade?"
ctaDescription="Get expert advice and find the perfect iPhone for your needs. Contact our sales team today."
ctaButton={{ text: "Start Shopping", href: "products" }}
ctaIcon={Phone}
useInvertedBackground="noInvert"
animationType="slide-up"
faqs={[
{
id: "1", title: "What's the difference between iPhone 15 Pro and Pro Max?", content: "The main differences are screen size (6.1\" vs 6.7\"), battery capacity, and camera zoom capabilities. The Pro Max offers enhanced battery life and superior optical zoom performance. Both share the same powerful A17 Pro chip and advanced camera system."
},
{
id: "2", title: "How long do iPhones typically last?", content: "iPhones are designed to last many years with proper care. Apple provides up to 10+ years of software updates, ensuring your device remains secure and feature-rich. Battery health gradually decreases over time but can be replaced."
},
{
id: "3", title: "Do iPhones come with a charger?", content: "Recent iPhone models do not include a charger in the box, but they're compatible with any USB-C charger. Fast charging requires a 20W or higher USB-C power adapter, sold separately or available as add-ons."
},
{
id: "4", title: "Is AppleCare+ worth it?", content: "AppleCare+ provides two years of hardware coverage, accidental damage protection, and priority support. It's recommended if you want comprehensive protection against drops, water damage, and hardware failures beyond the standard warranty."
},
{
id: "5", title: "Can I trade in my old iPhone?", content: "Yes! Apple offers trade-in programs where you can get instant credit toward a new iPhone. The credit value depends on your device's condition and model. You can also recycle old devices responsibly."
}
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="iPhone"
columns={[
{
items: [
{ label: "Shop", href: "products" },
{ label: "Mac", href: "#" },
{ label: "iPad", href: "#" },
{ label: "Apple Watch", href: "#" }
]
},
{
items: [
{ label: "Support", href: "contact" },
{ label: "AppleCare", href: "#" },
{ label: "Service", href: "#" },
{ label: "Repair", href: "#" }
]
},
{
items: [
{ label: "About", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Press", href: "#" },
{ label: "Contact", href: "contact" }
]
},
{
items: [
{ label: "Privacy", href: "#" },
{ label: "Legal", href: "#" },
{ label: "Terms", href: "#" },
{ label: "Cookies", href: "#" }
]
}
]}
/>
</div>
</ThemeProvider>
);
}

5
vercel.json Normal file
View File

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