Please open Telegram to view this post
VIEW IN TELEGRAM
سلام
ساعت ۱۰:۱۵ دقیقه کانال یوتیوب و چک کنید😉
(اگر قسمت اول آموزش فریمر موشن و ندیدید، تو همین چند دقیقه باقی مونده یه نگاهی بهش بندازید - خیلی خفنه🔥 )
▶️ youtube.com/@nima_arf
@react_ir
ساعت ۱۰:۱۵ دقیقه کانال یوتیوب و چک کنید
(اگر قسمت اول آموزش فریمر موشن و ندیدید، تو همین چند دقیقه باقی مونده یه نگاهی بهش بندازید - خیلی خفنه
@react_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
ویدیو جدید به زودی ... 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
یلداتون مبارک 🍉
سابسکرایبرهایی که کانال یوتیوب و دنبال میکنید، برای ویدیو های بعدی کانال نظر سنجی داخل یوتیوب گذاشتم
دوست دارید تو ادامه فعالیت کانال اول کدوم سبک ویدیو رو ادامه بدم؟
1️⃣ Server Side Rendering (NextJS App Directory, Remix, ...)
2️⃣ Performance (Tree Shaking, ...)
3️⃣ Typescript (feat React)
4️⃣ React (Forms, PWA, State Management, UI Libs ...)
5️⃣ PWA (Notifications, Offline Apps, Web ShareAPI)
ممنون میشم یه چند دقیقه وقت بزارید و تو نظر سنجی شرکت کنید، برای شرکت کردن روی لینک زیر کلیک کنید و روی گزینه مورد نظرتون انتخاب کنید (اگر subscribe نکردید هم روی دکمه subscribe و زنگوله🔔 کنارش کلیک کنید)
https://www.youtube.com/channel/UCGEIqIvCbVW8kIUUK90G1Zg/community?pvf=CAI%253D
@react_ir
سابسکرایبرهایی که کانال یوتیوب و دنبال میکنید، برای ویدیو های بعدی کانال نظر سنجی داخل یوتیوب گذاشتم
دوست دارید تو ادامه فعالیت کانال اول کدوم سبک ویدیو رو ادامه بدم؟
1️⃣ Server Side Rendering (NextJS App Directory, Remix, ...)
2️⃣ Performance (Tree Shaking, ...)
3️⃣ Typescript (feat React)
4️⃣ React (Forms, PWA, State Management, UI Libs ...)
5️⃣ PWA (Notifications, Offline Apps, Web ShareAPI)
ممنون میشم یه چند دقیقه وقت بزارید و تو نظر سنجی شرکت کنید، برای شرکت کردن روی لینک زیر کلیک کنید و روی گزینه مورد نظرتون انتخاب کنید (اگر subscribe نکردید هم روی دکمه subscribe و زنگوله
https://www.youtube.com/channel/UCGEIqIvCbVW8kIUUK90G1Zg/community?pvf=CAI%253D
@react_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
یه مسئلهای که تو CSS وجود داره بحث اولویت هاست
داخل فایل css ما میایم چند خط CSS مینویسم
بعد ما میایم این کلاس هارو داخل html element هایی که داریم استفاده میکنیم
و الان ما یه دکمه رو صفحه داریم که رنگ پس زمینهش قرمز هستش
حالا اگر من اومدم همزمان هم کلاس bg-blue هم bg-red و دادم به button چی میشه؟
ممکنه بگید خب چون bg-blue بعد از bg-red تو class قرار گرفته پس باید رنگ پس زمینه آبی بشه!
- که اشتباهه
تو قطعه کد CSS بالا چون کلاس red بعد از blue تعریف شده پس اولویت بالاتری داره و اگر همزمان رو یه المان ما این ۲ تا کلاس و بزاریم red برنده میشه
جابهجا کردن لیست class ها تو element ها خروجی کامپوننتمون تغییر نمیکنه
پس این ۲ تا قطعه کد خروجی یکسان دارن
حالا اگر ما یه پکیجی مثل tailwind و استفاده کنیم که هزاران هزار class مختلف داره از کجا باید بدونیم که کدوم class اولویتش از اون یکی بیشتره، بعد اصلا اینو بدونیم چه طوری میتونیم کامپوننت هایی بنویسیم که استایل هایی که دارن override بشن؟
اینجاست که tailwind-merge به کمکمون میاد
https://github.com/dcastil/tailwind-merge
این پکیج چه طوری کمکمون میکنه؟ فرض کنید bg-red و bg-blue کلاس های tailwind هستن و با همون اولویت قبلی که بالاتر داشتیم تعریف شدن
ما اگر بیایم این کلاس هارو به تابع tw-merge بدیم،اون class که دیرتر تو رشته class تعریف شده میاد class های قبلی که همون property و تغییر میدن (مثلا background) و پاک میکنه اینطوری دیگه ما مشکل و حل میکنیم!
@react_ir
داخل فایل css ما میایم چند خط CSS مینویسم
. bg-blue {
background: blue;
}
.bg-red {
background: red;
}
بعد ما میایم این کلاس هارو داخل html element هایی که داریم استفاده میکنیم
<button class=“bg-red” />
و الان ما یه دکمه رو صفحه داریم که رنگ پس زمینهش قرمز هستش
حالا اگر من اومدم همزمان هم کلاس bg-blue هم bg-red و دادم به button چی میشه؟
<button class=“bg-red bg-blue” />
ممکنه بگید خب چون bg-blue بعد از bg-red تو class قرار گرفته پس باید رنگ پس زمینه آبی بشه!
- که اشتباهه
تو قطعه کد CSS بالا چون کلاس red بعد از blue تعریف شده پس اولویت بالاتری داره و اگر همزمان رو یه المان ما این ۲ تا کلاس و بزاریم red برنده میشه
جابهجا کردن لیست class ها تو element ها خروجی کامپوننتمون تغییر نمیکنه
پس این ۲ تا قطعه کد خروجی یکسان دارن
<button class=“bg-red bg-blue” />
<button class=“bg-blue bg-red” />
حالا اگر ما یه پکیجی مثل tailwind و استفاده کنیم که هزاران هزار class مختلف داره از کجا باید بدونیم که کدوم class اولویتش از اون یکی بیشتره، بعد اصلا اینو بدونیم چه طوری میتونیم کامپوننت هایی بنویسیم که استایل هایی که دارن override بشن؟
اینجاست که tailwind-merge به کمکمون میاد
https://github.com/dcastil/tailwind-merge
این پکیج چه طوری کمکمون میکنه؟ فرض کنید bg-red و bg-blue کلاس های tailwind هستن و با همون اولویت قبلی که بالاتر داشتیم تعریف شدن
ما اگر بیایم این کلاس هارو به تابع tw-merge بدیم،اون class که دیرتر تو رشته class تعریف شده میاد class های قبلی که همون property و تغییر میدن (مثلا background) و پاک میکنه اینطوری دیگه ما مشکل و حل میکنیم!
import { twMerge } from 'tailwind-merge'
twMerge(‘bg-red bg-blue’)
// → ‘bg-blue’
twMerge(‘bg-blue bg-red’)
// → ‘bg-red’
@react_ir
GitHub
GitHub - dcastil/tailwind-merge: Merge Tailwind CSS classes without style conflicts
Merge Tailwind CSS classes without style conflicts - dcastil/tailwind-merge