Skip to content

دوال CSS مشروحة

دوال CSS التي تقوم بأكثر العمل، مجمّعة حسب المهمة: حساب الأحجام، وقراءة الخصائص المخصصة، ومزج الألوان واختيارها، ورسم التدرجات، وتطبيق المرشحات، ورسم الأشكال، وتحويل الصناديق، واختيار القيم بالمنطق. كل صف يقرن الدالة بمثال من سطر واحد.

دالة CSS تأخذ وسائط وتُرجع قيمة يستخدمها المتصفح. الأكثر استخدامًا: calc() للحساب، وvar() لرموز التصميم، وclamp() للأحجام السائلة، وcolor-mix() للألوان المشتقّة. أداخلها بحرّية: clamp(1rem, var(--fluid), 3rem) قيمة متجاوبة واحدة.

جدول مرجعي · 62 إدخالات
62 of 62 rows
الأحجام والرياضيات
نتيجة تعبير حسابي، بوحدات مختلطة.width: calc(100% - 2rem);
أصغر القيم المعطاة.width: min(100%, 60ch);
أكبر القيم المعطاة.width: max(320px, 40vw);
قيمة محدودة بين حد أدنى وقيمة مفضلة وحد أقصى.font-size: clamp(1rem, 2vw, 1.5rem);
يقرأ متغير بيئة يوفره وكيل المستخدم.padding: env(safe-area-inset-top);
حجم محدود بعرض المحتوى الذاتي.width: fit-content(200px);
يقرّب قيمة إلى أقرب مضاعف لقيمة أخرى.width: round(up, 133px, 50px);
الباقي الموجب للقسمة، وغير سالب دائمًا.margin: mod(100px, 30px);
باقي القسمة، مع الاحتفاظ بإشارة المقسوم.margin: rem(-100px, 30px);
القيمة المطلقة.translateX(abs(-10px));
-1 أو 0 أو 1، حسب إشارة القيمة.padding: sign(-5px) * 10px;
الشبكة (Grid)
مدى حجم لمسارات الشبكة، بين حد أدنى وحد أقصى.grid-template-columns: minmax(100px, 1fr) minmax(0, 2fr);
يعيد نمط مسارات عددًا من المرات أو حتى الامتلاء.grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
المنطق والشروط
يختار إحدى قيمتين بناءً على شرط.font-size: if(media(width > 600px), 1.25rem, 1rem);
صحيح عندما تتطابق media query، للاستخدام داخل if().padding: if(media(width > 40rem), 2rem, 1rem);
صحيح عندما يدعم المتصفح تصريحًا، للاستخدام داخل if().display: if(supports(color: oklch(0 0 0)), oklch(0 0 0), #333);
صحيح عندما يتطابق المحدد، للاستخدام داخل if().font-weight: if(selector(:hover), 700, 400);
الخصائص المخصصة
قيمة خاصية مخصصة، مع قيمة احتياطية اختيارية.color: var(--accent, #333);
اللون
لون من قنوات الأحمر والأخضر والأزرق (وألفا).color: rgb(59 130 246 / 0.8);
لون من درجة اللون والتشبع والإضاءة.color: hsl(210 80% 50%);
لون في فضاء OKLCH الإدراكي (إضاءة متسقة).color: oklch(0.7 0.15 250);
مزيج من لونين في فضاء لوني معين.color: color-mix(in srgb, red 40%, blue);
الخيار من قائمة يحقق أفضل تباين مع لون أساسي.color: color-contrast(#fff vs #000, #777);
لون من درجة اللون ودرجة البياض ودرجة السواد.color: hwb(210 10% 20%);
لون في فضاء CIELAB (الإضاءة، المحوران a وb).color: lab(52% 40 59);
لون في فضاء CIELAB (الإضاءة، الكروما، درجة اللون).color: lch(52% 49 24);
لون في أي فضاء لوني معرف مسبقًا، بالإحداثيات.color: color(display-p3 1 0.4 0.2);
اللون الأول في الوضع الفاتح، والثاني في الداكن.color: light-dark(#1a1a1a, #f5f5f5);
التدرجات والصور
تدرج على خط مستقيم بين نقاط توقف اللون.background: linear-gradient(90deg, #4b9fff, #2ee6a6);
تدرج يشع للخارج من نقطة.background: radial-gradient(circle, #fff, #000);
تدرج يدور حول نقطة مركزية.background: conic-gradient(red, yellow, red);
يحمّل موردًا خارجيًا: صورة أو خطًا أو SVG.background-image: url(hero.webp);
يختار أفضل صورة لدقة الجهاز.background-image: image-set("hero.webp" 1x, "hero@2x.webp" 2x);
يمزج صورتين بنسبة مئوية معينة.background-image: cross-fade(30%, url(a.webp), url(b.webp));
المرشحات والأشكال
مرشحات بكسل تُستخدم داخل خاصية filter.filter: blur(4px) brightness(1.1);
سلسلة مسار SVG، تُستخدم لرسم قص أو شكل.clip-path: path('M10 10 H 90 V 90 Z');
يقرأ خاصية HTML؛ استخدامه محدود خارج content.content: attr(data-label);
يضبط تباين العنصر.filter: contrast(1.4);
يرسم ظلًّا يتبع الشكل الشفاف للعنصر.filter: drop-shadow(0 4px 8px rgb(0 0 0 / 0.3));
يحوّل العنصر إلى تدرج الرمادي.filter: grayscale(100%);
يعكس ألوان العنصر.filter: invert(1);
يطبّق درجة سيبيا.filter: sepia(0.6);
يدير درجة ألوان العنصر.filter: hue-rotate(90deg);
يضبط شفافية العنصر عبر filter.filter: opacity(0.5);
شكل دائري لـ clip-path أو shape-outside.clip-path: circle(40% at 50% 50%);
شكل بيضاوي لـ clip-path أو shape-outside.clip-path: ellipse(50% 35% at 50% 50%);
شكل مستطيل بزوايا دائرية لـ clip-path.clip-path: inset(10px 10px 10px 10px round 8px);
شكل مضلع من قائمة نقاط.clip-path: polygon(50% 0, 100% 100%, 0 100%);
التحويلات
ينقل العنصر على المحورين X وY.transform: translate(10px, 20px);
يدير العنصر حول مركزه.transform: rotate(45deg);
يغيّر مقياس العنصر على المحورين X وY.transform: scale(1.25);
يميل بالعنصر على المحورين X وY.transform: skew(10deg, 0deg);
تحويل ثنائي الأبعاد واحد من ست قيم مصفوفة.transform: matrix(1, 0, 0.5, 1, 10, 0);
يضبط عمق منظور ثلاثي الأبعاد لأبناء العنصر.transform: perspective(600px) rotateY(20deg);
التحريك والعدّادات
منحنى تخفيف من أربع نقاط تحكم.transition-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
تخفيف يقفز في خطوات متساوية.animation-timing-function: steps(8, end);
القيمة الحالية لعدّاد CSS، كمحتوى.content: counter(chapter);
قيم عدّاد وجميع أسلافه، موصولة بسلسلة نصية.content: counters(item, ".");
من 0 إلى 1 مع تقدّم قيمة بين بداية ونهاية.opacity: progress(scroll(), 0, 50vh);
رقم عشوائي من مدى، ثابت لكل عنصر.rotate: random(from -5deg to 5deg);
جيب زاوية، لتعبيرات calc.translateY(calc(1rem * sin(45deg)));
جيب تمام زاوية، لتعبيرات calc.translateX(calc(1rem * cos(45deg)));