ToolDeck

مولّد تدرجات CSS

أنشئ تدرجات CSS خطية ودائرية بصريًا وانسخ كود CSS

جرب مثالاً
النوع
الزاوية135°

نقاط الألوان

0%
100%

مخرجات CSS

background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);

ما هو تدرج CSS؟

مولّد تدرجات CSS هو أداة بصرية تساعدك على بناء انتقالات لونية سلسة دون الحاجة إلى كتابة صياغة التدرج يدويًا. في CSS، التدرج هو انتقال سلس بين لونين أو أكثر، يُصيَّر مباشرةً بواسطة المتصفح دون أي ملف صورة. تُعرِّف مواصفة CSS Image Module Level 4 دوال التدرج باعتبارها نوعًا من قيم الصور، مما يعني أنها تُقبَل في أي مكان يصح فيه استخدام قيم background-image أو list-style-image أو border-image. ولأن المتصفح يُنقِّط التدرجات أثناء التصيير، فإنها تتوسع لأي دقة دون إنتاج أي تشويه ضبابي على الشاشات عالية الكثافة. يوفر استخدام مولّد تدرجات CSS الوقت ويُقلل من التخمين — فأنت تضبط الألوان والمواضع بصريًا، ثم تنسخ قاعدة CSS الجاهزة.

يدعم CSS ثلاثة أشكال رئيسية للتدرج: الخطي (على طول خط مستقيم)، والدائري (خارجًا من نقطة مركزية)، والمخروطي (دورانًا حول نقطة مركزية). يقبل كل شكل قائمة من نقاط الألوان، حيث تحدد اللون وموضعه اختياريًا (نسبة مئوية أو طول). يتولى المتصفح تدرج الألوان بين النقاط باستخدام فضاء الألوان sRGB افتراضيًا، وإن كان CSS Color Level 4 يتيح تحديد فضاءات ألوان أخرى كـ oklch وlab للحصول على انتقالات أكثر سلاسةً إدراكيًا.

تحلّ التدرجات محل الخلفيات المعتمدة على الصور لمعظم الأغراض الزخرفية على الويب. قاعدة CSS واحدة تُنتج ما كان يتطلب سابقًا تصديرًا من Photoshop وطلب HTTP. وهي مستقلة عن الدقة، ولا تتطلب أي حيّز نطاق شبكي إضافيًا عدا ملف CSS نفسه، ويمكن تحريكها أو إخضاعها للانتقالات باستخدام خصائص CSS القياسية. ظلت صياغة التدرج ثابتةً عبر جميع المتصفحات الرئيسية منذ عام 2013، وتعمل الصياغة الخالية من بادئات المورِّد في Chrome وFirefox وSafari وEdge دون الحاجة إلى بدائل.

لماذا تستخدم مولّد تدرجات CSS هذا؟

كتابة صياغة التدرج يدويًا تعني التخمين في مواضع النقاط، والتحقق من قيم الزوايا، وتحديث الصفحة مرارًا لرؤية النتيجة. أداة البناء البصرية تتيح لك رؤية التدرج أثناء بنائه، وضبط النقاط بالسحب، ونسخ CSS النهائي عند اكتمال المظهر.

معاينة بصرية مباشرة
شاهد التدرج يتجدَّد فوريًا مع كل تغيير في الألوان والمواضع والزوايا. لا حاجة للتبديل بين المحرر والمتصفح.
🔒
معالجة محلية وآمنة
يتم كل التصيير داخل متصفحك. لا تُرسَل بيانات الألوان أو إعدادات التدرج إلى أي خادم.
🎨
أنواع تدرج متعددة
أنشئ تدرجات خطية ودائرية مع تحكم كامل في الاتجاه والزاوية ومواضع نقاط الألوان. انسخ CSS بنقرة واحدة.
📋
لا يلزم تسجيل
افتح الصفحة وابدأ البناء فورًا. لا تسجيل، لا بريد إلكتروني، لا قيود على الاستخدام. يعمل بلا إنترنت بعد التحميل.

حالات استخدام مولّد تدرجات CSS

