CSSالدالة conic-gradient()
- فائدة الدالة
- تحديد موقع اللون المتدرج
- تحديد نقاط الدمج
- أمثلة و أفكار مفيدة
فائدة الدالة
تستخدم هذه الدالة لعرض ألوان متدرجة بشكل أسطواني مع جعلها تتمدد لتملئ خلفية العنصر.
إفتراضياً، الألوان تبدأ من الوسط و تتمدد حتى تملئ خلفية العنصر و تستطيع تغيير مكانها بالشكل الذي تريده.
في المثال التالي قمنا بإظهار لون متدرج يتكوّن من 4 ألوان هي الأحمر، الأزرق، الأخضر و الأصفر.
تحديد موقع اللون المتدرج
هناك العديد من القيم الجاهزة و الوحدات التي يمكنك استخدامها لتحديد موقع اللون المتدرج و منها:
at left
لعرض تدرج الألوان إبتداءاً من اليسار.at center
لعرض تدرج الألوان إبتداءاً من الوسط.at right
لعرض تدرج الألوان إبتداءاً من اليمين.at top
لعرض تدرج الألوان إبتداءاً من الأعلى.at bottom
لعرض تدرج الألوان إبتداءاً من الأسفل.
يمكنك أيضاً استخدام أكثر من قيمة في ذات الوقت لتحديد اتجاه اللون بشكل مائل كما يلي:
at left bottom
لعرض تدرج الألوان إبتداءاً من اليسار و الأسفل.at left top
لعرض تدرج الألوان إبتداءاً من اليسار و الأعلى.at right bottom
لعرض تدرج الألوان إبتداءاً من اليمين و الأسفل.at right top
لعرض تدرج الألوان إبتداءاً من اليمين و الأعلى.
تستطيع تحديد مكان ابتداء اللون المتدرج بعيداً عن الجهة المذكورة كما يلي:
في المثال التالي قمنا بتحديد إتجاه الألوان المتدرجة بواسطة الكلمات المفتاحية at top
- at left
- at right
- at bottom
- at center
تباعاً.
المثال الأول
.gradient-top { background: conic-gradient(at top, red, blue, green, yellow); } .gradient-right { background: conic-gradient(at right, red, blue, green, yellow); } .gradient-bottom { background: conic-gradient(at bottom, red, blue, green, yellow); } .gradient-left { background: conic-gradient(at left, red, blue, green, yellow); } .gradient-center { background: conic-gradient(at center, red, blue, green, yellow); }
في المثال التالي قمنا بتحديد إتجاه الألوان المتدرجة بواسطة الكلمات المفتاحية at left top
- at right top
- at left bottom
- at right bottom
تباعاً.
المثال الثاني
.gradient-right-top { background: conic-gradient(at right top, red, blue, green, yellow); } .gradient-right-bottom { background: conic-gradient(at right bottom, red, blue, green, yellow); } .gradient-left-top { background: conic-gradient(at left top, red, blue, green, yellow); } .gradient-left-bottom { background: conic-gradient(at left bottom, red, blue, green, yellow); }
في المثال التالي قمنا بتحديد إتجاه الألوان المتدرجة بشكل أدق.
المثال الثالث
.gradient-left-30 { background: conic-gradient(at left 30%, red, blue, green, yellow); } .gradient-right-30 { background: conic-gradient(at right 30%, red, blue, green, yellow); } .gradient-left-30-top-50 { background: conic-gradient(at left 30% top 50%, red, blue, green, yellow); } .gradient-right-20-bottom-40 { background: conic-gradient(at right 20% bottom 40%, red, blue, green, yellow); }
تحديد نقاط الدمج
إفتراضياً، نقطة الدمج بين كل لونين هي في الوسط بينهما لكي يتم توزيع نسب الألوان بالتساوي على مساحة العنصر. في حال أردت إزاحة هذه النقطة لتغيير نسبةً الدمج فإنك تستطيع إضافة رقم بجانب اللون لتحدد أين يتوقف بالنسبة للعنصر.
في المثال التالي تلاعبنا بمكان النقاط الفاصلة بين الألوان حيث أضفنا أربع ألوان على النحو التالي.
- اللون الأحمر هو اللون الأول.
- اللون الأزرق هو اللون الثاني و قد جعلناه يبدأ عند 50%، أي عند منتصف العنصر.
- اللون الأخضر هو اللون الثالث و قد جعلناه يبدأ عند 75%، أي بعد منتصف العنصر.
- اللون الأصفر و الأخير سيظهر بشكل تلقائي على باقي المساحة المتوفرة.
في حال وضعت نسبة دمج غير ممكنة فإن الألوان ستظهر و لكن المتصفح لن يظهرها بشكل إنسيابي بل سيظهر كل لون بشكل حاد.
في المثال التالي قمنا بتحديد من أي زاوية لأي زاوية يبدأ و يتوقف كل لون حتى تظهر الألوان بشكل حاد.
المثال الثاني
.gradient { background: conic-gradient( red 0deg 70deg, blue 70deg 150deg, green 150deg 255deg, yellow 255deg 360deg); }
أمثلة و أفكار مفيدة
يمكنك تحويل العنصر لرسم بياني دائري في حال عرضت الألوان بشكل أسطواني و حددت نسبة كل لون بشكل حاد كما فعلنا في المثال التالي.
المثال الأول
#chart { height: 100px; width: 100px; border-radius: 50%; background: conic-gradient( red 0deg 50deg, blue 50deg 150deg, green 150deg 270deg, yellow 270deg 360deg); }
يمكنك تحويل العنصر للوحة شطرنج في حال جعلت لون الخلفية عبارة عن أربع ألوان (أبيض و أسود على سطر، أبيض و أسود على سطر آخر) هكذا ثم تجعل هذه الألوان تكرر 4 مرات أفقياً و 4 مرات عمودياً حتى تملئ كاملة خلفية العنصر كما فعلنا في المثال التالي.
المثال الثاني
#checkerboard { height: 100px; width: 100px; background: blue; border: 1px solid black; background: conic-gradient( white 25%, black 25% 50%, white 50% 75%, black 75%) top left / 25% 25% repeat; }