-
{stat.number}
-
{stat.text}
+
+ {/* Main Stats Section */}
+
+ {/* Section Header */}
+
+
+ 🚀
+ برتری آراملند
- ))}
+
+ چرا هزاران نفر آراملند را انتخاب میکنند؟
+
+
+ تجربهای متفاوت از آرامش، طراحی شده مخصوص فارسیزبانان
+
+
+
+ {/* Stats Grid */}
+
+ {stats.map((stat, index) => (
+
+ {/* Icon Container */}
+
+ {stat.icon}
+
+
+ {/* Number */}
+
+ {stat.number}
+
+
+ {/* Main Text */}
+
{stat.text}
+
+ {/* Description */}
+
+ {stat.description}
+
+
+ ))}
+
+
+ {/* Divider */}
+
+
+ {/* Features Grid */}
+
+ {features.map((feature, index) => (
+
+
+ {feature.icon}
+
+
{feature.title}
+
+ {feature.description}
+
+
+ ))}
+
+
+
+ {/* Social Proof Section */}
+
+
+
+
+ 👥 عضو جامعه هزاران نفری آراملند شوید
+
+
+ به خانوادهای از کاربران خوشحال بپیوندید که هر روز قدمی به سمت آرامش برمیدارند
+
+
+
+
+ {[1, 2, 3, 4].map((item) => (
+
+ {item}
+
+ ))}
+
+
+
+۱۰۰۰ کاربر فعال
+
هر ماه به ما میپیوندند
+
+
+
+
+
+ {/* Bottom CTA */}
+
+
+
+ هیچ کارت اعتباری نیاز نیست • تضمین بازگشت وجه ۷ روزه
+
);
diff --git a/app/favicon.png b/app/favicon.png
new file mode 100644
index 0000000..3ef9867
Binary files /dev/null and b/app/favicon.png differ
diff --git a/app/globals.css b/app/globals.css
index a32c29d..c7e8895 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -1,4 +1,5 @@
@import "tailwindcss";
+
/* @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); */
/* Dana Font Faces */
diff --git a/app/layout.tsx b/app/layout.tsx
index 20fedd3..9b470e0 100644
--- a/app/layout.tsx
+++ b/app/layout.tsx
@@ -2,10 +2,15 @@ import type { Metadata } from 'next';
import './globals.css';
export const metadata: Metadata = {
- title: 'آراملند - همراه تو برای یک زندگی آرامتر',
+ title: 'آراملند | تمرین تنفسی و مدیتیشن',
description: 'لحظهای آرام بگیر، زندگی را حس کن',
};
-
+
export default function RootLayout({
children,
}: {
diff --git a/package-lock.json b/package-lock.json
index 02fc16e..add57cd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "aramlan",
"version": "0.1.0",
"dependencies": {
+ "framer-motion": "^12.23.24",
"lucide-react": "^0.552.0",
"next": "16.0.1",
"react": "19.2.0",
@@ -3588,6 +3589,33 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/framer-motion": {
+ "version": "12.23.24",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.24.tgz",
+ "integrity": "sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-dom": "^12.23.23",
+ "motion-utils": "^12.23.6",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -4919,6 +4947,21 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/motion-dom": {
+ "version": "12.23.23",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.23.tgz",
+ "integrity": "sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^12.23.6"
+ }
+ },
+ "node_modules/motion-utils": {
+ "version": "12.23.6",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz",
+ "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==",
+ "license": "MIT"
+ },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
diff --git a/package.json b/package.json
index 21d2f2c..670bbb4 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"lint": "eslint"
},
"dependencies": {
+ "framer-motion": "^12.23.24",
"lucide-react": "^0.552.0",
"next": "16.0.1",
"react": "19.2.0",
diff --git a/tailwind.config.ts b/tailwind.config.ts
index 1c8ad14..1f28356 100644
--- a/tailwind.config.ts
+++ b/tailwind.config.ts
@@ -1,11 +1,6 @@
import type { Config } from 'tailwindcss';
const config: Config = {
- content: [
- './pages/**/*.{js,ts,jsx,tsx,mdx}',
- './components/**/*.{js,ts,jsx,tsx,mdx}',
- './app/**/*.{js,ts,jsx,tsx,mdx}',
- ],
theme: {
extend: {
fontFamily: {
@@ -19,6 +14,49 @@ const config: Config = {
},
direction: {
'rtl': 'rtl',
+ },
+ colors: {
+ primary: {
+ 50: '#f0f1ff',
+ 100: '#e0e2ff',
+ 200: '#c3c7ff',
+ 300: '#a8b1ff',
+ 400: '#8d9aff',
+ 500: '#C3C7FF', // Your main color
+ 600: '#a8b1ff',
+ 700: '#8d9aff',
+ 800: '#7283ff',
+ 900: '#576cff',
+ }
+ },
+ animation: {
+ 'fadeInUp': 'fadeInUp 0.6s ease-out',
+ 'float': 'float 6s ease-in-out infinite',
+ 'pulse-glow': 'pulse-glow 2s ease-in-out infinite alternate',
+ 'slideInLeft': 'slideInLeft 0.6s ease-out',
+ 'slideInRight': 'slideInRight 0.6s ease-out',
+ },
+ keyframes: {
+ fadeInUp: {
+ '0%': { opacity: '0', transform: 'translateY(30px)' },
+ '100%': { opacity: '1', transform: 'translateY(0)' },
+ },
+ float: {
+ '0%, 100%': { transform: 'translateY(0px)' },
+ '50%': { transform: 'translateY(-20px)' },
+ },
+ 'pulse-glow': {
+ '0%': { boxShadow: '0 0 20px rgb(195 199 255 / 0.4)' },
+ '100%': { boxShadow: '0 0 30px rgb(195 199 255 / 0.8)' },
+ },
+ slideInLeft: {
+ '0%': { opacity: '0', transform: 'translateX(-30px)' },
+ '100%': { opacity: '1', transform: 'translateX(0)' },
+ },
+ slideInRight: {
+ '0%': { opacity: '0', transform: 'translateX(30px)' },
+ '100%': { opacity: '1', transform: 'translateX(0)' },
+ },
}
},
},