انتقل إلى منتقي الألوان

ألوان Tailwind CSS: لوحة v4 بصيغة OKLCH والألوان المخصصة والدرجات

يأتي Tailwind CSS v4 بـ 26 سلّمًا لونيًا في كل منها 11 درجة، من 50 إلى 950، أي 286 لونًا معرّفة بصيغة OKLCH كمتغيرات CSS مثل --color-blue-500. وتضيف ألوانك الخاصة عبر @theme { --color-brand-500: oklch(...) }. رقم الدرجة نفسه لا يعني الإضاءة نفسها: blue-600 هو أفتح أزرق يجتاز 4.5:1 على الأبيض، بينما يحتاج الأصفر إلى 700.

وقت القراءة: 6 د

كيف تُبنى لوحة ألوان Tailwind

تضم اللوحة الافتراضية في Tailwind v4.3 ستة وعشرين سلّمًا مسمّى. سبعة عشر منها لونية: red وorange وamber وyellow وlime وgreen وemerald وteal وcyan وsky وblue وindigo وviolet وpurple وfuchsia وpink وrose. وتسعة محايدة: slate وgray وzinc وneutral وstone من v3، إضافة إلى mauve وolive وmist وtaupe التي أُضيفت خلال v4. ويُضاف إليها الأسود والأبيض.

لكل سلّم الخطوات الإحدى عشرة نفسها: 50 و100 و200 وصولًا إلى 900، ثم 950. الدرجة 50 بيضاء تقريبًا، و950 سوداء تقريبًا. والكلاس يتكون من الأداة واللون والدرجة: bg-blue-500 وtext-rose-700 وborder-zinc-200.

رقم الدرجة موضع في السلّم، وليس قيمة إضاءة. فالدرجة 500 تتراوح إضاءتها في OKLCH بين 55.1% في gray و79.5% في yellow، ولهذا يتصرف yellow-500 وblue-500 بشكل مختلف تمامًا كلونين للنص.

الكلاسقيمة OKLCHبديل Hexالتباين على الأبيض
yellow-500oklch(79.5% 0.184 86.047)#efb1001.92:1
amber-500oklch(76.9% 0.188 70.08)#fd9a002.14:1
green-500oklch(72.3% 0.219 149.579)#00c9502.22:1
cyan-500oklch(71.5% 0.143 215.221)#00b8db2.37:1
orange-500oklch(70.5% 0.213 47.604)#ff69002.89:1
red-500oklch(63.7% 0.237 25.331)#fb2c363.81:1
blue-500oklch(62.3% 0.214 259.815)#2b7fff3.76:1
indigo-500oklch(58.5% 0.233 277.117)#615fff4.58:1
gray-500oklch(55.1% 0.027 264.364)#6a72824.84:1

أزرق Tailwind: كل درجة مع OKLCH وHex والتباين

إليك سلّم الأزرق كاملًا كما يعرّفه Tailwind v4. عمود Hex هو أقرب لون في sRGB، ونحصل عليه بخفض الكروما مع الحفاظ على الإضاءة والصبغة. نسب التباين قيم WCAG 2 مقيسة على قيمة Hex هذه.

blue-600 هي أول درجة تجتاز 4.5:1 لنص المحتوى على الأبيض. أما blue-500 فتجتاز على الأسود بنسبة 5.58:1 لكنها تفشل على الأبيض بنسبة 3.76:1. ولا توجد درجة زرقاء تجتاز 4.5:1 على الخلفيتين معًا، لذا تحتاج السمة الفاتحة والداكنة إلى درجتين مختلفتين.

الكلاسقيمة OKLCHبديل Hexعلى الأبيضعلى الأسود
blue-50oklch(97% 0.014 254.604)#eff6ff1.09:119.30:1
blue-100oklch(93.2% 0.032 255.585)#dbeafe1.22:117.21:1
blue-200oklch(88.2% 0.059 254.128)#bedbff1.42:114.77:1
blue-300oklch(80.9% 0.105 251.813)#8ec5ff1.81:111.58:1
blue-400oklch(70.7% 0.165 254.624)#51a2ff2.64:17.96:1
blue-500oklch(62.3% 0.214 259.815)#2b7fff3.76:15.58:1
blue-600oklch(54.6% 0.245 262.881)#155dfc5.25:14.00:1
blue-700oklch(48.8% 0.243 264.376)#1447e66.83:13.07:1
blue-800oklch(42.4% 0.199 265.638)#193cb88.82:12.38:1
blue-900oklch(37.9% 0.146 265.522)#1c398e10.37:12.03:1
blue-950oklch(28.2% 0.091 267.935)#16245614.78:11.42:1

