Menu

מחולל CSS Box Shadow

לעצב box-shadow רב-שכבתי ב-CSS עם תצוגה מקדימה חיה ולהעתיק CSS מוכן לפרודקשן.

מאת Nethanel Bar, Co-founder & CEO

עודכן לאחרונה

מוכנים ללמוד תכנות באמת?

ב-Coddy לומדים דרך כתיבת קוד אמיתי בדפדפן: שיעורים אינטראקטיביים, משוב מיידי ועזרה מ-AI כשנתקעים.

מה זה מחולל box-shadow ל-CSS?

box-shadow הוא מאפיין ה-CSS שמוסיף צללים נופלים, זוהר ושקעים פנימיים לכל אלמנט. זה המנוף הגדול ביותר לתת לעיצוב שטוח תחושת *הגבהה*: כרטיסים מתרוממים מהדף, חלונות מודאליים מרחפים מעל התוכן, כפתורים מרגישים לחיצים.

הטריק הוא שצל *טוב* הוא כמעט אף פעם לא שכבה אחת. צללים בעולם האמיתי רכים יותר ויש להם החזר אור סביבתי: רוב מערכות העיצוב (Material, iOS, Tailwind) עורמות 2 עד 3 הצהרות box-shadow עם היסטים ואטימויות שונים. לכתוב אותן ביד זו עבודה פרכנית; מחולל מאפשר לכוונן כל שכבה חזותית ולראות את התוצאה המשולבת בזמן אמת.

המחולל של Coddy תומך במספר בלתי מוגבל של שכבות, בצללים *חיצוניים* ו*פנימיים*, בצבע ובאטימות לכל שכבה, ובתבניות מוכנות לדפוסים הנפוצים ביותר: כרטיסים עדינים, צללים חדים, זוהר מותג, שקעים פנימיים ומשטחים נאומורפיים. העתיקו את ה-CSS והדביקו אותו ישר בגיליון הסגנונות: בלי העלאה, בלי חשבון, בלי סימן מים.

מה חשוב לדעת על box-shadow ב-CSS

  • התחביר הוא box-shadow: [inset] <x> <y> <blur> <spread> <color>. inset שם את הצל *בתוך* האלמנט; בלעדיו הצל נופל מחוצה לו.
  • *טשטוש* (blur) מרכך את הקצה: ערכים גדולים יותר יוצרים צל מפוזר יותר. *התפשטות* (spread) מגדילה או מקטינה את הצל לפני שהטשטוש מוחל (ערכים שליליים מכווצים אותו, שימושי להרמות פנימיות רכות).
  • כמה צללים מופרדים בפסיקים ונערמים מאחור לפנים לפי סדר הכתיבה: הראשון ברשימה יושב *מתחת* לאלה שאחריו בתוצאה הסופית.
  • השתמשו ב-rgba() (או ב-hsla()) לצבע כדי שתוכלו לכוונן את האטימות לכל שכבה. שחור טהור באטימות נמוכה נקרא כצל אפור רך; שחור טהור באטימות מלאה נקרא כגזיר קשה.
  • box-shadow מורכב על ידי ה-GPU והוא אחד השדרוגים החזותיים הזולים ביותר שאפשר להחיל. הוא לא משפיע על הפריסה: האלמנט שומר על הגודל והמיקום המקוריים שלו.

איך לעצב box-shadow

  1. התחילו מתבנית

    בחרו תבנית שמתאימה לתחושה שאתם רוצים: כרטיס עדין, הגבהה רכה, צל חד, זוהר מותג, שקע פנימי או נאומורפי. התבניות הן נקודות התחלה טובות שאפשר לכוונן.

  2. כווננו את השכבה הפעילה

    גררו את המחוונים של היסט X/Y, טשטוש, התפשטות, צבע ואטימות. התצוגה המקדימה מתעדכנת בזמן אמת. אטימות נמוכה וטשטוש גבוה נקראים כצללים *רכים* יותר.

  3. ערמו שכבות נוספות

    לחצו על *הוספת שכבה* כדי לערום צל שני. עומק מציאותי משתמש כמעט תמיד בשתי שכבות: אחת קצרה והדוקה (צל המגע) ואחת ארוכה ורכה (הצל הסביבתי).

  4. הפעילו inset לשקעים פנימיים

    הפעלת *Inset* מציירת את הצל בתוך האלמנט במקום סביבו. שלבו עם צל חיצוני עדין לאפקט של כפתור לחוץ.

  5. העתיקו את ה-CSS

    כשהתצוגה המקדימה תואמת לעיצוב שלכם, לחצו על *העתקת CSS*. הדביקו את התוצאה בגיליון הסגנונות: הכלל שנוצר כולל את כל השכבות הפעילות.

מדריך מהיר ל-box-shadow

כל ערך ב-box-shadow: x y blur spread color והתפקיד שלו.

