هل اللون فاتح أم داكن
الأبيض #ffffff يبلغ سطوعه 255، أي فوق العتبة 128، فيُعدّ فاتحًا ويناسبه نص أسود (#000000). استخدموه لاختيار لون التسميات على الأزرار والشارات والرقائق. مجانًا في متصفحكم.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- اللون
- #ffffff
- HEX المدخل
- #ffffff
- مدخل RGB
- 255, 255, 255
- المقاومة (Ω)
- 255
- G
- 255
اختيار نص تسمية أسود أو أبيض على زر ملوّن مشكلة كلاسيكية في إمكانية الوصول والهوية البصرية: الأبيض النقي على أصفر باهت يفشل في التباين، والأسود النقي على كحلي قد يبدو خاطئًا عندما يكون التعبئة شبه سوداء. يصنّف هذا المصنّف فاتحًا أو داكنًا لون hex غير شفاف واحدًا، ويحسب سطوعًا محسوسًا حتميًا بمعاملات ITU-R BT.601 التي تُثقّل الأخضر أكثر من الأحمر والأزرق، ويقارن ذلك السطوع بعتبة قابلة للضبط (الافتراضي مئة وثمانية وعشرون على مقياس من صفر إلى مئتين وخمسة وخمسين)، ويعيد ما إذا كانت العيّنة فاتحة أم داكنة مع لون نص تراكب موصى به. المصممون الذين يربطون رموز السمة، والمطوّرون الذين يختارون لون الأيقونات على شارات ديناميكية، والاختبارات الآلية التي تثبّت قرارات الفاتح مقابل الداكن، جميعهم يحتاجون الحساب نفسه في كل مرة.
لماذا السطوع المحسوس وليس متوسط القنوات الخام
قاعدة رمادية متوسطة ساذجة تتوسط الأحمر والأخضر والأزرق تعامل الأزرق النقي والأصفر النقي كمتساويي السطوع، وهذا لا يطابق كيف تقرر الرؤية البشرية ومعظم مكتبات الواجهة الفاتح مقابل الداكن. يتبع السطوع المحسوس في هذه الصفحة معاملات luma بأسلوب BT.601 المستخدمة منذ زمن في الفيديو وأدوات الويب: السطوع يساوي صفر فاصلة اثنان تسعة تسعة مضروبًا في الأحمر زائد صفر فاصلة خمسة ثمانية سبعة مضروبًا في الأخضر زائد صفر فاصلة واحد واحد أربعة مضروبًا في الأزرق، وكل قناة عدد صحيح من صفر إلى مئتين وخمسة وخمسين.
يهيمن الأخضر على المجموع لأن العين أكثر حساسية هناك؛ ويساهم الأزرق بأقل قدر. بعد حساب السطوع تقارنه الأداة بعتبة. العتبة الافتراضية مئة وثمانية وعشرون، منتصف مقياس ثمانية بت، وتتوافق مع كثير من مساعدات isLight مفتوحة المصدر التي تعتبر السطوع الأكبر من أو يساوي هذا القطع فاتحًا.
يمكنكم تمرير عتبة مخصصة عندما يريد نظام التصميم تصنيف مزيد من الألوان كداكنة (ارفعوا العتبة) أو كفاتحة (اخفضوها). التصنيف شامل من جهة الفاتح: السطوع الأكبر من أو يساوي العتبة يعطي فاتحًا، وكل ما هو أدنى بصرامة يعطي داكنًا. تلك التوصية افتراض عملي للشارات والرقائق؛ والمنتجات الإنتاجية التي يجب أن تستوفي نسب تباين WCAG ما زالت بحاجة لقياس الزوج النهائي بمدقق تباين، لأن الأسود على رمادي متوسط قد يمر بتصنيف السطوع ويفشل مع ذلك في AA للنص الصغير.
تجيب هذه الصفحة عمدًا عن نية البحث هل اللون فاتح أم داكن ومصنّف hex فاتح داكن، لا عن حساب نسبة تباين كاملة بين لونين.
نصائح عملية وحدود وعمليات بحث ذات صلة
عند كتابة اختبارات الوحدة غطّوا على الأقل خلفية شبه بيضاء يجب أن تكون فاتحة، وتعبئة شبه سوداء يجب أن تكون داكنة، ولون علامة متوسط التشبع قرب العتبة الافتراضية، واختصارًا ثلاثي الأرقام، وعتبة مخصصة تقلب لونًا حدّيًا، وhex غير صالح متعمدًا حتى لا تتسلل انحدارات التحقق. تذكّروا أن هذا المصنّف يجيب عن فاتح مقابل داكن لعيّنة واحدة؛ ولا يحسب تباين WCAG بين المقدمة والخلفية، ولا يعيد الإضاءة النسبية على مقياس sRGB مُخطّط خطيًا من صفر إلى واحد كدرجة رئيسية (يبلّغ سطوع قناة BT.601)، ولا يعدّل للألفا أو لحجم النص.
لا تمرّروا صيغ ألفا مثل #RRGGBBAA — هذه الصفحة تصنّف hex غير شفاف فقط. يجب حل أسماء CSS وسلاسل rgb() إلى hex أولًا ثم تمريرها هنا لتبقى واجهة التحقق سلسلة لون واحدة محددة جيدًا. تستهدف هذه الصفحة من يبحث عن هل اللون فاتح أم داكن، ومدقق hex فاتح داكن، والسطوع المحسوس لنص التراكب، أو تصنيف hex فاتح داكن مجانًا عبر الإنترنت؛ وليست مولّد لوحات كاملًا ولا خلاط تغميق أو تفتيح ولا محوّل فضاءات متعددة.
فضّلوا هذه القدرة عندما يكون لديكم بالفعل رمز hex واحد وتحتاجون فقط تسمية حتمية فاتح أو داكن مع توصية افتراضية لتراكب أسود أو أبيض؛ وإذا احتاج خط الأنابيب نسب تباين أو أعلام AA بين لونين فاستخدموا مدقق تباين مخصصًا بعد اختيار المرشحين.
حالات الاستخدام
تسميات ديناميكية للشارات والرقائق
اختاروا نص تسمية أسود أو أبيض على ألوان شارات يختارها المستخدم حتى تبقى واجهات المنتج مقروءة دون ضبط يدوي لكل hex للعلامة.
أتمتة رموز السمة
صنّفوا رموز أسطح نظام التصميم كفاتحة أو داكنة حتى تتبدل مجموعات الأيقونات والحدود الرفيعة تلقائيًا في CI.
اختبارات وحدة لقرارات التراكب
ثبّتوا تصنيفات فاتح/داكن معروفة من تجهيزات hex حتى تلتقط محركات السمة الانحدارات عند تغيّر رياضيات السطوع.
الأسئلة الشائعة
ما لون نص التراكب الموصى به؟
نص داكن (#000000) على خلفيات فاتحة ونص فاتح (#ffffff) على خلفيات داكنة. تحققوا دائمًا من تباين WCAG للنص الصغير في الإنتاج.
ما صيغ الألوان المقبولة؟
Hex #RGB أو #RRGGBB مع # اختياري دون حساسية لحالة الأحرف. لا تُقبل هنا صيغ الألفا وأسماء CSS وسلاسل rgb().
هل يمكن تغيير عتبة السطوع؟
نعم. مرّروا threshold كعدد منتهٍ من 0 إلى 255. القيم الأعلى تصنّف مزيدًا من الألوان كداكنة؛ والأدنى كفاتحة. الافتراضي 128.
لماذا يُعدّ الأصفر فاتحًا والأزرق داكنًا مع أن كليهما لون خالص؟
لأن السطوع المحسوس يمنح الأخضر الوزن الأكبر والأزرق الأصغر: 0.299 ضرب الأحمر زائد 0.587 ضرب الأخضر زائد 0.114 ضرب الأزرق. الأصفر يحوي الأخضر كاملًا فيرتفع، والأزرق الخالص يسهم بقليل.
هل يغني هذا عن فحص التباين وفق WCAG؟
لا. فهو يحدد فقط إن كان لون واحد فاتحًا أم داكنًا. أما مدى كفاية التباين بين نص صغير وخلفيته فقيسوه أيضًا بأداة لفحص التباين.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/color/is-light-or-dark \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"color":"#3b82f6"}'const res = await fetch("https://api.kit.forhosting.com/color/is-light-or-dark", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"color": "#3b82f6"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/color/is-light-or-dark",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"color": "#3b82f6"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/color/is-light-or-dark", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"color":"#3b82f6"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"color":"#3b82f6"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/color/is-light-or-dark", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"color": "#3b82f6"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "color.is_light_or_dark",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
الصق رموز العلامة مثل #3b82f6 و#f8fafc أو الاختصار ثلاثي الأرقام مثل #abc؛ سلاسل hex غير الصالحة تفشل ب invalid_input بدل اختراع تسمية. المسار تحليل حتمي خالص بلا شبكة ولا بذور عشوائية ولا ساعة حائط، لذلك يعيد مشغّل المتصفح المجاني وواجهة API المدفوعة مسبقًا نفس JSON في كل استدعاء.
لماذا السطوع المحسوس وليس متوسط القنوات الخام
تعيد الاستجابة دائمًا السطوع الرقمي والعتبة المستخدمة والعلمين المنطقيين is_light وis_dark وسلسلة التصنيف ولون نص تراكب موصى به: داكن ب hex #000000 على خلفيات فاتحة أو فاتح ب hex #ffffff على خلفيات داكنة.
عقد الإدخال وشكل الاستجابة وسلوك الأخطاء
أمثلة صالحة تشمل #3b82f6 و3b82f6 و#abc وABC. تُزال المسافات المحيطة، وقد تكون الحروف كبيرة أو صغيرة، وعلامة المربع الأولى اختيارية. تُقبل فقط أجسام ست عشرية من ثلاثة أو ستة أرقام؛ أما hex بألفا من ثمانية أرقام وأسماء CSS مثل rebeccapurple وسلاسل دالة rgb() وحقول قنوات رقمية منفصلة فهي خارج النطاق وتُرفض كي تلاحظوا ذلك بدل إسقاط الألفا بصمت. threshold الاختياري عدد منتهٍ من صفر إلى مئتين وخمسة وخمسين شاملًا؛ احذفوه لاستخدام مئة وثمانية وعشرين. أرسلوا جسم JSON بحقل color نصي إلزامي. يقبل الحقل color الأسماء البديلة hex وvalue وtext وinput وcode. عند النجاح تعيد الاستجابة input_hex وinput_rgb للمصدر المحلول، وقنوات صحيحة r g b مع أسماء red green blue، وsource ك hex3 أو hex6، وbrightness على مقياس صفر إلى مئتين وخمسة وخمسين بدقة عرض ثابتة، وbrightness_0_1 كسطوع مقسوم على مئتين وخمسة وخمسين، وthreshold، وclassification ك light أو dark، وis_light وis_dark، وrecommended_text ك dark أو light، وrecommended_text_hex ك #000000 أو #ffffff، وformula تعيد مجموع BT.601 الموزون، وmethod مساويًا perceived_brightness_bt601، وmessage ملخصًا إنجليزيًا قصيرًا، وsteps كأسطر استبدال مرتبة للتعليم أو التنقيح. فشل التحقق — غياب color أو سلسلة فارغة أو طول hex خاطئ أو أحرف غير hex أو بادئة برمجة 0x أو عتبة خارج النطاق — يعيد invalid_input ولا يُحاسب أبدًا. التسعير مبلغ ثابت $0.002 لكل طلب ناجح بوحدة item. فضّلوا إرسال الرمز الدقيق الذي صدّرته أداة التصميم؛ تطبيع الاستجابة المصدر دائمًا إلى input_hex من ستة أرقام بأحرف صغيرة لتبقى فروقات المصب مستقرة.
نصائح عملية وحدود وعمليات بحث ذات صلة
المهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقًا، ما يبقي سكربتات الاستكشاف والتحقق من النماذج رخيصة بينما يُلصق المتعلمون قيمًا غير كاملة من الحافظة. ثبّتوا classification وbrightness وrecommended_text_hex في الاختبارات الآلية حتى لا يمر تغيير مستقبلي للعتبات الافتراضية أو التقريب بصمت، ووثّقوا أن method هو perceived_brightness_bt601 عند تخزين النتائج بجانب أنظمة إضاءة أخرى.
أسئلة تقنية
كيف يقرر المصنّف إن كان اللون فاتحًا أم داكنًا؟
يحسب السطوع المحسوس BT.601 = 0.299×R + 0.587×G + 0.114×B على قنوات 8 بت ثم يقارن بعتبة (الافتراضي 128). brightness ≥ threshold → light؛ وإلا dark.
هل مصنّف اللون فاتح أم داكن مجاني؟
أداة المتصفح مجانية وتعمل محليًا. استدعاءات API تستخدم رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل طلب ناجح؛ والمهام الفاشلة لا تُحاسب.