TermDOM يتيح بناء واجهات Terminal باستخدام HTML وCSS
يقدم TermDOM طريقة لبناء واجهات Terminal تفاعلية (TUI) عبر HTML وCSS وDOM، مع محرك للتخطيط وتطبيق أنماط CSS ثم رسم النتيجة داخل الطرفية. المشروع مكتوب بـ JavaScript الخالص ولا يعتمد على مكوّنات native أو WASM، ويستهدف المطورين الذين يحبون أسلوب Ink لكن لا يريدون الاعتماد على React.
أبرز النقاط
- TermDOM يبني واجهات Terminal باستخدام HTML وCSS وDOM.
- يتضمن محركاً لتطبيق CSS cascade وحساب layout ثم رسم الواجهة في الطرفية.
- لا يعتمد على React، رغم أن فكرته قريبة من Ink في بناء TUI بمفاهيم واجهات الويب.
- المشروع مكتوب بـ JavaScript الخالص ولا يحتاج إلى native dependencies أو WASM.
- يعرض المشروع تشغيل TodoMVC الرسمي عبر تبديل stylesheet فقط.
- TermDOM لا يزال في مرحلة مبكرة من التطوير.
يطرح مشروع TermDOM فكرة مختلفة لبناء واجهات الطرفية: كتابة الواجهة بأسلوب HTML وCSS المعتاد، ثم تشغيل DOM ومحرك cascade والتخطيط لرسمها داخل Terminal.
الفكرة قريبة من تجربة Ink من حيث بناء TUI بمفاهيم واجهات الويب، لكن TermDOM لا يتطلب React. بدلاً من ذلك، يوفر المشروع طبقة DOM ومحركاً لتطبيق قواعد CSS وحساب التخطيط قبل تحويل النتيجة إلى مخرجات نصية في الطرفية.
يعتمد TermDOM على JavaScript الخالص، من دون تبعيات native أو WASM. ويشير عرضه إلى أن المثال الرسمي لـ TodoMVC يعمل بعد تبديل stylesheet فقط، بما يوضح إمكانية تغيير مظهر التطبيق عبر CSS ضمن هذا النموذج.
المشروع ما زال في مرحلة مبكرة، لكنه قد يكون خياراً مثيراً للاهتمام لمن يريد بناء أدوات CLI وواجهات Terminal مع الاستفادة من نموذج HTML/CSS المألوف، من دون إدخال React إلى المشروع.
لماذا يهم؟
للمطورين المعتادين على HTML وCSS، قد يقلل TermDOM من الحاجة إلى تعلم نموذج واجهات خاص بالطرفية عند بناء TUI. كما أن غياب React وتبعيات native أو WASM قد يجعله مناسباً للتجارب والمشروعات التي تريد إبقاء بيئة التشغيل JavaScript خالصة، مع مراعاة أنه ما زال مشروعاً مبكراً.