الانتقال إلى المحتوى الرئيسي

نظرة عامة

Twenty UI هي مكتبة واجهة مستخدم React مفتوحة المصدر الخاصة بـ Twenty. توفر عناصر أساسية ومكونات مشتركة وأيقونات ورموز مميزة للسمة مع CSS مُعد مسبقًا، لذلك لا يحتاج تطبيقك إلى مترجم CSS-in-JS.

تثبيت

بالنسبة إلى تطبيق React موجود، ثبّت المكتبة. React 19 مطلوب.
يحتوي محرر التعليمات البرمجية على نقطة إدخال منفصلة، twenty-ui/components/code-editor. لا تتطلب المكونات الأخرى Monaco. لاستخدام محرر التعليمات البرمجية، ثبّت تبعيات النظير الاختيارية الخاصة به واضبط عمال Monaco لحزمتك قبل تركيبه:
إذا كنت تبني تطبيق Twenty، فاتبع استخدام مكونات Twenty UI. يوفر عارض المكونات الأمامية سمة مساحة العمل، ويختلف إعداده عن تطبيق متصفح مستقل. أبقِ twenty-ui وtwenty-sdk وtwenty-client-sdk على الإصدار نفسه.

حمّل الأنماط ووفّر سمة

استورد ورقة أنماط المكونات وورقة أنماط سمة مرة واحدة عند نقطة دخول تطبيقك. يطبّق ThemeProvider فئة السمة النشطة ويجعل قيم السمة متاحة للمكونات.
تتضمن ورقة أنماط المكونات إعادة تعيين عامة. راجع تأثيرها عند إضافة Twenty UI إلى تطبيق موجود.

تجاوز الأنماط

تضع Twenty UI أنماط المكونات وإعادة الضبط في طبقة التسلسل twenty-ui. تتجاوز الأنماط التي تكتبها خارج طبقة، مثل className أو وحدة CSS أو قاعدة CSS-in-JS، تلك القواعد ذات الطبقات بغض النظر عن خصوصية المحدد أو ترتيب الاستيراد. تظل أوراق أنماط السمة وقواعد Monaco العامة للمحرر الاختيارية دون طبقات. إعادات ضبط العناصر العامة في تطبيقك دون طبقات أيضًا، لذا ستتجاوز مكونات Twenty UI. أعلن طبقة لها قبل تحميل ورقة أنماط Twenty UI:
مع Tailwind CSS v4، ضع Twenty UI بين طبقتي الأساس والأدوات المساعدة في Tailwind:

اختر نقطة إدخال

استورد المكونات من مسارها الفرعي العام للحفاظ على تركيز الاستيرادات: العناصر الأساسية هي عناصر تحكم تأسيسية، بما في ذلك عناصر التحكم المركبة مثل 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.

استمر

  • السمات: استخدم الرموز الدلالية والتجاوزات المحصورة.
  • الوضع الداكن: بدّل بين لوحات الألوان الفاتحة والداكنة.

استعرض المكتبة

  • الأوليات: عناصر تحكم أساسية مجمّعة حسب الفئة، مع أمثلة للاستخدام ومراجع API.
  • المكونات: إعدادات تصميم مشتركة ووحدات بناء قابلة لإعادة الاستخدام للتطبيقات مكوّنة من عناصر أولية.