اپل سورسمپهای نسخهی وب جدید App Store را مستقیماً در محیط پروداکشن منتشر کرد، و طبیعتاً این دادهها به بیرون درز کردند.
بدیهی است که مخزن اصلی اکنون حذف شده است. ([https://github.com/rxliuli/apps.apple.com](https://github.com/rxliuli/apps.apple.com)) اما البته من یک نسخهی پشتیبان از آن دارم، و باید گفت تماشای آن واقعاً جالب است!
همچنین کلونهای متعددی هم بهموقع ایجاد شدند؛ برای مثال این مخزن: ([https://github.com/minhducdz99/apps.apple.com](https://github.com/minhducdz99/apps.apple.com)).
و اما برای شروع، بد نیست بدانید که کل دادهها با استفاده از افزونهی کروم Save All Resources استخراج شدهاند.
خب، در سورسکدها چه چیز جالبی وجود دارد؟
پیش از هر چیز، پروژه با Svelte ساخته شده است. غیرمنتظره بود؟ نه چندان. اپل معمولاً فریمورکهای غیرمرسوم را ترجیح میدهد . اپل در زمانی که همه از Angular و Backbone استفاده میکردند، با SproutCore آغاز کرد و سپس به سراغ Ember.js رفت. حداقل Apple Music با آن نوشته شده بود.
در مرحلهی دوم، نویسندگان پروژه بدون هیچ خجالتی در کد نظر (Comment) گذاشتهاند.
در مرحلهی سوم، ساختار عجیب مخزن و اینهمه کامپوننت عظیم، تجربهی غریبی بود. ولی خب، هر تیمی سبک خودش را دارد.
و در نهایت، بهنظر میرسد آنها فریمورک اختصاصی خودشان را برای مدیریت وضعیت، مسیرها و درخواستها دارند — فریمورکی به نام Jet. هنوز زود است که دربارهی میزان کارایی آن قضاوت کنیم.
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
بدیهی است که مخزن اصلی اکنون حذف شده است. ([https://github.com/rxliuli/apps.apple.com](https://github.com/rxliuli/apps.apple.com)) اما البته من یک نسخهی پشتیبان از آن دارم، و باید گفت تماشای آن واقعاً جالب است!
همچنین کلونهای متعددی هم بهموقع ایجاد شدند؛ برای مثال این مخزن: ([https://github.com/minhducdz99/apps.apple.com](https://github.com/minhducdz99/apps.apple.com)).
و اما برای شروع، بد نیست بدانید که کل دادهها با استفاده از افزونهی کروم Save All Resources استخراج شدهاند.
خب، در سورسکدها چه چیز جالبی وجود دارد؟
پیش از هر چیز، پروژه با Svelte ساخته شده است. غیرمنتظره بود؟ نه چندان. اپل معمولاً فریمورکهای غیرمرسوم را ترجیح میدهد . اپل در زمانی که همه از Angular و Backbone استفاده میکردند، با SproutCore آغاز کرد و سپس به سراغ Ember.js رفت. حداقل Apple Music با آن نوشته شده بود.
در مرحلهی دوم، نویسندگان پروژه بدون هیچ خجالتی در کد نظر (Comment) گذاشتهاند.
در مرحلهی سوم، ساختار عجیب مخزن و اینهمه کامپوننت عظیم، تجربهی غریبی بود. ولی خب، هر تیمی سبک خودش را دارد.
و در نهایت، بهنظر میرسد آنها فریمورک اختصاصی خودشان را برای مدیریت وضعیت، مسیرها و درخواستها دارند — فریمورکی به نام Jet. هنوز زود است که دربارهی میزان کارایی آن قضاوت کنیم.
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
GitHub
GitHub - rxliuli/apps.apple.com: App Store web version
App Store web version. Contribute to rxliuli/apps.apple.com development by creating an account on GitHub.
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
خب، ابزاری که به خلق چنین اثری کمک کرده، TypeGPU نام دارد. و کارش چیست؟
این ابزار کد TypeScript را به GLSL تبدیل میکند — بله، به همان زبان توصیف شیدرها! دقیقتر بگوییم، آن را به WGSL (WebGPU Shading Language) تبدیل میکند.
یعنی چه؟ یعنی شما منطق را درست مانند نوشتن در TypeScript توصیف میکنید، البته با در نظر گرفتن ویژگیهای خاص شیدرها (مثلاً موازیسازی شدید محاسبات)، و در خروجی کدی دریافت میکنید که منطق و شیدرها در آن از هم جدا شدهاند!
میتوانید با یک مثال ساده شروع کنید، مثلاً این نمونهی گرادیان: (https://docs.swmansion.com/TypeGPU/examples/#example=simple--gradient-tiles)،
تا کمی با مفهوم آن آشنا شوید.
🔗https://docs.swmansion.com/TypeGPU/examples/#example=rendering--jelly-slider
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
این ابزار کد TypeScript را به GLSL تبدیل میکند — بله، به همان زبان توصیف شیدرها! دقیقتر بگوییم، آن را به WGSL (WebGPU Shading Language) تبدیل میکند.
یعنی چه؟ یعنی شما منطق را درست مانند نوشتن در TypeScript توصیف میکنید، البته با در نظر گرفتن ویژگیهای خاص شیدرها (مثلاً موازیسازی شدید محاسبات)، و در خروجی کدی دریافت میکنید که منطق و شیدرها در آن از هم جدا شدهاند!
میتوانید با یک مثال ساده شروع کنید، مثلاً این نمونهی گرادیان: (https://docs.swmansion.com/TypeGPU/examples/#example=simple--gradient-tiles)،
تا کمی با مفهوم آن آشنا شوید.
🔗https://docs.swmansion.com/TypeGPU/examples/#example=rendering--jelly-slider
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
❤3
چطور میتوان یک عنصر را وادار کرد تا عرض خود را پلهپله تغییر دهد**؟
فرض کنید میخواهید یک صفحهی شطرنجی داشته باشید که در هر شرایطی یکپارچه باقی بماند.
امروز چند روش برای رسیدن به این هدف داریم:
**۱. از آنا تودور: ([https://twitter.com/anatudor](https://twitter.com/anatudor))
نمونه در CodePen: [https://codepen.io/thebabydino/pen/zYbZpBq](https://codepen.io/thebabydino/pen/zYbZpBq)
در این روش از تابع mod() استفاده میشود:
اما مشکل اینجاست که مرورگر Chrome هنوز از تابع mod پشتیبانی نمیکند... ولی ناامید نشوید!
دو روش دیگر هم از تمانی عفیف (Temani Afif) معروف به CSS Challenges داریم: ([https://twitter.com/ChallengesCss](https://twitter.com/ChallengesCss))
۲. روش دوم:
در واقع، نتیجهی تابع بالا همان گرد کردن (rounding) است. و خوشبختانه، چنین تابعی هم در CSS وجود دارد! مثلاً:
نمونه: [https://codepen.io/alinaki/pen/VwRMpPY](https://codepen.io/alinaki/pen/VwRMpPY)
این ویژگی پیشتر در Chrome کار نمیکرد — تا نسخهی صد و بیست و پنجم.
چرا؟ چون تیم Chrome تصمیم گرفت اول مثلثات را اضافه کند و ریاضیات ساده را بعداً :)
۳. و در نهایت روش سوم:
طبیعتاً با CSS Grid هم میشود:
[https://codepen.io/t_afif/pen/KKEXwmR](https://codepen.io/t_afif/pen/KKEXwmR)
و راز کار در این خط است:
#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
فرض کنید میخواهید یک صفحهی شطرنجی داشته باشید که در هر شرایطی یکپارچه باقی بماند.
امروز چند روش برای رسیدن به این هدف داریم:
**۱. از آنا تودور: ([https://twitter.com/anatudor](https://twitter.com/anatudor))
نمونه در CodePen: [https://codepen.io/thebabydino/pen/zYbZpBq](https://codepen.io/thebabydino/pen/zYbZpBq)
در این روش از تابع mod() استفاده میشود:
width: calc(95vmin + -1 * mod(95vmin, 15px));
اما مشکل اینجاست که مرورگر Chrome هنوز از تابع mod پشتیبانی نمیکند... ولی ناامید نشوید!
دو روش دیگر هم از تمانی عفیف (Temani Afif) معروف به CSS Challenges داریم: ([https://twitter.com/ChallengesCss](https://twitter.com/ChallengesCss))
۲. روش دوم:
در واقع، نتیجهی تابع بالا همان گرد کردن (rounding) است. و خوشبختانه، چنین تابعی هم در CSS وجود دارد! مثلاً:
min-width: round(95vmin, 15px);
نمونه: [https://codepen.io/alinaki/pen/VwRMpPY](https://codepen.io/alinaki/pen/VwRMpPY)
این ویژگی پیشتر در Chrome کار نمیکرد — تا نسخهی صد و بیست و پنجم.
چرا؟ چون تیم Chrome تصمیم گرفت اول مثلثات را اضافه کند و ریاضیات ساده را بعداً :)
۳. و در نهایت روش سوم:
طبیعتاً با CSS Grid هم میشود:
[https://codepen.io/t_afif/pen/KKEXwmR](https://codepen.io/t_afif/pen/KKEXwmR)
و راز کار در این خط است:
grid-template-columns: repeat(auto-fill, 15px);
#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
X (formerly Twitter)
Ana Tudor 🐯🖤🌻 (@anatudor) on X
Mad scientist. I keep chopped up bodies in my fridge. If that got a dafuq reaction, congrats, you're in the 0.01% who read it. I don't really have a fridge.
👍1
هفت مدیاکوئری برتر که در پروژهها به کارتان میآیند 👍
---
✔️ width / height (ابعاد نمای دید – با سینتکس جدید بازهای)
این مورد کلاسیک برای طراحی واکنشگراست، اما اکنون سینتکس بازهای جدیدی دارد (مثل >، <، >=، <= و حتی
از آن برای تنظیم شبکه (grid) یا کامپوننتها در عرضهای مختلف پنجره استفاده کنید.
---
✔️ hover / pointer / any-hover / any-pointer (بررسی تواناییهای ورودی دستگاه)
به جای حدس زدن اینکه کاربر با «تلفن، تبلت یا رایانه» است، مستقیماً قابلیتهای ورودی دستگاه را بررسی کنید: آیا از اثر هاور پشتیبانی میکند؟ دقت اشارهگر چقدر است؟
---
✔️ prefers-reduced-motion (کاهش یا حذف انیمیشنها برای کاربران حساس به حرکت)
این ویژگی برای دسترسپذیری اهمیت زیادی دارد — به کمک آن میتوان انیمیشنها را برای افرادی با مشکلات تعادلی حذف یا ملایم کرد.
---
✔️ prefers-color-scheme و forced-colors (حالت روشن/تاریک و حالتهای کنتراست بالا)
⏺️
⏺️
میتوانید آن را با
---
✔️ resolution (برای بارگذاری تصاویر یا گرافیک با وضوح بالا)
کاربردی برای انتخاب تصاویر پسزمینه یا منابع گرافیکی با رزولوشنهای مختلف (یکبرابر، دوبرابر و غیره).
---
✔️ orientation (جهتگیری — عمودی یا افقی)
ویژگیای ساده اما گاهی حیاتی: اگر چیدمان صفحه در حالت افقی یا عمودی تفاوت زیادی دارد، از این ویژگی استفاده کنید.
اما برای تشخیص نوع دستگاه به آن تکیه نکنید — برخی کاربران مانیتور عمودی دارند و موارد مشابه.
---
✔️ inverted-colors (رنگهای معکوس) / جایگزین: prefers-contrast
#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
---
✔️ width / height (ابعاد نمای دید – با سینتکس جدید بازهای)
این مورد کلاسیک برای طراحی واکنشگراست، اما اکنون سینتکس بازهای جدیدی دارد (مثل >، <، >=، <= و حتی
900px < width < 1200px) که باعث خوانایی بیشتر نسبت به حالتهای min-/max- میشود.از آن برای تنظیم شبکه (grid) یا کامپوننتها در عرضهای مختلف پنجره استفاده کنید.
@media (width > 900px) { /* دسکتاپ */ }
@media (900px < width < 1200px) { /* حالت میانی */ }---
✔️ hover / pointer / any-hover / any-pointer (بررسی تواناییهای ورودی دستگاه)
به جای حدس زدن اینکه کاربر با «تلفن، تبلت یا رایانه» است، مستقیماً قابلیتهای ورودی دستگاه را بررسی کنید: آیا از اثر هاور پشتیبانی میکند؟ دقت اشارهگر چقدر است؟
/* ورودی اصلی — ماوس */
@media (hover: hover) and (pointer: fine) { ... }
/* صفحات لمسی (نقاط تماس درشتتر) */
@media (hover: none) and (pointer: coarse) { ... }
---
✔️ prefers-reduced-motion (کاهش یا حذف انیمیشنها برای کاربران حساس به حرکت)
این ویژگی برای دسترسپذیری اهمیت زیادی دارد — به کمک آن میتوان انیمیشنها را برای افرادی با مشکلات تعادلی حذف یا ملایم کرد.
@media (prefers-reduced-motion: reduce) {
.carousel { animation: none; }
}---
✔️ prefers-color-scheme و forced-colors (حالت روشن/تاریک و حالتهای کنتراست بالا)
⏺️
prefers-color-scheme — روش استاندارد برای هماهنگ شدن با حالت تاریک یا روشن.⏺️
forced-colors — برای برطرف کردن مشکلات در حالتهای کنتراست بالا (مثل Windows High Contrast) مفید است.میتوانید آن را با
forced-color-adjust ترکیب کنید.@media (prefers-color-scheme: dark) { ... }
@media (forced-colors: active) { /* اصلاحات برای کنتراست بالا */ }---
✔️ resolution (برای بارگذاری تصاویر یا گرافیک با وضوح بالا)
کاربردی برای انتخاب تصاویر پسزمینه یا منابع گرافیکی با رزولوشنهای مختلف (یکبرابر، دوبرابر و غیره).
background-image: url(image-1x.jpg);
@media (resolution > 1x) {
background-image: url(image-2x.jpg);
}
---
✔️ orientation (جهتگیری — عمودی یا افقی)
ویژگیای ساده اما گاهی حیاتی: اگر چیدمان صفحه در حالت افقی یا عمودی تفاوت زیادی دارد، از این ویژگی استفاده کنید.
اما برای تشخیص نوع دستگاه به آن تکیه نکنید — برخی کاربران مانیتور عمودی دارند و موارد مشابه.
@media (orientation: portrait) { ... }---
✔️ inverted-colors (رنگهای معکوس) / جایگزین: prefers-contrast
inverted-colors زمانی مفید است که سیستمعامل یا مرورگر رنگها را معکوس میکند؛ این ویژگی به اصلاح نمایش سایهها و رسانهها کمک میکند.#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
👍3
جایگذاری تولتیپها و پنجرههای کشویی.
در حال حاضر برای این کار از کتابخانههای جاوااسکریپتی نهچندان ساده مانند floating-ui استفاده میشود؛ کتابخانههایی که بهدلیل داشتن چنین قابلیتهایی هم حجم قابلتوجهی دارند و هم بر کارایی اثر میگذارند.
اما راهحل بومی CSS اینجاست: CSS Anchor Positioning
(مستندات: developer.mozilla.org)
پشتیبانی آن در مرورگرهای دسکتاپ مدتهاست فراهم شده و در مرورگرهای موبایل نیز از پاییز امسال بهطور گسترده فعال شده است.
و البته فایرفاکس همچنان مسخره بازی همیشگی خود را ادامه میدهد
#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
در حال حاضر برای این کار از کتابخانههای جاوااسکریپتی نهچندان ساده مانند floating-ui استفاده میشود؛ کتابخانههایی که بهدلیل داشتن چنین قابلیتهایی هم حجم قابلتوجهی دارند و هم بر کارایی اثر میگذارند.
اما راهحل بومی CSS اینجاست: CSS Anchor Positioning
(مستندات: developer.mozilla.org)
پشتیبانی آن در مرورگرهای دسکتاپ مدتهاست فراهم شده و در مرورگرهای موبایل نیز از پاییز امسال بهطور گسترده فعال شده است.
و البته فایرفاکس همچنان مسخره بازی همیشگی خود را ادامه میدهد
#️⃣#tip #css
👥@IR_javascript_group
🆔@IR_javascript
😁2
arkregexDemo.webm
2.5 MB
احتمالاً بسیاری از شما با مشکل نوشتن و نگهداری صحیح عبارات منظم (Regular Expressions) مواجه شدهاید.
بهویژه مسئلهی درک و خوانایی همیشه مطرح است — آیا گروههای گیرنده را بهدرستی در توالی شرایط قرار دادهاید؟ خروجی مورد انتظار چیست؟ و اصلاً آیا در عبارت منظم فعلی خطایی وجود دارد یا نه؟
بله، میتوان از سرویسهایی مانند regex101.com استفاده کرد، اما گاهی دوست داریم همهچیز را بدون ترک محیط توسعه انجام دهیم.
بهتازگی راهحل بسیار خوبی برای این مشکل معرفی شده است — ArkRegex، که نوعی انتزاع (abstraction) بر پایهی new RegExp() است و علاوه بر آن، اطلاعات توضیحی و اعتبارسنجی در سطح تایپهای TypeScript ارائه میدهد.
🔗https://arktype.io/docs/blog/arkregex
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
بهویژه مسئلهی درک و خوانایی همیشه مطرح است — آیا گروههای گیرنده را بهدرستی در توالی شرایط قرار دادهاید؟ خروجی مورد انتظار چیست؟ و اصلاً آیا در عبارت منظم فعلی خطایی وجود دارد یا نه؟
بله، میتوان از سرویسهایی مانند regex101.com استفاده کرد، اما گاهی دوست داریم همهچیز را بدون ترک محیط توسعه انجام دهیم.
بهتازگی راهحل بسیار خوبی برای این مشکل معرفی شده است — ArkRegex، که نوعی انتزاع (abstraction) بر پایهی new RegExp() است و علاوه بر آن، اطلاعات توضیحی و اعتبارسنجی در سطح تایپهای TypeScript ارائه میدهد.
🔗https://arktype.io/docs/blog/arkregex
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
افزونهی PT Application Inspector آسیبپذیریها و ویژگیهای مستندسازینشده را در کد منبع برنامه شناسایی میکند. افزون بر تحلیل کد، ماژولهای داخلی آن خطاها را در فایلهای پیکربندی و همچنین آسیبپذیریها را در مؤلفهها و کتابخانههای شخص ثالثی که در توسعهی برنامه استفاده شدهاند، تشخیص میدهند.
حالا الگوریتم هوشمند فقط فهرستی از مشکلات ارائه نمیدهد، بلکه پیشنهاد میکند از کجا بررسی را آغاز کنید: کدام آسیبپذیریها را باید ابتدا تأیید کرد و کدام را رد نمود. علاوهبراین، موارد مشابه را گروهبندی میکند تا بتوانید آنها را بهصورت دستهجمعی پردازش کنید، نه جداگانه.
● مدیریت گروهی آسیبپذیریها. در افزونهی مخصوص IntelliJ IDEA سرانجام قابلیت موردانتظار مدیریت گروهی اضافه شده است. کافی است چند آسیبپذیری را در زبانهی Detected Vulnerabilities (آسیبپذیریهای شناساییشده) تیک بزنید و وضعیت همه را یکجا تغییر دهید. برای کاربران VSCode وعده دادهاند که این قابلیت تا پایان سال عرضه شود.
● کوپایلت مبتنی بر LLM (مدل زبانی بزرگ) — قابلیتی آزمایشی که فعلاً فقط برای کاربران IntelliJ فعال است. در این افزونه، یک دستیار هوش مصنوعی مبتنی بر YandexGPT برای تولید اصلاحات مستقیم در محیط IDE ادغام شده است. این سیستم در رفع خودکار کد کمک میکند: نهتنها آسیبپذیری را پیدا میکند، بلکه وصلهای آماده با پیشنمایش تغییرات ارائه میدهد. همچنین منطق اصلاح را توضیح میدهد — میتوانید از آن بپرسید چرا این تغییر به این شکل انجام شده است. همهی پیشنهادهای تولیدشده نیز در زبانهی جدیدی با عنوان «How to Fix» (چگونه اصلاح کنیم) ذخیره میشوند.
این قابلیت بهصورت پیشفرض غیرفعال است (باید از بخش تنظیمات فعال شود) و برای تمام آسیبپذیریها بهجز موارد ردشده یا مستثناشده عمل میکند.
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
حالا الگوریتم هوشمند فقط فهرستی از مشکلات ارائه نمیدهد، بلکه پیشنهاد میکند از کجا بررسی را آغاز کنید: کدام آسیبپذیریها را باید ابتدا تأیید کرد و کدام را رد نمود. علاوهبراین، موارد مشابه را گروهبندی میکند تا بتوانید آنها را بهصورت دستهجمعی پردازش کنید، نه جداگانه.
● مدیریت گروهی آسیبپذیریها. در افزونهی مخصوص IntelliJ IDEA سرانجام قابلیت موردانتظار مدیریت گروهی اضافه شده است. کافی است چند آسیبپذیری را در زبانهی Detected Vulnerabilities (آسیبپذیریهای شناساییشده) تیک بزنید و وضعیت همه را یکجا تغییر دهید. برای کاربران VSCode وعده دادهاند که این قابلیت تا پایان سال عرضه شود.
● کوپایلت مبتنی بر LLM (مدل زبانی بزرگ) — قابلیتی آزمایشی که فعلاً فقط برای کاربران IntelliJ فعال است. در این افزونه، یک دستیار هوش مصنوعی مبتنی بر YandexGPT برای تولید اصلاحات مستقیم در محیط IDE ادغام شده است. این سیستم در رفع خودکار کد کمک میکند: نهتنها آسیبپذیری را پیدا میکند، بلکه وصلهای آماده با پیشنمایش تغییرات ارائه میدهد. همچنین منطق اصلاح را توضیح میدهد — میتوانید از آن بپرسید چرا این تغییر به این شکل انجام شده است. همهی پیشنهادهای تولیدشده نیز در زبانهی جدیدی با عنوان «How to Fix» (چگونه اصلاح کنیم) ذخیره میشوند.
این قابلیت بهصورت پیشفرض غیرفعال است (باید از بخش تنظیمات فعال شود) و برای تمام آسیبپذیریها بهجز موارد ردشده یا مستثناشده عمل میکند.
#️⃣#tool
👥@IR_javascript_group
🆔@IR_javascript
ظر شما دربارهی اشکالزدایی (Debugging) در دستگاههای همراه چیست؟ صادقانه بگویید. به نظر من که یک شکنجه است.
بله، میتوانید تلفن را با کابل به کامپیوتر وصل کنید و از کنسول مرورگر دسکتاپ استفاده نمایید. یا از مرورگر کیوی (Kiwi Browser) درتلفن همراه استفاده کنیم
ولی در وب ویو ها چه کنیم
ارودا (Eruda) یک کنسول تعبیهشدنی (Embeddable) برای مرورگرهای موبایل: https://github.com/liriliri/eruda
نمونهی نمایشی: https://eruda.liriliri.io/
در اصل، شبیه به یک کپی بسیار ساده شده از ابزارهای توسعه وب کروم به نظر میرسد و کاملاً میتواند در اشکالزدایی به شما کمک کند، به خصوص با توجه به تعداد افزونههای رسمی و غیر رسمی مختلف، از نمایش بصری لمسها گرفته تا پسزمینهی پیکسل-پرفکت.
🔗https://eruda.liriliri.io
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
بله، میتوانید تلفن را با کابل به کامپیوتر وصل کنید و از کنسول مرورگر دسکتاپ استفاده نمایید. یا از مرورگر کیوی (Kiwi Browser) درتلفن همراه استفاده کنیم
ولی در وب ویو ها چه کنیم
ارودا (Eruda) یک کنسول تعبیهشدنی (Embeddable) برای مرورگرهای موبایل: https://github.com/liriliri/eruda
نمونهی نمایشی: https://eruda.liriliri.io/
در اصل، شبیه به یک کپی بسیار ساده شده از ابزارهای توسعه وب کروم به نظر میرسد و کاملاً میتواند در اشکالزدایی به شما کمک کند، به خصوص با توجه به تعداد افزونههای رسمی و غیر رسمی مختلف، از نمایش بصری لمسها گرفته تا پسزمینهی پیکسل-پرفکت.
🔗https://eruda.liriliri.io
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
اسپلاید (Splide) با تایپاسکریپت (TypeScript) نوشته شده است. سبک، سریع، و دارای انبوهی از قابلیتهای یکپارچهسازی است. دهها مثال استفاده بلافاصله در صفحهی اصلی موجود است. به سئوی صفحات آسیبی نمیزند. امتیاز لایتهاوس (Lighthouse) نیز بسیار سبز است.
هیچ وابستگیای ندارد و از IEده (Internet Explorer 10) به بعد پشتیبانی میکند.
🔗https://splidejs.com/#example=rendering--jelly-slider
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript
هیچ وابستگیای ندارد و از IEده (Internet Explorer 10) به بعد پشتیبانی میکند.
🔗https://splidejs.com/#example=rendering--jelly-slider
#️⃣#npm_module
👥@IR_javascript_group
🆔@IR_javascript