From 81a10f6269542b2770f237e3e6becbef5343b36a Mon Sep 17 00:00:00 2001 From: AmirmahdiNourkazemi Date: Fri, 7 Nov 2025 13:27:36 +0330 Subject: [PATCH] feat: primary color from tailwind --- app/app.tsx | 5 +- app/components/CallToAction.jsx | 10 +- app/components/DownloadSection.jsx | 18 +- app/components/Features.jsx | 18 +- app/components/FreeTrial.jsx | 4 +- app/components/Header.jsx | 10 +- app/components/Hero.jsx | 12 +- app/components/ScientificBenefits.jsx | 304 +++++++++++++------------- app/components/WhatYouCanDo.jsx | 44 ++-- app/components/WhyAramland.jsx | 34 +-- app/globals.css | 19 +- package-lock.json | 71 ++++++ package.json | 1 + postcss.config.mjs | 4 +- tailwind.config.ts | 65 ++---- 15 files changed, 340 insertions(+), 279 deletions(-) diff --git a/app/app.tsx b/app/app.tsx index d959abc..5b803d7 100644 --- a/app/app.tsx +++ b/app/app.tsx @@ -5,7 +5,7 @@ import Features from './components/Features'; import WhatYouCanDo from './components/WhatYouCanDo'; import WhyAramland from './components/WhyAramland'; import FreeTrial from './components/FreeTrial'; -import ScientificBenefits from './components/ScientificBenefits'; +// import ScientificBenefits from './components/ScientificBenefits'; import CallToAction from './components/CallToAction'; import Footer from './components/Footer'; @@ -15,13 +15,14 @@ function App() {
+ - + {/* */}
diff --git a/app/components/CallToAction.jsx b/app/components/CallToAction.jsx index 51b8d41..0f42b58 100644 --- a/app/components/CallToAction.jsx +++ b/app/components/CallToAction.jsx @@ -2,25 +2,25 @@ function CallToAction() { return (
{/* Background with gradient */} -
+
{/* Animated border */} -
+

- آماده برای تغییر زندگی؟ + آماده برای تغییر زندگی؟

امروز اولین قدم رو بردار و ببین چطور آرام‌لند می‌تونه کیفیت زندگی‌ات رو متحول کنه

- -
diff --git a/app/components/DownloadSection.jsx b/app/components/DownloadSection.jsx index 8e2f363..ef285ab 100644 --- a/app/components/DownloadSection.jsx +++ b/app/components/DownloadSection.jsx @@ -7,22 +7,22 @@ function DownloadSection() { title: "کافه بازار", description: "دانلود برای اندروید", badge: "پرطرفدار", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", animation: "animate-slideInLeft delay-100" }, { icon: PlayCircle, - title: "گوگل پلی", + title: "مایکت", description: "دانلود برای اندروید", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", animation: "animate-fadeInUp delay-200" }, { icon: Globe, - title: "وب اپلیکیشن", - description: "استفاده آنلاین", + title: "وب سایت", + description: "نسخه وب برای تمام دستگاه‌ها", badge: "جدید", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", animation: "animate-slideInRight delay-300" } ]; @@ -31,13 +31,13 @@ function DownloadSection() {
{/* Background pattern */}
-
+

- همین حالا شروع کنید + همین حالا شروع کنید

آرام‌لند را روی دستگاه مورد علاقه‌تان نصب کنید @@ -55,7 +55,7 @@ function DownloadSection() {

{option.badge && ( -
+
{option.badge}
)} diff --git a/app/components/Features.jsx b/app/components/Features.jsx index dc53971..1f0374b 100644 --- a/app/components/Features.jsx +++ b/app/components/Features.jsx @@ -4,24 +4,24 @@ function Features() { emoji: "💨", title: "تمرین تنفسی هوشمند", description: "الگوریتم هوشمند برای هر لحظه، یک تنفس عمیق و استرس‌ات نابود شه", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", delay: "delay-100" }, { emoji: "🎛️", title: "الگوی تنفسی انتخابی", description: "تمرین‌های تنفسی خود را طراحی کنید و تمام خاصیت‌ها را کنترل کنید", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", delay: "delay-200" }, { emoji: "📦", title: "صندوق دغدغه‌ها", description: "دغدغه‌هایت رو در یک صندوق خیالی بگذار و ذهنت رو سبک‌تر کن", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", delay: "delay-300" } ]; @@ -29,12 +29,12 @@ function Features() { return (
-
+
ویژگی‌های منحصر بفرد

- هر آنچه برای آرامش نیاز دارید + هر آنچه برای آرامش نیاز دارید

تمام ابزارهای لازم برای رسیدن به آرامش درونی در یک پلتفرم @@ -45,7 +45,7 @@ function Features() { {features.map((feature, index) => (

diff --git a/app/components/FreeTrial.jsx b/app/components/FreeTrial.jsx index 4a7ea58..552b1fa 100644 --- a/app/components/FreeTrial.jsx +++ b/app/components/FreeTrial.jsx @@ -1,6 +1,6 @@ function FreeTrial() { return ( -
+
{/* Background Pattern */}
@@ -47,7 +47,7 @@ function FreeTrial() {
{/* CTA Button */} - diff --git a/app/components/Header.jsx b/app/components/Header.jsx index c9465a1..9282891 100644 --- a/app/components/Header.jsx +++ b/app/components/Header.jsx @@ -4,10 +4,10 @@ function Header() {
{/* Logo */}
-
+
آ
-
+
آرام‌لند
@@ -18,16 +18,16 @@ function Header() { {item} - + ))}
{/* CTA Button */} -
diff --git a/app/components/Hero.jsx b/app/components/Hero.jsx index 9717f53..029d4c9 100644 --- a/app/components/Hero.jsx +++ b/app/components/Hero.jsx @@ -4,21 +4,21 @@ function Hero() {
{/* Background decoration */}
-
-
+
+
-
+

آرامش را در - هر لحظه + هر لحظه تجربه کنید

@@ -28,10 +28,10 @@ function Hero() {

- -
diff --git a/app/components/ScientificBenefits.jsx b/app/components/ScientificBenefits.jsx index 04a54ab..2202f74 100644 --- a/app/components/ScientificBenefits.jsx +++ b/app/components/ScientificBenefits.jsx @@ -1,161 +1,161 @@ -function ScientificBenefits() { - const benefits = [ - { - title: "تکنیک‌های مبتنی بر علم اعصاب", - description: "آرام‌لند از روش‌های اثبات‌شده علمی برای کاهش استرس و افزایش آرامش استفاده می‌کند", - icon: "🧠", - items: [ - "بهبود خلق و خو در کمتر از ۵ دقیقه", - "کاهش ۴۰٪ی سطح کورتیزول (هورمون استرس)", - "افزایش امواج آلفای مغز برای آرامش", - "بهبود کیفیت خواب تا ۶۰٪" - ], - stats: "۸۷٪ موفقیت", - color: "from-[#C3C7FF] to-[#A8B1FF]", - delay: "delay-100" - }, - { - title: "طراحی کاربری مبتنی بر روانشناسی", - description: "رابط کاربری طراحی شده بر اساس اصول روانشناسی برای حداکثر تأثیرگذاری", - icon: "🎨", - items: [ - "رابط ساده و شهودی برای کاهش بار ذهنی", - "طراحی مینیمال برای تمرکز بهتر", - "هدایت گام‌به‌گام فارسی", - "فیدبک لحظه‌ای از پیشرفت" - ], - stats: "۹۴٪ رضایت", - color: "from-[#C3C7FF] to-[#A8B1FF]", - delay: "delay-200" - } - ]; +// function ScientificBenefits() { +// const benefits = [ +// { +// title: "تکنیک‌های مبتنی بر علم اعصاب", +// description: "آرام‌لند از روش‌های اثبات‌شده علمی برای کاهش استرس و افزایش آرامش استفاده می‌کند", +// icon: "🧠", +// items: [ +// "بهبود خلق و خو در کمتر از ۵ دقیقه", +// "کاهش ۴۰٪ی سطح کورتیزول (هورمون استرس)", +// "افزایش امواج آلفای مغز برای آرامش", +// "بهبود کیفیت خواب تا ۶۰٪" +// ], +// stats: "۸۷٪ موفقیت", +// color: "from-primary-500 to-primary-600", +// delay: "delay-100" +// }, +// { +// title: "طراحی کاربری مبتنی بر روانشناسی", +// description: "رابط کاربری طراحی شده بر اساس اصول روانشناسی برای حداکثر تأثیرگذاری", +// icon: "🎨", +// items: [ +// "رابط ساده و شهودی برای کاهش بار ذهنی", +// "طراحی مینیمال برای تمرکز بهتر", +// "هدایت گام‌به‌گام فارسی", +// "فیدبک لحظه‌ای از پیشرفت" +// ], +// stats: "۹۴٪ رضایت", +// color: "from-primary-500 to-primary-600", +// delay: "delay-200" +// } +// ]; - const researchStats = [ - { number: "۴۰٪", label: "کاهش استرس", description: "پس از ۲ هفته استفاده منظم" }, - { number: "۳۵٪", label: "افزایش تمرکز", description: "در کارهای روزمره" }, - { number: "۵۰٪", label: "بهبود خواب", description: "کیفیت خواب بهتر" }, - { number: "۲۵٪", label: "افزایش انرژی", description: "در طول روز" } - ]; +// const researchStats = [ +// { number: "۴۰٪", label: "کاهش استرس", description: "پس از ۲ هفته استفاده منظم" }, +// { number: "۳۵٪", label: "افزایش تمرکز", description: "در کارهای روزمره" }, +// { number: "۵۰٪", label: "بهبود خواب", description: "کیفیت خواب بهتر" }, +// { number: "۲۵٪", label: "افزایش انرژی", description: "در طول روز" } +// ]; - return ( -
- {/* Section Header */} -
-
- 🔬 - پشتیبانی علمی -
-

- چرا فقط چند دقیقه کافی است؟ -

-

- بر اساس تحقیقات علمی در زمینه روانشناسی و علوم اعصاب -

-
+// return ( +//
+// {/* Section Header */} +//
+//
+// 🔬 +// پشتیبانی علمی +//
+//

+// چرا فقط چند دقیقه کافی است؟ +//

+//

+// بر اساس تحقیقات علمی در زمینه روانشناسی و علوم اعصاب +//

+//
- {/* Research Statistics */} -
- {researchStats.map((stat, index) => ( -
-
- {stat.number} -
-
{stat.label}
-
{stat.description}
-
- ))} -
+// {/* Research Statistics */} +//
+// {researchStats.map((stat, index) => ( +//
+//
+// {stat.number} +//
+//
{stat.label}
+//
{stat.description}
+//
+// ))} +//
- {/* Main Benefits Grid */} -
- {benefits.map((benefit, index) => ( -
- {/* Header */} -
-
-
- {benefit.icon} -

{benefit.title}

-
-
- {benefit.stats} -
-
-
+// {/* Main Benefits Grid */} +//
+// {benefits.map((benefit, index) => ( +//
+// {/* Header */} +//
+//
+//
+// {benefit.icon} +//

{benefit.title}

+//
+//
+// {benefit.stats} +//
+//
+//
- {/* Content */} -
-

- {benefit.description} -

+// {/* Content */} +//
+//

+// {benefit.description} +//

-
    - {benefit.items.map((item, itemIndex) => ( -
  • -
    - - - -
    - {item} -
  • - ))} -
-
-
- ))} -
+//
    +// {benefit.items.map((item, itemIndex) => ( +//
  • +//
    +// +// +// +//
    +// {item} +//
  • +// ))} +//
+//
+//
+// ))} +//
- {/* Scientific Evidence Section */} -
-
-
-

- 📊 پشتیبانی شده توسط تحقیقات -

-

- تمام تکنیک‌های استفاده شده در آرام‌لند بر اساس مطالعات علمی معتبر در زمینه‌های - روانشناسی، علوم اعصاب و پزشکی رفتاری طراحی شده‌اند. -

-
-
- {/* {[ - { name: "Harvard", color: "bg-red-100 text-red-600" }, - { name: "Stanford", color: "bg-blue-100 text-blue-600" }, - { name: "NIH", color: "bg-green-100 text-green-600" } - ].map((org, index) => ( -
- {org.name} -
- ))} */} -
-
-
+// {/* Scientific Evidence Section */} +//
+//
+//
+//

+// 📊 پشتیبانی شده توسط تحقیقات +//

+//

+// تمام تکنیک‌های استفاده شده در آرام‌لند بر اساس مطالعات علمی معتبر در زمینه‌های +// روانشناسی، علوم اعصاب و پزشکی رفتاری طراحی شده‌اند. +//

+//
+//
+// {[ +// { name: "Harvard", color: "bg-red-100 text-red-600" }, +// { name: "Stanford", color: "bg-blue-100 text-blue-600" }, +// { name: "NIH", color: "bg-green-100 text-green-600" } +// ].map((org, index) => ( +//
+// {org.name} +//
+// ))} +//
+//
+//
- {/* Bottom CTA */} -
- -

- مبتنی بر بیش از ۵۰ مطالعه علمی معتبر -

-
-
- ); -} +// {/* Bottom CTA */} +//
+// +//

+// مبتنی بر بیش از ۵۰ مطالعه علمی معتبر +//

+//
+//
+// ); +// } -export default ScientificBenefits; \ No newline at end of file +// export default ScientificBenefits; \ No newline at end of file diff --git a/app/components/WhatYouCanDo.jsx b/app/components/WhatYouCanDo.jsx index 0e36b1c..8c9df0d 100644 --- a/app/components/WhatYouCanDo.jsx +++ b/app/components/WhatYouCanDo.jsx @@ -6,10 +6,10 @@ function WhatYouCanDo() { icon: Wind, title: "تمرین‌های تنفسی", description: "با تمرین‌های ساده و مؤثر تنفسی، اضطراب‌ات رو کاهش بده و ذهنت رو آرام کن.", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", items: ["روش تنفس ۴-۷-۸", "تنفس باکس‌شکل برای تمرکز", "تنفس برای خواب بهتر"], - color: "[#C3C7FF]", + color: "primary-500", delay: "delay-100", stats: "۱۰+ تمرین مختلف" }, @@ -17,10 +17,10 @@ function WhatYouCanDo() { icon: Brain, title: "مدیتیشن و ذهن‌آگاهی", description: "مدیتیشن‌های هدایت‌شده فارسی برای تمام سطح‌ها.", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", items: ["مدیتیشن برای مبتدی‌ها (۵ دقیقه‌ای)", "ذهن‌آگاهی در زندگی روزمره", "مدیتیشن خواب عمیق"], - color: "[#C3C7FF]", + color: "primary-500", delay: "delay-200", stats: "۵۰+ جلسه" }, @@ -28,10 +28,10 @@ function WhatYouCanDo() { icon: Heart, title: "صلح درونی و خودقبولی", description: "جلسات هدایت‌شده برای پذیرش خود و رفع احساسات منفی.", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", items: ["درمان فشار روانی و اضطراب", "افزایش اعتماد به نفس", "مدیتیشن محبت و مهربانی"], - color: "[#C3C7FF]", + color: "primary-500", delay: "delay-300", stats: "۲۵+ برنامه" }, @@ -39,10 +39,10 @@ function WhatYouCanDo() { icon: Sparkles, title: "موسیقی آرام‌بخش", description: "آهنگ‌های طبیعت و موسیقی آرام‌بخش برای یوگا، کار و خواب.", - gradient: "from-[#C3C7FF]/10 to-[#A8B1FF]/10", - border: "border-[#C3C7FF]/20", + gradient: "from-primary-500/10 to-primary-600/10", + border: "border-primary-500/20", items: ["آرام برای فوکس و تمرکز", "موسیقی طبیعت و اقیانوس", "پس‌زمینه برای یوگا"], - color: "[#C3C7FF]", + color: "primary-500", delay: "delay-400", stats: "۱۰۰+ آهنگ" } @@ -52,12 +52,12 @@ function WhatYouCanDo() {
{/* Section Header */}
-
+
قابلیت‌های اصلی

- هر آنچه برای آرامش نیاز داری + هر آنچه برای آرامش نیاز داری

ابزارهای متنوع و تخصصی برای رسیدن به آرامش در هر شرایطی @@ -69,17 +69,17 @@ function WhatYouCanDo() { {activities.map((activity, index) => (

{/* Header with Icon and Stats */}
-
+

{activity.title}

-

{activity.stats}

+

{activity.stats}

@@ -94,16 +94,16 @@ function WhatYouCanDo() { {activity.items.map((item, itemIndex) => (
  • -
    +
    {item}
  • ))} {/* Hover Effect Overlay */} -
    +
    ))}
    @@ -111,9 +111,9 @@ function WhatYouCanDo() { {/* Bottom CTA */}

    - بیش از ۱۰۰۰ کاربر از این ویژگی‌ها استفاده می‌کنند + بیش از ۱۰۰۰ کاربر از این ویژگی‌ها استفاده می‌کنند

    -
    diff --git a/app/components/WhyAramland.jsx b/app/components/WhyAramland.jsx index b199fdb..6ff5dd0 100644 --- a/app/components/WhyAramland.jsx +++ b/app/components/WhyAramland.jsx @@ -5,7 +5,7 @@ function WhyAramland() { text: "مدیتیشن و تمرین تنفسی", description: "تمرین‌های متنوع برای هر سلیقه و نیاز", icon: "🧘‍♀️", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", delay: "delay-100" }, { @@ -13,7 +13,7 @@ function WhyAramland() { text: "ساعت محتوای صوتی فارسی", description: "هدایت‌شده توسط متخصصان ایرانی", icon: "🎧", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", delay: "delay-200" }, { @@ -21,7 +21,7 @@ function WhyAramland() { text: "دسترسی همیشه و همه جا", description: "در هر زمان و مکان به آرامش برسید", icon: "🌙", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", delay: "delay-300" }, { @@ -29,7 +29,7 @@ function WhyAramland() { text: "رضایت کاربران", description: "تجربه‌ای که کاربران عاشقش هستند", icon: "⭐", - gradient: "from-[#C3C7FF] to-[#A8B1FF]", + gradient: "from-primary-500 to-primary-600", delay: "delay-400" } ]; @@ -58,12 +58,12 @@ function WhyAramland() {
    {/* Section Header */}
    -
    +
    🚀 برتری آرام‌لند

    - چرا هزاران نفر آرام‌لند را انتخاب می‌کنند؟ + چرا هزاران نفر آرام‌لند را انتخاب می‌کنند؟

    تجربه‌ای متفاوت از آرامش، طراحی شده مخصوص فارسی‌زبانان @@ -83,7 +83,7 @@ function WhyAramland() {

    {/* Number */} -
    +
    {stat.number}
    @@ -100,9 +100,9 @@ function WhyAramland() { {/* Divider */}
    -
    -
    -
    +
    +
    +
    {/* Features Grid */} @@ -112,7 +112,7 @@ function WhyAramland() { key={index} className="text-center group hover:transform hover:translate-y-[-8px] transition-all duration-300" > -
    +
    {feature.icon}

    {feature.title}

    @@ -125,7 +125,7 @@ function WhyAramland() {
    {/* Social Proof Section */} -
    +

    @@ -140,7 +140,7 @@ function WhyAramland() { {[1, 2, 3, 4].map((item) => (
    {item}
    @@ -156,15 +156,15 @@ function WhyAramland() { {/* Bottom CTA */}
    - -

    + */} + {/*

    هیچ کارت اعتباری نیاز نیست • تضمین بازگشت وجه ۷ روزه -

    +

    */}

    ); diff --git a/app/globals.css b/app/globals.css index c7e8895..3d17cd9 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,7 +1,24 @@ @import "tailwindcss"; - +@tailwind base; +@tailwind components; +@tailwind utilities; /* @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); */ + + + @theme { + --color-primary-50: #f0f1ff; + --color-primary-100: #e4e6ff; + --color-primary-200: #c3c7ff; + --color-primary-300: #a8b1ff; + --color-primary-400: #8d9aff; + --color-primary-500: #727dfd; + --color-primary-600: #5d68e0; + --color-primary-700: #4853c4; + --color-primary-800: #343ea8; + --color-primary-900: #1f298; + } + /* Dana Font Faces */ @font-face { font-family: 'Dana'; diff --git a/package-lock.json b/package-lock.json index add57cd..2770301 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", + "autoprefixer": "^10.4.21", "eslint": "^9", "eslint-config-next": "16.0.1", "tailwindcss": "^4", @@ -2363,6 +2364,44 @@ "node": ">= 0.4" } }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/available-typed-arrays": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", @@ -3589,6 +3628,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, "node_modules/framer-motion": { "version": "12.23.24", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.24.tgz", @@ -5097,6 +5150,16 @@ "dev": true, "license": "MIT" }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -5377,6 +5440,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -5386,6 +5450,13 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index 670bbb4..7a2776b 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", + "autoprefixer": "^10.4.21", "eslint": "^9", "eslint-config-next": "16.0.1", "tailwindcss": "^4", diff --git a/postcss.config.mjs b/postcss.config.mjs index 61e3684..72b48a8 100644 --- a/postcss.config.mjs +++ b/postcss.config.mjs @@ -1,6 +1,8 @@ +// postcss.config.mjs const config = { plugins: { - "@tailwindcss/postcss": {}, + "@tailwindcss/postcss": {}, // ✅ correct for Tailwind 4 + autoprefixer: {}, }, }; diff --git a/tailwind.config.ts b/tailwind.config.ts index 1f28356..71fb29f 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -1,66 +1,35 @@ -import type { Config } from 'tailwindcss'; +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: { sans: [ - 'Dana', - 'Inter', - 'var(--font-geist-sans)', - 'system-ui', - 'sans-serif', + "Dana", + "Inter", + "var(--font-geist-sans)", + "system-ui", + "sans-serif", ], }, - 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', + fadeInUp: "fadeInUp 0.6s ease-out", }, keyframes: { fadeInUp: { - '0%': { opacity: '0', transform: 'translateY(30px)' }, - '100%': { opacity: '1', transform: 'translateY(0)' }, + "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)' }, - }, - } + }, }, }, plugins: [], }; -export default config; \ No newline at end of file +export default config;