Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c6a9c79df | ||
|
|
23767a713a | ||
|
|
bece9a2171 | ||
|
|
c40356568f | ||
|
|
abc3f89195 | ||
|
|
b6108a04d8 | ||
|
|
18da3984ae | ||
|
|
e95983d9b0 | ||
|
|
5b5d1cfa69 | ||
|
|
3ceec02356 |
@@ -5,29 +5,55 @@ import Features from './components/Features';
|
|||||||
import WhatYouCanDo from './components/WhatYouCanDo';
|
import WhatYouCanDo from './components/WhatYouCanDo';
|
||||||
import WhyAramland from './components/WhyAramland';
|
import WhyAramland from './components/WhyAramland';
|
||||||
import FreeTrial from './components/FreeTrial';
|
import FreeTrial from './components/FreeTrial';
|
||||||
|
import BlogSection from './components/BlogSection';
|
||||||
// import ScientificBenefits from './components/ScientificBenefits';
|
// import ScientificBenefits from './components/ScientificBenefits';
|
||||||
import CallToAction from './components/CallToAction';
|
import CallToAction from './components/CallToAction';
|
||||||
import Footer from './components/Footer';
|
import Footer from './components/Footer';
|
||||||
|
import { SEOHead } from './components/SEOHead';
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
return (
|
return (
|
||||||
|
<>
|
||||||
|
|
||||||
|
<SEOHead
|
||||||
|
title="آرام لند - تمرین تنفسی و مدیتیشن"
|
||||||
|
description="اپلیکیشن آرام لند - همراه شما برای رسیدن به آرامش درونی با مدیتیشنهای فارسی، تمرینهای تنفسی و موسیقی آرامشبخش"
|
||||||
|
canonical="/" ogImage="../app/og-image.png" />
|
||||||
|
|
||||||
<div className="min-h-screen bg-gradient-to-b from-blue-50 via-white to-green-50" dir="rtl">
|
<div className="min-h-screen bg-gradient-to-b from-blue-50 via-white to-green-50" dir="rtl">
|
||||||
<Header />
|
<Header />
|
||||||
|
|
||||||
<main className="max-w-5xl mx-auto px-6 sm:px-8 lg:px-10 py-24 space-y-32">
|
<main className="max-w-5xl mx-auto px-6 sm:px-8 lg:px-10 py-24 space-y-32">
|
||||||
|
|
||||||
|
<div id="download">
|
||||||
<Hero />
|
<Hero />
|
||||||
<DownloadSection />
|
</div>
|
||||||
<Features />
|
|
||||||
<WhatYouCanDo />
|
|
||||||
<WhyAramland />
|
|
||||||
<FreeTrial />
|
|
||||||
{/* <ScientificBenefits /> */}
|
|
||||||
<CallToAction />
|
|
||||||
</main>
|
|
||||||
|
|
||||||
|
<div id="features">
|
||||||
|
<Features />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="what-you-can-do">
|
||||||
|
<WhatYouCanDo />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="why-aramland">
|
||||||
|
<WhyAramland />
|
||||||
|
</div>
|
||||||
|
<BlogSection />
|
||||||
|
<div id="free-trial">
|
||||||
|
<FreeTrial />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="call-to-action">
|
||||||
|
<CallToAction />
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
<div id='footer'>
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
// components/BlogSection.jsx
|
||||||
|
"use client";
|
||||||
|
|
||||||
|
import { Calendar, Clock, ArrowLeft } from 'lucide-react';
|
||||||
|
import Link from 'next/link';
|
||||||
|
|
||||||
|
function BlogSection() {
|
||||||
|
const blogs = [
|
||||||
|
{
|
||||||
|
title: "تمرین تنفسی برای کاهش استرس",
|
||||||
|
subtitle: "تکنیکهای ساده تنفسی برای کاهش فوری استرس و اضطراب",
|
||||||
|
link: "https://aaramland.ir/blog/tmryn-tnfsy-bry-khhsh-strs.html",
|
||||||
|
readTime: "۵ دقیقه",
|
||||||
|
date: "۱۴۰۴/۱/۱۵",
|
||||||
|
category: "سلامت روان",
|
||||||
|
gradient: "from-primary-500/10 to-primary-600/10",
|
||||||
|
border: "border-primary-500/20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "مدیتیشن چیست و چگونه شروع کنیم؟",
|
||||||
|
subtitle: "راهنمای کامل برای شناخت مدیتیشن و شروع این سفر زیبا",
|
||||||
|
link: "https://aaramland.ir/blog/mdytyshn-chyh.html",
|
||||||
|
readTime: "۷ دقیقه",
|
||||||
|
date: "۱۴۰۴/۱۰/۱۰",
|
||||||
|
category: "آموزش",
|
||||||
|
gradient: "from-primary-500/10 to-primary-600/10",
|
||||||
|
border: "border-primary-500/20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "مدیتیشن چیست و چگونه زندگیات را متحول میکند؟",
|
||||||
|
subtitle: "راهنمای کامل برای شناخت انواع مدیتیشن",
|
||||||
|
link: "https://aaramland.ir/blog/khls-shdn-z-strs-b-arm-lnd.html",
|
||||||
|
readTime: "۸ دقیقه",
|
||||||
|
date: "۱۴۰۴/۱۰/۰۵",
|
||||||
|
category: "تحول شخصی",
|
||||||
|
gradient: "from-primary-500/10 to-primary-600/10",
|
||||||
|
border: "border-primary-500/20"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<section className="my-24">
|
||||||
|
{/* Header */}
|
||||||
|
<div className="text-center mb-16">
|
||||||
|
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-600 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
||||||
|
<span className="text-lg">📝</span>
|
||||||
|
مقالات آموزشی
|
||||||
|
</div>
|
||||||
|
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
||||||
|
آخرین <span className="text-primary-500">مقالات</span> آرامش
|
||||||
|
</h2>
|
||||||
|
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
|
یادگیری عمیقتر درباره تکنیکهای آرامش، مدیتیشن و سلامت روان
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Blog Cards Grid */}
|
||||||
|
<div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-12">
|
||||||
|
{blogs.map((blog, index) => (
|
||||||
|
<article
|
||||||
|
key={index}
|
||||||
|
className={`bg-gradient-to-br ${blog.gradient} border ${blog.border} rounded-3xl overflow-hidden group hover:shadow-2xl transition-all duration-500 hover:-translate-y-2 animate-fadeInUp`}
|
||||||
|
style={{ animationDelay: `${index * 100}ms` }}
|
||||||
|
>
|
||||||
|
{/* Card Header */}
|
||||||
|
<div className="p-8">
|
||||||
|
{/* Category Badge */}
|
||||||
|
<div className="inline-block bg-primary-500/20 text-primary-600 px-3 py-1 rounded-full text-xs font-medium mb-4">
|
||||||
|
{blog.category}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Title */}
|
||||||
|
<h3 className="text-xl font-bold text-gray-900 mb-3 group-hover:text-primary-600 transition-colors duration-300 line-clamp-2">
|
||||||
|
{blog.title}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
{/* Subtitle */}
|
||||||
|
<p className="text-gray-600 leading-relaxed mb-6 line-clamp-2">
|
||||||
|
{blog.subtitle}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{/* Meta Info */}
|
||||||
|
<div className="flex items-center justify-between text-sm text-gray-500">
|
||||||
|
<div className="flex items-center gap-4">
|
||||||
|
<div className="flex items-center gap-1">
|
||||||
|
<Calendar className="w-4 h-4" />
|
||||||
|
<span>{blog.date}</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-1">
|
||||||
|
<Clock className="w-4 h-4" />
|
||||||
|
<span>{blog.readTime} مطالعه</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Read More Button */}
|
||||||
|
<div className="border-t border-primary-500/10 p-6">
|
||||||
|
<a
|
||||||
|
href={blog.link}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="inline-flex items-center gap-2 text-primary-600 hover:text-primary-700 font-medium group/link transition-colors duration-300"
|
||||||
|
>
|
||||||
|
<span>مطالعه مقاله</span>
|
||||||
|
<ArrowLeft className="w-4 h-4 group-hover/link:-translate-x-1 transition-transform duration-300" />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* View All Button */}
|
||||||
|
<div className="text-center">
|
||||||
|
<Link
|
||||||
|
href="https://aaramland.ir/blog/"
|
||||||
|
className="inline-flex items-center gap-2 bg-gradient-to-r from-primary-500 to-primary-600 text-white font-medium py-3 px-8 rounded-2xl hover:shadow-lg transition-all duration-300 transform hover:scale-105 group"
|
||||||
|
>
|
||||||
|
<span>مشاهده همه مقالات</span>
|
||||||
|
<ArrowLeft className="w-5 h-5 group-hover:-translate-x-1 transition-transform duration-300" />
|
||||||
|
</Link>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default BlogSection;
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
|
"use client";
|
||||||
|
import { useScroll } from '../hooks/useScroll';
|
||||||
function CallToAction() {
|
function CallToAction() {
|
||||||
|
const { scrollToSectionWithHeader } = useScroll();
|
||||||
return (
|
return (
|
||||||
<div className="relative text-center rounded-3xl p-16 animate-fadeInUp overflow-hidden">
|
<div className="relative text-center rounded-3xl p-16 animate-fadeInUp overflow-hidden">
|
||||||
{/* Background with gradient */}
|
{/* Background with gradient */}
|
||||||
@@ -12,15 +15,15 @@ function CallToAction() {
|
|||||||
آماده برای <span className="text-primary-500">تغییر</span> زندگی؟
|
آماده برای <span className="text-primary-500">تغییر</span> زندگی؟
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-xl text-gray-700 mb-8 max-w-2xl mx-auto leading-relaxed">
|
<p className="text-xl text-gray-700 mb-8 max-w-2xl mx-auto leading-relaxed">
|
||||||
امروز اولین قدم رو بردار و ببین چطور آراملند میتونه کیفیت زندگیات رو متحول کنه
|
امروز اولین قدم رو بردار و ببین چطور آرام لند میتونه کیفیت زندگیات رو متحول کنه
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center">
|
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center">
|
||||||
<button className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-bold py-4 px-8 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 text-lg shadow-lg hover:shadow-primary-500/40 relative overflow-hidden group">
|
<button onClick={() => scrollToSectionWithHeader('download')} className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-bold py-4 px-8 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 text-lg shadow-lg hover:shadow-primary-500/40 relative overflow-hidden group">
|
||||||
<div className="absolute inset-0 bg-white/20 -translate-x-full group-hover:translate-x-full transition-transform duration-700"></div>
|
<div className="absolute inset-0 bg-white/20 -translate-x-full group-hover:translate-x-full transition-transform duration-700"></div>
|
||||||
<span className="relative">شروع سفر آرامش</span>
|
<span className="relative">شروع سفر آرامش</span>
|
||||||
</button>
|
</button>
|
||||||
<button className="border-2 border-gray-300 text-gray-700 font-bold py-4 px-8 rounded-2xl hover:border-primary-500 hover:text-primary-500 transition-all duration-300">
|
<button onClick={() => scrollToSectionWithHeader('features')} className="border-2 border-gray-300 text-gray-700 font-bold py-4 px-8 rounded-2xl hover:border-primary-500 hover:text-primary-500 transition-all duration-300">
|
||||||
بیشتر بدانید
|
بیشتر بدانید
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,46 +1,53 @@
|
|||||||
|
import { li } from 'framer-motion/client';
|
||||||
import { Download, Globe, PlayCircle } from 'lucide-react';
|
import { Download, Globe, PlayCircle } from 'lucide-react';
|
||||||
|
|
||||||
function DownloadSection() {
|
function DownloadSection() {
|
||||||
const downloadOptions = [
|
const downloadOptions = [
|
||||||
{
|
{
|
||||||
icon: Download,
|
icon: './images/cafe.png',
|
||||||
title: "کافه بازار",
|
title: "کافه بازار",
|
||||||
description: "دانلود برای اندروید",
|
description: "دانلود برای اندروید",
|
||||||
badge: "پرطرفدار",
|
link: "https://cafebazaar.ir/app/com.approagency.meditation",
|
||||||
gradient: "from-primary-500 to-primary-600",
|
// badge: "پرطرفدار",
|
||||||
|
gradient: "from-primary-500/10 to-primary-600/10",
|
||||||
|
border: "border-primary-500/20",
|
||||||
animation: "animate-slideInLeft delay-100"
|
animation: "animate-slideInLeft delay-100"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: PlayCircle,
|
icon: './images/myket.png',
|
||||||
title: "مایکت",
|
title: "مایکت",
|
||||||
|
link: "https://myket.ir/app/com.approagency.meditation",
|
||||||
description: "دانلود برای اندروید",
|
description: "دانلود برای اندروید",
|
||||||
gradient: "from-primary-500 to-primary-600",
|
gradient: "from-primary-500/10 to-primary-600/10",
|
||||||
|
border: "border-primary-500/20",
|
||||||
animation: "animate-fadeInUp delay-200"
|
animation: "animate-fadeInUp delay-200"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: Globe,
|
icon: './images/appstore.png',
|
||||||
title: "وب سایت",
|
title: "وب سایت",
|
||||||
description: "نسخه وب برای تمام دستگاهها",
|
description: "نسخه وب برای تمام دستگاهها",
|
||||||
badge: "جدید",
|
link: 'https://aaramland.ir/web/',
|
||||||
gradient: "from-primary-500 to-primary-600",
|
badge: "",
|
||||||
animation: "animate-slideInRight delay-300"
|
gradient: "from-primary-500/10 to-primary-600/10",
|
||||||
|
animation: "animate-slideInRight delay-300",
|
||||||
|
border: "border-primary-500/20",
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="relative bg-white rounded-3xl shadow-2xl p-12 mb-20 animate-fadeInUp overflow-hidden">
|
<div className="relative rounded-3xl p-1 mb-10 animate-fadeInUp overflow-hidden">
|
||||||
{/* Background pattern */}
|
{/* Background pattern */}
|
||||||
<div className="absolute inset-0 opacity-5">
|
<div className="absolute inset-0 opacity-4">
|
||||||
<div className="absolute inset-0 bg-gradient-to-r from-primary-500 to-primary-600"></div>
|
<div className="absolute inset-0"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="relative">
|
<div className="relative">
|
||||||
<div className="text-center mb-12">
|
<div className="text-center mb-12">
|
||||||
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4">
|
<h2 className="text-3xl md:text-4xl font-bold text-gray-900 mb-4 mt-8">
|
||||||
همین حالا <span className="text-primary-500">شروع کنید</span>
|
همین حالا <span className="text-primary-500">شروع کنید</span>
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
آراملند را روی دستگاه مورد علاقهتان نصب کنید
|
آرام لند را روی دستگاه مورد علاقهتان نصب کنید
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -48,23 +55,24 @@ function DownloadSection() {
|
|||||||
{downloadOptions.map((option, index) => (
|
{downloadOptions.map((option, index) => (
|
||||||
<a
|
<a
|
||||||
key={index}
|
key={index}
|
||||||
href="#"
|
href={option.link}
|
||||||
className={`relative flex flex-col items-center justify-center p-8 bg-gradient-to-br ${option.gradient} rounded-3xl shadow-lg hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-2 text-white group ${option.animation} overflow-hidden`}
|
className={`relative flex flex-col items-center justify-center p-8 bg-gradient-to-br ${option.gradient} rounded-3xl hover:shadow-2xl transition-all duration-300 transform hover:-translate-y-2 group ${option.animation} overflow-hidden border ${option.border}`}
|
||||||
>
|
>
|
||||||
{/* Shine effect */}
|
{/* Shine effect */}
|
||||||
<div className="absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-1000"></div>
|
{/* <div className="absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-1000"></div> */}
|
||||||
|
|
||||||
{option.badge && (
|
{option.badge && (
|
||||||
<div className="absolute -top-2 -right-2 bg-white text-primary-500 px-3 py-1 rounded-full text-xs font-bold shadow-lg">
|
<div className="absolute -top-0 right-0 bg-primary-200 px-2 py-2 rounded text-xs font-bold">
|
||||||
{option.badge}
|
{option.badge}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<div className="bg-white/20 p-4 rounded-2xl mb-4 group-hover:scale-110 transition-transform duration-300">
|
<div className="bg-white p-4 rounded-2xl mb-4 group-hover:scale-110 transition-transform duration-300">
|
||||||
<option.icon className="w-8 h-8" />
|
<img src={option.icon} alt="Download" className="w-20 h-20 border border-transparent rounded-xl " />
|
||||||
|
{/* <option.icon className="w-8 h-8" /> */}
|
||||||
</div>
|
</div>
|
||||||
<h3 className="text-xl font-bold mb-2">{option.title}</h3>
|
<h3 className="text-xl text-black font-bold mb-2">{option.title}</h3>
|
||||||
<p className="text-white/90 text-sm">{option.description}</p>
|
<p className="text-sm text-black">{option.description}</p>
|
||||||
</a>
|
</a>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ function Features() {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-24">
|
<div className="my-12">
|
||||||
<div className="text-center mb-16">
|
<div className="text-center mb-16">
|
||||||
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-500 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-500 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
||||||
<span>✨</span>
|
<span>✨</span>
|
||||||
|
|||||||
@@ -1,8 +1,169 @@
|
|||||||
|
"use client";
|
||||||
|
import { useScroll } from '../hooks/useScroll';
|
||||||
|
|
||||||
function Footer() {
|
function Footer() {
|
||||||
|
const { scrollToSectionWithHeader } = useScroll();
|
||||||
return (
|
return (
|
||||||
<footer className="py-12 text-center text-gray-500 border-t border-gray-200">
|
<footer className="bg-white border-t border-gray-100">
|
||||||
<p className="mb-4">© ۱۴۰۳ آراملند - همراه تو برای یک زندگی آرامتر</p>
|
{/* Main Footer Content */}
|
||||||
<p className="text-sm">ساخته شده با عشق برای مردم ایران</p>
|
<div className="max-w-5xl mx-auto px-6 sm:px-8 lg:px-10 py-16">
|
||||||
|
<div className="grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-12">
|
||||||
|
|
||||||
|
{/* Brand Column */}
|
||||||
|
<div className="lg:col-span-2">
|
||||||
|
<div className="flex items-center gap-3 mb-6">
|
||||||
|
<div className="bg-gradient-to-r from-primary-500 to-primary-600 w-10 h-10 rounded-xl flex items-center justify-center">
|
||||||
|
<span className="text-white font-bold text-lg">آ</span>
|
||||||
|
</div>
|
||||||
|
<div className="text-2xl font-bold bg-gradient-to-r from-primary-500 to-primary-600 bg-clip-text text-transparent">
|
||||||
|
آرام لند
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p className="text-gray-600 leading-relaxed mb-6 max-w-md">
|
||||||
|
همراه شما در مسیر رسیدن به آرامش درونی. با ابزارهای علمی و تخصصی
|
||||||
|
برای زندگی بهتر و ذهنی آرامتر.
|
||||||
|
</p>
|
||||||
|
<div className="flex gap-4">
|
||||||
|
{/* Social Media Icons - You can add actual links later */}
|
||||||
|
<div className="w-10 h-10 bg-primary-500/10 rounded-xl flex items-center justify-center cursor-pointer hover:bg-primary-500/20 transition-colors">
|
||||||
|
<span className="text-primary-500">📱</span>
|
||||||
|
</div>
|
||||||
|
<div className="w-10 h-10 bg-primary-500/10 rounded-xl flex items-center justify-center cursor-pointer hover:bg-primary-500/20 transition-colors">
|
||||||
|
<span className="text-primary-500">💬</span>
|
||||||
|
</div>
|
||||||
|
<div className="w-10 h-10 bg-primary-500/10 rounded-xl flex items-center justify-center cursor-pointer hover:bg-primary-500/20 transition-colors">
|
||||||
|
<span className="text-primary-500">📸</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Quick Links */}
|
||||||
|
<div>
|
||||||
|
<h3 className="font-bold text-gray-900 mb-6 text-lg">لینکهای سریع</h3>
|
||||||
|
<ul className="space-y-3">
|
||||||
|
{[
|
||||||
|
{ name: 'ویژگیها', section: 'features' },
|
||||||
|
{ name: 'امکانات', section: 'what-you-can-do' },
|
||||||
|
{ name: 'چرا آرام لند', section: 'why-aramland' },
|
||||||
|
{ name: 'ارتباط با تیم', href: 'https://approagency.ir/' }
|
||||||
|
].map((link) => (
|
||||||
|
<li key={link.name}>
|
||||||
|
<a
|
||||||
|
href={link.href}
|
||||||
|
onClick={() => scrollToSectionWithHeader(link.section)}
|
||||||
|
target="_blank"
|
||||||
|
className="text-gray-600 hover:text-primary-500 transition-colors duration-200"
|
||||||
|
>
|
||||||
|
{link.name}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
))}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Agency Contact */}
|
||||||
|
<div>
|
||||||
|
<h3 className="font-bold text-gray-900 mb-6 text-lg">توسعهدهنده</h3>
|
||||||
|
<div className="space-y-4">
|
||||||
|
<div className="flex items-center gap-3">
|
||||||
|
<div className="w-10 h-10 bg-gradient-to-r from-primary-500 to-primary-600 rounded-xl flex items-center justify-center">
|
||||||
|
<span className="text-white text-sm">AP</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p className="font-medium text-gray-900">اپرواجنسی</p>
|
||||||
|
<p className="text-sm text-gray-500">Approagency</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="space-y-3">
|
||||||
|
<a
|
||||||
|
href="mailto:approagency@gmail.com"
|
||||||
|
className="flex items-center gap-2 text-gray-600 hover:text-primary-500 transition-colors group"
|
||||||
|
>
|
||||||
|
<div className="w-8 h-8 bg-primary-500/10 rounded-lg flex items-center justify-center group-hover:bg-primary-500/20 transition-colors">
|
||||||
|
<span className="text-primary-500 text-sm">✉️</span>
|
||||||
|
</div>
|
||||||
|
<span className="text-sm">approagency@gmail.com</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="tel:+989362957108"
|
||||||
|
className="flex items-center gap-2 text-gray-600 hover:text-primary-500 transition-colors group"
|
||||||
|
>
|
||||||
|
<div className="w-8 h-8 bg-primary-500/10 rounded-lg flex items-center justify-center group-hover:bg-primary-500/20 transition-colors">
|
||||||
|
<span className="text-primary-500 text-sm">📞</span>
|
||||||
|
</div>
|
||||||
|
<span className="text-sm">۰۹۳۶۲۹۵۷۱۰۸</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Divider */}
|
||||||
|
<div className="h-px bg-gradient-to-r from-transparent via-gray-200 to-transparent mb-8"></div>
|
||||||
|
|
||||||
|
{/* Bottom Section */}
|
||||||
|
<div className="flex flex-col md:flex-row justify-between items-center gap-4">
|
||||||
|
<div className="text-center md:text-right">
|
||||||
|
<p className="text-gray-600 mb-2">
|
||||||
|
© 1404 آرام لند - همراه تو برای یک زندگی آرامتر
|
||||||
|
</p>
|
||||||
|
<p className="text-gray-500 text-sm">
|
||||||
|
ساخته شده با عشق برای مردم ایران
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="flex flex-col md:flex-row items-center gap-6">
|
||||||
|
{/* Enamad Badge */}
|
||||||
|
<div className="mt-4 md:mt-0">
|
||||||
|
<a
|
||||||
|
referrerPolicy='origin'
|
||||||
|
target='_blank'
|
||||||
|
href='https://trustseal.enamad.ir/?id=684477&Code=O0VD9spjoV48pvyakFsJgoY361OXvszk'
|
||||||
|
className="inline-block"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
referrerPolicy='origin'
|
||||||
|
src='https://trustseal.enamad.ir/logo.aspx?id=684477&Code=O0VD9spjoV48pvyakFsJgoY361OXvszk'
|
||||||
|
alt='Enamad Trust Seal'
|
||||||
|
style={{cursor: 'pointer'}}
|
||||||
|
code='O0VD9spjoV48pvyakFsJgoY361OXvszk'
|
||||||
|
className="h-12 w-auto"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Additional Links */}
|
||||||
|
<div className="flex gap-6 text-sm">
|
||||||
|
<a href="#" className="text-gray-500 hover:text-primary-500 transition-colors">
|
||||||
|
حریم خصوصی
|
||||||
|
</a>
|
||||||
|
<a href="#" className="text-gray-500 hover:text-primary-500 transition-colors">
|
||||||
|
شرایط استفاده
|
||||||
|
</a>
|
||||||
|
<a href="#" className="text-gray-500 hover:text-primary-500 transition-colors">
|
||||||
|
پشتیبانی
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Floating CTA */}
|
||||||
|
<div className="bg-gradient-to-r from-primary-500/5 to-primary-600/5 border-t border-primary-500/10">
|
||||||
|
<div className="max-w-5xl mx-auto px-6 sm:px-8 lg:px-10 py-6">
|
||||||
|
<div className="flex flex-col md:flex-row justify-between items-center gap-4">
|
||||||
|
<div>
|
||||||
|
<p className="font-medium text-gray-900">آماده شروع سفر آرامش؟</p>
|
||||||
|
<p className="text-gray-600 text-sm">همین حالا رایگان شروع کنید</p>
|
||||||
|
</div>
|
||||||
|
<button onClick={() => scrollToSectionWithHeader('download')} className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-medium py-3 px-8 rounded-2xl hover:shadow-lg transition-all duration-300 transform hover:scale-105 whitespace-nowrap">
|
||||||
|
دانلود اپلیکیشن
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,7 @@
|
|||||||
|
"use client";
|
||||||
|
import { useScroll } from '../hooks/useScroll';
|
||||||
function FreeTrial() {
|
function FreeTrial() {
|
||||||
|
const { scrollToSectionWithHeader } = useScroll();
|
||||||
return (
|
return (
|
||||||
<div className="relative bg-gradient-to-r from-primary-500 via-primary-600 to-primary-500 rounded-3xl p-12 text-white text-center mb-20 animate-fadeInUp overflow-hidden">
|
<div className="relative bg-gradient-to-r from-primary-500 via-primary-600 to-primary-500 rounded-3xl p-12 text-white text-center mb-20 animate-fadeInUp overflow-hidden">
|
||||||
{/* Background Pattern */}
|
{/* Background Pattern */}
|
||||||
@@ -26,8 +29,8 @@ function FreeTrial() {
|
|||||||
|
|
||||||
{/* Description */}
|
{/* Description */}
|
||||||
<p className="text-lg md:text-xl text-white/90 mb-8 max-w-2xl mx-auto leading-relaxed animate-fadeInUp delay-300">
|
<p className="text-lg md:text-xl text-white/90 mb-8 max-w-2xl mx-auto leading-relaxed animate-fadeInUp delay-300">
|
||||||
تمام ویژگیهای پریمیوم رو برای یک هفته کامل تجربه کن،
|
تمام ویژگیهای پریمیوم رو میتونی به طور محدود تجربه کنی
|
||||||
<span className="font-bold text-yellow-300"> بدون نیاز به کارت اعتباری</span>
|
<span className="font-bold text-yellow-300"></span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{/* Features */}
|
{/* Features */}
|
||||||
@@ -35,7 +38,10 @@ function FreeTrial() {
|
|||||||
{[
|
{[
|
||||||
"تمامی مدیتیشنها",
|
"تمامی مدیتیشنها",
|
||||||
"موسیقیهای انحصاری",
|
"موسیقیهای انحصاری",
|
||||||
"مشاوره هوش مصنوعی"
|
"مشاوره هوش مصنوعی",
|
||||||
|
"تمرین تنفسی دلخواه",
|
||||||
|
"اطلاعات آموزشی",
|
||||||
|
"رابط کاربری ساده",
|
||||||
].map((feature, index) => (
|
].map((feature, index) => (
|
||||||
<div key={index} className="flex items-center justify-center gap-2 bg-white/10 backdrop-blur-sm py-3 px-4 rounded-xl">
|
<div key={index} className="flex items-center justify-center gap-2 bg-white/10 backdrop-blur-sm py-3 px-4 rounded-xl">
|
||||||
<svg className="w-4 h-4 text-yellow-300" fill="currentColor" viewBox="0 0 20 20">
|
<svg className="w-4 h-4 text-yellow-300" fill="currentColor" viewBox="0 0 20 20">
|
||||||
@@ -47,14 +53,14 @@ function FreeTrial() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* CTA Button */}
|
{/* CTA Button */}
|
||||||
<button className="bg-white text-primary-500 font-bold py-4 px-12 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 animate-fadeInUp delay-500 relative overflow-hidden group">
|
<button onClick={() => scrollToSectionWithHeader('download')} className="bg-white text-primary-500 font-bold py-4 px-12 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 animate-fadeInUp delay-500 relative overflow-hidden group">
|
||||||
<div className="absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-700"></div>
|
<div className="absolute inset-0 bg-gradient-to-r from-transparent via-white/20 to-transparent -translate-x-full group-hover:translate-x-full transition-transform duration-700"></div>
|
||||||
<span className="relative">شروع دوره آزمایشی رایگان</span>
|
<span className="relative">شروع سفر آرامش</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{/* Footer Note */}
|
{/* Footer Note */}
|
||||||
<p className="text-white/70 text-sm mt-6 animate-fadeInUp delay-600">
|
<p className="text-white/70 text-sm mt-6 animate-fadeInUp delay-600">
|
||||||
هیچ تعهدی ندارد • هر زمان میتوانی لغو کنی
|
میتونی روی گوشیت همیشه داشته باشی
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,36 +1,114 @@
|
|||||||
|
"use client";
|
||||||
|
import { useScroll } from '../hooks/useScroll';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { Menu, X } from 'lucide-react';
|
||||||
|
|
||||||
function Header() {
|
function Header() {
|
||||||
|
const { scrollToSectionWithHeader } = useScroll();
|
||||||
|
const [isMenuOpen, setIsMenuOpen] = useState(false);
|
||||||
|
|
||||||
|
const navigationItems = [
|
||||||
|
{ name: 'ویژگیها', id: 'features' },
|
||||||
|
{ name: 'امکانات', id: 'what-you-can-do' },
|
||||||
|
{ name: 'چرا ما', id: 'why-aramland' },
|
||||||
|
{ name: 'دانلود', id: 'download' },
|
||||||
|
{ name: 'ارتباط با ما', id: 'footer' },
|
||||||
|
{ name: 'بلاگ', id: 'blog' },
|
||||||
|
];
|
||||||
|
|
||||||
|
const handleNavClick = (sectionId) => {
|
||||||
|
scrollToSectionWithHeader(sectionId);
|
||||||
|
setIsMenuOpen(false);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<nav className="py-6 px-8 sticky top-0 bg-white/80 backdrop-blur-md z-50 border-b border-gray-100">
|
<nav className="py-4 px-6 sm:px-8 sticky top-0 bg-white/80 backdrop-blur-md z-50 border-b border-gray-100">
|
||||||
<div className="max-w-6xl mx-auto flex justify-between items-center">
|
<div className="max-w-6xl mx-auto flex justify-between items-center">
|
||||||
{/* Logo */}
|
{/* Logo */}
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
<div className="bg-gradient-to-r from-primary-500 to-primary-600 w-8 h-8 rounded-xl flex items-center justify-center">
|
<div className="bg-gradient-to-r from-primary-500 to-primary-600 w-8 h-8 rounded-xl flex items-center justify-center">
|
||||||
<span className="text-white font-bold text-sm">آ</span>
|
<span className="text-white font-bold text-sm">آ</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-2xl font-bold bg-gradient-to-r from-primary-500 to-primary-600 bg-clip-text text-transparent">
|
<div className="text-xl sm:text-2xl font-bold bg-gradient-to-r from-primary-500 to-primary-600 bg-clip-text text-transparent">
|
||||||
آراملند
|
آرام لند
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Navigation */}
|
{/* Desktop Navigation */}
|
||||||
<div className="hidden md:flex items-center gap-8">
|
<div className="hidden md:flex items-center gap-6 lg:gap-8">
|
||||||
{['ویژگیها', 'دانلود', 'قیمتها', 'درباره ما'].map((item) => (
|
{navigationItems.map((item) => (
|
||||||
<a
|
<button
|
||||||
key={item}
|
key={item.id}
|
||||||
href="#"
|
onClick={() => {
|
||||||
className="text-gray-600 hover:text-primary-500 font-medium transition-colors duration-200 relative group"
|
if (item.id === 'blog') {
|
||||||
|
window.open('https://aramland.approagency.ir/blog/', '_self');
|
||||||
|
} else {
|
||||||
|
handleNavClick(item.id);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
className="text-gray-600 hover:text-primary-500 font-medium transition-colors duration-200 relative group text-sm lg:text-base"
|
||||||
>
|
>
|
||||||
{item}
|
{item.name}
|
||||||
<span className="absolute bottom-0 left-0 w-0 h-0.5 bg-primary-500 group-hover:w-full transition-all duration-300"></span>
|
<span className="absolute bottom-0 left-0 w-0 h-0.5 bg-primary-500 group-hover:w-full transition-all duration-300"></span>
|
||||||
</a>
|
</button>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* CTA Button */}
|
{/* Desktop CTA Button */}
|
||||||
<button className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-medium py-2 px-6 rounded-xl hover:shadow-lg transition-all duration-300 transform hover:scale-105">
|
<div className="hidden md:block">
|
||||||
شروع رایگان
|
<button
|
||||||
|
onClick={() => handleNavClick('download')}
|
||||||
|
className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-medium py-2 px-4 lg:py-2 lg:px-6 rounded-xl hover:shadow-lg transition-all duration-300 transform hover:scale-105 text-sm lg:text-base"
|
||||||
|
>
|
||||||
|
شروع سفر آرامش
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{/* Mobile Menu Button */}
|
||||||
|
<button
|
||||||
|
className="md:hidden p-2 rounded-lg hover:bg-gray-100 transition-colors"
|
||||||
|
onClick={() => setIsMenuOpen(!isMenuOpen)}
|
||||||
|
>
|
||||||
|
{isMenuOpen ? (
|
||||||
|
<X className="w-6 h-6 text-gray-600" />
|
||||||
|
) : (
|
||||||
|
<Menu className="w-6 h-6 text-gray-600" />
|
||||||
|
)}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Mobile Menu */}
|
||||||
|
{isMenuOpen && (
|
||||||
|
<div className="md:hidden absolute top-full left-0 right-0 bg-white/95 backdrop-blur-md border-b border-gray-200 shadow-lg">
|
||||||
|
<div className="px-6 py-4 space-y-4">
|
||||||
|
{navigationItems.map((item) => (
|
||||||
|
<button
|
||||||
|
key={item.id}
|
||||||
|
onClick={() => {
|
||||||
|
if (item.id === 'blog') {
|
||||||
|
window.open('https://aramland.approagency.ir/blog/', '_self');
|
||||||
|
} else {
|
||||||
|
handleNavClick(item.id);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
className="block w-full text-right py-3 px-4 text-gray-700 hover:text-primary-500 hover:bg-primary-50 rounded-lg transition-all duration-200 font-medium border-b border-gray-100 last:border-b-0"
|
||||||
|
>
|
||||||
|
{item.name}
|
||||||
|
</button>
|
||||||
|
))}
|
||||||
|
|
||||||
|
{/* Mobile CTA Button */}
|
||||||
|
<div className="pt-4 border-t border-gray-200">
|
||||||
|
<button
|
||||||
|
onClick={() => handleNavClick('download')}
|
||||||
|
className="w-full bg-gradient-to-r from-primary-500 to-primary-600 text-white font-medium py-3 px-4 rounded-xl hover:shadow-lg transition-all duration-300 transform hover:scale-105 text-center"
|
||||||
|
>
|
||||||
|
شروع سفر آرامش
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</nav>
|
</nav>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
import { motion } from "framer-motion";
|
"use client";
|
||||||
|
import DownloadSection from "./DownloadSection";
|
||||||
|
import { useScroll } from '../hooks/useScroll';
|
||||||
function Hero() {
|
function Hero() {
|
||||||
|
const { scrollToSectionWithHeader } = useScroll();
|
||||||
return (
|
return (
|
||||||
<div className="text-center mb-20 relative">
|
<div className="text-center mb-10 relative">
|
||||||
{/* Background decoration */}
|
{/* Background decoration */}
|
||||||
<div className="absolute inset-0 overflow-hidden pointer-events-none">
|
<div className="absolute inset-0 overflow-hidden pointer-events-none rounded-3xl">
|
||||||
<div className="absolute -top-20 -right-20 w-72 h-72 bg-primary-500 opacity-10 rounded-full blur-3xl"></div>
|
<div className="absolute -top-20 -right-20 w-72 h-72 bg-primary-500 opacity-10 rounded-full blur-3xl"></div>
|
||||||
<div className="absolute -bottom-20 -left-20 w-72 h-72 bg-primary-500 opacity-10 rounded-full blur-3xl"></div>
|
<div className="absolute -bottom-20 -left-20 w-72 h-72 bg-primary-500 opacity-10 rounded-full blur-3xl"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -11,27 +14,22 @@ function Hero() {
|
|||||||
<div className="relative">
|
<div className="relative">
|
||||||
<div className="mb-8 animate-float">
|
<div className="mb-8 animate-float">
|
||||||
<div className="relative inline-block">
|
<div className="relative inline-block">
|
||||||
<span className="text-6xl">✨</span>
|
|
||||||
<div className="absolute inset-0 bg-gradient-to-r from-primary-500 to-primary-600 opacity-20 blur-xl rounded-full"></div>
|
<div className="absolute inset-0 bg-gradient-to-r from-primary-500 to-primary-600 opacity-20 blur-xl rounded-full"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 className="text-5xl md:text-7xl font-bold text-gray-900 mb-6 leading-tight animate-fadeInUp">
|
<h1 className="text-5xl md:text-7xl font-bold text-gray-900 mb-1 leading-tight animate-fadeInUp">
|
||||||
آرامش را در
|
آرامش را در
|
||||||
<span className="bg-gradient-to-r from-primary-500 to-primary-600 bg-clip-text text-transparent"> هر لحظه </span>
|
<span className="bg-gradient-to-r from-primary-500 to-primary-600 bg-clip-text text-transparent"> هر لحظه </span>
|
||||||
تجربه کنید
|
تجربه کنید
|
||||||
</h1>
|
</h1>
|
||||||
|
<DownloadSection />
|
||||||
<p className="text-xl md:text-2xl text-gray-600 max-w-3xl mx-auto leading-relaxed mb-6 animate-fadeInUp delay-100">
|
|
||||||
آراملند دستیار شخصی شما برای یافتن آرامش درونی. با مدیتیشنهای اختصاصی،
|
|
||||||
موسیقی آرامشبخش و راهنماییهای حرفهای.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center animate-fadeInUp delay-200">
|
<div className="flex flex-col sm:flex-row gap-4 justify-center items-center animate-fadeInUp delay-200">
|
||||||
<button className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-bold py-4 px-8 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 text-lg shadow-lg hover:shadow-primary-500/25">
|
{/* <button className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-bold py-4 px-8 rounded-2xl hover:shadow-2xl transition-all duration-300 transform hover:scale-105 text-lg shadow-lg hover:shadow-primary-500/25">
|
||||||
شروع کنید رایگان
|
شروع کنید رایگان
|
||||||
</button>
|
</button> */}
|
||||||
<button className="border-2 border-gray-300 text-gray-700 font-bold py-4 px-8 rounded-2xl hover:border-primary-500 hover:text-primary-500 transition-all duration-300">
|
<button onClick={() => scrollToSectionWithHeader('what-you-can-do')} className=" bg-gradient-to-r from-primary-500 to-primary-600 border-2 text-white font-bold py-4 px-8 rounded-2xl hover:border-primary-200 hover:text-primary-50 transition-all duration-300">
|
||||||
مشاهده ویژگیها
|
مشاهده ویژگیها
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -40,11 +38,11 @@ function Hero() {
|
|||||||
<div className="mt-12 animate-fadeInUp delay-300">
|
<div className="mt-12 animate-fadeInUp delay-300">
|
||||||
<p className="text-gray-500 text-sm mb-4">مورد اعتماد هزاران کاربر</p>
|
<p className="text-gray-500 text-sm mb-4">مورد اعتماد هزاران کاربر</p>
|
||||||
<div className="flex justify-center items-center gap-8 opacity-60">
|
<div className="flex justify-center items-center gap-8 opacity-60">
|
||||||
<div className="text-2xl font-bold text-gray-400">★ ۴.۹</div>
|
<div className="text-2xl font-bold text-primary-500">★ ۴.۹</div>
|
||||||
<div className="h-4 w-px bg-gray-300"></div>
|
<div className="h-4 w-px bg-primary-500"></div>
|
||||||
<div className="text-gray-500">+۱۰۰۰ دانلود</div>
|
<div className="text-primary-500 font-bold">+۱۰۰۰ دانلود</div>
|
||||||
<div className="h-4 w-px bg-gray-300"></div>
|
<div className="h-4 w-px bg-primary-500"></div>
|
||||||
<div className="text-gray-500">۹۸٪ رضایت</div>
|
<div className="text-primary-500 font-bold ">۹۸٪ رضایت</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
// components/SEOHead.jsx
|
||||||
|
export function SEOHead({
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
canonical,
|
||||||
|
ogImage
|
||||||
|
}) {
|
||||||
|
const siteUrl = 'https://aramland.approagency.ir/';
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<title>{title}</title>
|
||||||
|
<meta name="description" content={description} />
|
||||||
|
|
||||||
|
{/* Canonical URL */}
|
||||||
|
<link rel="canonical" href={`${siteUrl}${canonical}`} />
|
||||||
|
|
||||||
|
{/* Open Graph */}
|
||||||
|
<meta property="og:title" content={title} />
|
||||||
|
<meta property="og:description" content={description} />
|
||||||
|
<meta property="og:url" content={`${siteUrl}${canonical}`} />
|
||||||
|
<meta property="og:image" content={ogImage || `${siteUrl}/og-image.png`} />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:locale" content="fa_IR" />
|
||||||
|
|
||||||
|
{/* Twitter */}
|
||||||
|
<meta name="twitter:title" content={title} />
|
||||||
|
<meta name="twitter:description" content={description} />
|
||||||
|
<meta name="twitter:image" content={ogImage || `${siteUrl}/og-image.png`} />
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
// const benefits = [
|
// const benefits = [
|
||||||
// {
|
// {
|
||||||
// title: "تکنیکهای مبتنی بر علم اعصاب",
|
// title: "تکنیکهای مبتنی بر علم اعصاب",
|
||||||
// description: "آراملند از روشهای اثباتشده علمی برای کاهش استرس و افزایش آرامش استفاده میکند",
|
// description: "آرام لند از روشهای اثباتشده علمی برای کاهش استرس و افزایش آرامش استفاده میکند",
|
||||||
// icon: "🧠",
|
// icon: "🧠",
|
||||||
// items: [
|
// items: [
|
||||||
// "بهبود خلق و خو در کمتر از ۵ دقیقه",
|
// "بهبود خلق و خو در کمتر از ۵ دقیقه",
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
// 📊 پشتیبانی شده توسط تحقیقات
|
// 📊 پشتیبانی شده توسط تحقیقات
|
||||||
// </h4>
|
// </h4>
|
||||||
// <p className="text-gray-700 leading-relaxed">
|
// <p className="text-gray-700 leading-relaxed">
|
||||||
// تمام تکنیکهای استفاده شده در آراملند بر اساس مطالعات علمی معتبر در زمینههای
|
// تمام تکنیکهای استفاده شده در آرام لند بر اساس مطالعات علمی معتبر در زمینههای
|
||||||
// روانشناسی، علوم اعصاب و پزشکی رفتاری طراحی شدهاند.
|
// روانشناسی، علوم اعصاب و پزشکی رفتاری طراحی شدهاند.
|
||||||
// </p>
|
// </p>
|
||||||
// </div>
|
// </div>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ function WhatYouCanDo() {
|
|||||||
];
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="my-24">
|
<div className="my-12">
|
||||||
{/* Section Header */}
|
{/* Section Header */}
|
||||||
<div className="text-center mb-16">
|
<div className="text-center mb-16">
|
||||||
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-500 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-500 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
||||||
@@ -57,7 +57,7 @@ function WhatYouCanDo() {
|
|||||||
قابلیتهای اصلی
|
قابلیتهای اصلی
|
||||||
</div>
|
</div>
|
||||||
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
||||||
هر آنچه برای <span className="text-primary-500">آرامش</span> نیاز داری
|
اینجا زندگی <span className="text-primary-500">آسون تر</span> میشه
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
ابزارهای متنوع و تخصصی برای رسیدن به آرامش در هر شرایطی
|
ابزارهای متنوع و تخصصی برای رسیدن به آرامش در هر شرایطی
|
||||||
@@ -109,14 +109,14 @@ function WhatYouCanDo() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Bottom CTA */}
|
{/* Bottom CTA */}
|
||||||
<div className="text-center">
|
{/* <div className="text-center">
|
||||||
<p className="text-gray-600 text-lg mb-6">
|
<p className="text-gray-600 text-lg mb-6">
|
||||||
بیش از <span className="text-primary-500 font-bold">۱۰۰۰</span> کاربر از این ویژگیها استفاده میکنند
|
بیش از <span className="text-primary-500 font-bold">۱۰۰۰</span> کاربر از این ویژگیها استفاده میکنند
|
||||||
</p>
|
</p>
|
||||||
<button className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-bold py-3 px-6 rounded-2xl hover:shadow-lg transition-all duration-300 transform hover:scale-105">
|
<button className="bg-gradient-to-r from-primary-500 to-primary-600 text-white font-bold py-3 px-6 rounded-2xl hover:shadow-lg transition-all duration-300 transform hover:scale-105">
|
||||||
کشف همه قابلیتها
|
کشف همه قابلیتها
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div> */}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,10 +60,10 @@ function WhyAramland() {
|
|||||||
<div className="text-center mb-16">
|
<div className="text-center mb-16">
|
||||||
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-500 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
<div className="inline-flex items-center gap-2 bg-primary-500/10 text-primary-500 px-4 py-2 rounded-full text-sm font-medium mb-4">
|
||||||
<span className="text-lg">🚀</span>
|
<span className="text-lg">🚀</span>
|
||||||
برتری آراملند
|
برتری آرام لند
|
||||||
</div>
|
</div>
|
||||||
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
<h2 className="text-4xl md:text-5xl font-bold text-gray-900 mb-4">
|
||||||
چرا <span className="text-primary-500">هزاران نفر</span> آراملند را انتخاب میکنند؟
|
چرا <span className="text-primary-500">هزاران نفر</span> آرام لند را انتخاب میکنند؟
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
<p className="text-xl text-gray-600 max-w-2xl mx-auto">
|
||||||
تجربهای متفاوت از آرامش، طراحی شده مخصوص فارسیزبانان
|
تجربهای متفاوت از آرامش، طراحی شده مخصوص فارسیزبانان
|
||||||
@@ -129,7 +129,7 @@ function WhyAramland() {
|
|||||||
<div className="flex flex-col md:flex-row items-center justify-between gap-6">
|
<div className="flex flex-col md:flex-row items-center justify-between gap-6">
|
||||||
<div className="flex-1">
|
<div className="flex-1">
|
||||||
<h4 className="text-2xl font-bold text-gray-900 mb-3">
|
<h4 className="text-2xl font-bold text-gray-900 mb-3">
|
||||||
👥 عضو جامعه هزاران نفری آراملند شوید
|
👥 عضو جامعه هزاران نفری آرام لند شوید
|
||||||
</h4>
|
</h4>
|
||||||
<p className="text-gray-700 leading-relaxed">
|
<p className="text-gray-700 leading-relaxed">
|
||||||
به خانوادهای از کاربران خوشحال بپیوندید که هر روز قدمی به سمت آرامش برمیدارند
|
به خانوادهای از کاربران خوشحال بپیوندید که هر روز قدمی به سمت آرامش برمیدارند
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 25 KiB |
@@ -0,0 +1,40 @@
|
|||||||
|
// hooks/useScroll.js
|
||||||
|
import { useCallback } from 'react';
|
||||||
|
|
||||||
|
export const useScroll = () => {
|
||||||
|
const scrollToSection = useCallback((sectionId, offset = 0) => {
|
||||||
|
if (typeof window === 'undefined') return;
|
||||||
|
|
||||||
|
const element = document.getElementById(sectionId);
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
const elementPosition = element.getBoundingClientRect().top;
|
||||||
|
const offsetPosition = elementPosition + window.pageYOffset - offset;
|
||||||
|
|
||||||
|
window.scrollTo({
|
||||||
|
top: offsetPosition,
|
||||||
|
behavior: 'smooth'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const scrollToSectionWithHeader = useCallback((sectionId) => {
|
||||||
|
const headerOffset = 80; // Adjust based on your header height
|
||||||
|
scrollToSection(sectionId, headerOffset);
|
||||||
|
}, [scrollToSection]);
|
||||||
|
|
||||||
|
const scrollToTop = useCallback(() => {
|
||||||
|
if (typeof window === 'undefined') return;
|
||||||
|
|
||||||
|
window.scrollTo({
|
||||||
|
top: 0,
|
||||||
|
behavior: 'smooth'
|
||||||
|
});
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return {
|
||||||
|
scrollToSection,
|
||||||
|
scrollToSectionWithHeader,
|
||||||
|
scrollToTop
|
||||||
|
};
|
||||||
|
};
|
||||||
@@ -2,15 +2,70 @@ import type { Metadata } from 'next';
|
|||||||
import './globals.css';
|
import './globals.css';
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: 'آراملند | تمرین تنفسی و مدیتیشن',
|
title: 'آرام لند | تمرین تنفسی و مدیتیشن',
|
||||||
description: 'لحظهای آرام بگیر، زندگی را حس کن',
|
description: 'لحظهای آرام بگیر، زندگی را حس کن',
|
||||||
|
keywords: ['مدیتیشن فارسی', 'آرامش', 'تمرین تنفسی', 'کاهش استرس', 'ذهنآگاهی', 'مدیتیشن هدایت شده', 'سلامت روان', 'آرام لند'],
|
||||||
|
authors: [{ name: 'آرام لند' }],
|
||||||
|
creator: 'آرام لند',
|
||||||
|
publisher: 'آرام لند',
|
||||||
|
metadataBase: new URL('https://aramland.approagency.ir/'),
|
||||||
|
formatDetection: {
|
||||||
|
email: false,
|
||||||
|
address: false,
|
||||||
|
telephone: false,
|
||||||
|
},
|
||||||
|
icons: {
|
||||||
|
icon: '/favicon.png',
|
||||||
|
},
|
||||||
|
alternates: {
|
||||||
|
canonical: '/',
|
||||||
|
languages: {
|
||||||
|
'fa-IR': '/',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
openGraph: {
|
||||||
|
title: 'آرام لند - دستیار آرامش و مدیتیشن فارسی',
|
||||||
|
description: 'اپلیکیشن آرام لند - همراه شما برای رسیدن به آرامش درونی با مدیتیشنهای فارسی و تمرینهای تنفسی',
|
||||||
|
url: 'https://aramland.approagency.ir/',
|
||||||
|
siteName: 'آرام لند',
|
||||||
|
images: [
|
||||||
|
{
|
||||||
|
url: '/og-image.png', // Create this image (1200x630px)
|
||||||
|
width: 1200,
|
||||||
|
height: 630,
|
||||||
|
alt: ' آرام لند - اپلیکیشن مدیتیشن و آرامش - تمرین تنفسی',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
locale: 'fa_IR',
|
||||||
|
type: 'website',
|
||||||
|
},
|
||||||
|
|
||||||
|
twitter: {
|
||||||
|
card: 'summary_large_image',
|
||||||
|
title: 'آرام لند - تمرین تنفسی و مدیتیشن',
|
||||||
|
description: 'اپلیکیشن آرام لند - همراه شما برای رسیدن به آرامش درونی',
|
||||||
|
images: ['/og-image.png'],
|
||||||
|
creator: '@aramland', // Replace with your Twitter handle
|
||||||
|
},
|
||||||
|
robots: {
|
||||||
|
index: true,
|
||||||
|
follow: true,
|
||||||
|
googleBot: {
|
||||||
|
index: true,
|
||||||
|
follow: true,
|
||||||
|
'max-video-preview': -1,
|
||||||
|
'max-image-preview': 'large',
|
||||||
|
'max-snippet': -1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
verification: {
|
||||||
|
// Add your verification codes here
|
||||||
|
google: 'google-site-verification=HIKgdf_siYdPxbJ2P1792opMprpxci_QjE-quk9kyi8', // From Google Search Console
|
||||||
|
// yandex: 'your-yandex-verification-code', // If targeting Iran/Russia
|
||||||
|
},
|
||||||
};
|
};
|
||||||
<link
|
|
||||||
rel="icon"
|
|
||||||
href="/favicon.png"
|
|
||||||
type="image/<generated>"
|
|
||||||
sizes="<generated>"
|
|
||||||
/>
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: {
|
}: {
|
||||||
@@ -19,7 +74,48 @@ export default function RootLayout({
|
|||||||
return (
|
return (
|
||||||
<html lang="fa" dir="rtl">
|
<html lang="fa" dir="rtl">
|
||||||
<head>
|
<head>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta
|
||||||
|
name="google-site-verification"
|
||||||
|
content="HIKgdf_siYdPxbJ2P1792opMprpxci_QjE-quk9kyi8"
|
||||||
|
/>
|
||||||
|
{/* Favicon */}
|
||||||
|
<link rel="icon" href="/favicon.ico" sizes="any" />
|
||||||
|
<link rel="icon" href="/icon?<generated>" type="image/<generated>" sizes="<generated>" />
|
||||||
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
||||||
|
|
||||||
|
{/* Preload critical resources */}
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="anonymous" />
|
||||||
|
|
||||||
|
{/* Structured Data for SEO */}
|
||||||
|
<script
|
||||||
|
type="application/ld+json"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: JSON.stringify({
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "WebApplication",
|
||||||
|
"aggregateRating": {
|
||||||
|
"@type": "AggregateRating",
|
||||||
|
"ratingValue": "4.5",
|
||||||
|
"ratingCount": "1000"
|
||||||
|
},
|
||||||
|
"name": "آرام لند",
|
||||||
|
"description": "اپلیکیشن آرام لند - همراه شما برای رسیدن به آرامش درونی با مدیتیشنهای فارسی و تمرینهای تنفسی",
|
||||||
|
"url": "https://aramland.approagency.ir/",
|
||||||
|
"applicationCategory": "HealthApplication",
|
||||||
|
"operatingSystem": "Android, iOS, Web",
|
||||||
|
"offers": {
|
||||||
|
"@type": "Offer",
|
||||||
|
"price": "0",
|
||||||
|
"priceCurrency": "IRR"
|
||||||
|
},
|
||||||
|
"author": {
|
||||||
|
"@type": "Organization",
|
||||||
|
"name": "آرام لند"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
/>
|
||||||
</head>
|
</head>
|
||||||
<body className="antialiased">
|
<body className="antialiased">
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
|
After Width: | Height: | Size: 1.4 MiB |
@@ -0,0 +1,15 @@
|
|||||||
|
// app/robots.txt
|
||||||
|
User-agent: *
|
||||||
|
Allow: /
|
||||||
|
Disallow: /api/
|
||||||
|
Disallow: /_next/
|
||||||
|
Disallow: /private/
|
||||||
|
|
||||||
|
Sitemap: https://aramland.approagency.ir/sitemap.xml
|
||||||
|
|
||||||
|
# Iranian search engines
|
||||||
|
User-agent: YoozBot
|
||||||
|
Allow: /
|
||||||
|
|
||||||
|
User-agent: Parsijoo
|
||||||
|
Allow: /
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
// app/sitemap.js
|
||||||
|
export default function sitemap() {
|
||||||
|
const baseUrl = 'https://aaramland.ir/';
|
||||||
|
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
url: baseUrl,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}blog/`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 0.9,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}blog/tmryn-tnfsy-bry-khhsh-strs.html`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 0.8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}blog/mdytyshn-chyh.html`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 0.7,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
url: `${baseUrl}blog/khls-shdn-z-strs-b-arm-lnd.html`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
changeFrequency: 'weekly',
|
||||||
|
priority: 0.6,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add this export for static generation
|
||||||
|
export async function generateSitemaps() {
|
||||||
|
return [{ id: '0' }];
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
import type { NextConfig } from "next";
|
import type { NextConfig } from "next";
|
||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
/* config options here */
|
output: 'export',
|
||||||
};
|
};
|
||||||
|
|
||||||
export default nextConfig;
|
export default nextConfig;
|
||||||
|
|||||||
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 677 KiB |
|
After Width: | Height: | Size: 676 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 1.4 MiB |