أي درجات Tailwind تجتاز WCAG AA على الأبيض

أفتح درجة ناجحة تعتمد على الصبغة. فـ orange وamber وyellow وlime، وكذلك green وemerald وteal وcyan وsky، ما تزال فاتحة عند 500، لذا تحتاج إلى 700 لنص المحتوى. أما red وblue وviolet وpurple وfuchsia وpink وrose فتجتاز عند 600، وindigo منذ 500. ويبقى yellow الاستثناء: حتى yellow-600 تفشل مع النص الكبير بنسبة 2.93:1.

الإضاءة تتنبأ بالنتيجة أفضل من رقم الدرجة. فمن بين الألوان الـ286 كلها، تجتاز كل درجة إضاءتها في OKLCH أقل من 58% نسبة 4.5:1 على الأبيض، وتفشل كل درجة إضاءتها فوق 59.2%. اقرأ قيمة L في تعريف الكلاس وستعرف الجواب قبل أن تختبره.

اللونأفتح درجة لـ 4.5:1Hexالنسبةأفتح درجة لـ 3:1
red600#e7000b4.77:1500
orange700#ca35005.22:1600
amber700#bb4d005.03:1600
yellow700#a65f004.93:1700
lime700#497d004.98:1600
green700#0082364.95:1600
emerald700#007a555.36:1600
teal700#00786f5.36:1600
cyan700#0075955.28:1600
sky700#0069a85.86:1600
blue600#155dfc5.25:1500
indigo500#615fff4.58:1400
violet600#7f22fe5.89:1500
purple600#9810fa5.54:1500
fuchsia600#c800de4.66:1500
pink600#e600764.54:1500
rose600#ec003f4.53:1500
gray500#6a72824.84:1500
olive600#5b5b4b6.90:1500

كل الألوان المحايدة ما عدا olive تجتاز عند 500. فـ olive-500 إضاءتها 58% وصبغتها مائلة إلى الأصفر، ولا تبلغ سوى 4.25:1، لذا لا يمكن استبدال نص gray-500 بنص olive-500 دون فرق.

ألوان Tailwind v3 مقابل v4

كان v3 يعرّف الألوان كقيم Hex في tailwind.config.js تحت theme.extend.colors. أما v4 فينقل الإعدادات إلى CSS: الألوان متغيرات سمة داخل @theme، مكتوبة بصيغة OKLCH ومتاحة كمتغيرات CSS، فتعمل var(--color-blue-500) في CSS العادي وفي الأنماط المضمّنة.

