لو اشتغلت قبل كدا على مشروع في Next.js واحتجت تضيف Dark & Iight Mode فالموضوع ابسط مما تتخيل يا صديقي..
هشرحلك دلوقتي ازاي تعمل كدا خطوه بخطوه إن شاء الله.
1️⃣ هنستخدم مكتبة next-themes:
2️⃣ بعد كدا هنظبط الـ Theme Provider في الموقع
📂 app/layout.js (لو بتستخدم App Router)
📂 pages/_app.js (لو بتستخدم Pages Router)
- الـ ThemeProvider هو المسئول عن التحكم في الثيم.
- والـ attribute=”class” بيضيف اسم الثيم في className على عشان نتحكم فيه بالـ CSS.
3️⃣ هنضيف زرار عشان نعرف نبدل بين الثيمات
📂 components/ThemeToggle.js
- الزرار بيبدل بين Light و Dark Mode لما المستخدم يضغط عليه.
- استخدمنا useEffect علشان نحل مشاكل Server-side Rendering (SSR) في Next.js.
4️⃣ هنضيف شويه CSS عشان نغير الألوان
📂 globals.css
- لما المستخدم يختار Dark Mode الألوان هتتغير تلقائيا.
- وضفنا transition عشان التغيير يبقى سلس.
5️⃣ هنضيف الزرار في أي مكان في الموقع
📂 app/page.js (لو App Router)
📂 pages/index.js (لو Pages Router)
كدا اليوزر يقدر يبدل بين Light و Dark Mode في أي وقت…😃🥳
وبكدا عرفت إزاي تبني نظام Themes (Dark/Light Mode) في Next.js, لو عندك أي استفسار اكتب في الكومنتات..💛
قسم التعليقات
ezzghari
والله انك رائع واصل يا بطل
Magdy Atef Zahran رد علي @ezzghari
شكرا لك