جاوااسکریپت | JavaScript
509 subscribers
654 photos
140 videos
3 files
512 links
کانال @IR_javascript حاوی اطلاعات مفید در حوزه برنامه نویس فرانت که بصورت روزانه بروز می‌شود.
در این کانال شما به:
[1] مطالب تازه
[2] تحلیل‌های عمیق
[3] نکات آموزشی
[4] چالش
[5] ابزار و راهنمایی‌های کاربردی
دسترسی خواهید داشت.

🆔@IR_javascript
Download Telegram
در CSS انیمیشن‌های مبتنی بر اسکرول (scroll-driven animations) وجود دارند که امکان ایجاد انیمیشن‌های پیچیده و زیبا را تقریباً بدون نیاز به جاوااسکریپت فراهم می‌کنند.


🔗https://scroll-driven-animations.style/#
🔗https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_scroll-driven_animations

#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
👍3
چطور یک پیش‌نمایش زیبا برای سایت خود در پیام‌رسان‌ها و شبکه‌های اجتماعی ایجاد کنیم؟

وقتی لینکی از سایتتان را به اشتراک می‌گذارید، پیش‌نمایشی که نمایش داده می‌شود باید جذاب و چشم‌نواز باشد، نه مجموعه‌ای از متن‌های بی‌ربط یا تصاویر تصادفی. برای دستیابی به این پیش‌نمایش حرفه‌ای، فقط نیاز به چند مرحله ساده داریم!
راه‌حل: استفاده از متا تگ‌های Open Graph
متا تگ‌های Open Graph یک استاندارد جهانی هستند که توسط شبکه‌های اجتماعی و پیام‌رسان‌ها برای نمایش منظم و جذاب لینک‌های سایت به کار می‌روند. با اضافه کردن چند خط کد در بخش <head> صفحه خود، می‌توانید کنترل کاملی بر نحوه نمایش لینک‌هایتان داشته باشید.

مراحل تنظیم پیش‌نمایش
۱. افزودن تگ‌های Open Graph
در <head>: - og:title: عنوان صفحه که باید کوتاه و جذاب باشد.
در - og:description: توضیحی مختصر که اطلاعات اصلی صفحه را با زبانی جذاب منتقل کند.
در - og:image: لینک به تصویری باکیفیت که پیش‌نمایش را جذاب‌تر کند.
در - og:url: لینک اصلی صفحه که به اشتراک گذاشته می‌شود.

۲. تست و آزمایش پیش‌نمایش: ابزارهای زیر به شما کمک می‌کنند تا مطمئن شوید پیش‌نمایش‌ها به درستی نمایش داده می‌شوند:

metatags.io: این سایت ابزاری برای تولید و اعتبارسنجی تگ‌های متا دارد و به شما امکان می‌دهد پیش‌نمایش خود را دقیقاً همانطور که می‌خواهید تنظیم کنید (شامل فرمت‌های Open Graph، Twitter و JSON-LD).

opengraph.xyz: با وارد کردن لینک سایتتان، این ابزار نحوه نمایش آن را در شبکه‌های اجتماعی به شما نشان می‌دهد.

#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
1
ایجاد دکمه‌های سفارشی برای انتخاب فایل 😌
آپلود فایل در سایت یکی از رایج‌ترین نیازها در طراحی وب است. با این حال، دکمه پیش‌فرض <input type="file"> اغلب با طراحی کلی سایت هم‌خوانی ندارد. تا پیش از این، برای رفع این مشکل، معمولاً اینپوت اصلی را پنهان می‌کردیم و یک دکمه سفارشی با رویداد کلیک می‌ساختیم. 🦈

ولی وقتی که با پسوکلاس ::file-selector-button آشنا شدم، واقعاً شگفت‌زده شدم! این پسوکلاس اجازه می‌دهد بدون پیچیدگی‌های اضافه، دکمه آپلود فایل را به دلخواه خود استایل‌دهی کنید. جالب‌تر اینکه، پشتیبانی این ویژگی در مرورگرهای مدرن به حدود نود و پنج درصد رسیده است! (مشاهده در: caniuse.com) 🤩

