lynx-ui: کتابخانه کامپوننت بومی برای Lynx
خلاصهٔ کاملتر
lynx-ui یه کتابخانه کامپوننت برای فریمورک Lynxه که تیم مهندسی Lynx بعد از ماهها کار روی مستندات و نمونهها، امروز نسخه GA اون رو اعلام کرد. ایده اصلی اینه که پایههای بومی (native) رو با سرعت و انعطاف توسعه وبی ترکیب کنه — یعنی رندرینگ سریع و gesture دقیق از طرف native، و ترکیبپذیری، state management و استایلدهی از طرف لایهی frontend.
این کتابخانه unstyled طراحی شده، به این معنا که کامپوننتها هیچ ظاهر بصری از پیش تعریفشدهای ندارن. هر کامپوننت از partهای مستقل تشکیل شده که میشه جداگانه رندر و استایلدهی کرد. مثلاً Popover یه باکس بسته نیست؛ بلکه از PopoverRoot برای state، PopoverTrigger برای تعریف تعامل، PopoverPositioner برای موقعیتدهی، و PopoverContent برای محتوا تشکیل شده. این مدل یه پایه محکم برای ساخت design systemهای سفارشی فراهم میکنه.
روی همین پایه، LUNA بهعنوان یه زبان طراحی مرجع ساخته شده. پالت رنگی LUNA از gradientهای برند Lynx الهام گرفته و تُنهای گرم صورتی و رز رو به لاوندر و آکوا تبدیل میکنه. نامگذاری tokenها هم جالبه: بهجای موقعیت، احساس سطح رو توصیف میکنن — ambient محو در پسزمینه، faint در آستانه ادراک، veil و film لایههای نیمهشفاف.
یه ویژگی فنی کلیدی lynx-ui اینه که از Main-Thread Script استفاده میکنه. Lynx بهطور پیشفرض جاوااسکریپت رو روی thread پسزمینه اجرا میکنه تا thread اصلی برای رندرینگ آزاد بمونه؛ اما برای تعاملاتی مثل swipe و drag که باید frame-to-frame پاسخ بدن، میشه منطق رو به main thread منتقل کرد. کامپوننت Swiper از همین مکانیزم استفاده میکنه تا کارت دقیقاً دنبال انگشت کاربر حرکت کنه، نه اینکه با تأخیر بهش برسه.
برای انیمیشن هم تیم Lynx کتابخانه محبوب Motion رو به Lynx آورده. نتیجه @lynx-js/motion یه لایه نازکه که مستقیماً از کد سورس Motion استفاده میکنه. کامپوننت Sheet نمونه خوبیه: drag، مقاومت، رها کردن و settle شدن با هم یه رفتار پیوسته میسازن. اگه Motion رو روی وب بلدی، همون API رو اینجا هم داری.
lynx-ui هماکنون روی iOS، اندروید و HarmonyOS در دسترسه و پشتیبانی جزئی از وب و Desktop هم در راهه. برای شروع میشه پکیج @lynx-js/lynx-ui-* رو نصب کرد و با اسکن QR codeهای داخل مستندات، کامپوننتها رو مستقیم روی Lynx Explorer دید.
نکات کلیدی:
- lynx-ui یه کتابخانه کامپوننت unstyled و composable برای فریمورک Lynxه
- معماری part-based اجازه میده هر بخش کامپوننت رو جداگانه استایل و کنترل کنی
- LUNA یه design language مرجع روی این پایهست با پالت رنگی gradient-محور
- Main-Thread Script انیمیشنها و gestureها رو واقعاً روان میکنه بدون تأخیر thread
- کتابخانه Motion برای Lynx اقتباس شده با نام @lynx-js/motion
- در حال حاضر iOS، اندروید و HarmonyOS پشتیبانی میشن