تطوير الواجهات الأمامية
أنشئ خلفيات قسم البطل وطبقات البطاقات وحالات تمرير الأزرار. استعرض التدرج بالأبعاد المستهدفة، ثم الصق CSS مباشرةً في ورقة الأنماط أو إعداد Tailwind.
تصميم قوالب البريد الإلكتروني
تدعم بعض عملاء البريد الإلكتروني تدرجات CSS في الأنماط المضمّنة. أنشئ كود التدرج الدقيق وأدرجه على العنصر، مع لون احتياطي صلب لعملاء البريد الذين لا يُصيّرون التدرجات.
النماذج الأولية للتصميم
عند التكرار على مخططات الألوان في المتصفح بدلًا من Figma، أنشئ خلفيات التدرج بسرعة. قارن خيارات متعددة جنبًا إلى جنب دون تصدير الأصول.
تنسيق لوحات تحكم DevOps
تستخدم لوحات تحكم الحالة وواجهات المراقبة تدرجات الألوان لتمثيل نطاقات الخطورة (من الأخضر إلى الأحمر) أو كثافة البيانات. أنشئ قيم التدرج وطبّقها على خلفيات المخططات أو أشرطة الحالة.
تصوُّر البيانات
تقبل مكتبات الرسم البياني كـ D3.js وRecharts تعريفات تدرج CSS لتعبئة المساحات وخرائط الحرارة. أنشئ التدرج بصريًا، ثم استخرج ألوان النقاط لدالة التدريج الخاصة بك.
تعلّم CSS
يستطيع الطلاب الدارسون لـ CSS تجربة صياغة التدرج، ومشاهدة تأثير تغيير الزاوية على الاتجاه، وفهم تموضع نقاط الألوان. كود CSS المُنشأ مرجع عملي قابل للتطبيق.

مرجع أنواع تدرجات CSS

يُعرِّف CSS خمس دوال للتدرج. الأنواع الثلاثة الرئيسية (linear وradial وconic) لكل منها متغيّر متكرر يُبلّط النمط. تُفيد repeating-linear-gradient() وrepeating-radial-gradient() في إنشاء خلفيات مخططة وحلقات متحدة المركز. تقبل جميع دوال التدرج نقاط ألوان بأي تنسيق لوني لـ CSS: HEX وRGB وHSL والألوان المسماة أو oklch. دعم المتصفح للدوال الخمس فعليًا شاملٌ عبر Chrome وFirefox وSafari وEdge، ولا تلزم بادئات المورِّد.

الدالةمثال على الصياغةالاتجاهالاستخدام الشائع
linear-gradient()to right, #f00, #00fStraight lineBackgrounds, hero sections, progress bars
radial-gradient()circle, #f00, #00fOutward from centerSpotlight effects, buttons, badges
conic-gradient()from 0deg, #f00, #00fSweep around centerPie charts, color wheels, spinners
repeating-linearto right, #f00 0 10px, #00f 10px 20pxTiled lineStripes, progress indicators, decorative borders
repeating-radialcircle, #f00 0 10px, #00f 10px 20pxTiled circleConcentric ring patterns, retro textures

مقارنة: التدرج الخطي مقابل الدائري مقابل المخروطي

يُعيِّن كل نوع من أنواع التدرج الألوانَ على الأشكال الهندسية بطريقة مختلفة. يعتمد اختيار النوع المناسب على التأثير البصري المطلوب لا على فارق جودة بينها. لمعظم خلفيات الصفحات وفواصل الأقسام، يُعدّ التدرج الخطي الخيار الأمثل — فهو الأبسط في الفهم والأكثر قدرةً على التنبؤ عبر العناصر ذات الأحجام المتباينة. يُفضَّل الاحتفاظ بالتدرجين الدائري والمخروطي للتأثيرات البصرية المحددة التي تكون فيها الهندسة الدائرية أو الدورانية ذات معنى لا مجرد زخرفة.