‏چگونگی استفاده از ::file-selector-button
با استفاده از این روش، می‌توان دکمه انتخاب فایل را به گونه‌ای طراحی کرد که کاملاً با استایل و تم سایت هماهنگ شود.

نتیجه
پسوکلاس ::file-selector-button به شما این امکان را می‌دهد که دکمه‌های پیش‌فرض آپلود فایل را بدون هیچ افتی در عملکرد و کارایی، با ظاهری شخصی‌سازی شده ایجاد کنید. 👍

#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
1👍1
اگر در پروژه‌تان فایل‌های JSON دارید، گاهی اوقات کار با JSON5 ساده‌تر و کاربردی‌تر است، چون از مواردی مانند کامنت‌ها و انتقال خطوط پشتیبانی می‌کند. برای این کار، مراحل زیر را انجام دهید:

۱) نصب پلاگین Vite: ابتدا پلاگین vite-plugin-json5 را نصب کنید.

۲) نصب افزونه JSON5 برای VS Code: برای دسترسی به هایلایت سینتکس در ویرایشگر، افزونه JSON5 را به VS Code اضافه کنید.

۳) پیکربندی TypeScript: برای اینکه TypeScript با JSON5 مشکلی نداشته باشد، در فایل index.d.ts این خط کد را اضافه کنید:

declare module "*.json5" {
const value: any;
export default value;
}

حالا همه چیز خیلی راحت‌تر شده است و نکته خوب این است که باندل شما تغییری نمی‌کند.

#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
👍2
وب‌سایت iOS404 اطلاعاتی درباره‌ی ویژگی‌ها و قابلیت‌هایی که در iOS وجود ندارد و در Android موجود است ارائه می‌دهد. برای مشاهده جزئیات بیشتر و مقایسه ویژگی‌ها می‌توانید به iOS404 مراجعه کنید.

🔗https://ios404.com/
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
ویژگی @property در CSS در سال دو هزار و بیست و چهار معرفی شده است، بنابراین باید هنگام استفاده از آن احتیاط کنید. این ویژگی به شما امکان می‌دهد که نوع متغیرهای سفارشی را در CSS مشخص کنید.

نمونه‌ای از یک متغیر غیر نوعی در CSS:
:root {
--background-color: blue;
}

.box {
background-color: var(--background-color);
}

نمونه‌ای از یک متغیر نوعی در CSS:
@property --background-color {
syntax: "<color>";
inherits: false;
initial-value: blue;
}

از طریق جاوا اسکریپت:
window.CSS.registerProperty({
name: "--background-color",
syntax: "<color>",
inherits: false,
initialValue: "blue",
});

انواع (syntax):
مقادیر ممکن شامل: <length>، <number>، <percentage>، <length-percentage>، <color>، <image>، <url>، <integer>، <angle>، <time>، <resolution>، <transform-function>، <custom-ident>، یا لیستی از انواع داده‌ها و مقادیر کلیدی می‌باشد.

پشتیبانی در مرورگرها
پشتیبانی از این ویژگی در مرورگرها هم اکنون کامل است.

#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
👍3
ویدیو دوبله شده در مورد پوشه NPM bin با اسکریپت‌های اجرایی [+لینک]
پوشه NPM bin جایی است که NPM فایل‌های اجرایی مرتبط با بسته‌های نصب‌شده را ذخیره می‌کند. وقتی شما یک بسته NPM را نصب می‌کنید، اگر آن بسته شامل اسکریپت‌های اجرایی باشد، NPM این اسکریپت‌ها را در پوشه bin قرار می‌دهد.

