رموز التصميم وCSS وقليل من JavaScript الخالصة، مبنية على ما يفعله المتصفح أصلًا: ابدأ مشروعًا باستخدام LUZ، نظام التصميم Light, Usable and Zero-dependency، أو انقل مشروعك صفحةً صفحة. كل مكوّن يعمل قبل تحميل JavaScript، وكل تغيير يبدأ باختبار فاشل.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/tokens@0.3.0/dist/luz-tokens.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/core@0.3.0/dist/luz.min.css">
<!-- One link per catalog component the page uses: here the search -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@luz-ds/catalog@0.3.0/dist/components/search.min.css">
<script type="module" src="https://cdn.jsdelivr.net/npm/@luz-ds/core@0.3.0/dist/luz.min.js"></script>
<script type="module" src="https://cdn.jsdelivr.net/npm/@luz-ds/catalog@0.3.0/dist/catalog.min.js"></script>
نظام تصميم للويب ينطلق من CSS ولا يحتاج إلى خطوة بناء. أنماط CSS الخاصة بك تغلب دائمًا، وJavaScript تحسين فقط، وكل صفحة تعمل قبل أن تُحمَّل.
Light
شيفرة قليلة، وبلا خطوة بناء.
tokens3.0 ك.ب3.0 ك.ب
core23.5 ك.ب23.5 ك.ب
catalog32.1 ك.ب32.1 ك.ب
الحزم الأساسية الثلاث: 58.6 ك.ب. الحجم المضغوط لما تنشره كل حزمة، مقيسًا في dist عند بناء هذه الصفحة.
CSS عادية ووحدات ES صغيرة، من شبكة توصيل محتوى أو من npm. لا معالج مسبق ولا مترجم ولا خطوة بناء: ما تقرؤه في الملفات هو بالضبط ما يشغّله المتصفح. يبقى tokens وcore بأصغر حجم ممكن، ولا يُرفع سقف حجمهما أبدًا. أما catalog فخفيف لأنه يأتي قطعًا: كل مكوّن ملف مستقل، ولا تحمّل الصفحة إلا ما تستخدمه.
Usable
إمكانية الوصول هي نقطة البداية، لا إضافة لاحقة.
تباين الألوان100%100%
مختبر من اليمين لليسار97%97%
بلا JavaScript72%72%
تركيز خاص41%41%
الألوان المفروضة41%41%
بلا مشكلات معروفة45%45%
اختبارات بلا JavaScript29%29%
29 مكوّنًا، 362 ملف اختبار. يُحسب عند بناء هذه الصفحة؛ ما لا يبلغ 100% مذكور في البيان.
يستهدف WCAG 2.2 AA، وهو مستوى الإصدار 4.1.1 من المعيار الأوروبي EN 301 549 للمنتجات الرقمية المتاحة. ينطلق مما يحسنه المتصفح أصلًا، ويضيف تركيزًا مرئيًا وتباينًا وحركة مخفّضة، ويفحص ذلك بأداة axe في كل تغيير. لا يستوفي كل المعايير بعد: يعرض بيان إمكانية الوصول ما فُحص وما لم يُختبر وما يفشل.
Zero-dependency
شيفرتك أنت، لا شجرة من شيفرة غيرك.
أطر CSS00
معالجات CSS المسبقة00
أطر JavaScript00
مكتبات تلوين الشيفرة00
مكتبات الأيقونات00
مكتبات الأدوات المساعدة00
البحث والحركة00
اعتماديات وقت التشغيل: 0. يُحسب في package.json لكل حزمة عند بناء هذه الصفحة.
تُنشر حزم LUZ بلا اعتماديات: CSS ووحدات ES فقط فوق ما يوفّره المتصفح أصلًا. لا شيء تثبّته لتجربتها، ولا إطار عمل تلاحقه، ولا شيء ينكسر حين تُصدر مكتبة أخرى إصدارًا رئيسيًا جديدًا.
يناسبك
مواقع المحتوى والتوثيق والخدمات العامة التي يجب أن تستوفي WCAG 2.1 أو 2.2 AA: يساعد LUZ، والنتيجة عليك أن تختبرها.
الصفحات التي تُولَّد على الخادم والمواقع الثابتة، بأي لغة برمجة للخادم.
الفرق التي تريد أن تقرأ CSS الخاص بها وتملكه.
لا يناسبك
تحتاج إلى مكونات React أو Vue جاهزة.
تحتاج إلى جدول بيانات متقدم أو رسوم بيانية أو أداة لاختيار نطاق تواريخ: لا يوفّر LUZ أيًّا منها.
تحتاج إلى واجهة برمجية مستقرة اليوم: LUZ في مرحلة تجريبية، وقد تتغير الأسماء.
HTML دلالي بتنسيق جاهز
HTML الذي تكتبه يأتي منسّقًا
اكتب العنصر الذي تقصده وسيمنحه LUZ تنسيقه، بلا أصناف. ابدأ مشروعًا باستخدام LUZ، أو انقل مشروعك صفحةً صفحة: أنماطك تغلب دائمًا.
بلا صنف. 68 وسمًا يأتي منسّقًا كما هو، بما فيها النماذج والجداول.
صنف واحد. الدور والمكوّن كاملًا: رابط بشكل زر، وزر خطر، وبطاقة.
في مشروعك.luz.conditional.css ينسّق ما داخل [data-luz] فقط؛ وبقية صفحتك تبقى كما هي.
21 من 29 مكوّنًا هي CSS فقط؛ والباقي يتحسّن بسكربت ويعمل بدونه.
كل لون دلالي معرَّف للوضع الفاتح والداكن والتباين العالي، وسمة واحدة، data-theme، تبدّل بينها: في الصفحة كلها أو في صندوق واحد، مثل هذه. هذا ما يأتي مع core. وبقية اليوم قرارك.
Core · مُضمَّن
فاتح
فاتح، للقراءة نهارًا
ورق دافئ وحبر بني: نغمة Vejer. هو الوضع الافتراضي حين يكون النظام فاتحًا: من دون data-theme تتبع الصفحة النظام.
داكن
داكن، لليل
أسطح عميقة ونص فاتح لا يبهر. الرموز نفسها بقيم أخرى: لا يغيّر أي مكوّن سطرًا واحدًا.
تباين عالٍ
تباين عالٍ، لرؤية كل حافة
أسود على أبيض وحواف واضحة، لمن يحتاج إلى المزيد. ليس الوضع الداكن: إنه وضع قائم بذاته، يُقاس مثل الوضعين الآخرين.
وضع الألوان حسب وقت اليوم · Catalog، اختياري
ست لحظات، لا مفتاح واحد
صرّح بلحظات يومك في HTML، من الفجر إلى الليل، ودع القارئ يختار إحداها أو يتنقّل عبر اليوم. يبقى الوضع التلقائي للنظام، والتباين العالي لا يُعاد تلوينه أبدًا.
مُقاس، لا مُخمَّن. يُفحص تباين كل لحظة فوق وضعها الأساسي، كما تُفحص الأوضاع الثلاثة.
اختياري، صفر بايت. يعيش في catalog: ورقة أنماط واحدة وجزء يُحمَّل عند الحاجة. إن لم تربطه فلن تحمل صفحتك شيئًا منه.
إجابات قصيرة عمّا يُسأل عن LUZ: ما هو وكيف يُستخدم.
عن LUZ
What is LUZ?
LUZ is a design system for the web in three parts: tokens, core and the catalog, with prompts so an AI can build the site with you. It lets the browser do the work, checks instead of promising, and an AI can write it without making anything up.
What does each part of LUZ do?
Tokens hold the look, core styles your HTML and gives you components, and the catalog adds what a whole site needs. Tokens are the colors, scales, type and three color modes as CSS custom properties, and they work alone. Core is the reset, the style of every HTML element, the layout objects (o-container, o-stack, o-grid), the components (.luz-btn, .luz-card, .luz-tabs) and a little optional JavaScript. The catalog is pieces for the whole site, like search and the cookie banner.
What makes LUZ different from the systems most people use?
LUZ starts from the browser instead of from a framework: native HTML, no build step, any stack, and it works without JavaScript. Accessibility is checked, not promised: axe tests, every contrast computed in each mode, forced colors and reduced motion. It needs less markup, because HTML comes out complete without classes, and it is customized without a fight, with layers, :where() and tokens, never !important. It is ready for AI in a way you can verify: the prompts are generated from the packages, so they never carry an invented class.
Where does LUZ fall short?
LUZ falls short in community, in complex widgets (a date picker, a combobox, a data table), in components for React or Vue, and in maturity: it is still 0.x.
كيف تُستخدم
What is the best way to use LUZ?
The best way is six steps, with nothing to compile:
Load luz-tokens.css, luz.css and luz.js from the CDN or npm.
Write semantic HTML.
Add a class only for what HTML cannot say, and lay out with core's objects.
Put your brand in with tokens: copy _template.css and change the values.
From the catalog, link only what you use.
JavaScript is optional: everything works without it.
The fast lane: paste the prompt for your kind of site into an AI and review the result with luz-check.
Do I need JavaScript to use LUZ?
No. Most LUZ components are CSS only, and the ones with a script work without it too. The page of each component says what you get without JavaScript.
Can I change the default styles later?
Yes, without fighting them. Tokens are the intended way to change the whole look, and your own CSS wins: LUZ is in cascade layers, so unlayered CSS beats it with no !important. What you do not override stays: change only the color of an h1 and it keeps LUZ's size.
What is LUZ for?
LUZ is for websites written in HTML, new or already built: a landing page, a blog, documentation, a company site. It fits any generator or CMS that produces HTML, Markdown included (Hugo, Astro, Eleventy), projects with no build step, and sites that must be accessible and work without JavaScript. An existing site can move to it piece by piece.
What is LUZ not for?
LUZ is not for utility classes in the style of Tailwind, nor for React or Vue apps that expect their framework's components: LUZ gives HTML and classes. It gives no ready-made page structure (header, hero, footer) either: you write it, or the AI does.