Skip to content

محوّل HEX إلى HSL

حوّل أي لون HEX إلى HSL في المتصفح — يدعم 3 و6 و8 أرقام مع alpha. مجاني، فوري، بلا تسجيل، ألوانك لا تغادر الصفحة أبداً.

بدون تتبّع يعمل في المتصفّح مجاني
كل تحويل الألوان يجري محلياً في المتصفح. لا تُرسل أي بيانات إلى أي خادم.
النطاق اللوني: sRGB Display P3 Rec2020
التباين مقابل:
AA AA-Lg AAA AAA-Lg · APCA Lc
محاكاة عمى الألوان (8 أنواع)
<bdi>Protanopia</bdi> (عمى الأحمر)
<bdi>Deuteranopia</bdi> (عمى الأخضر)
<bdi>Tritanopia</bdi> (عمى الأزرق)
<bdi>Achromatopsia</bdi> (كلي)
<bdi>Protanomaly</bdi> (ضعف الأحمر)
<bdi>Deuteranomaly</bdi> (ضعف الأخضر)
<bdi>Tritanomaly</bdi> (ضعف الأزرق)
<bdi>Achromatomaly</bdi> (جزئي)
تدرّجات فاتحة / داكنة / محايدة / متناغمات

تدرّجات فاتحة

تدرّجات داكنة

درجات محايدة

متناغمات

نسخ كرمز
مرجع الألوان الشائعة
مُراجَع للتوافق مع CSS Color 4 §6.4، ودعم أشكال HEX من 3/4/6/8 أرقام، وصحّة فكّ ترميز زوج alpha، واستقرار رحلة الذهاب والإياب بين HEX وHSL عبر مدى درجة اللون 0-360° ومدى S/L0-100%. — فريق هندسة Go Tools · May 27, 2026

ما محوّل HEX إلى HSL؟

محوّل HEX إلى HSL أداة صغيرة تحوّل رمز لون HEX (`#3b82f6`) إلى ثلاثية درجة اللون / الإشباع / السطوع الأسطوانية التي تشفّر لون sRGB ذاته (`hsl(217 91% 60%)`). رموز HEX هي السلسلة المختصرة بأساس 16 التي يلصقها المصمّمون والمطوّرون بين Figma، وSketch، وPhotoshop، وPDF إرشادات العلامة، وأوراق أنماط CSS — ثلاث قنوات بـ8 بِت محزومة في شكل `#RRGGBB` من ستة أحرف، مُرتكزة على فضاء ألوان sRGB المُعرَّف في IEC 61966-2-1 عام 1996. HSL إعادة تشكيل أسطوانية لفضاء الألوان ذاته على ثلاثة محاور أكثر صداقةً للمصمّم: زاوية درجة لون على عجلة الألوان، ونسبة إشباع كروماتية، ونسبة سطوع. يحوّل المطوّرون HEXHSL باستمرار: لتعريف لون علامة متغيّراً في CSS ثم تركيب تدرّجات فاتحة أو داكنة بتعديل L وحده، أو لتغذية واجهة منتقي ألوان تعرض درجة اللون وSL بصورة منفصلة، أو لتوليد تدرّجات فاتحة وداكنة لنظام تصميم، أو لإجراء رياضيات متغيّرات CSS في وقت التشغيل عبر `hsl(from var(--primary) h s calc(l + 10%))` لرموز سمات مشتقّة. تجري هذه الأداة التحويل حياً أثناء الكتابة، دون زرّ «تحويل» تنقره، وتُسطِّح كل صيغة لون شائعة أخرى (RGB، وOKLCH، وOKLAB، وHSV، وHWB، وCMYK، بالإضافة إلى الألوان الـ148 المُسمّاة في CSS) إلى جانب إخراج HSL بلا مقابل.

**صيغة HSL ذاتها تستحقّ نظرة أقرب.** HSL = درجة اللون (0-360°)، والإشباع (0-100%)، والسطوع (0-100%). درجة اللون موضع زاوي على عجلة الألوان — أحمر، و60° أصفر، و120° أخضر، و180° سماوي، و240° أزرق، و300° أرجواني، و360° يلتفّ عائداً إلى الأحمر. الإشباع كثافة كروماتية من 0% (رمادي عديم اللون) إلى 100% (مشبع كروماتياً تماماً دون محتوى رمادي). السطوع إضاءة من 0% (أسود صرف، بصرف النظر عن درجة اللون أو الإشباع) مروراً بـ50% (درجة اللون الصرفة عند أعلى chroma) إلى 100% (أبيض صرف، بصرف النظر عن درجة اللون أو الإشباع). نشر Alvy Ray Smith الاشتقاق الأصلي عام 1978 ضمن دفعة الرسومات الحاسوبية المبكرة لإعطاء المصمّمين أنظمة إحداثيات أقرب إلى نموذجهم المعرفي للون من عنونة قنوات RGB الخام. النموذج في CSS منذ CSS3 (2010) ويُشحن في كل متصفح حتى IE 9. استخدمت صياغة CSS الأصلية الفواصل: `hsl(217, 91%, 60%)` للمعتم، و`hsla(217, 91%, 60%, 0.5)` لحامل alpha. أضافت CSS Color 4 (توصية مرشّحة من W3C منذ 2022) شكلاً حديثاً مفصولاً بمسافات: `hsl(217 91% 60%)` و`hsl(217 91% 60% / 0.5)` مع alpha مسبوقة بشَرطة مائلة — صياغة بشكل مماثل لباقي تدوينات CSS Color 4 الدالّية (`rgb()`، و`lab()`، و`oklch()`، و`color()`). يمكن أيضاً التعبير عن درجة اللون بالدورات (`hsl(0.6turn 91% 60%)`) أو الراديان (`hsl(3.787rad 91% 60%)`)، كلها مكافئة لشكل الدرجات القانوني. يحلّل كل متصفح دائم التحديث كل نكهة تركيبية؛ وتُصدر الأداة الشكل الحديث المفصول بمسافات افتراضياً.

رياضيات التحويل تسري في الاتجاهَيْن بنظافة. **HEXHSL** خطّ أنابيب ذو خطوتَيْن. أوّلاً، حلّل HEX ذا الستة أرقام `#RRGGBB` كثلاثة أعداد من رقمين بأساس 16 عبر `parseInt(hex.slice(1, 3), 16)` وغيرها للحصول على قنوات RGB صحيحة بين 0-255. ثانياً، طبّع كل قناة إلى 0-1 بالقسمة على 255، ثم احسب `max = Math.max(r, g, b)`، و`min = Math.min(r, g, b)`، و`delta = max - min`. السطوع هو متوسّط max وmin: `L = (max + min) / 2`. الإشباع مشروط بالسطوع: حين L ≤ 0.5، `S = delta / (max + min)`؛ وحين L > 0.5، `S = delta / (2 - max - min)`. بشكل مكافئ في صيغة CSS Color 4 §6.4، `S = delta / (1 - |2L - 1|)` (مع S = 0 حين delta = 0). درجة اللون قطاعية على أي قناة هي الأعلى: حين R هي الأعلى، `H = ((G - B) / delta) % 6`؛ وحين G هي الأعلى، `H = (B - R) / delta + 2`؛ وحين B هي الأعلى، `H = (R - G) / delta + 4`؛ اضرب في 60 للتدرّج إلى درجات، وأضف 360 إن كانت سالبة. العكس (HSLHEX، عبر RGB) يستخدم الدالّة المساعدة `f(n) = L - a * max(-1, min(k-3, 9-k, 1))` حيث `a = S * min(L, 1-L)` و`k = (n + H/30) mod 12`، مُطبَّقة بـ n = 0، و8، و4 لإنتاج R، وG، وB على التوالي، ثم تُقاس إلى 0-255 وتُرمَّز بـHEX.