این پوشه به شما این امکان را می‌دهد که به راحتی به این اسکریپت‌ها دسترسی داشته باشید و آن‌ها را از هر نقطه‌ای در خط فرمان اجرا کنید. اسکریپت‌های موجود در این پوشه معمولاً فاقد پسوند هستند و برای اجرا به خط Shebang (#!) نیاز دارند که در ابتدای هر فایل اجرایی قرار می‌گیرد و تعیین می‌کند کدام مفسر برای اجرای فایل استفاده شود..

🔗https://aparat.com/v/ved7pjj
#️⃣#tip #dub
👥@IR_javascript_group
🆔@IR_javascript
👍2
چک باکس سفارشی بدون دردسر 🤨

سفارشی‌سازی چک باکس‌ها مدت‌ها یک مشکل برای توسعه‌دهندگان وب بود. برای تغییر استایل استاندارد، باید عنصر اصلی را مخفی می‌کردند و یک <div> استایل‌دار جایگزین می‌کردند که به کد زیادی نیاز داشت. اما اکنون راه حلی مدرن وجود دارد: appearance: none که نود و چهار درصد پشتیبانی دارد.

این ویژگی به شما امکان می‌دهد طراحی استاندارد چک باکس را حذف کنید و از یک بوم خالی شروع کنید. با استفاده از appearance: none، نیازی به مخفی کردن عناصر استاندارد و افزودن عناصر اضافی نیست. به سادگی استایل‌ها را در CSS توصیف کنید و کد خود را تمیز نگه دارید. 👍
برای یادگیری بیشتر به لینک زیر مراجعه کنید

🔗 https://codepen.io/katrin_profrontend/pen/PoMRdJp
#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
👍1👏1
به نظر می‌رسد ویژگی "علامت‌گذاری برای عناصر اسکرول‌دار" در Chrome 130 واقعاً مفید باشد. گاهی اوقات پیدا کردن عناصر اسکرول‌دار در ساختار وب دشوار می‌شود.


#️⃣ #tool
👥@IR_javascript_group
🆔@IR_javascript
👍1
ولادت عقیله بنی‌هاشم زینب کبری سلام‌الله‌علیها مبارک

#️⃣ #event
👥@IR_javascript_group
🆔@IR_javascript
13👎4😁1
‏Daisy UI یک کتابخانه زیبا و ساده برای Tailwind CSS است که به طور متفاوتی از کتابخانه‌های معمولی مانند Material UI یا Mantine UI عمل می‌کند. به جای ارائه مجموعه‌ای از کامپوننت‌ها، Daisy UI مجموعه‌ای از کلاس‌های کاربردی مانند btn، btn-primary، modal و modal-box را ارائه می‌دهد که می‌توانید برای ایجاد کامپوننت‌های خود استفاده کنید.

🔗https://daisyui.com/
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
👍2
📱 GDPR و کوکی‌ها: رعایت قوانین حریم خصوصی


‏GDPR (قانون عمومی حفاظت از داده‌ها) یک قانون اروپایی است که پردازش داده‌های شخصی کاربران را تنظیم می‌کند.

GDPR نیاز دارد که قبل از نصب کوکی‌ها، کاربر موافقت صریح خود را ارائه دهد. مهم است که کاربر را از اینکه چه داده‌هایی جمع‌آوری می‌شود و چگونه استفاده می‌شود، مطلع کنید. همچنین کاربر باید بتواند کوکی‌ها را حذف کرده و تنظیمات را تغییر دهد.

📌 رعایت GDPR یک جنبه مهم در کار با کوکی‌هاست، به‌ویژه در تعامل با کاربران از اروپا.


#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
1👍1
🌐 MotionNumber

MotionNumber یک ابزار مفید برای ایجاد اثرات انتقال زیبا برای هر نوع داده عددی است. این ابزار می‌تواند به جلوه‌های بصری جذاب کمک کند و تجربه کاربری را بهبود بخشد.


🔗https://motion-number.barvian.me/
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
🔥7👍2
توسعه مدرن جاوا اسکریپت اغلب با وظایفی در ارتباط با عملیات غیرهمزمان و مدیریت خطا مواجه است. معمولاً از ساختارهای try-catch و async-await برای این مقاصد استفاده می‌شود. با این حال، این روش‌ها ممکن است کد را سنگین کرده و خوانایی آن را کاهش دهند. برای رفع این مشکل، یک اپراتور جدید به نام ?= پیشنهاد شده است که به‌طور قابل‌توجهی مدیریت خطا را ساده‌تر کرده و خوانایی کد را بهبود می‌بخشد.


#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍4🔥3
‏Timeago.js یک کتابخانه برای فرمت‌بندی دینامیک زمان به سبک "۳ دقیقه پیش" یا "۲ ساعت پیش" است. این کتابخانه به‌طور خودکار برچسب متنی زمان را بر اساس زمان فعلی به‌روزرسانی می‌کند و برای ایجاد فیدهای خبری، چت‌ها و سیستم‌های نظرات بسیار مناسب است. همچنین، این کتابخانه از زبان‌های متعدد پشتیبانی می‌کند و به دلیل سبک بودنش، گزینه‌ای عالی برای هر وب‌اپلیکیشنی است.

🔗https://timeago.org/
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
👍4🔥1
بخش هیرو یک عنصر بصری برجسته است که در بالای یک صفحه وب قرار دارد و معمولاً تمام صفحه را اشغال می‌کند. این اولین محتوایی است که بازدیدکنندگان هنگام ورود به سایت می‌بینند، بنابراین نقش مهمی در ایجاد هویت برند شما و انتقال ایده اصلی آن دارد.

#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍4
تطبیق خودکار رنگ‌ها با تم‌های سیستمی 😌
تابع light-dark() در CSS یک روش کارآمد برای تنظیم رنگ‌های عناصر بر اساس تنظیمات تم سیستمی کاربر است، نه بر اساس تم انتخابی در وب‌سایت. پشتیبانی- ٪۸۲

این تابع امکان تعریف دو رنگ را فراهم می‌کند: یکی برای تم روشن و دیگری برای تم تاریک. برای مثال:
color: light-dark(#000000, #ffffff);

برای فعال‌سازی تابع light-dark() باید مقدار color-scheme را به light dark تنظیم کنید که معمولاً در شبه‌کلاس :root قرار داده می‌شود.

#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
👍7
به چه نکاتی در مصاحبه‌های کاری باید توجه کنیم؟ 🤨
در جستجوی شغل جدید، ممکن است تمایل داشته باشید هرچه زودتر پیشنهاد کاری دریافت کنید، اما نباید فراموش کنید که مهم است نه تنها نظر شرکت را جلب کنید، بلکه اطمینان حاصل کنید که شرکت واقعاً برای شما مناسب است. جزئیاتی که شاید در مراحل مصاحبه بی‌اهمیت به نظر برسند، می‌توانند در آینده تأثیر بسزایی بر رشد و رضایت شما در محل کار جدید داشته باشند. در ادامه به چند نکته کلیدی اشاره می‌کنیم که بهتر است قبل از گفتن «بله» به آنها توجه کنید. ✔️

۱️⃣ بروز بودن تکنولوژی‌ها و ابزارها
از شرکت درباره فناوری‌ها و ابزارهایی که استفاده می‌کند بپرسید. آیا از تکنولوژی‌های روز بهره می‌برد یا از تکنولوژی‌های قدیمی و منسوخ استفاده می‌کند؟ کدام فناوری‌ها برای شما آشنا و مناسب‌اند و کدام‌ها چالش‌برانگیز؟ اگر شرکتی به فریم‌ورک‌های قدیمی متکی است یا از بروزرسانی اجتناب می‌کند، ممکن است با مشکل انعطاف‌پذیری مواجه باشد — پیش خود بسنجید که آیا در چنین محیطی امکان رشد و پیشرفت دارید یا خیر.

۲️⃣ اهمیت تست و کیفیت کد
درباره روش‌های تست و بازبینی کد تیم سوال کنید. اگر تست‌ها و بازبینی‌ها بخشی از فرآیند کار هستند، این نشانه خوبی است. آیا شرکت به کیفیت کد اهمیت می‌دهد یا سرعت توسعه اولویت دارد؟ نحوه بازبینی‌های کد و تعداد دفعات آن‌ها می‌تواند نشان‌دهنده میزان اهمیت تیم به پروژه و کار گروهی باشد. 😌

۳️⃣ فرآیندهای توسعه و مدیریت پروژه
بپرسید فرآیند توسعه چگونه تعریف شده است. آیا از متدولوژی‌های چابک مانند Agile یا Kanban استفاده می‌شود؟ چرخه‌های انتشار نرم‌افزار چگونه‌اند؟ اگر فرآیندها ساختار مناسبی نداشته باشند یا از شما توقع انجام سریع همه‌چیز را داشته باشند، ممکن است در آینده به مشکل بربخورید. هرچه فرآیندها بهتر تعریف شده باشند، کار شما راحت‌تر و مؤثرتر خواهد بود.

۴️⃣ رشد و توسعه حرفه‌ای
از شرکت بپرسید که چگونه از رشد و توسعه حرفه‌ای کارکنان حمایت می‌کند. آیا برنامه‌های ارتقای مهارت، دوره‌های آموزشی یا حمایت از شرکت در کنفرانس‌ها وجود دارد؟ شرکت‌های پیشرو از رشد کارکنان حمایت می‌کنند، هزینه دوره‌های آموزشی را پرداخت می‌کنند و با فراهم کردن آموزش‌های داخلی، به کارکنان کمک می‌کنند تا مهارت‌های خود را بهبود ببخشند. اگر شرکت از کسانی که به دنبال توسعه هستند حمایت می‌کند، این یک نشانه مثبت است.

۵️⃣ فرمت و برنامه کاری
آیا کار حضوری است یا به صورت دورکاری؟ برنامه ثابت است یا انعطاف‌پذیر؟ این مسئله می‌تواند تأثیر زیادی روی تعادل بین کار و زندگی شخصی داشته باشد. به‌ویژه مهم است که بدانید شرکت به چه شکلی با دورکاری برخورد می‌کند و تا چه اندازه انعطاف‌پذیر است — این اطلاعات به شما کمک می‌کند تا میزان کنترل خود بر زمان‌بندی روزانه را درک کنید. 👍

۶️⃣ سیستم ارتقا، پاداش و انگیزش
از سیستم ارتقا و ارزیابی عملکرد شرکت و همچنین فرصت‌های پاداش‌دهی سوال کنید. هرچه این فرآیندها شفاف‌تر و منظم‌تر باشند، فرصت‌های بیشتری برای رشد حرفه‌ای و انگیزش خواهید داشت. اگر شرکت نمی‌تواند به روشنی درباره فرآیند ارتقا و پاداش‌دهی توضیح دهد، احتمالاً سیستم رشد حرفه‌ای مناسبی ندارد و شاید ارتقاها با تأخیر و دشواری انجام شوند. شفافیت و ثبات در پاداش‌دهی نشانه خوبی از یک فرهنگ سازمانی سالم و پایدار است. 👌

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

پرسیدن سوال درباره فرآیندها، فناوری‌ها و شرایط کاری به شما کمک می‌کند تا انتظارات خود را با شرکت مقایسه کنید. و وقتی شغل مناسب پیدا شود، شما نه تنها در وظایف خود موفق خواهید بود، بلکه در محیطی حرفه‌ای و هماهنگ رشد کرده و به اهداف خود می‌رسید.

چه نکات دیگری را می‌توان به این فهرست اضافه کرد؟ 👇

#️⃣#discussion
👥@IR_javascript_group
🆔@IR_javascript
👍3