linear-gradient()
تنتقل الألوان على طول خط مستقيم يُحدده زاوية (0deg = من الأسفل إلى الأعلى، 90deg = من اليسار إلى اليمين) أو كلمة مفتاحية كـ 'to right'. النوع الأكثر شيوعًا، يُستخدم للخلفيات والطبقات ومؤشرات التقدم. يدعم نقاط ألوان متعددة في مواضع اعتباطية.
radial-gradient()
تشعّ الألوان خارجًا من نقطة مركزية في دائرة أو قطع ناقص. تحكّم في الشكل والحجم وموضع المركز عبر الصياغة. مفيد لتأثيرات الإضاءة البؤرية والإظلام الحواشي وعناصر واجهة المستخدم الدائرية كالشارات وحلقات الصور الرمزية.
conic-gradient()
تلتف الألوان حول نقطة مركزية كعقارب الساعة. يمكن ضبط زاوية البداية بـ 'from Xdeg'. مفيد لشرائح مخطط الدائرة وعجلات الألوان ومؤشرات التحميل الدورانية. يتطلب نقطتين على الأقل؛ وتكرار اللون الأول في النهاية يُنشئ حلقة سلسة.

أمثلة برمجية

أمثلة على توليد تدرجات CSS وتطبيقها برمجيًا في JavaScript وPython وCSS وGo. كل مثال ينتج سلاسل تدرج CSS صالحة يمكنك استخدامها مباشرةً في أوراق الأنماط أو الأنماط المضمّنة.

JavaScript
// Generate a CSS linear-gradient string from an array of stops
function buildGradient(angle, stops) {
  const parts = stops.map(s => `${s.color} ${s.position}%`)
  return `linear-gradient(${angle}deg, ${parts.join(', ')})`
}

const stops = [
  { color: '#6366f1', position: 0 },
  { color: '#ec4899', position: 50 },
  { color: '#f59e0b', position: 100 },
]
buildGradient(90, stops)
// -> "linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

// Apply to an element
document.querySelector('.hero').style.background = buildGradient(135, stops)
Python
# Generate a CSS gradient string for use in templates or SVGs
def build_gradient(angle: int, stops: list[tuple[str, int]]) -> str:
    parts = [f"{color} {pos}%" for color, pos in stops]
    return f"linear-gradient({angle}deg, {', '.join(parts)})"

stops = [("#6366f1", 0), ("#ec4899", 50), ("#f59e0b", 100)]
print(build_gradient(135, stops))
# -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

# Interpolate N colors between two endpoints
def interpolate_hex(c1: str, c2: str, steps: int) -> list[str]:
    r1, g1, b1 = int(c1[1:3], 16), int(c1[3:5], 16), int(c1[5:7], 16)
    r2, g2, b2 = int(c2[1:3], 16), int(c2[3:5], 16), int(c2[5:7], 16)
    return [
        f"#{int(r1+(r2-r1)*i/(steps-1)):02x}"
        f"{int(g1+(g2-g1)*i/(steps-1)):02x}"
        f"{int(b1+(b2-b1)*i/(steps-1)):02x}"
        for i in range(steps)
    ]

interpolate_hex("#6366f1", "#f59e0b", 4)
# -> ['#6366f1', '#9a7399', '#d18042', '#f59e0b']
CSS
/* Linear gradient — left to right */
.hero {
  background: linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%);
}

/* Radial gradient — circular spotlight */
.badge {
  background: radial-gradient(circle at 30% 30%, #6366f1, #312e81);
}

/* Conic gradient — color wheel */
.wheel {
  background: conic-gradient(from 0deg, #ef4444, #f59e0b, #22c55e, #3b82f6, #8b5cf6, #ef4444);
  border-radius: 50%;
}

/* Multi-stop with transparency */
.overlay {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.6) 60%,
    rgba(0, 0, 0, 0.9) 100%
  );
}

/* Repeating stripes */
.stripes {
  background: repeating-linear-gradient(
    45deg,
    #6366f1 0 10px,
    transparent 10px 20px
  );
}
Go
package main

import "fmt"

// Stop represents one color stop in a gradient.
type Stop struct {
	Color    string
	Position int // percent 0-100
}

func buildGradient(angle int, stops []Stop) string {
	result := fmt.Sprintf("linear-gradient(%ddeg", angle)
	for _, s := range stops {
		result += fmt.Sprintf(", %s %d%%", s.Color, s.Position)
	}
	return result + ")"
}

