דרכים לכתוב צבע ב-CSS
כל מאפיין שמקבל צבע (color, background-color, border-color, צללים, fill של SVG) מקבל את אותם פורמטים. ארבע הדוגמיות הראשונות הן אותו כחול שנכתב בארבע דרכים, והחמישית היא צבע בשם שמתקרב אליו:
| פורמט | דוגמה | הכי מתאים ל |
|---|---|---|
| בשם | tomato, rebeccapurple | בדיקות מהירות ואבות טיפוס |
| Hex | #2563eb, #25e | העתקה מכלי עיצוב |
rgb() | rgb(37 99 235) | הוספת שקיפות, עבודה עם ערכי RGB |
hsl() | hsl(221 83% 53%) | יצירת גוונים כהים ובהירים של צבע אחד |
oklch() | oklch(55% 0.2 262) | פלטות עם בהירות נתפסת אחידה |
| מילות מפתח | transparent, currentColor | ראו בחלקים שלמטה |
צבעי hex
צבע hex הוא # ואחריו אדום, ירוק וכחול, כל אחד כשתי ספרות הקסדצימליות, מ-00 עד ff. שלוש צורות הן קיצורים או הרחבות:
#rgb: כל ספרה מוכפלת, כך ש-#25eהוא#2255ee.#rrggbbaa: הזוג האחרון הוא אלפא, כך ש-#2563eb80אטום בערך ב-50%.#rgba: הצורה הקצרה עם אלפא.
Hex לא רגיש לאותיות גדולות וקטנות: #2563EB ו-#2563eb הם אותו צבע.
rgb() ו-rgba()
rgb() מקבל אדום, ירוק וכחול מ-0 עד 255 (או מ-0% עד 100%). ערך רביעי אופציונלי אחרי לוכסן הוא האלפא, מ-0 (בלתי נראה) עד 1, או מ-0% עד 100%.
color: rgb(37 99 235); /* modern space syntax */
color: rgb(37 99 235 / 50%); /* half transparent */
color: rgba(37, 99, 235, 0.5); /* older comma syntax, same result */
rgba() ו-rgb() הם היום אותה פונקציה: שתיהן מקבלות את שני התחבירים ואלפא אופציונלי. קוד ישן משתמש ב-rgba() כשהוא צריך שקיפות, וזה ממשיך לעבוד.
hsl(): הפורמט הכי קל לשינוי
hsl() מתאר צבע כמו שאנשים חושבים עליו: גוון מגלגל הצבעים, רוויה ובהירות. שמרו על הגוון ושנו את הבהירות כדי לקבל סקאלה שלמה:
השורה הראשונה שומרת על גוון 221 ורוויה 83%, ומשנה רק את הבהירות. השורה השנייה מסתובבת סביב גלגל הצבעים עם אותן רוויה ובהירות.
שקיפות: אלפא מול opacity
ערוץ אלפא הופך צבע אחד לשקוף. opacity הופך את האלמנט כולו לשקוף, כולל הטקסט והילדים:
transparent היא מילת מפתח לשחור שקוף לגמרי, rgb(0 0 0 / 0). זה הרקע ברירת המחדל של רוב האלמנטים.
currentColor
currentColor שווה ל-color של האלמנט עצמו. כפתור שהגבול, האייקון והטקסט שלו משתמשים כולם בו משנה הכול בהצהרה אחת:
.button {
color: #16a34a;
border: 2px solid currentColor;
}
.button svg { fill: currentColor; }
גבולות כבר משתמשים ב-currentColor כברירת מחדל, ולכן border: 2px solid בלי צבע תואם לטקסט.
נסו כל צבע
הקלידו צבע בכל פורמט. הדפדפן מפענח אותו ומציג מה הוא חישב; צבע לא תקין משאיר את הדוגמית בלי שינוי.
נסו tomato, #0f0, #2563eb80, rgb(0 0 0 / 25%), oklch(70% 0.15 150) ו-color-mix(in srgb, #2563eb, white 50%).
פונקציות צבע חדשות
oklch(L C H): בהירות, כרומה וגוון במרחב שתוכנן כך שבהירות שווה נראית בהירה באותה מידה. לפלטות שנבנו בו יש פחות שלבי ביניים עכורים מאשר בפלטות HSL.color-mix(in srgb, A, B 30%): מערבב שני צבעים. עםwhiteאוblackהוא יוצר גוונים בהירים וכהים מצבע מותג יחיד, והוא עובד עם משתני CSS:color-mix(in srgb, var(--brand), white 80%).
שתיהן עובדות בגרסאות הנוכחיות של Chrome, Firefox ו-Safari. שמרו את צבעי המותג במשתני CSS, כך שהפורמטים שבחרתם יישבו במקום אחד.
טעויות נפוצות
- חסר
#בצבע hex.color: 2563ebלא תקין ונזרק. - שימוש ב-
opacityכדי להפוך רקע לשקוף. הוא מעמעם גם את הטקסט. השתמשו בצבע עם אלפא. - ערבוב מפרידים בתחביר המודרני.
rgb(37 99, 235)לא תקין: השתמשו רק ברווחים או רק בפסיקים. - הנחה שצבע בשם תואם לעיצוב שלכם.
royalblueהוא לא#2563eb. העתיקו את הקוד המדויק. - שיפוט ניגודיות בעין. בדקו צבעי טקסט מול הרקע שלהם עם בודק ניגודיות; 4.5:1 הוא המינימום לטקסט רגיל.
שאלות נפוצות
באילו פורמטים של צבע CSS תומך?
צבעים בשם (red), hex (#ff0000), rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch() ו-color(), וגם מילות המפתח transparent ו-currentColor. Hex, rgb ו-hsl מכסים כמעט את כל העבודה היומיומית.
מה ההבדל בין rgb ל-rgba?
כבר אין הבדל. rgba() הוא כינוי ישן: CSS של היום מאפשר ל-rgb() לקבל ערך אלפא (rgb(37 99 235 / 50%)), ושתי הפונקציות מקבלות את אותם ארגומנטים בכל הדפדפנים הנוכחיים.
איך הופכים צבע לשקוף ב-CSS?
מוסיפים ערוץ אלפא: rgb(0 0 0 / 50%), hsl(221 83% 53% / 0.5), או hex של 8 ספרות כמו #2563eb80. בניגוד ל-opacity, זה מעמעם רק את הצבע הזה, לא את האלמנט כולו.
מה זה HSL ב-CSS?
גוון (hue), רוויה (saturation), בהירות (lightness). הגוון הוא זווית על גלגל הצבעים (0 אדום, 120 ירוק, 240 כחול), הרוויה היא כמה הצבע חי, והבהירות נעה מ-0% שחור עד 100% לבן. כך קל ליצור גוונים בהירים וכהים יותר: משנים רק את המספר האחרון.
מה המשמעות של currentColor?
זה הערך של המאפיין color של האלמנט. שימוש בו לגבול או למילוי של SVG גורם להם לעקוב אוטומטית אחרי צבע הטקסט.