מעברי צבע רדיאליים
radial-gradient() ממזג צבעים החוצה מנקודת מרכז. כמו כל מעבר צבע ב-CSS, הוא תמונה, ולכן הוא נכתב ב-background-image (או בקיצור background):
התחביר המלא הוא radial-gradient(shape size at position, color stops). כל מה שלפני הצבעים הוא אופציונלי.
| חלק | ערכים | ברירת מחדל |
|---|---|---|
| צורה | circle, ellipse | ellipse |
| גודל | closest-side, closest-corner, farthest-side, farthest-corner, או אורכים | farthest-corner |
| מיקום | at center, at top left, at 30% 70%, at 20px 40px | at center |
| נקודות עצירה | שני צבעים או יותר, לכל אחד מיקום אופציונלי |
מילת המפתח של הגודל קובעת איפה מגיעים לצבע האחרון: בצלע הקרובה ביותר של התיבה, בפינה הרחוקה ביותר, וכן הלאה. שנו את הערכים כאן וצפו במעבר הצבע מצויר מחדש:
נסו circle farthest-corner at 30% 50%, #f59e0b, #2563eb, ellipse at bottom, white, #16a34a, ו-circle 40px, #f59e0b 99%, transparent (נקודה עם קצה חד).
מעברי צבע ליניאריים
linear-gradient() ממזג לאורך קו ישר. כתבו קודם כיוון או זווית, ואחר כך את הצבעים:
זוויות מתחילות ב-0deg שמצביע למעלה ומסתובבות עם כיוון השעון, כך ש-90deg הוא to right ו-180deg הוא ברירת המחדל to bottom. to right נשאר פיזי גם בעמודים מימין לשמאל; הפכו אותו בעצמכם אם מעבר הצבע צריך לעקוב אחרי כיוון הקריאה.
נקודות עצירה ועצירות חדות
לכל צבע יכול להיות מיקום. בלי מיקומים, הצבעים מפוזרים באופן שווה. כששני צבעים חולקים מיקום, השינוי מיידי, וכך מציירים פסים, דגלים וסרגלי התקדמות:
עצירה יכולה לקבל גם שני מיקומים, #111827 12px 24px, שמצייר פס מלא מ-12px עד 24px.
מעברי צבע קוניים
conic-gradient() מסובב צבעים סביב נקודת מרכז, כמו מחוגי שעון. עם עצירות חדות הוא מצייר תרשים עוגה בלי תמונות ובלי JavaScript:
תרשים שמצויר ב-CSS בלתי נראה לקוראי מסך, אז כתבו את המספרים גם כטקסט.
טקסט עם מעבר צבע
חתכו רקע של מעבר צבע לפי האותיות, והפכו את הטקסט עצמו לשקוף:
.gradient-text {
background: linear-gradient(90deg, #2563eb, #db2777);
-webkit-background-clip: text; /* older browsers need the prefix */
background-clip: text;
color: transparent;
}
זכרו צבע גיבוי רגיל ב-color: אם החיתוך נכשל, הטקסט נעלם. לטקסט עם מעבר צבע יש גם ניגודיות לא אחידה, אז השתמשו בו רק לכותרות גדולות.
מעברי צבע נערמים עם תמונות ומעברי צבע אחרים ברשימת background-image אחת; עמוד תמונת הרקע מסביר שכבות, גודל ומיקום.
טעויות נפוצות
background-color: linear-gradient(...). מעבר צבע הוא תמונה: השתמשו ב-background-imageאו ב-background.- מעלות בכיוון הלא נכון. 0deg מצביע למעלה, לא ימינה.
90degהולך ימינה. - מעבר צבע על אלמנט בלי גובה. שום דבר לא מופיע; תנו לו תוכן או גודל.
- צבעי אמצע עכורים. מיזוג של שני צבעים רוויים והפוכים, כמו אדום וירוק, עובר דרך אפור חום ב-sRGB. הוסיפו עצירת אמצע, או מזגו במרחב צבע אחר:
linear-gradient(in oklch, red, green). - פסים במעברי צבע גדולים ועדינים. צבעים קרובים מאוד על שטח גדול מראים מדרגות; קצת יותר ניגודיות בין העצירות עוזרת.
שאלות נפוצות
איך יוצרים radial gradient ב-CSS?
משתמשים ב-background-image: radial-gradient(#93c5fd, #1e3a8a);. הוסיפו צורה ומיקום לפני הצבעים, למשל radial-gradient(circle at top left, #93c5fd, #1e3a8a).
מה ההבדל בין circle ל-ellipse ב-radial-gradient?
ellipse (ברירת המחדל) נמתח לפי הפרופורציות של התיבה, כך שבתיבה רחבה הוא רחב. circle שומר על מעבר הצבע עגול, לא משנה מה צורת התיבה.
איך קובעים את הכיוון של linear gradient?
כותבים קודם כיוון או זווית: linear-gradient(to right, red, blue) או linear-gradient(45deg, red, blue). ברירת המחדל היא to bottom (180deg); 0deg מצביע למעלה, והזוויות מסתובבות עם כיוון השעון.
איך יוצרים פסים חדים במקום מעבר רך?
נותנים לשני צבעים את אותה נקודת עצירה: linear-gradient(90deg, #2563eb 50%, #f59e0b 50%) מחליף צבע באמצע בלי מעבר. repeating-linear-gradient חוזר על דפוס של עצירות כאלה.
אפשר להשתמש במעבר צבע בתור background-color?
לא. מעבר צבע הוא תמונה, ולכן הוא נכתב ב-background-image או בקיצור background. background-color: linear-gradient(...) לא תקין ונזרק.