نظرة عامة
Twenty UI هي مكتبة واجهة مستخدم React مفتوحة المصدر الخاصة بـ Twenty. توفر عناصر أساسية ومكونات مشتركة وأيقونات ورموز مميزة للسمة مع CSS مُعد مسبقًا، لذلك لا يحتاج تطبيقك إلى مترجم CSS-in-JS.تثبيت
بالنسبة إلى تطبيق React موجود، ثبّت المكتبة. React 19 مطلوب.twenty-ui/components/code-editor. لا تتطلب المكونات الأخرى Monaco. لاستخدام محرر التعليمات البرمجية، ثبّت تبعيات النظير الاختيارية الخاصة به واضبط عمال Monaco لحزمتك قبل تركيبه:
twenty-ui وtwenty-sdk وtwenty-client-sdk على الإصدار نفسه.
حمّل الأنماط ووفّر سمة
استورد ورقة أنماط المكونات وورقة أنماط سمة مرة واحدة عند نقطة دخول تطبيقك. يطبّقThemeProvider فئة السمة النشطة ويجعل قيم السمة متاحة للمكونات.
تجاوز الأنماط
تضع Twenty UI أنماط المكونات وإعادة الضبط في طبقة التسلسلtwenty-ui. تتجاوز الأنماط التي تكتبها خارج طبقة، مثل className أو وحدة CSS أو قاعدة CSS-in-JS، تلك القواعد ذات الطبقات بغض النظر عن خصوصية المحدد أو ترتيب الاستيراد. تظل أوراق أنماط السمة وقواعد Monaco العامة للمحرر الاختيارية دون طبقات.
إعادات ضبط العناصر العامة في تطبيقك دون طبقات أيضًا، لذا ستتجاوز مكونات Twenty UI. أعلن طبقة لها قبل تحميل ورقة أنماط Twenty UI:
اختر نقطة إدخال
استورد المكونات من مسارها الفرعي العام للحفاظ على تركيز الاستيرادات: العناصر الأساسية هي عناصر تحكم تأسيسية، بما في ذلك عناصر التحكم المركبة مثل Select، Popover، وAlertDialog. تجمع المكونات المشتركة العناصر الأساسية في إعدادات تصميم متكررة ولبنات بناء تطبيقات قابلة لإعادة الاستخدام. يتلقى كلاهما البيانات واستدعاءات الرجوع من التطبيق. استخدم MainButton للإجراءات البارزة و LightButton للإجراءات البسيطة. كلاهما يأتي منtwenty-ui/components/input ويتشاركان عقد تفاعل
Button الأساسي. يبقى التوجيه وتخطيط
الصفحة في التطبيق.
لكل عائلة من العناصر الأساسية والمكونات المشتركة نقطة إدخال عامة مطابقة، مثل
twenty-ui/primitives/input وtwenty-ui/components/settings. تصدّر إدخالات
twenty-ui/primitives وtwenty-ui/components المجمّعة عائلاتها المعنية.
تعيد نقطة الإدخال الجذرية twenty-ui تصدير العناصر الأساسية والمكونات المشتركة والأيقونات ورموز السمة المميزة
والأدوات المساعدة. للأصول ومساعدات الاختبار ومحرر التعليمات البرمجية الاختياري نقاط إدخال منفصلة.
استورد الأيقونات الفردية، مثل
IconCheck، من twenty-ui/icon. يتضمن موفر الأيقونات الديناميكي كتالوج الأيقونات الكامل، لذا خصصه للواجهات التي تحتاج إلى البحث عن الأيقونات في وقت التشغيل.
خطافات الاستجابة
استوردuseIsMobile وuseIsTouchDevice وuseMediaQuery من twenty-ui/utilities.
تأتي ثوابت الاستعلام من
twenty-ui/utilities؛ ويأتي MOBILE_VIEWPORT من twenty-ui/theme. تتشارك الاشتراكات قائمة MediaQueryList واحدة لكل استعلام، وتُحدَّث عند تغير تطابقها. تعيد الخطافات false أثناء العرض على الخادم، وأول عرض للترطيب، وعندما يكون window.matchMedia غير متاح.
في مكون واجهة أمامية لـ Twenty، تتبع استعلامات العرض مربع الأداة. لذلك يتبع useIsMobile عرض الأداة، بينما يتبع useIsTouchDevice الإدخال الأساسي للجهاز. استخدم تجاوزات القصص لاختبار هذه الحالات في Storybook.
استمر
- السمات: استخدم الرموز الدلالية والتجاوزات المحصورة.
- الوضع الداكن: بدّل بين لوحات الألوان الفاتحة والداكنة.