ערךהשפעהטווח אופייני
היסט Xמזיז את הצל אופקית; חיובי = ימינה−40px עד 40px
היסט Yמזיז את הצל אנכית; חיובי = למטה0px עד 40px לאור טבעי
טשטושמרכך את קצה הצל0px עד 80px
התפשטותמגדיל או מקטין לפני שהטשטוש מוחל−30px עד 30px
צבעכל צבע CSS, אבל rgba() מאפשר לכוונן אטימות לכל שכבהrgba(0,0,0,0.05–0.3) לצללים טבעיים
insetמצייר את הצל בתוך האלמנט-
שכבות מרובותמופרדות בפסיקים; נערמות מאחור לפנים2 עד 3 שכבות נותנות עומק מציאותי

דוגמאות box-shadow לנסות

כרטיס עדין עם שכבת מגע ושכבה סביבתית

כרטיס עדין בשתי שכבות
box-shadow:    0 1px 2px rgba(0, 0, 0, 0.06),    0 4px 12px rgba(0, 0, 0, 0.08);

צל הדוק עם טשטוש נמוך מגדיר את נקודת המגע, וצל ארוך ורך יותר נותן רושם של אור סביבתי. זה הדפוס שרוב מערכות העיצוב המודרניות משתמשות בו.

זוהר מותג

זוהר צבעוני רך
box-shadow: 0 0 24px 4px rgba(108, 140, 255, 0.45);

קבעו את X ו-Y לאפס כדי שהזוהר יקרין באופן שווה. התפשטות חיובית קטנה מעבה את הזוהר לפני שהטשטוש מרכך אותו. השתמשו בזה במשורה: זוהר צבעוני מושך הרבה תשומת לב.

שקע לחוץ

צל פנימי למראה לחוץ
box-shadow:    inset 0 2px 6px rgba(0, 0, 0, 0.18),    inset 0 0 0 1px rgba(0, 0, 0, 0.06);

צללים פנימיים מצוירים בתוך האלמנט. צל רך אחד נותן רושם של שקע; קו פנימי דק מוסיף גבול פנימי עדין להגדרה.

טעויות נפוצות ב-box-shadow

  • להשתמש בשחור טהור באטימות גבוהה. זה נקרא כגזיר קשה, לא כצל. הורידו את האטימות ל-0.06 עד 0.18 להגבהה שנראית טבעית.
  • לשכוח את היסט ה-Y. צל עם X=0 ו-Y=0 יושב *מאחורי* האלמנט באופן שווה: מתאים לזוהר, לא נכון לכרטיס שאמור להיראות כמרחף.
  • לערום יותר מדי שכבות. שלוש מספיקות בדרך כלל; עשר יוצרות בלגן עכור ומטושטש ועלות ציור מורגשת.
  • להשתמש ב-filter: drop-shadow() וב-box-shadow לסירוגין כאילו הם אותו דבר. drop-shadow() עוקב אחרי מסכת השקיפות של SVG או תמונה, שימושי לצורות לא סדירות, אבל box-shadow מהיר ונקי יותר לאלמנטים מלבניים.
  • לשכוח ש-box-shadow מתעלם מ-overflow: hidden על האלמנט עצמו. אם להורה יש overflow: hidden, הצל נחתך.

שאלות נפוצות על CSS box-shadow

מה המשמעות של כל ערך ב-box-shadow?
box-shadow: x y blur spread color. שני הראשונים הם היסטים; *blur* מרכך את הקצה; *spread* משנה את הגודל לפני הטשטוש; הצבע הוא כל צבע CSS (השתמשו ב-rgba() לשליטה באטימות). הוסיפו inset בהתחלה כדי לשים את הצל בתוך האלמנט.
איך עורמים כמה צללים בכלל אחד?
הפרידו כל צל בפסיק. הם מצוירים מאחור לפנים לפי סדר הכתיבה, כך שהצל הראשון שהוצהר נמצא בסוף *מתחת* לאלה שאחריו. השתמשו בזה כדי לשלב צל מגע הדוק עם צל סביבתי רך.
מה ההבדל בין box-shadow לבין filter: drop-shadow()?
box-shadow עוקב אחרי המלבן התוחם של האלמנט ומהיר לציור. drop-shadow() עוקב אחרי ערוץ השקיפות של מה שהוא מוחל עליו (מעולה ל-SVG ול-PNG שקופים) אבל עולה יותר ברינדור. השתמשו ב-box-shadow לכרטיסים ולכפתורים; השתמשו ב-drop-shadow() לצורות לא סדירות.
למה הצל שלי נראה מפוקסל?
או שהטשטוש קטן מאוד (טשטוש של 0px הוא צל חד מעצם ההגדרה) או שהאלמנט עובר שינוי קנה מידה. הגדילו את ערך הטשטוש או חפשו transform: scale() איפשהו במעלה העץ.
האם box-shadow משפיע על הפריסה?
לא. צללים מצוירים מחוץ לקופסה של האלמנט אבל לא דוחפים תוכן שכן. אם אתם צריכים שההורה ישאיר מקום לצל, תנו להורה padding או overflow: visible.

למידע נוסף

כלי פיתוח נוספים

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל