1. الأساس الرياضي: تحويل النظام السداسي عشري HEX إلى قنوات RGB
// التحويل الحسابي اليدوي في جافا سكريبت:
const hex = "3B82F6";
const r = parseInt(hex.slice(0, 2), 16); // 59
const g = parseInt(hex.slice(2, 4), 16); // 130
const b = parseInt(hex.slice(4, 6), 16); // 246
console.log(`rgb(${r}, ${g}, ${b})`);استخراج قنوات الألوان باستخدام parseInt بالأساس 16.
2. دالة جافا سكريبت متكاملة تدعم أكواد 3 و 6 و 8 خانات
function hexToRgba(hex, overrideAlpha) {
let clean = hex.replace(/^#/, "").trim();
if (clean.length === 3) {
clean = clean.split("").map(c => c + c).join("");
}
if (clean.length === 6) {
const num = parseInt(clean, 16);
const r = (num >> 16) & 255;
const g = (num >> 8) & 255;
const b = num & 255;
const a = overrideAlpha !== undefined ? overrideAlpha : 1;
return `rgba(${r}, ${g}, ${b}, ${a})`;
}
if (clean.length === 8) {
const num = parseInt(clean, 16);
const r = (num >> 24) & 255;
const g = (num >> 16) & 255;
const b = (num >> 8) & 255;
const a = overrideAlpha !== undefined ? overrideAlpha : +(num & 255) / 255;
return `rgba(${r}, ${g}, ${b}, ${Number(a.toFixed(2))})`;
}
throw new Error("تنسيق HEX غير صالح");
}دالة معالجة بتية عالية الأداء تدعم كافة صيغ HEX.
3. فهم أكواد الألوان السداسية عشرية المكونة من 8 خانات (#RRGGBBAA)
4. صياغة CSS الحديثة واستخدام دالة color-mix() دون الحاجة لـ JS
:root {
--brand-color: #3b82f6;
}
.card {
/* الصياغة الحديثة مع الفاصل المائل */
background: rgb(59 130 246 / 0.5);
/* تطبيق الشفافية المباشرة في CSS */
border-color: color-mix(in srgb, var(--brand-color) 50%, transparent);
}استخدام color-mix() لتطبيق الشفافية مباشرة في صفحات الأنماط.