**لماذا يبقى HSL مفيداً.** منزلقات بديهية — تعديل L يفتح اللون أو يعتمه بصورة متوقّعة دون كسر هويّة درجة اللون، بينما تعديل قناة RGB ينتج تحوّل لون أقل قابلية للتوقّع. رياضيات CSS في وقت التشغيل — تدعم المتصفحات الحديثة `hsl(from var(--primary) h s calc(l + 10%))` لاشتقاق رموز سمة عند وقت العرض. معرفة المصمّم — يفكّر المصمّمون الذين نشأوا على منتقيات ألوان HSV باللون بمصطلحات درجة اللون + chroma حتى حين يشحن الملفّ HEX. **مشكلة HSL** أن محور السطوع فيه ليس موحّداً إدراكياً — يبدو الأخضر عند L=50% أسطع بصرياً من الأزرق عند L=50% لأن HSL يرث هَنات gamma في sRGB ويعامل كل درجة لون بصورة متكافئة على سلّم L. حين تحتاج التوحيد الإدراكي (توليد لوحة ألوان حيث يجب أن تبدو كل خطوة ساطعة بالتساوي، أو حساب رموز الوضع الداكن دون أن يجعل النصّ الأزرق أصعب قراءةً عرضاً من النصّ الأخضر)، الجأ إلى OKLCH بدلاً منه — تُسطّح الأداة ذاتها كليهما، فالخيار على بُعد نظرة واحدة.

سير عمل HEXHSL في هذه الأداة اتجاه واحد من عائلة من خمسة أذرع تشترك جميعها في محوّل الألوان الموحّد الأساسي. محوّل الألوان الموحّد هو المركز — يعرض كل الصيغ التسع قابلة للتحرير في آن واحد وهو الأداة الصحيحة حين يحتاج سير عملك أكثر من HEX وHSL. تستهدف الأذرع ذات الاتجاه الواحد نوايا بحث محدّدة في Google: محوّل HEX إلى RGB لاتجاه canvas والعتاد، ومحوّل RGB إلى HEX للعكس، ومحوّل HEX إلى OKLCH لأنظمة التصميم الحديثة الموحّدة إدراكياً (تستخدم Tailwind v4 وshadcn الآن OKLCH افتراضياً)، ومحوّل HEX إلى CMYK لتقريبات تجهيز الطباعة. تشترك الأذرع الخمسة والمركز في محرّك التحليل ذاته ورياضيات التحويل ذاتها، فالنتائج مضمونة الانطباق عبر العائلة. يجري كل تحويل محلياً في المتصفح — رموز HEX الخاصّة بك لا تُرفع أبداً، ولا تُسجَّل، وصفر طلبات شبكة تنطلق أثناء الكتابة. تحقّق في DevTools.

