
آموزش تبدیل scss به css
در ابتدا لازم است بدانیم که CSS و SCSS هر دو ابزارهایی برای تعریف ضاهر صفحات وب هستند، اما هر
تـــماس رایـــگان
تـــماس رایـــگان
در دنیای طراحی وب، دارک مود (Dark Mode) یکی از قابلیتهای محبوبی و کاربردی است که تجربهی کاربری (UX) و سئو را بهبود میبخشد و به چشم کاربران در محیطهای کمنور کمک میکند. از طرفی برخی کاربران به تم تاریک علاقهمند هستند و ترجیح آنها استفاده از تم تاریک میباشد. در این مقاله همراه با سوبلز، به شما آموزش میدهیم که چگونه با استفاده از CSS و JavaScript یک حالت دارک مود را به سایت خود اضافه کنید.
قبل از پرداختن به نحوهی پیادهسازی، بیایید بررسی کنیم که چرا دارک مود اهمیت دارد:
کاهش خستگی چشم: در محیطهای کمنور ، پسزمینهی تاریک باعث کاهش فشار روی چشم میشود که این موضوع سبب میشود کاربران جذب وبسایت شما شده و بتوانند مدت طولانی تری از خدمات شما در سایت بهرهمند شوند.
بهینهسازی مصرف انرژی: در صفحهنمایشهای OLED و AMOLED، نمایش رنگهای تیره مصرف باتری را کاهش میدهد و میتواند باعث افزایش طول عمر سخت افزار آن شود.
جذابیت بصری: بسیاری از کاربران ظاهر تیره را جذابتر و مدرنتر میدانند.
افزایش دسترسیپذیری: برخی از افراد مبتلا به حساسیت نوری هستند یا دارای مشکلات بینایی میباشند ، که در این صورت دارک مود را ترجیح میدهند و قرار دادن این قابلیت ، وبسایت شما را متمایز تر میسازد.
برای پیادهسازی دارک مود در وبسایت، روشهای مختلفی وجود دارد که ما از ترکیب CSS و JavaScript برای کنترل و پیاده سازی آن استفاده خواهیم کرد.
ابتدا یک فایل CSS یا یک تگ style برای دارک مود ایجاد کنید و استایلهای لازم را در آن بنویسید:
<style> /* استایلهای حالت روشن */ body { background-color: white; color: black; transition: background-color 0.3s, color 0.3s; } /* استایلهای حالت تاریک */ body.dark { background-color: #121212; color: white; } /* تغییر رنگ برای سایر عناصر */ .dark a { color: #bb86fc; } </style>
این کد ساده ترین حالت ممکن برای ایجاد تم دارک در سایت است ، و در صورتی که طراحی خیلی ساده و استایل های خیلی پیچیده ای در سایت شما وجود ندارد شاید بتواند نیاز شما را برطرف کند، اما این کد بسیار ابتدایی است.
تیم سوبلز برای ایجاد دارک مود از روش های بهینه تر و کاربردی تر برای افزودن دارک مود به سایت استفاده میکند که نمونه ای از آن را در ادامه توضیح خواهیم داد.
برای اینکه کاربران بتوانند بین حالت روشن و تاریک تغییر وضعیت دهند، شما میتوانیدیک دکمهی ساده به HTML اضافه کنید تا با کلیک کردن بر روی آن یک تابع جاوااسکریپت اجرا شود و کلاس dark را به تگ body اضافه یا حذف کند:
<button id="toggleDarkMode">تغییر دارک مود</button>
شما نیاز دارید که یک فایل js بسازید و درون صفحه html فراخوانی کنید یا در یک تگ script ، تکه کد زیر را برای جابجایی بین دو تم موجود قرار دهید:
<script> const toggleDarkMode = document.getElementById("toggleDarkMode"); const body = document.body; // بررسی ذخیره شدن تنظیمات در Local Storage if (localStorage.getItem("dark") === "enabled") { body.classList.add("dark"); } // رویداد کلیک برای تغییر وضعیت دارک مود darkModeToggle.addEventListener("click", () => { body.classList.toggle("dark"); // ذخیره وضعیت جدید در Local Storage if (body.classList.contains("dark")) { localStorage.setItem("dark", "enabled"); } else { localStorage.setItem("dark", "disabled"); } }); </script>
نکته: localStorage ، محلی است در مرورگر که برای ذخیره سازی یک سری داده با استفاده از جاوااسکریپت که دارای یک کلید و یک مقدار ، میباشد ، که در آینده کاربر با مراجعه دوباره به وبسایت، جاوااسکریپت میتواند از این داده های ذخیره شده استفاده مجدد کند.
توضیح کد بالا:
برای فعالسازی خودکار دارک مود براساس تنظیمات سیستم عامل کاربر، میتوان از prefers-color-scheme در CSS استفاده کرد:
<style> @media (prefers-color-scheme: dark) { body { background-color: #121212; color: white; } } </style>
در صورت نیاز در جاوااسکریپت نیز میتوانید به این مقدار دسترسی داشته باشید ، تا بتوانید مدیریت بهتری بر روی تصمیم گیری اولیه برای نمایش تم تیره یا روشن داشته باشید:
const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches
این کد یک مقدار boolean (صحیح یا غلط) برگشت میدهد ، در صورتی که تم کاربر دارک باشد مقدار صحیح (true) و در غیر این صورت مقدار غلط (false) درون متغیر تعریف شده با نام isDarkMode ، قرار میگیرد.
در طراحی وبسایت ها معمولا رنگ های مختلفی استفاده میشود و هر کدام از آنها در چندین جا مورد استفاده قرار میگیرد ، برای مثال شما یک رنگ برای پسزمینه سایت ، یک رنگ برای هر بخش (section) و یک رنگ متضاد نیز برای متن درون هر بخش در نظر گرفته اید ، و این رنگ ها را در هنگام طراحی به تگ های مختلف انتصاب داده اید.
در حالت دارک مود نیاز دارید هر سه مورد تغییر کند ، و در تمام بخش ها و تمامی صفحات سایت نیز این تغییر اعمال شود ، راه حل اصولی تر برای این کار ، استفاده از متغیر های css میباشد.
در متغیر شما یک مقدار (در این مثال یک کد رنگی) را قرار میدهید و این متغیر را در هر بخشی که نیاز به این مقدار باشد استفاده میکنید . با این کار اگر زمانی تصمیم بگیرید این مقدار را کمی تغییر دهید فقط کافی است مقدار درون متغیر را به سادگی عوض کنید و نیازی نیست که تمام بخش ها را بصورت دستی پیدا کرده و هر کدام را جداگانه تغییر دهید ، کما اینکه ممکن است برخی موارد فراموش شده و دچار ناهماهنگی در طرح شود.
این روش اصولی تر ، پیشنهاد تیم سوبلز برای پیاده سازی دارک مود میباشد که برای ساختار بندی مناسب تر کد از آن استفاده میکنیم. این کار در حالتی که از کتابخانه های مختلف مانند tailwind برای پیاده سازی طرح استفاده میکنید نیز کاربردی است :
<style> body { --background-color: #ffffff; --text-color: #000000; --section-color: #eaeaea; --primary-text-color: #121212; --link-color:#bb86fc; } body { background-color: var(--background-color); color: var(--text-color); } section { background-color: var(--section-color); } p { color: var(--primary-text-color); } a { color: var(--link-color); } /* ... */ body.dark { --background-color:#121212; --text-color: #ffffff; --section-color: #252525; --primary-text-color: #eaeaea; } </style>
در بخش اول با ساختار « مقدار:نام– » متغیر های مورد نیاز را با مقادیر مربوط به آن ایجاد کردیم که در خود body و تمام فرزندان آن در دسترس باشد.
در بخش بعدی با استفاده از تابع var در css میتوان به مقدار درون متغیر دسترسی پیدا کرده و از آن استفاده کرد.
و در آخر ، زمانی که تگ body دارای کلاس dark شد ، مقدار متغیر های تعریف شده را به مقادیر دلخواه در حالت دارک مود تغییر میدهیم، با این کار در هر تگ که از این متغییر استفاده کرده باشد ، این تغییر اعمال میشود.
✔ تغییر دستی بین دارک مود و لایت مود
✔ ذخیرهی وضعیت انتخابشده در localStorage
✔ تشخیص خودکار دارک مود از تنظیمات سیستم
✔ پیاده سازی اصولی با استفاده از متغیر های css
در این مقاله، سعی شد نحوهی افزودن دارک مود به وبسایت را با استفاده از CSS و JavaScript پیاده سازی کنیم که در طراحی سایت کاربرد دارد. با استفاده از localStorage ، انتخاب کاربران را ذخیره کردیم تا تجربهی کاربری بهتری فراهم شود. همچنین از media queries برای تشخیص تنظیمات پیشفرض سیستم کاربر بهره بردیم.
با پیادهسازی این روش، سایت شما حرفهایتر و کاربرپسندتر خواهد شد. 🚀
در ابتدا لازم است بدانیم که CSS و SCSS هر دو ابزارهایی برای تعریف ضاهر صفحات وب هستند، اما هر
امروزه که توسعه وب با سرعتی چشمگیر در حال پیشرفت است و سایتها به ابزاری حیاتی برای ارائه خدمات و
انیمیشن CSS روشی حرفهای برای جذاب تر و تعاملی تر کردن صفحات وب است. با استفاده از انیمیشن می توانید
نیاز به مشاوره دارید؟! ثبت درخواست مشاوره رایگان
30 دقیقه مشاوره رایگان
فیلد های "*" اجباری هستند
شرکت فناوری اطلاعات تکین با برند تجاری سوبلز در حوزه فناوری اطلاعات و الکترونیک فعالیت دارد.
سوبلز 2025 تمام حقوق برای شرکت فناوری اطلاعات تکین محفوظ است.
فیلد های "*" اجباری هستند
درصورت ثبت اطلاعات تماس، کارشناس ما در اسرع وقت با شما تماس خواهند گرفت.
فیلد های "*" اجباری هستند
درصورت ثبت اطلاعات تماس، کارشناس ما در اسرع وقت با شما تماس خواهند گرفت.
فیلد های "*" اجباری هستند
درصورت ثبت اطلاعات تماس، کارشناس ما در اسرع وقت با شما تماس خواهند گرفت.
ثبت درخواست مشاوره رایگان