func main() {
	stops := []Stop{
		{"#6366f1", 0},
		{"#ec4899", 50},
		{"#f59e0b", 100},
	}
	fmt.Println(buildGradient(135, stops))
	// -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"
}

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

ما الفرق بين linear-gradient وradial-gradient؟
تنتقل الألوان في linear-gradient() على طول خط مستقيم بزاوية محددة، في حين تُشعّ radial-gradient() الألوانَ خارجًا من نقطة مركزية في دائرة أو قطع ناقص. التدرجات الخطية هي الخيار القياسي لخلفيات الصفحات والطبقات. التدرجات الدائرية أنسب لتأثيرات الإضاءة البؤرية وعناصر واجهة المستخدم الدائرية.
كيف أضبط اتجاه التدرج الخطي؟
استخدم زاوية بالدرجات (مثل 90deg من اليسار إلى اليمين، 180deg من الأعلى إلى الأسفل) أو كلمة مفتاحية (to right، to bottom left). تدور الزاوية في اتجاه عقارب الساعة من الأسفل: 0deg تشير إلى الأعلى، و90deg تشير إلى اليمين. يمكنك أيضًا استخدام 'to top right' لاستهداف زاوية، ويحسب المتصفح الزاوية الدقيقة بناءً على نسبة أبعاد العنصر.
هل يمكن تحريك تدرج CSS؟
لا تستطيع المتصفحات التدرج بين قيمتَي تدرج مباشرةً عبر انتقالات CSS. الحلول البديلة الشائعة هي: تحريك background-position لتدرج مكبَّر الحجم، أو استخدام @property لتحريك قيم نقاط الألوان المنفردة كخصائص مخصصة، أو التلاشي المتقاطع عبر خاصية opacity على عنصر زائف. يُعدّ أسلوب @property (المدعوم في Chrome وEdge منذ 2020، وFirefox منذ 2024) الحل الأنظف.
كم يمكن أن يحتوي التدرج من نقاط ألوان؟
لا تحدد مواصفة CSS حدًا أقصى. تتعامل المتصفحات مع التدرجات التي تحتوي على عشرات النقاط دون مشكلات في الأداء. في الممارسة العملية، تستخدم معظم التدرجات من 2 إلى 5 نقاط. يمكن لكل نقطة تحديد لون وموضع اختياري كنسبة مئوية أو قيمة طول. يمكنك أيضًا تعريف موضعَين لكل نقطة لإنشاء حزمة لونية صلبة بلا انتقال.
ما الفرق بين التدرج والصورة؟
في CSS، التدرج صورة محسوبة. يشترك في نفس خط تصيير صور url()، ويمكن استخدامه في أي مكان تصح فيه قيمة الصورة: background-image وlist-style-image وborder-image وmask-image. الفارق هو أن التدرج يُنشئه المتصفح أثناء التصيير، ويتوسع لأي حجم دون فقدان الجودة، ولا يضيف أي بايت إلى حجم صفحتك إذ لا يُحمَّل أي ملف.
كيف أنشئ تدرجًا بنقطة لون صلبة بلا انتقال؟
ضع نقطتَي لون في الموضع ذاته. مثلًا، linear-gradient(to right, #6366f1 50%, #ec4899 50%) يُنشئ انقسامًا حادًا بلا مزج بين اللونين. يمكنك أيضًا استخدام صياغة الموضعَين: linear-gradient(to right, #6366f1 0% 50%, #ec4899 50% 100%) لتعريف كل حزمة صراحةً.
هل دالة conic-gradient مدعومة في جميع المتصفحات؟
تُدعم conic-gradient() في Chrome 69+ وFirefox 83+ وSafari 12.1+ وEdge 79+. اعتبارًا من عام 2024، يتجاوز دعم المتصفح العالمي 95% وفق بيانات Can I Use. لا تلزم أي بادئة مورِّد. للنسبة الصغيرة من المستخدمين على متصفحات قديمة، اضبط background-color صلبًا كبديل قبل تعريف التدرج.