// Convert a hex color string to {h, s, l, alpha} per CSS Color 4 §6.4
// h in 0-360, s and l in 0-1, alpha in 0-1.
function hexToHsl(input) {
  let h = input.trim().replace(/^#/, '');
  if (h.length === 3 || h.length === 4) h = h.split('').map(c => c + c).join('');
  const r = parseInt(h.slice(0, 2), 16) / 255;
  const g = parseInt(h.slice(2, 4), 16) / 255;
  const b = parseInt(h.slice(4, 6), 16) / 255;
  const alpha = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;
  const max = Math.max(r, g, b), min = Math.min(r, g, b), delta = max - min;
  const L = (max + min) / 2;
  const S = delta === 0 ? 0 : delta / (1 - Math.abs(2 * L - 1));
  let H = 0;
  if (delta !== 0) {
    if (max === r) H = ((g - b) / delta) % 6;
    else if (max === g) H = (b - r) / delta + 2;
    else H = (r - g) / delta + 4;
    H = (H * 60 + 360) % 360;
  }
  return { h: H, s: S, l: L, alpha };
}

console.log(hexToHsl('#3b82f6')); // { h: 217, s: 0.91, l: 0.60, alpha: 1 }

أبرز الميزات

كل أشكال HEX الخمسة تُحلَّل بصورة متطابقة

ثلاثة أرقام `#F73`، وأربعة مع alpha `#F738`، وستة `#3b82f6`، وثمانية مع alpha `#FF573380`، بالإضافة إلى المتغيّر بلا `#` لكل منها. يطبّع المحلّل كل واحد منها إلى اللون الداخلي ذاته قبل اشتقاق HSL، فتستطيع لصق أي شكل يستخدمه مصدرك دون تمديد الاختصار يدوياً أوّلاً. يُطبَّع حجم الأحرف أيضاً — `#3b82f6` و`#3B82F6` ينتجان إخراج HSL متطابقاً.

إخراج HSL بصياغة حديثة مفصولة بمسافات

يُسطِّح حقل HSL القيمة بشكل CSS Color 4 الحديث: `hsl(217 91% 60%)` للألوان المعتمة، و`hsl(217 91% 60% / 0.5)` لتلك ذات alpha. كلا الشكلَيْن يعملان في كل متصفح دائم التحديث (Chrome 65+، وSafari 13+، وFirefox 52+). الشكل القديم بالفواصل `hsl(217, 91%, 60%)` يبعد استبدالاً ميكانيكياً واحداً إن احتاجه هدفك؛ تُفضّل الصياغة الحديثة في الرمز الجديد لأنها تتسق مع باقي صياغات CSS Color 4 الدالّية.

مرجع OKLCH أصلي، لا محور HSL

رغم أن هذا الذراع يستهدف HEXHSL تحديداً، يحمل المحوّل الأساسي المشترك اللون القانوني كثلاثية OKLCH داخلياً. هذا يعني أن رحلة HEXHSLRGBOKLABHEX تجري دون انجراف فاصلة عائمة عند كل خطوة؛ تتراكم المحوّلات الإرثية التي تمرّ عبر HSL محوراً خطأ تقريب ويمكن أن تحرف درجة اللون بضع درجات عبر بضعة تحويلات. يُبقي محور OKLCH كل صيغة أخرى مُرتكزة رياضياً على نقطة المصدر ذاتها.

فكّ ترميز قناة alpha بنظافة

يُحلَّل HEX من ثمانية وأربعة أرقام مع alpha (`#RRGGBBAA` و`#RGBA`) بصورة صحيحة. يُسقَط الزوج الأخير إلى alpha فاصلة عائمة بين 0-1: `00` → 0، و`80` → 0.502، و`FF` → 1. يستخدم الإخراج صياغة الشَّرطة المائلة في CSS Color 4 (`hsl(217 91% 60% / 0.5)`) افتراضياً؛ ويبعد شكل `hsla(217, 91%, 60%, 0.5)` القديم استبدالاً واحداً. مفيد لترحيل رموز التصميم حيث قد تُدفَن قيم alpha في رموز HEX من ثمانية أرقام.

ثماني صيغ أخرى ظاهرة في آن واحد

HEX ذاته الذي تلصقه يقود أيضاً RGB، وHSV، وHWB، وOKLCH، وOKLAB، وCMYK، وأقرب لون CSS مُسمّى — كلها ظاهرة بلمحة على الصفحة ذاتها. أنت غير مقيّد بـHEXHSL فقط. إن احتاج زميلك ثلاثية OKLCH لرمز Tailwind v4 (حيث التوحيد الإدراكي يهمّ أكثر من L ذي هَنات gamma في HSL)، أو أقرب لون مُسمّى لنثر التوثيق، أو ثلاثية RGB لاستدعاء canvas، فالقيم هناك فعلاً مع أزرار «نسخ» خاصّة بها.

تباين WCAG + APCA مدمج

مرّر HEX وستُقَيّمه شارة التباين فوراً مقابل الأبيض والأسود باستخدام WCAG 2.1 (الحدّ التنظيمي: 4.5:1 لنص المحتوى، و7:1 لـAAA) وAPCA Lc (الخليفة المقترح في WCAG 3: هدف `|Lc| ≥ 75` لنص المحتوى). مفيد حين تكون قد حوّلت HEX علامة إلى HSL وتريد التحقّق من أن اللون الناتج (أو متغيّر مُعدَّل السطوع) قابل للقراءة فعلاً بوصفه لون نصّ محتوى قبل الشحن.

نسخ كـCSS / Tailwind v4 / SwiftUI / Compose / Flutter

تحت المنتقي، يحوّل قسم «نسخ كرمز» اللون الحالي إلى مقتطفات جاهزة للّصق لخمس منصّات: خاصّية CSS مخصّصة (`--color-brand: hsl(217 91% 60%)`)، ورمز `@theme` في Tailwind v4، وحرفية SwiftUI `Color(hue:saturation:brightness:)`، وثابت Jetpack Compose `Color.hsl(217f, 0.91f, 0.60f)`، وFlutter `HSLColor.fromAHSL(...)`. الصياغة الدقيقة التي تتوقّعها كل منصّة، جاهزة لإسقاطها في كتالوج أصول iOS، أو ملفّ سمة Android، أو `ThemeData` في Flutter.

100% في المتصفح — بلا رفع، بلا تتبّع

كل تحليل HEX، وتحويل HSL، وتقييم التباين، وتوليد اللوحات يجري محلياً في المتصفح. رموز HEX الخاصّة بك لا تُنقَل أبداً، ولا تُسجَّل على أي خادم، ولا تُحلَّل. صفر طلبات شبكة أثناء الكتابة — تحقّق في DevTools. آمن للوحات علامات لم يُعلَن عنها، ورموز تصميم داخلية، ونماذج مسوّدة تحت اتفاقية سرّية، وأي عمل لون سرّي آخر.

تجزئة URL قابلة للمشاركة للون الدقيق

يُشفَّر اللون الحالي في تجزئة URL بصيغة `#hex=3b82f6` تلقائياً عند كل تغيير. انسخ URL، والصق في محادثة Slack أو في قضيّة GitHub، فمن يفتحه ينزل على HEX ذاته بثلاثية HSL ذاتها. تعيش التجزئة في شريط عنوانك فقط ولا تُنقل أبداً إلى الخادم (لا تتضمّن المتصفحات أجزاء URL في طلبات HTTP)، فحتى مشاركة الرابط لا تسرّب اللون لأي طرف ثالث.

بدائل محوّل HEX إلى HSL

RapidTables Hex to HSL

أداة متصفّح

النتيجة الافتراضية في <bdi>Google</bdi> لـ«<bdi>hex to hsl</bdi>» — نموذج باتجاه واحد بـ<bdi>HEX</bdi> داخل، و<bdi>HSL</bdi> خارج، بلا أي صيغ أخرى ظاهرة. مفيد للبحث المرّة الواحدة عند الوصول من البحث. ينقصه <bdi>OKLCH</bdi>، وفحص التباين، وكشف النطاق اللوني، ومعالجة <bdi>alpha</bdi>، وعرض الصيغ المتعدّدة المتزامن. تتفوّق هذه الأداة على كل محور إلّا حالة التحويل البسيطة العارية.

ColorHexa

أداة متصفّح

صفحات <bdi>SEO</bdi> لكل لون طويلة الأمد ببيانات وصف عميقة: تحويلات، ولوحات، ومتناغمات، وتدرّجات لأي <bdi>HEX</bdi> تستفسر عنه. الواجهة قديمة (مطلع <bdi>2010</bdi>)، لا دعم <bdi>OKLCH</bdi>، ولا تباين <bdi>APCA</bdi>، ولا تعامل واسع النطاق. قوية لاكتشاف <bdi>SEO</bdi> لـ<bdi>HEX</bdi> محدّد عبر <bdi>Google</bdi>؛ أضعف لمسارات التحويل النشطة حيث الكتابة في واجهة حقول موحّدة أسرع.

W3Schools HSL Calculator

أداة متصفّح

تبديل صديق للمبتدئين <bdi>HEX</bdi>/<bdi>RGB</bdi>/<bdi>HSL</bdi> على صفحة تركّز على التعليم، حاضرة في نتائج البحث. لا <bdi>OKLCH</bdi>، ولا معالجة <bdi>alpha</bdi> تتجاوز <bdi>hsla</bdi>، ولا ميزات متقدّمة. مفيدة كمرجع إلى جانب محتوى تفسير <bdi>W3Schools</bdi>. تتفوّق هذه الأداة على كل محور آخر: صيغ أكثر، ورياضيات إدراكية، وميزات نطاق + تباين + <bdi>CVD</bdi>، وتصدير رمز حديث لـ<bdi>Tailwind v4</bdi> / <bdi>SwiftUI</bdi> / <bdi>Compose</bdi> / <bdi>Flutter</bdi>.

Browser DevTools Color Picker

ميزة متصفّح مدمجة

تشحن <bdi>DevTools</bdi> في <bdi>Chrome</bdi>، و<bdi>Firefox</bdi>، و<bdi>Safari</bdi> منتقي ألوان يبدّل بين <bdi>HEX</bdi>، و<bdi>RGB</bdi>، و<bdi>HSL</bdi> سطرياً حين تنقر عيّنة لون في لوحة <bdi>CSS</bdi>. مجاني، لا تثبيت، دائماً متوفّر. ينقصه <bdi>OKLCH</bdi>، وينقصه <bdi>URL</bdi> قابل للمشاركة، وينقصه تصدير الرمز لمنصّات غير الويب (<bdi>SwiftUI</bdi>، و<bdi>Compose</bdi>). الجأ إلى <bdi>DevTools</bdi> حين تكون مشغولاً بتنقيح <bdi>CSS</bdi>؛ والجأ إلى هذه الأداة حين تحتاج إخراجاً متعدّد المنصّات.

HSL Color Picker by Mothereff

أداة متصفّح

منتقي <bdi>HSL</bdi> مركّز بمنزلقات حيّة لدرجة اللون / الإشباع / السطوع وإخراج <bdi>HEX</bdi>. واجهة بسيطة، جيد لاستكشاف <bdi>HSL</bdi> سريع. ينقصه <bdi>OKLCH</bdi> وشبكة الصيغ الأوسع؛ لا ميزات تباين أو نطاق. مفيد بوصفه أداة <bdi>HSL</bdi> فقط مركّزة؛ تغطّي هذه الأداة سير العمل ذاته بالإضافة إلى <bdi>8</bdi> عروض صيغ أخرى والفحوصات الإدراكية.

ConvertingColors

أداة متصفّح

صفحات <bdi>SEO</bdi> لكل لون تغطّي فضاءات كثيرة (<bdi>HEX</bdi>، و<bdi>RGB</bdi>، و<bdi>HSL</bdi>، و<bdi>HSV</bdi>، و<bdi>CMYK</bdi>، و<bdi>XYZ</bdi>، و<bdi>CIELAB</bdi>). ينقصها دعم <bdi>OKLCH</bdi> الحديث وواجهة تحرير حقول موحّدة. صفحات المحتوى المُولَّدة آلياً تشعر بطابع مزرعة محتوى، لكن بيانات التحويل صحيحة. جيدة للتنقيب في بيانات وصف ألوان فردية عبر <bdi>Google</bdi>؛ هذه الأداة أسرع لمسارات العمل النشطة.

أمثلة على HEX إلى HSL

تعريف متغيّر CSS للون علامة

#3b82f6

إخراج HSL: `hsl(217 91% 60%)`. سير العمل القانوني لنظام تصميم مبني على HSL: عرّف العلامة كـ`--primary: hsl(217 91% 60%)` مرّة واحدة، ثم ركّب تدرّجات فاتحة بتعديل نسبة L وحدها — `hsl(217 91% 70%)` لتدرّج تحويم، و`hsl(217 91% 80%)` لحالة معطّلة، و`hsl(217 91% 90%)` لتعبئة خلفية خفيفة. تبقى درجة اللون والإشباع مقفلَتَيْن، فتُقرَأ العائلة كتدرّج متماسك. تحتاج أوراق الأنماط القائمة على RGB ثلاثة تعديلات منسّقة على القنوات في كل خطوة؛ بينما يحتاج HSL تعديلاً واحداً.

المصمّم يترجم لون Figma إلى منتقي HSL

#FF5733

إخراج HSL: `hsl(11 100% 60%)`. يريد المصمّمون الذين يفكّرون باللون بمصطلحات درجة اللون + الإشباع + السطوع (النموذج المعرفي الذي رسّخه Munsell عام 1905) ثلاثية HSL غالباً حتى حين يشحن ملفّ المصدر HEX. درجة اللون = 11° تضع هذا على الجانب الأحمر من وتد البرتقالي؛ والإشباع = 100% يعني أن القناة مشبعة كروماتياً تماماً؛ والسطوع = 60% يقع درجة فوق نقطة المنتصف. لصق HEX من Figma مرّة واحدة ينتج HSL المطابِق، جاهزاً للإسقاط في منتقي المصمّم الذهني دون تخمين يدوي لعجلة الألوان.

مسح سريع للسطوع للوحة ألوان

#3b82f6

إخراج HSL: `hsl(217 91% 60%)`. مع ثلاثية HSL في يدك، يصبح توليد تدرّج فاتح مسحاً أحادي البعد: حرّك L إلى 70% لـ`hsl(217 91% 70%)`، و80% لـ`hsl(217 91% 80%)`، و90% لـ`hsl(217 91% 90%)` للصعود نحو الأبيض؛ وأنزِل إلى 50%، و40%، و30% للتدرّجات الداكنة. يخرج التدرّج كاملاً من تسع خطوات بتغيير رقم واحد. تبقى التدرّجات الفاتحة والداكنة مرتبطة نغمياً لأن درجة اللون والإشباع ثابتان — الحيلة التي استخدمتها أنظمة التصميم الإرثية قبل أن يجعل OKLCH التدرّجات الموحّدة إدراكياً رخيصة.

HEX من ثمانية أرقام مع alphahsla()

#FF573380

إخراج HSL: `hsl(11 100% 60% / 0.5)`. يفكّ الزوج الأخير (`80`) إلى `128/255 ≈ 0.502`، ويُسطَّح كقناة alpha عبر صياغة الشَّرطة المائلة في CSS Color 4. الشكل القديم المكافئ هو `hsla(11, 100%, 60%, 0.5)`، وهو مدعوم في كل متصفح منذ IE 9 وما يتوقّعه المعالجات الأقدم. شُحن HEX ذو الثمانية أرقام مع alpha أصلياً في كل المتصفحات دائمة التحديث في عام 2018؛ قبل ذلك، كان لا بدّ من التعبير عن alpha عبر دالّة `hsla()` صراحةً.

تحويلات HEXHSL الشائعة

جدول مرجعي لأكثر 10 رموز HEX تحويلاً ومكافئاتها بـHSL — أوّليات صرفة، وثانويات صرفة، ولونَيْ علامة من لوحة Tailwind من العالم الحقيقي.

أسود

#000000 hsl(0 0% 0%)

أسود صرف. السطوع عند 0% — غياب الضوء المنبعث. درجة اللون والإشباع اعتبارياً 0 للرماديّات.

#000000 hsl(0 0% 0%)

الأسود الصرف على الشاشة نادراً ما يكون الخيار التصميمي الصحيح — جرّب `<bdi>hsl(0 0% 7%)</bdi>` أو سطوع <bdi>OKLCH</bdi> الإدراكي <bdi>0.1</bdi>-<bdi>0.15</bdi> لنصّ محتوى أنعم.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

أبيض

#FFFFFF hsl(0 0% 100%)

أبيض صرف. السطوع عند 100% — أسطع لون sRGB ممكن. درجة اللون والإشباع اعتبارياً 0 للرماديّات.

#FFFFFF hsl(0 0% 100%)

خلفيات الأبيض الصرف قد تُنتج إجهاد العين في البيئات المظلمة — جرّب `<bdi>hsl(0 0% 98%)</bdi>` أو <bdi>OKLCH</bdi> ‏<bdi>0.98</bdi> بدائل أدفأ.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

أحمر

#FF0000 hsl(0 100% 50%)

أحمر صرف. درجة اللون عند (موضع بداية العجلة)، والإشباع مشبع كروماتياً تماماً، والسطوع عند المنتصف حيث تعيش درجات اللون الصرفة.

#FF0000 hsl(0 100% 50%)

الأحمر الصرف مشبع للغاية ونادراً ما يناسب لوحة علامة — معظم ألوان علامة «الحمراء» تقع أقرب إلى `<bdi>hsl(0 73% 50%)</bdi>` (<bdi>#DC2626</bdi>).

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

أخضر

#00FF00 hsl(120 100% 50%)

أخضر صرف. درجة اللون عند 120° (ثلث الطريق حول العجلة)، والإشباع مشبع كروماتياً تماماً، والسطوع عند 50%. لون CSS مُسمّى `lime`.

#00FF00 hsl(120 100% 50%)

تتحلّل كلمة <bdi>CSS</bdi> المفتاحية `<bdi>green</bdi>` إلى <bdi>#008000</bdi> (<bdi>hsl(120 100% 25%)</bdi>)، لا <bdi>#00FF00</bdi> — مصدر تشوّش متكرّر. استخدم `<bdi>lime</bdi>` لـ<bdi>hsl(120 100% 50%)</bdi> الصرف.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

أزرق

#0000FF hsl(240 100% 50%)

أزرق صرف. درجة اللون عند 240° (ثلثا الطريق حول العجلة)، والإشباع مشبع كروماتياً تماماً، والسطوع عند المنتصف.

#0000FF hsl(240 100% 50%)

الأزرق الصرف على خلفية بيضاء يفشل في تباين <bdi>WCAG AA</bdi> (<bdi>3.7:1</bdi>) — فكّر في `<bdi>hsl(224 76% 48%)</bdi>` (<bdi>Tailwind blue-700</bdi>) لنصّ المحتوى.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

سماوي

#00FFFF hsl(180 100% 50%)

سماوي. درجة اللون عند 180° (منتصف العجلة، مقابل الأحمر)، والإشباع مشبع كروماتياً تماماً، والسطوع عند منتصف اللون الصرف. لون CSS مُسمّى `cyan` أو `aqua`.

#00FFFF hsl(180 100% 50%)

السماوي يقع مقابل الأحمر على العجلة (<bdi>180°</bdi>/<bdi>0°</bdi>)، فيكون الشريك الطبيعي للتناغم المُكمِّل لأي لون علامة من عائلة الأحمر.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

أرجواني

#FF00FF hsl(300 100% 50%)

أرجواني. درجة اللون عند 300° (خمسة أسداس حول العجلة)، والإشباع مشبع كروماتياً تماماً، والسطوع عند منتصف اللون الصرف. لون CSS مُسمّى `magenta` أو `fuchsia`.

#FF00FF hsl(300 100% 50%)

الأرجواني يقع مقابل الأخضر على العجلة (<bdi>300°</bdi>/<bdi>120°</bdi>)، فيكون الشريك الطبيعي للتناغم المُكمِّل لأي لون علامة من عائلة الأخضر.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

أصفر

#FFFF00 hsl(60 100% 50%)

أصفر. درجة اللون عند 60° (سدس حول العجلة، بين الأحمر والأخضر)، والإشباع مشبع كروماتياً تماماً، والسطوع عند منتصف اللون الصرف.

#FFFF00 hsl(60 100% 50%)

يبدو الأصفر عند <bdi>hsl(60 100% 50%)</bdi> أسطع بكثير من الأحمر عند <bdi>hsl(0 100% 50%)</bdi> — مثال حيّ على لاتوحيد <bdi>HSL</bdi> الإدراكي. يطبّع <bdi>OKLCH</bdi> هذا.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

Tailwind blue-500

#3b82f6 hsl(217 91% 60%)

لون علامة blue-500 الافتراضي في Tailwind CSS — «الأزرق الويب» القانوني في منتصف العشرينيّات. مستخدم في عدد لا يُحصى من لوحات التحكّم، ومواقع التسويق، وأدوات الإدارة.

#3b82f6 hsl(217 91% 60%)

تعيد <bdi>Tailwind v4</bdi> تعريف <bdi>blue-500</bdi> بـ<bdi>OKLCH</bdi> (`<bdi>oklch(0.629 0.193 263.4)</bdi>`) لتدرّجات موحّدة إدراكياً — يبقى <bdi>HSL</bdi> احتياط الإصدار <bdi>v3</bdi>.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

Tailwind rose-500

#f43f5e hsl(350 89% 60%)

rose-500 الافتراضي في Tailwind CSS — أحمر وردي عالي الإشباع يُستخدم شائعاً لأزرار التمييز، وحالات التنبيه، وتباين العلامة.

#f43f5e hsl(350 89% 60%)

تقع درجة لون <bdi>rose-500</bdi> (<bdi>350°</bdi>) قبيل الأحمر (<bdi>0°</bdi>/<bdi>360°</bdi>) على العجلة — انزياح وردي طفيف يُقرَأ أدفأ من الأحمر الصرف.

تحتاج إخراجاً موحّداً إدراكياً بدلاً منه؟ جرّب محوّل <bdi>HEX</bdi> إلى <bdi>OKLCH</bdi> المُخصّص — تبدو كل خطوة <bdi>L</bdi> ساطعة بالتساوي عبر درجات اللون، بخلاف <bdi>HSL</bdi>.

كيفية استخدام محوّل HEX إلى HSL

  1. 1

    الصق رمز HEX في حقل HEX

    أنزل أي قيمة HEX في حقل HEX — مع `#` الافتتاحية أو بدونها، باختصار ثلاثة أرقام (`#F73`)، أو شكل كامل من ستة (`#3b82f6`)، أو اختصار alpha من أربعة (`#F738`)، أو شكل كامل من ثمانية مع alpha (`#FF573380`). تُطبّع الأداة كل الأشكال الخمسة إلى اللون القانوني ذاته داخلياً. لا يهمّ حجم الأحرف (`#3b82f6` و`#3B82F6` يُحلَّلان بصورة متطابقة). تنتج الأحرف غير الصالحة أو الأعداد الخاطئة من الأرقام خطأً سطرياً صامتاً؛ ويُحدِّث HEX الصالح كل حقل صيغة أخرى في الزمن الحقيقي، بما في ذلك HSL.

  2. 2

    اقرأ ثلاثية HSL من حقل HSL

    يعرض حقل HSL أسفل حقل HEX قيمة `hsl()` المطابِقة بصياغة CSS Color 4 الحديثة المفصولة بمسافات: `hsl(217 91% 60%)` للون معتم، و`hsl(217 91% 60% / 0.5)` للون ذي alpha. درجة اللون عدد صحيح بدرجات من 0 إلى 360؛ والإشباع والسطوع عددان صحيحان بنسبة مئوية من 0 إلى 100. تُقرَّب القيم لقابلية القراءة عند العرض — يعني مرجع OKLCH الأصلي الداخلي في الأداة أن الدقّة الأساسية فاصلة عائمة، فرحلة العودة إلى HEX تبقى مستقرّة.

  3. 3

    انقر «نسخ» لالتقاط سلسلة HSL

    لكل بطاقة صيغة زرّ «نسخ» على اليمين. نقرة واحدة فتنزل القيمة على حافظتك — يومض نصّ الزرّ بسرعة بكلمة «نُسخت!» لإعلامك. السلسلة المنسوخة هي صياغة CSS Color 4 القانونية (`hsl(217 91% 60%)`)؛ وإن احتاج هدفك شكل الفاصلة القديم (`hsl(217, 91%, 60%)`)، فالتحويل ميكانيكي. لإخراج خاصّ بمنصّة محدّدة (Tailwind v4، وSwiftUI، وCompose، وFlutter)، استخدم قسم «نسخ كرمز» تحت المنتقي — تُصدر تلك المقتطفات الصيغة التي تتوقّعها كل منصّة أصلياً.

  4. 4

    ظاهرة أيضاً: RGB، وOKLCH، وOKLAB، وHSV، وHWB، وCMYK، واسم اللون

    يُضيء HEX ذاته الذي تلصقه حقول الصيغ الأخرى أيضاً — RGB لاستدعاءات canvas والعتاد، وOKLCH وOKLAB لأنظمة التصميم الموحّدة إدراكياً، وHSV وHWB لمسارات منتقي ألوان المصمّمين، وCMYK لتقديرات الطباعة، وأقرب لون CSS مُسمّى لنثر التوثيق. أنت غير مُقيَّد بـHEXHSL فقط. إن احتجت أيضاً ثلاثية OKLCH لكتلة `@theme` في Tailwind v4 (حيث السطوع الإدراكي يهمّ أكثر من L ذي هَنات gamma في HSL)، فهي هناك في حقل OKLCH مع زرّ «نسخ» خاصّ بها.

  5. 5

    استخدم المنتقي لمسح السطوع بصرياً

    تحت شبكة الصيغ يوجد مربّع SL + منزلق درجة اللون + منزلق alpha للاستكشاف البصري. يُسقَط مربّع SL مباشرةً على مستوى الإشباع × السطوع في HSL: اسحب رأسياً للسير بـL من 0% إلى 100% مع متابعة تحديث حقل HSL في الزمن الحقيقي. مفيد لتوليد تدرّج فاتح أو داكن بصرياً قبل تثبيت النسبة المئوية الدقيقة. على متصفحات Chromium (Chrome، وEdge، وBrave) يُفعّل زرّ EyeDropper واجهة EyeDropper الأصلية لانتقاء أي بكسل على الشاشة، بما في ذلك خارج المتصفح.

أخطاء HEX / HSL الشائعة

افتراض أن سطوع HSL موحّد إدراكياً

يبدو الأخضر عند `hsl(120 100% 50%)` أسطع بصرياً من الأزرق عند `hsl(240 100% 50%)`، رغم أن كليهما عند L=50%. توليد تدرّجات فاتحة بمسح L ينتج نتائج تبدو غير متّسقة عبر درجات اللون — يصعد الطرف الفاتح من تدرّج الأخضر أسرع من تدرّج الأزرق. هذه خاصّية بنيوية لـHSL الذي يرث هَنات gamma في sRGB، وليست خطأ في رمزك. للتدرّجات الموحّدة إدراكياً، انتقل إلى OKLCH.

✗ خطأ
Sweep HSL L for a 9-step palette:
hsl(120 100% 50%) and hsl(240 100% 50%) at the same L
Look visibly different in brightness — palette feels uneven.
✓ صحيح
Sweep OKLCH L instead:
oklch(0.7 0.2 130) and oklch(0.7 0.2 250)
Look equally bright; palette reads coherent across all hues.

نسيان أن درجة اللون تلتفّ عند 360°

درجة اللون في HSL زاوية — تُفسَّر `hsl(370 91% 60%)` كـ`hsl(10 91% 60%)` لأن 370°mod 360° = 10°. تحريك درجة اللون من 350° إلى 380° يلتفّ بنظافة عبر 360°/ (شريحة رفيعة من الأحمر)، لكن استكمال خطّياً من H=350 إلى H=10 بالطريق الخطأ يأخذ الطريق *الطويل* عبر السماوي، والأخضر، والأصفر — التفاف 320°. استخدم `Math.min(diff, 360 - diff)` لاختيار الطريق القصير، أو استخدم استكمال درجة اللون المدمج في مكتبة ألوان.

✗ خطأ
Linear interpolation from H=350 to H=10:
(350 + 10) / 2 = 180° (cyan midpoint)
Wrong — goes the long way around the wheel.
✓ صحيح
Short-path hue interpolation:
midpoint = ((350 + 10 + 360) / 2) % 360 = 0° (red midpoint)
Goes through red, the short path around the wheel.

الخلط بين HSL وHSV

يشترك HSL وHSV في محور درجة اللون لكنهما يختلفان في محورهما الثالث. سطوع HSL متناظر — 0% أسود، و50% درجة لون صرفة، و100% أبيض. قيمة HSV غير متناظرة — 0% أسود، و100% درجة لون صرفة، ولا يظهر الأبيض إلا حين ينخفض الإشباع إلى 0. `hsl(0 100% 100%)` أبيض؛ `hsv(0 100% 100%)` أحمر صرف. تستخدم كثير من مكتبات الألوان وأدوات التصميم (منتقي HSB في Photoshop، ولوحة ألوان Sketch) HSV — نسخ القيم بين النظامَيْن دون تحويل ينتج ألواناً مختلفة جامحة.

✗ خطأ
Paste HSV values from Photoshop into a CSS hsl() rule:
Photoshop HSB 0, 100, 100 (pure red)
CSS hsl(0 100% 100%) renders as white — wrong color entirely.
✓ صحيح
Convert HSV → HSL before pasting into CSS:
HSV 0, 100, 100 → HSL 0, 100%, 50%
CSS hsl(0 100% 50%) renders as pure red — correct.

إسقاط علامات النسبة المئوية في HSL

تتطلّب محاور S وL في HSL لاحقة `%` في CSS — `hsl(217 91 60)` خطأ تحليل في كل متصفح؛ والشكل الصحيح هو `hsl(217 91% 60%)`. درجة اللون وحدها بلا أبعاد (وحدتها الدرجات، لكن اللاحقة اختيارية). تنسى كثير من المحوّلات المؤقّتة إصدار علامات النسبة المئوية في إخراج HSL الخاصّ بها، فتنتج CSS غير صالحة تفشل بصمت عند اللصق. تُصدر الأداة دائماً علامات النسبة المئوية في حقل HSL.

✗ خطأ
Emit HSL without percent signs:
hsl(217 91 60)
CSS parse error — every browser ignores the entire rule.
✓ صحيح
Emit HSL with percent signs on S and L:
hsl(217 91% 60%)
Valid CSS — works in every evergreen browser and IE 9+.

من يستخدم HEX إلى HSL

مطوّرو الواجهة الأمامية يعرّفون متغيّرات HSL في CSS
عرّف `--primary: hsl(217 91% 60%)` مرّة واحدة من HEX من Figma، ثم ركّب `--primary-hover: hsl(217 91% 70%)`، و`--primary-active: hsl(217 91% 50%)`، و`--primary-bg: hsl(217 91% 95%)` بتعديل رقم L وحده. الصق HEX مرّة واحدة، اقرأ ثلاثية HSL، أسقطها في كتلة خاصّية CSS المخصّصة. النمط الذي استخدمته أنظمة التصميم الإرثية لإبقاء التدرّجات الفاتحة والداكنة متماسكة نغمياً قبل أن تتولّى التدرّجات القائمة على OKLCH الزمام.
المصمّمون يترجمون HEX إلى منتقي HSL
يريد المصمّمون الذين نشأوا على منتقيات درجة اللون + الإشباع + القيمة (Adobe، وSketch، ووضع HSB في Figma) ثلاثية HSL غالباً حتى حين يشحن ملفّ المصدر HEX. لصق HEX مرّة واحدة ينتج HSL المطابِق، جاهزاً ليُقرَأ في موضع عجلة الألوان الذهني للمصمّم دون تخمين يدوي. مفيد عند مراجعة مواصفة لون علامة ومعرفة موضعه على عجلة درجة اللون نسبةً إلى ألوان علامة أخرى في العائلة.
مؤلّفو أنظمة السمات يحسبون رموز الوضع الداكن
تقلب أنظمة السمات الداكنة L غالباً مع الإبقاء على درجة اللون والإشباع — يُسقَط `hsl(217 91% 60%)` لون أساسي في الوضع الفاتح إلى `hsl(217 91% 40%)` (أو ما يماثلها) في الوضع الداكن. الصق HEX الوضع الفاتح، اقرأ HSL، احسب L الوضع الداكن، اكتب HSL الجديد عائداً إلى رمز السمة الداكنة. النمط ميكانيكي حين تملك ثلاثية HSL؛ وأكثر تعقيداً مع قنوات RGB الخام.
مؤلّفو أنظمة التصميم يولّدون تدرّجات فاتحة وداكنة
ولّد تدرّجاً من تسع خطوات بمسح L: `hsl(217 91% 95%)` (الأفتح)، و85%، و75%، و65%، و55%، و45%، و35%، و25%، و`hsl(217 91% 15%)` (الأغمق). الصق HEX القاعدي، اقرأ HSL، امسح L بخطوات 10% ذهنياً أو في الرمز. (للتدرّجات الموحّدة إدراكياً حيث تبدو كل خطوة ساطعة بالتساوي، انتقل إلى حقل OKLCH المجاور — تبدو تدرّجات HSL غير متّسقة عبر درجات اللون لأن L غير موحّدة إدراكياً.)
مؤلّفو CSS يستخدمون رياضيات `hsl(from ...)` في وقت التشغيل
تدعم CSS الحديثة صياغة `color-function-from`: `hsl(from var(--primary) h s calc(l + 10%))` تشتقّ متغيّراً أفتح من `--primary` في وقت العرض، دون حساب كل خطوة مسبقاً. الصق HEX العلامة، أكّد ثلاثية HSL، أنزل القاعدة في متغيّر CSS، واستخدم رياضيات وقت التشغيل للرموز المشتقّة. تُشحن في Chrome 119+، وSafari 17.2+، وFirefox 128+.
مطوّرو الواجهة الأمامية يبنون مجموعات رموز HSL في Tailwind v3
خزّن Tailwind v3 ألوان السمات كثلاثيات HSL مفصولة بمسافات في متغيّرات CSS (`--primary: 217 91% 60%`)، مركّبة عبر `hsl(var(--primary))` في `tailwind.config.js`. الصق HEX العلامة، اقرأ HSL، أنزل الأرقام الثلاثة (دون غلاف `hsl(...)`) في تعريف المتغيّر. تحوّلت Tailwind v4 منذ ذلك إلى OKLCH أوّلاً، لكن قواعد رموز v3 ما زالت تستخدم نمط HSL وستفعل لسنوات.
مؤلّفو واجهات منتقي الألوان يُسقطون HEX على عناصر تحكّم HSL
يعني بناء منتقي ألوان يكشف درجة اللون / الإشباع / السطوع كثلاثة منزلقات منفصلة (واجهة Adobe الكلاسيكية) إسقاط HEX وارد على عناصر التحكّم الثلاثة في المنتقي. الصق HEX هنا، اقرأ ثلاثية HSL، ضع المنزلقات الثلاثة برمجياً. التحويل هو ذاته الذي سيشغّله منتقيك داخلياً؛ وتُسطِّح هذه الأداة القيم الوسيطة للتنقيح.
مهندسو الوصولية يضبطون سطوع لون العلامة للتباين
حين يفشل لون علامة في تباين WCAG مقابل خلفية، الإصلاح الرخيص رفع L حتى تجتاز النسبة — دون تغيير درجة اللون أو الإشباع، يبقى اللون مقروءاً بوصفه هويّة العلامة ذاتها. الصق HEX العلامة، راقب شارات التباين، اضبط L ذهنياً (أو استخدم محور L في المنتقي) حتى يجتاز كلٌّ من WCAG وAPCA. يُسطِّح حقل HSL نسبة L الجديدة لمستند المواصفات؛ ويُسطِّح حقل HEX الرمز المطابِق لورقة الأنماط.

رياضيات HEX إلى HSL والتحليل

HEXRGBHSL خطّ أنابيب ذو خطوتَيْن
يمرّ التحويل عبر RGB وسيطاً. الخطوة الأولى: حلّل HEX إلى أعداد RGB صحيحة عبر `parseInt(hex.slice(1, 3), 16)` لكل قناة. الخطوة الثانية: طبّع RGB إلى 0-1، احسب `max`/`min`/`delta`، طبّق مثلّثات CSS Color 4 §6.4 القطاعية: `L = (max + min) / 2`، و`S = delta / (1 - |2L - 1|)`، و`H = piecewise * 60`. البنية ذات الخطوتَيْن هي السبب في تسطيح الأداة لثلاثية RGB الوسيطة أيضاً — عرضها بالمجّان ومفيد للتنقيح.
CSS Color 4 §6.4 يعرّف خوارزمية المرجع
تعرّف مواصفة W3C CSS Color 4 §6.4 (خوارزمية `rgb()` إلى `hsl()`) الرياضيات القطاعية القانونية: السطوع منتصف max وmin، والإشباع `delta / (1 - |2L - 1|)` (مع S = 0 حين delta = 0، لتجنّب القسمة على صفر على الرماديّات)، ودرجة اللون مثلّثات بمعدّل 60 درجة لكل خطوة على أي قناة هي الأعلى. تعالج المواصفة أيضاً الحالات الحدّية: ينتج الأسود الصرف (`#000`) `hsl(0 0% 0%)` بدرجة لون اعتباطية ؛ وينتج الأبيض الصرف (`#FFF`) `hsl(0 0% 100%)` بالمثل؛ وينتج الرمادي الصرف `hsl(0 0% 50%)`.
تلتفّ درجة اللون عند 360°، وS وL نسب مئوية
تملك محاور HSL الثلاثة وحدات مختلفة. درجة اللون درجة زاوية من 0 إلى 360 مع التفاف — تُفسَّر `hsl(370 ...)` كـ`hsl(10 ...)` لأن المواضع الزاوية تلتفّ. الإشباع والسطوع نسب مئوية من 0% إلى 100%، بلا التفاف؛ تُقصَر القيم خارج المدى. تقبل CSS Color 4 أيضاً درجة اللون بالدورات (`hsl(0.6turn ...)`) أو الراديان (`hsl(3.787rad ...)`)؛ يستخدم إخراج الأداة الدرجات لأنها الشكل الأكثر شيوعاً في واجهات أدوات التصميم ومستندات مواصفات العلامة.
سطوع HSL *ليس* موحّداً إدراكياً
يبدو الأخضر عند `hsl(120 100% 50%)` أسطع بصرياً من الأزرق عند `hsl(240 100% 50%)`، رغم أن كليهما عند سطوع اسمي ذاته — لأن HSL يرث هَنات gamma في sRGB ويستخدم سلّم L ذاته عبر كل درجة لون. هذا سبب ظهور تدرّجات HSL الفاتحة غير متّسقة (يصعد الطرف الفاتح من تدرّج الأخضر أسرع من الطرف الفاتح من تدرّج الأزرق) ولماذا هاجرت أنظمة التصميم في الغالب إلى OKLCH لتوليد التدرّجات. تُسطّح الأداة كلاً من HSL وOKLCH فالخيار على بُعد نظرة.
مرجع OKLCH الداخلي لاستقرار رحلة الذهاب والإياب
رغم أن هذا الذراع يستهدف HEXHSL تحديداً، يحمل المحوّل الأساسي المشترك اللون القانوني كثلاثية OKLCH داخلياً. تبقى رحلات HEXHSLRGBOKLABHEX مستقرّة على مستوى البِت؛ تتراكم محوّلات HSL الإرثية خطأ تقريب ويمكن أن تحرف درجة اللون بضع درجات عبر بضعة تحويلات. يحفظ محور OKLCH أيضاً درجة اللون محوراً مستقرّاً فلا يعبر سحب منزلق درجة اللون فجأة الرماديّ. وفقاً لورقة OKLAB لـBjörn Ottosson عام 2020.
ترميز القناة: 8-بِت غير موقّعة، مُرمّزة بـgamma sRGB
تشفّر رموز HEX قنوات RGB أعداداً صحيحة غير موقّعة من 8 بِت (0-255) في فضاء ألوان sRGB المُعرَّف في IEC 61966-2-1 (1996). القيم *مُرمّزة بـgamma* — العلاقة بين قيمة القناة والسطوع المُدرَك غير خطّية، تتبع دالّة نقل sRGB القطاعية (تقريباً أس 2.4 مع مقطع خطّي صغير قرب الصفر). يُشتقّ HSL مباشرةً من قيم RGB المُرمّزة بـgamma هذه دون أي خطوة تسوية خطّية، وهذا السبب الجذري لمشكلة التوحيد الإدراكي في HSL. يسوّي OKLCH أوّلاً ثم يعيد الإسقاط إلى فضاء موحّد إدراكياً؛ HSL لا يفعل.

أفضل الممارسات لسير عمل HEX / HSL

استخدم صياغة HSL الحديثة المفصولة بمسافات في الرمز الجديد
`hsl(217 91% 60%)` (مفصول بمسافات) و`hsl(217 91% 60% / 0.5)` (شَرطة مائلة لـalpha) في CSS Color 4 هما الصياغتان القانونيّتان للرمز الذي يُشحَن في 2025 وما بعد. الشكلان القديمان بالفواصل `hsl(217, 91%, 60%)` و`hsla(217, 91%, 60%, 0.5)` ما زالا مدعومَيْن في كل مكان لكنهما مُهمَلان أسلوبياً في CSS Color 4. استخدم الصياغة الحديثة في أوراق الأنماط الجديدة؛ احتفظ بـ`hsla()` فقط لسياقات احتياط IE 9-11 حيث تحتاج فعلاً دعماً إرثياً.
ولّد التدرّجات في OKLCH، لا في HSL
محور السطوع في HSL ليس موحّداً إدراكياً — ينتج مسح L من تسع خطوات تدرّجاً تبدو فيه خطوات الأخضر أسطع من خطوات الأزرق عند كل قيمة L. للتدرّجات التي يجب أن تبدو فيها كل خطوة ساطعة بالتساوي (طلب نظام التصميم الافتراضي)، ولّد في OKLCH بدلاً منه: `oklch(0.7 0.15 217)`، و`oklch(0.6 0.15 217)`، وغيرها. تُسطِّح الأداة كلاً من HSL وOKLCH لـHEX ذاته، فالتبديل بينهما على بُعد نقرة «نسخ» واحدة.
اقفل درجة اللون والإشباع، وامسح السطوع
عند استخدام HSL لعمل تدرّجات فاتحة وداكنة، غيّر رقم L وحده — أبقِ درجة اللون والإشباع متطابقَيْن عبر التدرّج. انجراف درجة اللون (حتى بـ) يجعل التدرّج يبدو مشوّشاً. انجراف الإشباع يجعل الطرف الفاتح يبدو باهتاً والطرف الداكن يبدو موحلاً. انضباط محور واحد في كل مرّة هو ما يمنح HSL سمعته الصديقة للتصميم؛ والتخلّي عنه يمنحك الأسوأ من كلا العالمَيْن.
فضّل HEX لرموز مصدر الحقيقة، وHSL للمتغيّرات المحسوبة
حين تكتب مواصفة رمز تصميم، فضّل HEX (أو OKLCH) صيغةً قانونية — كلاهما أقصر ويلائم JSON أو YAML بنظافة. HSL أنفع للرموز *المشتقّة* في وقت التشغيل (`hsl(from var(--primary) h s calc(l + 10%))`) من كونه صيغة مصدر الحقيقة. تصف الصيغتان اللون ذاته؛ والاختيار يخصّ الدور الذي يلعبه الرمز في النظام.
وثّق متغيّرات HSL مع HEX القاعدي
حين تشحن متغيّر CSS مثل `--primary-light: hsl(217 91% 70%)`، ضمّن تعليقاً يُشير إلى HEX القاعدي: `/* base: #3b82f6 → hsl(217 91% 60%), light variant +10% L */`. بعد ستة أشهر، حين يريد أحد اشتقاق `--primary-lighter`، فإنه يحتاج اللون القاعدي للحساب منه — وHSL وحده لا يُسطِّح ذلك. HEX وHSL معاً يحفظان الأصل الكامل.
استخدم تجزئة URL لمشاركة قرارات الألوان الحيّة
يُحدِّث كل تغيير لون تجزئة URL بصيغة `#hex=3b82f6` تلقائياً. انسخ URL إلى محادثة Slack أو قضيّة GitHub فمن يفتحه ينزل على اللون ذاته بثلاثية HSL ذاتها. هذا أوثق من لصق سلسلة HSL في الدردشة — أحياناً يخطئ المستلمون في كتابة الدرجة أو يُسقطون علامة النسبة المئوية عند إدخال القيمة يدوياً — ويتيح لمحادثة مراجعة تصميم الإشارة إلى لون دقيق بدلاً من «الأزرق الذي ناقشناه الثلاثاء». لا تُنقَل التجزئة أبداً إلى الخادم.

الأسئلة الشائعة

كيف أحوّل HEX إلى HSL؟
حوّل HEX أوّلاً إلى أعداد RGB صحيحة عبر `parseInt(hex, 16)`، ثم طبّع كل قناة إلى 0-1 بالقسمة على 255، ثم احسب `max`/`min`/`delta` عبر القنوات الثلاث وطبّق مثلّثات CSS Color 4 §6.4 القطاعية: السطوع = `(max + min) / 2`، والإشباع = `delta / (1 - |2L - 1|)` (صفر حين يكون delta صفراً)، ودرجة اللون قطاعية على أي قناة هي الأعلى (60° لكل خطوة حول العجلة). يُحلَّل `#3b82f6` إلى `rgb(59 130 246)` ثم يتحوّل إلى `hsl(217 91% 60%)`. تشغّل هذه الأداة خطّ الأنابيب الكامل حيّاً أثناء الكتابة.
ما هو لون HSL؟
HSL إعادة تشكيل أسطوانية لفضاء ألوان sRGB إلى ثلاثة محاور ذات معنى إدراكي: درجة اللون (0-360°، الموضع الزاوي على عجلة الألوان — أحمر، و120° أخضر، و240° أزرق)، والإشباع (0-100%، الكثافة الكروماتية — 0% رمادي، و100% مشبع كروماتياً تماماً)، والسطوع (0-100%، الإضاءة — 0% أسود، و50% درجة لون صرفة، و100% أبيض). نشر Alvy Ray Smith الاشتقاق عام 1978 ليعطي المصمّمين نظام إحداثيات أقرب إلى تفكيرهم في اللون من عنونة قنوات RGB الخام. HSL في CSS منذ 2010 (CSS3) ويُشحن في كل متصفح.
ما الفرق بين HSL و HSV؟
كلاهما إعادتا تشكيل أسطوانيتان لـsRGB بمحاور درجة لون متطابقة، لكنهما يعاملان المحور الثالث بصورة مختلفة. يمتدّ السطوع في HSL من الأسود عند 0% مروراً بدرجة اللون الصرفة عند 50% إلى الأبيض عند 100% — متناظر، فـ`hsl(0 100% 50%)` أحمر صرف و`hsl(0 100% 100%)` أبيض. تمتدّ القيمة في HSV من الأسود عند 0% إلى درجة اللون الصرفة عند 100% — غير متناظر، فـ`hsv(0 100% 100%)` أحمر صرف ولا يظهر الأبيض إلا حين ينخفض الإشباع إلى 0. HSL أنفع لتدرّجات نظام التصميم الفاتحة والداكنة لأن منتصف 50% يحدّد مرجع اللون الصرف؛ بينما HSV أنفع لمنتقيات الألوان لأن مربّع الإشباع/القيمة يُسقَط بنظافة على واجهة منتقي SV.
لماذا نستخدم HSL بدلاً من RGB؟
ثلاثة أسباب. أوّلاً، منزلقات بديهية — تحريك L من 60% إلى 70% ينتج تدرّجاً فاتحاً من اللون ذاته بصورة متوقّعة؛ تحريك R من 130 إلى 150 ينتج تحوّل لون أقل قابلية للتوقّع. ثانياً، توليد لوحات الألوان — `hsl(217 91% 60%)`، و`hsl(217 91% 70%)`، و`hsl(217 91% 80%)` تدرّج فاتح متماسك نغمياً يُولَّد بتغيير رقم واحد؛ المثل في RGB يحتاج ثلاثة تعديلات منسّقة. ثالثاً، رياضيات CSS في وقت التشغيل — تتيح CSS الحديثة حساب `hsl(from var(--primary) h s calc(l + 10%))` لاشتقاق متغيّر أفتح من رمز قاعدي دون حساب كل خطوة مسبقاً. لا تملك RGB راحة محور أسطواني مثلها.
كيف أقرأ قيمة HSL؟
تحوي HSL ثلاثة أجزاء بترتيب: درجة اللون، والإشباع، والسطوع. تعني `hsl(217 91% 60%)` درجة اللون = 217° (أزرق نظيف، يتجاوز قليلاً منطقة الأزرق الصرف عند 240° ويعود نحو السماوي)، والإشباع = 91% (مشبع كروماتياً للغاية، بلا رمادي تقريباً)، والسطوع = 60% (درجة أسطع من منتصف اللون الصرف). درجة اللون هي المحور الوحيد بدون لاحقة نسبة مئوية لأنّها تُعبَّر بالدرجات — تلتفّ القيم عند 360°، فـ`hsl(370 ...)` مطابقة لـ`hsl(10 ...)`. القيمة المُسبَقة بشَرطة مائلة في النهاية (إن وُجِدت) هي alpha في مدى 0-1: `hsl(217 91% 60% / 0.5)` هو اللون ذاته بإعتام 50%.
هل تدعم CSS HSL؟
نعم — HSL في CSS منذ CSS3 في 2010 ويُشحن في كل متصفح، بما في ذلك IE 9. استخدمت الصياغة الأصلية الفواصل: `hsl(217, 91%, 60%)` للمعتم و`hsla(217, 91%, 60%, 0.5)` لحامل alpha. أضافت CSS Color 4 (توصية مرشّحة من W3C منذ 2022) الشكل الحديث المفصول بمسافات: `hsl(217 91% 60%)` و`hsl(217 91% 60% / 0.5)` مع alpha مسبوقة بشَرطة مائلة. يمكن أيضاً التعبير عن درجة اللون بالدورات أو الراديان (`hsl(0.6turn 91% 60%)` مطابقة لـ`hsl(217 91% 60%)`). الصياغتان القديمة والحديثة متبادلتان في كل المتصفحات دائمة التحديث.
ماذا يعني الحرف L في HSL؟
السطوع (Lightness). المحور 0-100% الذي يتحكّم بمدى سطوع اللون، حيث يُسقَط 0% على الأسود الصرف و100% على الأبيض الصرف. نقطة المنتصف (50%) هي حيث تعيش درجة اللون الصرفة — `hsl(0 100% 50%)` أحمر صرف، بينما `hsl(0 100% 25%)` أحمر أغمق و`hsl(0 100% 75%)` وردي أفتح. السطوع هو النظير المتناظر للقيمة غير المتناظرة في HSV. لاحظ أن سطوع HSL *ليس* موحّداً إدراكياً — يبدو الأخضر عند L=50% أسطع بصرياً من الأزرق عند L=50% لأن HSL يرث هَنات gamma في sRGB؛ للتوحيد الإدراكي، الجأ إلى OKLCH.
ما دقّة تحويل HEX إلى HSL؟
خطوة HEXRGB دقيقة على مستوى البِت (يعيد `parseInt(hex, 16)` أعداداً صحيحة دون تورّط فاصلة عائمة). تنطوي خطوة RGBHSL على مثلّثات وقسمة، فالإخراج فاصلة عائمة تقرّبها الأداة إلى درجات عددية صحيحة ونسبة مئوية عددية صحيحة للعرض. تستعيد رحلة HEXHSLHEX الأصل في حدود وحدة قناة واحدة (خطأ التقريب من عرض H كدرجة عددية صحيحة). للعمل دون فقدان، OKLCH صيغة داخلية أفضل — تحمل هذه الأداة فعلياً OKLCH مرجعاً أصلياً داخلياً، ثم تشتقّ HSL عند العرض، فاستقرار رحلة الذهاب والإياب أفضل من المحوّلات الساذجة التي تتمحور حول HSL.

أدوات ذات صلة

عرض جميع الأدوات →

محوّل الأنظمة العددية — ثنائي وست عشري وعشري وثماني

أدوات التحويل

حوّل بين الأنظمة الثنائية والست عشرية والعشرية والثمانية وأي أساس من 2 إلى 36 فوراً — أداة مجانية أونلاين تعمل في متصفّحك. جرّبها الآن.

محوّل ألوان HEX/RGB/OKLCH

أدوات التحويل

حوّل ألوان HEX إلى RGB و HSL و OKLCH و OKLAB و CMYK داخل متصفحك — انسخ أي صيغة بنقرة واحدة. مجاني، بلا تسجيل، ألوانك لا تغادر الصفحة أبداً.

محوّل HEX إلى CMYK

أدوات التحويل

حوّل ألوان HEX إلى CMYK في المتصفح. تقريب ساذج قائم على sRGB لمعاينات الطباعة. مجاني، بلا تسجيل، ألوانك تبقى محلياً.

محوّل HEX إلى OKLCH

أدوات التحويل

حوّل HEX إلى OKLCH لرموز تصميم Tailwind v4. إخراج موحّد إدراكياً حيّ مع تنبيهات نطاق Display P3. مجاني، في المتصفح فقط.

محوّل HEX إلى RGB

أدوات التحويل

حوّل أي رمز لون HEX إلى RGB في المتصفح — يدعم HEX من 3 و6 و8 أرقام مع alpha. مجاني، فوري، بلا تسجيل، ألوانك لا تغادر الصفحة أبداً.

ضغط الصور — JPEG وPNG وWebP

أدوات التحويل

اضغط صور JPEG وPNG وWebP أونلاين مجاناً — بياناتك لا تغادر متصفّحك أبداً. قلّل حجم الصورة حتى 80% مع الحفاظ على الجودة. معالجة دفعية لـ 20 صورة.