اللوحة نفسها أُعيدت معايرتها، لا رسمها من جديد. بعد التحويل إلى OKLCH، يملك blue-500 في v3 (#3b82f6) الإضاءة والصبغة نفسيهما تمامًا كما في blue-500 في v4. الكروما وحدها ارتفعت، من 0.188 إلى 0.214. وبقية سلّم الأزرق تتبع النمط نفسه، باستثناء blue-400 الذي صار أغمق أيضًا بمقدار 0.7 نقطة. يكاد التباين لا يتغير بينما تبدو الألوان أكثر حيوية.

هذه الكروما الإضافية تتجاوز sRGB. فـ 94 من ألوان v4 الـ286 تقع خارج sRGB وداخل Display P3، وكلها لونية. في orange تقع 9 درجات من 11 خارجه، وفي blue أربع (من 200 إلى 500). على شاشة P3 ترى اللون كاملًا، وعلى شاشة sRGB يعرض المتصفح لونًا قريبًا منه. يستهدف v4 متصفحات Safari 16.4 وChrome 111 وFirefox 128 أو أحدث، وكلها تفهم oklch().

الكلاسHex في v3بديل Hex في v4الكروما من v3 إلى v4على الأبيض من v3 إلى v4
blue-400#60a5fa#51a2ff0.143 إلى 0.1652.54 إلى 2.64
blue-500#3b82f6#2b7fff0.188 إلى 0.2143.68 إلى 3.76
blue-600#2563eb#155dfc0.215 إلى 0.2455.17 إلى 5.25
blue-700#1d4ed8#1447e60.217 إلى 0.2436.70 إلى 6.83

CSS

@theme {
    --color-blue-500: oklch(62.3% 0.214 259.815);
}

.card {
    border-color: var(--color-blue-500);
}

كيف تضيف ألوانًا مخصصة في Tailwind v4

عرّف متغيرًا في نطاق الأسماء --color- داخل @theme. الجزء الذي يلي --color- يصبح اسم الكلاس، فيمنحك --color-brand الكلاسات bg-brand وtext-brand وborder-brand وring-brand وكل أدوات الألوان الأخرى، إضافة إلى var(--color-brand) في CSS. وتُقبل كل الصيغ: Hex وrgb() وhsl() وoklch().

لاستبدال اللوحة الافتراضية بدل توسيعها، أعد ضبط نطاق الأسماء أولًا بـ --color-*: initial، ثم عرّف الألوان التي تريدها فقط. تُولَّد الأدوات للكلاسات التي تستخدمها فعلًا فقط، لذا تحتفظ معظم المشاريع بالألوان الافتراضية.

CSS

@import 'tailwindcss';

@theme {
    --color-brand: #e4572e;
    --color-ink: oklch(21% 0.02 260);
}

يكفي --color-brand واحد للون تمييز واحد. لكن ما إن تحتاج إلى حالات hover أو خلفيات مُلوَّنة خفيفة أو الوضع الداكن، عرّف سلّمًا كاملًا بدرجات مرقّمة.

كيف تبني سلّمًا مخصصًا كاملًا من 50 إلى 950

وُلّد السلّم أدناه من #e4572e. إضاءته 63.7% تطابق الدرجة 500، فيبقى لون العلامة التجارية عند 500 تمامًا. تتبع الدرجات الأخرى منحنى الإضاءة في Tailwind وتحافظ على الصبغة نفسها، وتبلغ الكروما ذروتها عند 500 و600 ثم تتناقص نحو الطرفين، وكلها تقع داخل sRGB، لذا فقيم Hex دقيقة.

كما في صبغات Tailwind الدافئة، يحتاج هذا السلّم إلى 600 لنص المحتوى على الأبيض. تعطي brand-500 نسبة 3.68:1، وهذا يكفي للنص الكبير والأيقونات فقط.

الكلاسHexعلى الأبيض
brand-50#fcf3f01.09:1
brand-100#fae4de1.22:1
brand-200#f8cec31.44:1
brand-300#f3ae9a1.85:1
brand-400#ed7d5e2.73:1
brand-500#e4572e3.68:1
brand-600#ce3a004.97:1
brand-700#ae30006.52:1
brand-800#9126008.46:1
brand-900#77260e10.15:1
brand-950#44150815.48:1

CSS

@theme {
    --color-brand-50: oklch(97% 0.01103 36.478);
    --color-brand-100: oklch(93.477% 0.02574 36.478);
    --color-brand-200: oklch(88.485% 0.04964 36.478);
    --color-brand-300: oklch(81.145% 0.08641 36.478);
    --color-brand-400: oklch(71.064% 0.14524 36.478);
    --color-brand-500: oklch(63.723% 0.18385 36.478);
    --color-brand-600: oklch(56.583% 0.19167 36.478);
    --color-brand-700: oklch(49.952% 0.16921 36.478);
    --color-brand-800: oklch(43.729% 0.14814 36.478);
    --color-brand-900: oklch(38.935% 0.11766 36.478);
    --color-brand-950: oklch(27% 0.07538 36.478);
}

احتفظ بالدقة الكاملة عند اللصق. تقريب الإضاءة إلى 0.1% والكروما إلى ثلاث خانات عشرية يدفع brand-600 خارج sRGB بقليل، وهذا لا يضر، لكنه لم يعد يطابق قيمة Hex تمامًا.

كيف تعمل معدِّلات الشفافية مثل bg-blue-500/50

الشرطة المائلة بعد اللون تحدد قناة ألفا: bg-blue-500/50 هو blue-500 بشفافية 50%. كان v3 يترجم ذلك إلى rgb(59 130 246 / 0.5)، وهذا لا يعمل إلا مع الألوان التي يستطيع Tailwind تقسيمها إلى قنوات. أما الألوان المخصصة المعرّفة كمتغيرات CSS فكانت تحتاج إلى صيغة خاصة rgb(var(--brand) / <alpha-value>).

يترجم v4 المعدِّل إلى color-mix() في Oklab، فيمزج اللون مع transparent. وهذا يعمل مع أي لون: متغيرات السمة، والقيم الاعتباطية مثل bg-[#e4572e]/50، ومتغيرات CSS الخاصة بك.

الشفافية تغيّر التباين. فوق الأبيض يظهر blue-500/50 بلون #95bfff وblue-500/10 بلون #eaf2ff. النص بلون blue-600 يُقرأ بنسبة 5.25:1، لكن text-blue-600/60 ينخفض إلى 2.62:1 ويفشل حتى مع النص الكبير.

CSS

.bg-blue-500\/50 {
    background-color: color-mix(in oklab, var(--color-blue-500) 50%, transparent);
}

كيف تجد أقرب كلاس Tailwind لأي قيمة Hex

قارن قيمة Hex بكل الدرجات الـ286 حسب المسافة الإدراكية في Oklab (ΔEOK). تحت 0.02 تقريبًا يصعب رؤية الفرق عند وضع اللونين جنبًا إلى جنب، فيمكن لكلاس Tailwind أن يحل محل لونك. وفوق 0.04 تقريبًا، أضف لونًا مخصصًا بدلًا من ذلك.

يعرض الجدول مطابقات حقيقية. قيم Hex القديمة من v3 تعود إلى الكلاس نفسه في v4، بينما يقع برتقالي علامة تجارية نموذجي مثل #ff5733 بين orange-600 وred-400. تجري صفحة Tailwind في PickShade هذا البحث لأي لون وتعرض أقرب ثلاثة كلاسات.

لونكأقرب كلاس في v4بديل الكلاسΔEOK
#635bffindigo-500#615fff0.008
#1da1f2sky-500#00a6f40.020
#10b981emerald-500#00bc7d0.021
#3b82f6blue-500#2b7fff0.026
#e4572eorange-600#f549000.042
#ff5733orange-600#f549000.046

أسئلة وأجوبة

كم عدد الألوان في Tailwind CSS؟

يضم Tailwind CSS v4.3 ستة وعشرين سلّمًا لونيًا في كل منها 11 درجة، من 50 إلى 950، أي 286 لونًا إضافة إلى الأسود والأبيض. سبعة عشر سلّمًا لونية وتسعة محايدة: slate وgray وzinc وneutral وstone وmauve وolive وmist وtaupe.

ما كود Hex للون blue-500 في Tailwind؟

في Tailwind v4، قيمة blue-500 هي oklch(62.3% 0.214 259.815)، وهي خارج sRGB بقليل، وأقرب قيمة Hex لها #2b7fff. وفي Tailwind v3 كانت blue-500 تساوي #3b82f6، بالإضاءة والصبغة نفسيهما لكن بكروما أقل.

كيف أضيف ألوانًا مخصصة في Tailwind v4؟

أضف متغيرًا في نطاق الأسماء --color- داخل @theme في ملف CSS، مثل @theme { --color-brand-500: oklch(63.7% 0.184 36.48); }. عندها يولّد Tailwind الكلاسات bg-brand-500 وtext-brand-500 وكل أدوات الألوان الأخرى، وتصبح القيمة متاحة عبر var(--color-brand-500).

أي ألوان Tailwind سهلة القراءة على خلفية بيضاء؟

لنص المحتوى بنسبة 4.5:1 على الأبيض، استخدم 600 مع red وblue وviolet وpurple وfuchsia وpink وrose، و700 مع orange وamber وyellow وlime وgreen وemerald وteal وcyan وsky، و500 مع indigo ومعظم الألوان المحايدة. ويبقى olive الاستثناء بين المحايدة، إذ يحتاج إلى 600.

لماذا تبدو ألوان Tailwind v4 أكثر تشبعًا من v3؟

يعرّف Tailwind v4 الألوان بصيغة OKLCH ورفع الكروما فيها. ففي سلّم الأزرق مثلًا بقيت الإضاءة والصبغة تقريبًا كما في v3، بينما ارتفعت كروما الدرجات الوسطى بمقدار 0.02 إلى 0.03. وأصبح 94 من الألوان الـ286 خارج sRGB وتستخدم النطاق الأوسع Display P3، لذا تبدو أكثر حيوية على شاشات P3 مثل أجهزة iPhone وMac الحديثة.

هل يمكنني استخدام ألوان Hex في @theme في Tailwind v4؟

نعم. تقبل متغيرات السمة أي لون CSS، بما في ذلك Hex وrgb() وhsl() وoklch(). وتعمل معدِّلات الشفافية معها كلها لأن v4 يبنيها باستخدام color-mix().

جرّبه في PickShade

أدلة ذات صلة