3 שלב הבסיס

תורת הצבע למי שלא מעצב — מפלטה גנרית לזהות ויזואלית

בפרק הזה תלמדו לבנות פלטת צבעים מקצועית שלמה (primary, secondary, accent, 5 neutrals, 4 semantic) — מאפס, בלי רקע בעיצוב. תתרגלו בגלגל הצבעים, תכירו שלושה כלים שעושים את העבודה הקשה בשבילכם (Coolors, Realtime Colors, WebAIM Contrast Checker), תמירו את הפלטה ל-CSS custom properties (design tokens) כך ש-AI יוכל להשתמש בה בעקביות, ותוסיפו dark mode שעובד בהחלפת משתנים בלבד. בסוף יהיה לכם פלטה מלאה לפרויקט, קובץ tokens מוכן להדבקה, ופרומפט טמפלייט שמזין את הצבעים ל-AI בלי שהוא יחזור לברירות המחדל הגנריות.

מה יהיה לך בסוף הפרק הזה
מה תוכלו לעשות בסוף הפרק הזה
דרישות קדם
הפרויקט שלך

לאורך הקורס אתם בונים את היכולת לקחת אתר גנרי שAI בנה ולהפוך אותו לאתר שנראה כמו עבודת סטודיו — ה-capstone בפרק 13. בפרק הקודם (פרק 2) קיבלתם את האנטומיה של אתר פרימיום — המספרים המדויקים: 8px grid, letter-spacing -0.02em, hero H1 44-56px, ו-4 ה-archetypes. בפרק הזה אתם בונים את הציר הראשון של הזהות הויזואלית: הצבעים. פלטה היא הבסיס שעליו יושבים טיפוגרפיה, layout, ואנימציות. בלי פלטה מוגדרת — AI ממשיך לבחור defaults גנריים גם אם מפרטים כל דבר אחר. בפרק הבא (פרק 4) תלמדו את הציר השני של הזהות — טיפוגרפיה, זוגות פונטים ו-typographic hierarchy. ובפרק 9 (Glassmorphism ו-Aurora UI) תחזרו לפלטה שבניתם כאן — כל האפקטים הויזואליים מתבססים על הצבעים שהגדרתם כאן, כולל אלפא-channels ל-backdrop-filter.

מילון מונחים — 15 מושגים מרכזיים בפרק
מונח (English)תרגוםהגדרה בשורה אחת
Color Paletteפלטת צבעיםקבוצת הצבעים המוגדרת לפרויקט — בדרך כלל 8-12 צבעים בסך הכל
Primary Colorצבע ראשיהצבע הדומיננטי של המותג — מה שאנשים זוכרים כ"הצבע של האתר"
Secondary Colorצבע משניצבע תומך שיוצר עומק ומסגר את ה-primary, בלי להתחרות בו
Accent Colorצבע הדגשהצבע ניגודי חזק ל-CTA (Call-To-Action) — צריך לעצור את העין
Neutral Paletteפלטת ניטרלים5 גוונים של אפור/בז' — רקעים, גבולות, טקסט משני
Semantic Colorsצבעים סמנטייםצבעים בעלי משמעות קבועה: success (ירוק), warning (צהוב), error (אדום), info (כחול)
Color Harmonyהרמוניה צבעוניתיחס מתמטי בין צבעים בגלגל שיוצר שילוב מרגיש "נכון"
Complementary Colorsצבעים משלימיםצבעים מול-מול בגלגל (180°) — קונטרסט מקסימלי, יש להשתמש במינונים
Analogous Colorsצבעים סמוכים3 צבעים זה לצד זה בגלגל (30° בינהם) — הרמוני ורגוע
Contrast Ratioיחס ניגודמספר בין 1:1 ל-21:1 שמודד כמה טקסט קריא על רקע נתון
WCAGתקני נגישותWeb Content Accessibility Guidelines — תקנים של W3C לקריאות; AA = מינימום, AAA = גבוה
CSS Custom Propertiesמשתני CSSמשתנים בסגנון --color-primary: #... שאפשר להשתמש בהם בכל מקום ב-CSS
Design Tokensאסימוני עיצובשמות מופשטים להחלטות עיצוביות (color, spacing, typography) — שפה משותפת למעצב, מפתח ו-AI
Dark Modeמצב כההגרסה חלופית של האתר עם רקעים כהים וטקסט בהיר — מופעל ידנית או דרך העדפת מערכת
prefers-color-schemeהעדפת סכמת צבעCSS media query שמזהה אם המשתמש העדיף dark/light ב-OS
מתחיל 8 דקות חינם מושג

3.1 למה צבע הוא הדבר הראשון שמפריד גנרי ממקצועי

תנסו את הניסוי הבא: פתחו 10 אתרים של סטארטאפים ישראליים ב-10 טאבים. הסתכלו עליהם במבט חטוף של 2 שניות לכל אחד. מה תראו? כנראה — ים של כחול-לבן עם אפור. אולי עם מבצע קטן של צהוב. זו לא טעות של האתרים הספציפיים — זה דפוס של השוק כולו. וזה בדיוק מה שהופך אתר ל"נראה כמו כל שאר האתרים".

כשאנשים רואים אתר, הצבע הוא הדבר הראשון שהמוח מעבד — לפני הפונט, לפני ה-layout, לפני ה-copy. זה קורה תוך 90 מילישניות, לפני שהעין הספיקה לקרוא את הלוגו. צבע הוא ה-signature הויזואלי של המותג, ואם ה-signature הזה הוא "blue-600 ו-Tailwind gray-100" — המותג שלכם משדר "עוד SaaS אחד", גם אם המוצר מדהים.

התובנה המרכזית של הפרק

עיצוב מקצועי לא מתחיל ב"איזה צבע יפה לי". הוא מתחיל בפלטה מוגדרת מראש — 8-12 ערכים צבעוניים ספציפיים, כל אחד עם תפקיד מוגדר, כולם עם contrast ratio מתועד. ברגע שהפלטה קיימת כ-CSS custom properties, AI לא יכול להמציא צבעים חדשים — הוא חייב לעבוד בתוך המערכת. זה המהלך היחיד שמעביר אתר מ"רנדומלי" ל"נראה שמישהו חשב על זה".

מה AI עושה בלי פלטה מוגדרת

כשאתם מבקשים מ-AI "build me a SaaS landing page" בלי להגדיר פלטה, מה שקורה הוא: ה-AI בוחר את הערך הסטטיסטי הסביר ביותר — blue-600 כ-primary, gray-100 כרקע, gray-900 לטקסט. אלה ה-Tailwind defaults, וכולם ראו אותם במיליון אתרים אחרים. התוצאה: פלטה גנרית שמשמשת כ-tell של "AI בנה את זה".

אפילו אם תגדירו רק צבע ראשי ("use emerald green") — AI עדיין יבחר secondary, neutrals ו-accents מה-defaults שלו, והתוצאה תהיה פלטה "רבע מוגדרת" שנראית לא עקבית. חייבים להגדיר את כל 5 התפקידים מראש, ולא רק את הצבע הראשי.

למה הפרק הזה הוא ה-ROI הכי גבוה בשלב ה-foundation

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

  1. צבעים גלובליים — כל decision צבעוני משפיע על כל אחד מאות האלמנטים באתר. שינוי primary = שינוי של hundreds of buttons, borders, icons, links.
  2. design tokens הם compounding — פעם שמגדירים את הפלטה כ-CSS custom properties, כל אתר שתבנו אחר-כך עם AI מתחיל עם בסיס עקבי. זה חוסך שעות בכל פרויקט.
  3. Dark mode "חינם" — אם הפלטה שלכם עשויה נכון, dark mode מתווסף ב-5 שורות CSS. אם לא — זה שכתוב של כל האתר.
  4. Accessibility compliance — contrast ratio נכון מראש חוסך audit של שעות ותיקונים בדקה 90 של הפרויקט.
עשו עכשיו 3 דקות

פתחו את 5 האתרים הישראליים שאתם מבקרים בהם הכי הרבה (חדשות, בנק, SaaS, e-commerce, portal של העבודה). לכל אחד רשמו 3 שדות: (א) הצבע הראשי, (ב) רקע דומיננטי, (ג) צבע CTA. כמה מהם נמצאים בקבוצת "כחול/לבן/אפור" גרידא? זו הבסיסלינה שאנחנו רוצים לחרוג ממנה.

עשו עכשיו 2 דקות

פתחו אתר שאתם אוהבים ויזואלית (Stripe, Linear, Vercel, Raycast, Notion, Figma, Arc Browser). לחצו F12, בחרו כפתור primary, הסתכלו ב-Computed tab על background-color. רשמו את ה-hex. עכשיו בחרו טקסט רגיל ורשמו את צבעו. אלה 2 מתוך 8-12 הצבעים של הפלטה שלהם — כבר התחלתם reverse-engineering.

טעות נפוצה: לבחור צבעים שנראים טוב בנפרד אבל לא עובדים ביחד

מה קורה: Vibe Coder אוסף 5 צבעים מ-Pinterest בלי מערכת — כל אחד מהם יפה לבד, אבל ביחד יוצרים כאוס.

למה זה מפתה: קל להתאהב בצבע יחיד ולהוסיף עוד אחד ועוד אחד מבלי לבדוק אם הם עובדים. ה"יופי" של צבע בודד לא חוזה על "עבודה" ביחד.

מה לעשות במקום: בחרו primary אחד (זה צריך להיות הכי קשה), ואז גזרו את שאר הצבעים ממנו דרך חוקי הרמוניה (הסעיף הבא). תמיד לבדוק על Realtime Colors לפני שמקבעים — אתר אמיתי הוא המבחן האמיתי.

מתחיל 10 דקות חינם מושג

3.2 גלגל הצבעים — ב-10 דקות למתחילים מוחלטים

גלגל הצבעים (Color Wheel) הוא התרשים החזותי הבסיסי של תורת הצבע. במקום לזכור כללים מופשטים, פשוט מסתכלים על מעגל עם 12 צבעים סדורים, ומשם קל להחליט. לא חייבים לזכור אותו בעל-פה — כל הכלים שנראה (Coolors, Adobe Color, Realtime Colors) משתמשים בגלגל באופן גרפי.

המבנה של הגלגל — 3 שכבות

  1. Primary colors (3): אדום, כחול, צהוב. אלה הצבעים שלא אפשר לייצר ממיקס של אחרים (במודל צבע מסורתי).
  2. Secondary colors (3): כתום (אדום+צהוב), ירוק (צהוב+כחול), סגול (אדום+כחול). תוצר של שני primary.
  3. Tertiary colors (6): כל השאר — red-orange, yellow-orange, yellow-green, blue-green, blue-violet, red-violet. תוצר של primary + secondary סמוך.

3 המימדים של כל צבע

כל צבע מתואר ב-3 ערכים שצריך להבין — הם יחזרו בכל כלי שתשתמשו בו:

מימדבאנגליתמשמעות פשוטהערכים
גווןHue"איזה צבע" — המיקום על הגלגל0°-360°
רוויהSaturationכמה הצבע "חי" או "דהוי"0%-100% (0 = אפור)
בהירותLightnessכמה הצבע בהיר או כהה0%-100% (0 = שחור, 100 = לבן)

זהו ה-HSL model (Hue, Saturation, Lightness), והוא הדרך האינטואיטיבית הכי טובה לחשוב על צבע. כשאתם רוצים "אותו צבע, יותר כהה" — פשוט מקטינים את ה-Lightness. כשרוצים "אותו צבע, פחות צורח" — מקטינים את ה-Saturation. נסו את זה ב-Chrome DevTools: כשבוחרים אלמנט, אפשר לגרור את סרגלי ה-HSL ולראות את ההשפעה בזמן אמת.

OKLCH — ה-model החדש שכדאי להכיר

CSS מודרני (2023+) תומך ב-oklch() — מודל חדש שמתקן בעיה ישנה של HSL: ב-HSL, צבעים שונים עם אותה Lightness לא באמת נראים באותה בהירות למוח האנושי. ב-OKLCH — כן. זה אומר ש-gradients נראים חלקים יותר, ומדרגות בפלטה נראות מרווחות שווה.

/* HSL — מדרגות לא אחידות ויזואלית */
--blue-500: hsl(220, 80%, 50%);
--green-500: hsl(120, 80%, 50%);  /* נראה בהיר יותר למרות אותו L */

/* OKLCH — מדרגות אחידות ויזואלית */
--blue-500: oklch(55% 0.2 240);
--green-500: oklch(55% 0.2 145);  /* באמת נראה באותה בהירות */

לא חובה להשתמש ב-OKLCH מהיום הראשון — HSL ו-HEX עדיין תקינים לחלוטין — אבל כדאי להכיר, במיוחד אם אתם בונים פלטה של 10 shades לכל צבע. Tailwind v4 משתמש ב-OKLCH כברירת מחדל בצבעים שלו.

עשו עכשיו 3 דקות

פתחו color.adobe.com (Adobe Color — חינמי, לא צריך חשבון). תראו גלגל צבעים אינטראקטיבי. סחרבו את הנקודה הראשית לצבע שאתם אוהבים. שנו את ה-"Color rule" מ-Analogous ל-Complementary ול-Triadic — שימו לב איך הצבעים שמסביב משתנים. זה הבסיס החזותי להרמוניות שנדבר עליהן בסעיף הבא.

מתחיל 12 דקות חינם פרקטי

3.3 חוקי הרמוניה — 4 הקומבינציות שעובדות תמיד

הרמוניה צבעונית (Color Harmony) = יחס מתמטי בין צבעים בגלגל שיוצר שילוב שהמוח תופס כ"נכון". יש כמה עשרות חוקים, אבל 4 מהם מכסים 95% מהמקרים. כל פלטה שתבנו בקורס הזה תתבסס על אחד מהם.

החוקים, עם תיאור וזמן שימוש

שםאיך זה עובדזווית בגלגלמתי להשתמשדוגמה
Complementary
משלימים
2 צבעים במרחק מקסימלי בגלגל 180° בין הצבעים CTA שצריך לבלוט, Landing pages אנרגטיים כחול + כתום (Firefox, ING)
Analogous
סמוכים
3 צבעים זה לצד זה 30° בין כל שניים עיצוב רגוע, הרמוני, טבעי ירוק + teal + כחול (Slack)
Triadic
משולש
3 צבעים במרחק שווה 120° בין כל שניים עיצוב צעיר, playful, עשיר אדום + צהוב + כחול (Lego)
Split-Complementary
משלימים פצלים
צבע ראשי + 2 סמוכים למשלים שלו 150° + 210° רוצים קונטרסט אבל פחות אגרסיבי מ-complementary כחול + כתום-אדום + כתום-צהוב

הדגשה חשובה: הרמוניה לא מספיקה

שימו לב — אף פלטה מקצועית לא משתמשת רק ב-2 או 3 צבעים הרמוניים גרידא. הפלטה המלאה היא הרמוניה + neutrals + semantics. ההרמוניה קובעת את ה-primary/secondary/accent, והניטרלים והסמנטיים משלימים את התמונה (נראה את זה בסעיף 3.4).

המלצה ל-beginners: התחילו ב-Analogous

אם זו הפלטה הראשונה שאתם בונים — בחרו Analogous. זה הכי סלחני (כל 3 הצבעים מאותה משפחה, קשה לעשות תקלה), זה נראה הכי "פרופשיונלי" בעין לא מאומנת, וזה הכי קל לגזור ממנו neutrals (להוריד saturation ל-5-10% = אפור עם נגיעה של הצבע הראשי). רוב האתרים הפרימיום שאתם מכירים משתמשים ב-Analogous בסוף היום.

מסגרת החלטה: בחירת חוק ההרמוניה לפי אופי הפרויקט
אופי הפרויקטהמלצה ראשונהחלופהלהימנע
B2B SaaS מקצועי / FintechAnalogous (כחול-ירוק-teal)Monochromatic כחול עם accent חםTriadic (עשיר מדי)
יצירתי / Agency / PortfolioSplit-ComplementaryTriadic אם רוצים חיוניותMonochromatic (משעמם)
E-commerce luxuryMonochromatic (שחור-זהב, או crème-חום)Analogous מאופקComplementary חזק
אפליקציה לילדים / PlayfulTriadicAnalogous חם (כתום-אדום-צהוב)Monochromatic כהה
חדשות / EditorialMonochromatic עם accentComplementary מינימליTriadic
Wellness / Health / NaturalAnalogous (ירוק-teal-כחול)Earth-tones monochromaticComplementary שזורח

הכלל: בספק — לכו על Analogous. זה החוק עם ה-risk הנמוך ביותר והתוצאה הפרימיום הגבוהה ביותר ל-beginners.

עשו עכשיו 5 דקות

פתחו Adobe Color או Coolors. בחרו Color Rule = Analogous. גררו את הנקודה הראשית ל-hue שמתאים למותג שלכם (טכנולוגיה = 200-240°, טבע = 90-150°, אנרגיה = 0-40°). שמרו screenshot של 3 הצבעים שיצאו. אלה הבסיס של primary/secondary/accent.

מתחיל 15 דקות חינם פרקטי

3.4 אנטומיית פלטה מקצועית — 5 התפקידים

פלטה מקצועית היא לא רק "הרבה צבעים יפים". זו מערכת של 5 תפקידים, כל אחד עם שימוש מוגדר. אם חסר תפקיד — ה-AI ימלא את הפער עם defaults, וחוזרים לגנריות. הנה המבנה המלא:

התפקידים

תפקידמספר ערכיםשימושאחוז מהמסך
1. Primary 1-3 shades (base + darker + lighter) לוגו, כותרות דגשים, כפתור ראשי ~25%
2. Secondary 1-3 shades אלמנטים תומכים, icons, highlights, badges ~15%
3. Accent 1 shade (לפעמים + hover) CTA יחיד, דגש ייחודי, מצב "new" או "featured" ~5-10%
4. Neutrals 5 shades (50, 200, 400, 700, 900) רקעים, גבולות, טקסט primary/secondary/muted ~50-60%
5. Semantic 4 colors (success, warning, error, info) הודעות, מצבי validation, toasts, alerts ~1-5% (בהתאם לאתר)

פירוט: למה 5 shades לניטרלים

חייבים 5 מדרגות של אפור כדי לכסות את כל ה-use cases:

פלטה עם רק 2-3 ניטרלים תיאלץ אתכם להשתמש בשחור מוחלט (#000) לטקסט — וזה קשה מדי לעין. ניטרל-900 הוא לא שחור; הוא שחור-עם-נגיעה-של-הצבע-הראשי, וזה מה שנותן לאתר "חום" ויזואלי גם בלי להוסיף צבעים.

טריק מקצועי: neutrals צבועים

האפור שלכם לא חייב להיות אפור "טהור" (H=0°, S=0%). קחו את ה-hue של ה-primary והנמיכו את ה-saturation ל-3-8%. זה יוצר neutrals "חמים" או "קרים" שתורמים לאחדות ויזואלית של כל האתר. דוגמה:

/* Primary: כחול */
--color-primary: oklch(55% 0.18 240);

/* Neutral מסורתי — אפור "מת" */
--neutral-700-bad: oklch(35% 0 0);   /* S=0, hue לא משפיע */

/* Neutral מקצועי — אפור "קר" עם נגיעה של primary */
--neutral-700-good: oklch(35% 0.02 240);  /* אותו hue כמו primary! */

הטריק הזה לבד מעביר פלטה מ"חובבנית" ל"נראה שמעצב עבד עליה". זה משהו ש-AI לא יעשה אוטומטית — חייבים להגיד לו במפורש.

מתחיל 15 דקות חינם כלי רגיש למועדכנות

3.5 Coolors.co — יצירת פלטה ב-3 צעדים

Coolors (coolors.co) הוא הכלי הפופולרי ביותר ליצירת פלטות צבעים. חינמי לשימוש בסיסי, עם חשבון חינמי לשמירת פלטות. יש בו generator אוטומטי, נעילת צבעים, ויצוא לכל פורמט נפוץ (CSS, SCSS, Tailwind, JSON, PNG).

איך להשתמש — 3 צעדים

  1. צעד 1 — פתיחת Generator: כנסו ל-coolors.co/generate. יופיעו 5 צבעים אקראיים. לחצו על מקש רווח (Space) — הצבעים מתחלפים. לחצו עוד פעם — חלופה אחרת. זה הלב של Coolors: generator שמייצר פלטות בזרם.
  2. צעד 2 — נעילת הצבע הראשי: כשרואים צבע שאתם אוהבים בעמודה מסוימת (נניח העמודה השנייה), לחצו על סמל המנעול (lock icon) מעליו. מעכשיו לחיצה על רווח משנה את כל השאר חוץ ממנו. כך אתם בונים סביב primary שבחרתם.
  3. צעד 3 — ייצוא הפלטה: כשיש פלטה שאתם אוהבים, לחצו על הכפתור "Export" למעלה מימין. בחרו פורמט — ה-CSS הוא האופציה הכי שימושית לקורס הזה (יוצר --color-1, --color-2 וכו'). אפשר גם PNG להצגה, JSON ל-handoff, או Tailwind config.

פיצ'רים מתקדמים ב-Coolors — שווים להכיר

Workflow מומלץ ב-Coolors

  1. בחרו את ה-hue של ה-primary לפי אופי המותג (ראו framework 3.14 בהמשך).
  2. צרו אותו ב-Coolors (אפשר דרך Adjust panel עם HSL מדויק).
  3. נעלו אותו. לחצו רווח עד שתקבלו secondary ו-accent שמתאימים.
  4. שמרו את הפלטה בחשבון (חינמי). Coolors נותן URL קבוע לפלטה — תעבירו אותו ל-AI.
  5. ייצאו ל-CSS ושמרו את ה-output.
עשו עכשיו 8 דקות

כנסו ל-coolors.co/generate. לחצו רווח 10 פעמים — תרגישו כמה מהר אפשר לעבור על אופציות. עכשיו נעלו צבע אחד שאתם אוהבים. לחצו רווח עוד 10 פעמים — תראו איך השאר משתנים סביבו. שמרו את הפלטה (Save למעלה מימין, דורש חשבון חינמי). שמרו את ה-URL — נשתמש בו בסעיף 3.15.

טעות נפוצה: להתעלם מ-contrast ratio

מה קורה: בוחרים פלטה יפה ב-Coolors, מיישמים באתר, מגלים אחרי פרסום שטקסט gray-400 על gray-100 לא קריא למישהו עם ראיה פחות חדה או על מסך לא מקצועי.

למה זה מפתה: גרדיאנטים עדינים ו"אפורים רכים" נראים יפה ב-Pinterest mood boards, אבל לא מספקים קריאות על מסך אמיתי של משתמש אמיתי בתנאים אמיתיים (שמש על מסך laptop, מסך טלפון ישן, משתמש עם בעיית ראייה).

מה לעשות במקום: כל צמד של טקסט על רקע חייב להיבדק ב-WebAIM Contrast Checker (סעיף 3.8). יעד מינימלי: WCAG AA — 4.5:1 לטקסט רגיל, 3:1 לטקסט גדול (18pt+ או 14pt bold). אם לא עובר — כהים את הטקסט או מבהירים את הרקע עד שעובר. אין פשרות כאן.

מתחיל 10 דקות חינם כלי רגיש למועדכנות

3.6 Realtime Colors — לראות את הפלטה על אתר אמיתי

Realtime Colors (realtimecolors.com) — הכלי ה-missing link בין פלטה ב-Coolors לבין אתר אמיתי. מציג דף landing מדומה עם hero, features, testimonials, ו-CTA — ומאפשר לכם לשנות את 5 הצבעים של הפלטה (background, text, primary, secondary, accent) ולראות בזמן אמת איך הפלטה נראית על אלמנטים אמיתיים.

למה זה חשוב

פלטה של 5 ריבועים ב-Coolors לא אומרת כלום על איך היא תיראה בפועל. אותם 5 צבעים יכולים להיראות נפלא בתור ריבועים ואיומים כ-hero section עם טקסט. Realtime Colors סוגר את הפער: אתם מדביקים את הצבעים, ומיד רואים איך הם יושבים על לייוואוט סטנדרטי. זה כמו מדידת בגד במראה — הבד מעניין פחות ממה שהבגד נראה עליכם.

איך להשתמש — 3 צעדים

  1. צעד 1 — פתיחה: כנסו ל-realtimecolors.com. תראו דף landing מדומה עם 5 פקדי צבע למעלה: Text, Background, Primary, Secondary, Accent.
  2. צעד 2 — הזנת הצבעים: לחצו על כל פקד, הדביקו את ה-hex מהפלטה שלכם ב-Coolors. הדף מתעדכן מיידית — תראו את הכותרת, הכפתורים, ה-icons, וה-cards משתנים.
  3. צעד 3 — Test variants: יש כפתור "Randomize" למקרה שרוצים לראות חלופות מהירות. יש toggle ל-Dark mode — לחצו ותראו איך אותה פלטה נראית במצב הכהה. שמרו את ה-URL (הוא מקודד את הפלטה) — הוא משמש כ"link לפלטה שלכם ב-preview".

מה לבדוק ב-Realtime Colors

עשו עכשיו 5 דקות

קחו את הפלטה מ-Do-Now #5 (ב-Coolors). פתחו realtimecolors.com. הדביקו את 5 הצבעים. הסתכלו 30 שניות. לחצו על toggle ה-dark mode. הסתכלו 30 שניות נוספות. רשמו 2 תצפיות: (א) מה עבד? (ב) מה צריך לשנות? אם הכל עבד — מצוין, זו פלטה נקייה מראשונה. אם יש בעיה — חזרו ל-Coolors ושנו.

מתחיל 10 דקות חינם מושג

3.7 Contrast Ratio ו-WCAG — הכלל שחוסך שדרוגים

Contrast Ratio הוא יחס מספרי בין 1:1 (שני צבעים זהים — בלתי קריא) ל-21:1 (שחור מוחלט על לבן מוחלט — קריאות מקסימלית). המוח שלנו זקוק ליחס מסוים כדי לקרוא טקסט על רקע בלי להתעייף, ו-W3C הגדיר את ה-minimums בתקן WCAG (Web Content Accessibility Guidelines).

הרמות של WCAG

רמהטקסט רגילטקסט גדול (18pt+ / 14pt bold)UI components (גבולות, icons)
WCAG AA (מינימום)4.5:13:13:1
WCAG AAA (מומלץ)7:14.5:1לא נדרש

איזו רמה ליישם בפועל

המטרה הריאלית: WCAG AA על הכל, WCAG AAA על body text. AAA הוא שאפתני מדי ליישום טוטלי (גוזם לכם את כל הניואנסים של אפורים עדינים), אבל AA צריך להיות מינימום מוחלט ולא לפספס. בישראל, ל-law 10838 על נגישות אתרים יש דרישות WCAG AA, אז זה גם חוק — אבל יותר חשוב, זו פשוט הדרך שבני אדם רואים.

3 הצבעים הכי מסוכנים מבחינת contrast

הנוסחה (לא חייבים לזכור)

החישוב הוא:

Contrast = (L1 + 0.05) / (L2 + 0.05)

כש-L הוא ה-relative luminance של כל צבע (חישוב של ~10 שורות math). אין צורך לעשות את זה ידנית — WebAIM עושה בשבילכם (ראו סעיף 3.8).

מתחיל 8 דקות חינם כלי

3.8 WebAIM Contrast Checker — בדיקה ב-3 צעדים

WebAIM Contrast Checker (webaim.org/resources/contrastchecker) הוא הכלי הסטנדרטי בעולם לבדיקת contrast. חינמי, אין רישום, פועל מיד. WebAIM הוא ארגון non-profit מאוניברסיטת Utah State שעובד על accessibility כבר 25 שנה — הכלי שלהם מהימן והוא ה-reference של התעשייה.

איך להשתמש — 3 צעדים

  1. צעד 1 — הזנת 2 צבעים: בדף יש 2 שדות: "Foreground Color" (טקסט) ו-"Background Color" (רקע). הדביקו hex לכל אחד (בלי # — רק 6 תווים). Alternatively, אפשר לפתוח color picker ולבחור ויזואלית.
  2. צעד 2 — קריאת התוצאה: מספר גדול מופיע במרכז — ה-contrast ratio (למשל 7.25:1). מתחתיו 4 תוצאות: Normal Text AA/AAA, Large Text AA/AAA. כל אחת יכולה להיות "Pass" (ירוק) או "Fail" (אדום).
  3. צעד 3 — תיקון אם fail: אם יש fail, יש 2 סרגלים למטה: "Lightness" לכל צבע. גרירה מורידה/מעלה את ה-lightness. מתעדכן בזמן אמת — תגרירו עד שיש "Pass" בכל השורות. העתיקו את ה-hex החדש ועדכנו בפלטה שלכם.

Workflow מומלץ — audit מלא של הפלטה

עם פלטה של 15 צבעים, יש ~210 צמדים אפשריים. לא חייבים לבדוק את כולם — רק את הצמדים שבפועל ישמשו באתר. רשימת הצמדים הקריטיים:

Foreground (טקסט)Background (רקע)דוגמה
neutral-900neutral-50body text רגיל
neutral-700neutral-50body text secondary
neutral-500neutral-50muted text, captions
whiteprimaryטקסט על כפתור primary
whiteaccentטקסט על CTA
neutral-900primary-100badge / highlight בצבע רך
primaryneutral-50link טקסט בתוך body
errorneutral-50הודעת שגיאה

חייב לעבור את 8 האלה לפחות. אם אחד נכשל — לתקן את הצבע לפני כל דבר אחר. אין "נתקן בהמשך" על contrast.

Browser extensions שווים להכיר

עשו עכשיו 5 דקות

פתחו webaim.org/resources/contrastchecker. בדקו את 3 הצמדים האלה מהפלטה שלכם: (א) הטקסט הראשי על הרקע הראשי, (ב) לבן על ה-primary (זה טקסט על כפתור), (ג) ה-accent על הרקע הראשי. רשמו את 3 המספרים. כמה מהם עוברים WCAG AA? אם כולם כן — מעולה. אם לא — זהו מה שצריך לכהם/להבהיר.

מסגרת החלטה: מה לעשות כשה-contrast לא עובר
מצבפעולה ראשונהפעולה שנייה (אם הראשונה לא מספיקה)
טקסט סתמי, contrast 3.5:1לכהם את הטקסט ב-Lightness (מ-L=50% ל-L=30%)אם הטקסט כבר כהה — להבהיר את הרקע
לבן על primary, contrast 3.2:1לכהם את ה-primary (מ-blue-500 ל-blue-700)אם חייבים את ה-shade הזה — להשתמש בטקסט שחור בכפתור (עם ניגוד 10:1)
Accent יפה אבל nigua lav ka — 2.8:1לכהם את ה-accent עד שעובר AAלשמור על ה-accent "יפה" רק ל-backgrounds גדולים (לא לטקסט) ולמצוא accent כהה יותר לטקסט
Gradient רקע וטקסט מעליו לא תמיד עוברלהוסיף overlay כהה (rgba 0,0,0,0.4) בין הגרדיאנט לטקסטאו להגביל את הגרדיאנט לאזור ללא טקסט (hero section עם טקסט בצד צבע אחיד)
Dark mode — הטקסט הכהה שעבד ב-light נעלםלהפוך את כל ה-scale ב-custom properties: light=neutral-50 → dark=neutral-900, ו-text=neutral-900 → text=neutral-50ראו סעיף 3.12 dark mode

הכלל: בכל ספק — להקריב יופי למען קריאות. אתר מקצועי הוא אתר שאפשר לקרוא. אתר יפה שאי אפשר לקרוא הוא לא יפה, הוא גלריה.

מתחיל 8 דקות חינם ניתוח רגיש למועדכנות

3.9 המלכודת הישראלית — כחול-לבן בכל דבר

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

למה כולם מגיעים לאותו כחול-לבן

  1. "כחול = אמינות" — כל קורס שיווק ראשון מלמד שכחול משדר אמינות (נכון ברמה פסיכולוגית), אז כל מותג שרוצה להיראות "רציני" בוחר כחול. בישראל זה מועצם: דגל המדינה כחול-לבן, אז זה מרגיש "לאומי".
  2. Tailwind defaultsblue-600 הוא ה-primary שמוצג בכל example ב-Tailwind docs, shadcn/ui, ו-v0 templates. AI פשוט פולט את זה.
  3. "לקוחות אוהבים כחול" — כשאתם מציגים ללקוח שלא בעל רקע עיצובי, כחול תמיד "בסדר". אין התנגדות. זה הופך לבחירה של הססנות עסקית.
  4. פחד מ-accent חזק — רוב המעצבים הישראלים (ובעיקר של חברות B2B) מפחדים מ-accent "סוער" כמו כתום, אדום, או ורוד — "זה לא מקצועי". אז הם נשארים עם כחול בכל מקום.

למה זה הורג את המותג

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

איך לצאת — 3 אסטרטגיות

אסטרטגיהמה עושיםדוגמה מהעולם
Brand color משנה נשאר כחול כ-primary, אבל accent לא-ברור (חום, ורוד, ירוק-תעשייתי) Stripe (primary כחול, accent פסטל ורוד-סגול)
Hue אחר לגמרי לא כחול בכלל. ירוק (Natural, fintech מודרני), סגול (creative), כתום (אנרגיה) Notion (אין צבע — neutral בלבד עם accent), Figma (שחור+סגול)
Monochromatic עם accent הכל neutrals + 1 accent בולט — הלוך ההפוך Linear (כהה+סגול), Raycast (כהה+אדום)

גם אם אתם חייבים להישאר עם כחול מסיבות brand, עשו אותו כחול ספציפי. לא blue-600 של Tailwind. משהו כמו:

עשו עכשיו 3 דקות

אם האתר שלכם עובד עם כחול — פתחו DevTools, בדקו את ה-hex של ה-primary. אם הוא בטווח #2563EB-#3B82F6 — אתם בקלסתר של Tailwind blue-600/500. בחרו עכשיו navy יחודי מ-3 האופציות למעלה (או מ-Coolors עם S=50-60%, L=20-30%). זה שינוי של 5 דקות שמעביר את האתר מ"עוד אחד" ל"משלנו".

טעות נפוצה: לתת ל-AI לבחור צבעים במקום להגדיר פלטה מראש

מה קורה: כותבים ל-AI "build me a SaaS landing page for fintech" בלי לצרף פלטה. AI בוחר blue-600 כ-primary, white רקע, gray-900 טקסט. אחר-כך מנסים לתקן דרך "make it more premium" — ה-AI מוסיף gradient סגול-כחול וחושב שסידר.

למה זה מפתה: הרבה יותר מהיר לכתוב "premium fintech" מאשר לבנות פלטה של 5 דקות ב-Coolors.

מה לעשות במקום: תמיד לבנות את הפלטה מראש (Coolors → Realtime Colors → WebAIM), ולהכניס אותה לפרומפט כ-CSS custom properties מדויקים. AI נהדר ביישום — לא ברוב הפעמים בבחירה. הפלטה היא החלטה של בעל המותג, לא של כלי. ראו סעיף 3.15 לפרומפט טמפלייט.

בינוני 15 דקות חינם פרקטי

3.10 CSS Custom Properties ו-Design Tokens — השפה המשותפת

יש לכם פלטה. יש לכם hex values. עכשיו השאלה: איך שומרים אותם כך שגם אתם, גם מעצב עתידי, גם מפתח עתידי, וגם AI — כולם יוכלו להשתמש בהם בעקביות? התשובה: CSS custom properties (המכונים גם CSS variables), ולמעלה מזה — design tokens.

מה זה CSS custom properties

משתני CSS שמוגדרים פעם אחת ב-:root, ומשתמשים בהם בכל מקום. במקום לכתוב color: #0B4F6C; ב-50 מקומות (ולעדכן ב-50 מקומות אם משנים), כותבים פעם אחת:

:root {
  --color-primary: #0B4F6C;
}

.button {
  background-color: var(--color-primary);
}

.heading {
  color: var(--color-primary);
}

רוצים לשנות את ה-primary? משנים שורה אחת — כל האתר מתעדכן. זו דרך "הפרופ" היחידה לעבוד.

מה זה design tokens

Design tokens הוא מושג רחב יותר. אלה שמות מופשטים להחלטות עיצוביות — לא רק צבעים. כוללים:

בפרק הזה אנחנו מתמקדים בcolor tokens, אבל המושג חוזר לאורך כל הקורס. Spacing tokens יתרחשו בפרק 5, typography tokens בפרק 4, shadow tokens בפרק 2.

שמות טובים לtokens — convention

יש שני סגנונות מקובלים לשמות:

סגנוןדוגמהמתי להשתמש
Functional (תפקידי) --color-text-primary, --color-background, --color-border רוב הפרויקטים — זה מה שאני ממליץ
Descriptive (צבעוני) --color-blue-500, --color-gray-50 Design systems גדולים (כמו Tailwind) שצריכים scale

הכי נכון לערבב: ברמה נמוכה — descriptive (--blue-500: #0B4F6C), וברמה גבוהה — functional (--color-primary: var(--blue-500)). זה מבנה של 2 שכבות, שמקל על dark mode (רק ה-functional משתנה, לא ה-descriptive).

דוגמת tokens מלא (טעימה)

:root {
  /* ===== Descriptive tier ===== */
  --blue-50: #F0F7FA;
  --blue-100: #D9E8F0;
  --blue-500: #0B4F6C;
  --blue-700: #073449;
  --blue-900: #041F2C;

  --neutral-50: #FAFAF9;
  --neutral-200: #E7E5E4;
  --neutral-400: #A8A29E;
  --neutral-700: #44403C;
  --neutral-900: #1C1917;

  /* ===== Functional tier ===== */
  --color-primary: var(--blue-500);
  --color-primary-hover: var(--blue-700);
  --color-background: var(--neutral-50);
  --color-surface: white;
  --color-text-primary: var(--neutral-900);
  --color-text-secondary: var(--neutral-700);
  --color-text-muted: var(--neutral-400);
  --color-border: var(--neutral-200);
}

זה יאפשר לכם לשנות את ה-primary מ-blue ל-green ב-שורה אחת (--color-primary), בלי לגעת בכל שימוש באתר. הפלטה המלאה תופיע בסעיף 3.11.

עשו עכשיו 4 דקות

פתחו את הפלטה שלכם מ-Coolors. הכינו קובץ tokens.css (או פשוט בלוק ב-Notion). כתבו 5 שורות בלבד — functional tier: --color-primary, --color-background, --color-text-primary, --color-accent, --color-border. לכל אחד ה-hex שמתאים. זה הבסיס שתבנו עליו בסעיף 3.11.

בינוני 15 דקות חינם פרקטי

3.11 פלטה מלאה לסטארטאפ ישראלי — דוגמה שלמה

נבנה עכשיו פלטה מלאה לדוגמה — סטארטאפ ישראלי fintech בשם "פסיפס" (שם פיקטיבי לצרכי הדוגמה). המטרה: פלטה שאיננה blue-600 של Tailwind, עם כל 5 התפקידים, design tokens מלאים, ועוברת WCAG AA בכל הצמדים הקריטיים.

ה-brief של "פסיפס"

הפלטה המלאה

תפקידTokenHEXשימוש
Primary--color-primary#0B4F6Cלוגו, כפתור ראשי, כותרות דגש
Primary-hover--color-primary-hover#073449Hover state של primary
Secondary--color-secondary#2EA39BTeal — Icons, badges, secondary buttons
Accent--color-accent#F76E4Cכתום — CTA יחיד, "new" markers
Accent-hover--color-accent-hover#E55535Hover state של accent
Neutral-50--neutral-50#FAFBFCרקע ראשי של האתר (כמעט לבן, נטייה קרה)
Neutral-200--neutral-200#E4E7EBגבולות, dividers, disabled
Neutral-400--neutral-400#9AA5B1Placeholder text, icons משניים
Neutral-700--neutral-700#3E4C59Body text
Neutral-900--neutral-900#1F2933Headings, טקסט מודגש
Success--color-success#2F855Aהודעות הצלחה, checkmarks
Warning--color-warning#D69E2Eאזהרות לא-קריטיות
Error--color-error#C53030הודעות שגיאה, validation fail
Info--color-info#2B6CB0הודעות info, tooltips

קוד CSS מלא ומוכן להדבקה

:root {
  /* ===== Brand tier (descriptive) ===== */
  --brand-blue-50: #E6F0F4;
  --brand-blue-100: #C3DBE3;
  --brand-blue-500: #0B4F6C;
  --brand-blue-700: #073449;
  --brand-blue-900: #041F2C;

  --brand-teal-500: #2EA39B;
  --brand-orange-500: #F76E4C;
  --brand-orange-600: #E55535;

  /* ===== Neutrals (cool-tinted) ===== */
  --neutral-50: #FAFBFC;
  --neutral-100: #F4F6F8;
  --neutral-200: #E4E7EB;
  --neutral-300: #CBD2D9;
  --neutral-400: #9AA5B1;
  --neutral-500: #7B8794;
  --neutral-600: #616E7C;
  --neutral-700: #3E4C59;
  --neutral-800: #323F4B;
  --neutral-900: #1F2933;

  /* ===== Semantic ===== */
  --semantic-success: #2F855A;
  --semantic-warning: #D69E2E;
  --semantic-error: #C53030;
  --semantic-info: #2B6CB0;

  /* ===== Functional tier (this is what components use) ===== */
  --color-primary: var(--brand-blue-500);
  --color-primary-hover: var(--brand-blue-700);
  --color-primary-soft: var(--brand-blue-100);

  --color-secondary: var(--brand-teal-500);

  --color-accent: var(--brand-orange-500);
  --color-accent-hover: var(--brand-orange-600);

  --color-background: var(--neutral-50);
  --color-surface: #FFFFFF;
  --color-surface-raised: #FFFFFF;

  --color-text-primary: var(--neutral-900);
  --color-text-secondary: var(--neutral-700);
  --color-text-muted: var(--neutral-500);
  --color-text-on-primary: #FFFFFF;
  --color-text-on-accent: #FFFFFF;

  --color-border: var(--neutral-200);
  --color-border-strong: var(--neutral-300);

  --color-success: var(--semantic-success);
  --color-warning: var(--semantic-warning);
  --color-error: var(--semantic-error);
  --color-info: var(--semantic-info);
}

Contrast audit של הפלטה

ForegroundBackgroundRatioWCAG AA
neutral-900 (#1F2933)neutral-50 (#FAFBFC)15.3:1Pass (AAA)
neutral-700 (#3E4C59)neutral-508.9:1Pass (AAA)
neutral-500 (#7B8794)neutral-504.7:1Pass (AA)
whiteprimary (#0B4F6C)9.1:1Pass (AAA)
whiteaccent (#F76E4C)3.3:1Pass (AA גדול בלבד) ⚠️
neutral-900accent (#F76E4C)6.3:1Pass (AA)
primaryneutral-509.1:1Pass (AAA)
error (#C53030)neutral-504.9:1Pass (AA)

תובנה חשובה: הכפתור הכתום עם טקסט לבן עובר רק ל-large text (18pt+). לכן במקום טקסט לבן בכפתור ה-accent, נשתמש ב---color-text-on-accent: var(--neutral-900) — טקסט כהה על accent כתום עובר AA. זו ההחלטה הנכונה תמיד עם accents בהירים-חמים.

בינוני 15 דקות חינם פרקטי

3.12 Dark Mode — החלפת משתנים בלבד

הנה המתנה: אם בניתם את הפלטה עם functional tokens (סעיף 3.10), dark mode זה 15 שורות CSS. לא שכפול של כל ה-components. לא media queries בכל מקום. פשוט: ב-dark mode, ערכי ה-functional משתנים.

המבנה הבסיסי

/* Light mode — ברירת מחדל */
:root {
  --color-background: var(--neutral-50);
  --color-surface: #FFFFFF;
  --color-text-primary: var(--neutral-900);
  --color-text-secondary: var(--neutral-700);
  --color-border: var(--neutral-200);
}

/* Dark mode — automatic לפי העדפת OS */
@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--neutral-900);
    --color-surface: var(--neutral-800);
    --color-text-primary: var(--neutral-50);
    --color-text-secondary: var(--neutral-200);
    --color-border: var(--neutral-700);
  }
}

/* Dark mode — manual override (toggle) */
:root[data-theme="dark"] {
  --color-background: var(--neutral-900);
  --color-surface: var(--neutral-800);
  --color-text-primary: var(--neutral-50);
  --color-text-secondary: var(--neutral-200);
  --color-border: var(--neutral-700);
}

זהו. ה-CSS של כל ה-components לא משתנה — הם ממשיכים להשתמש ב-var(--color-background) וב-var(--color-text-primary). אבל הערכים שמאחורי אותם שמות משתנים לפי המצב.

Toggle ידני — הקוד המלא

כדי לאפשר למשתמש לבחור (במקום להסתמך רק על preferences OS):

<!-- HTML -->
<button id="theme-toggle" aria-label="Toggle dark mode">🌙</button>

<script>
const toggle = document.getElementById('theme-toggle');
const root = document.documentElement;

// Initialize from localStorage or from OS preference
const saved = localStorage.getItem('theme');
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
const initial = saved || (prefersDark ? 'dark' : 'light');
root.setAttribute('data-theme', initial);

toggle.addEventListener('click', () => {
  const current = root.getAttribute('data-theme');
  const next = current === 'dark' ? 'light' : 'dark';
  root.setAttribute('data-theme', next);
  localStorage.setItem('theme', next);
});
</script>

זה הכל. 15 שורות JavaScript. המשתמש לוחץ, ה-data-theme="dark" נשמר, וה-CSS משתמש ב-attribute הזה להחלפת המשתנים. ה-preference נשמר ב-localStorage לטעינה הבאה.

מה חשוב בחירת הצבעים ל-dark mode

Dark palette לדוגמת "פסיפס"

:root[data-theme="dark"] {
  --color-background: #121821;        /* לא black טהור */
  --color-surface: #1F2933;
  --color-surface-raised: #323F4B;

  --color-primary: #4FADC9;            /* blue-500 מובהר ל-dark */
  --color-primary-hover: #6DC1DA;
  --color-primary-soft: #1A3544;

  --color-accent: #FF8866;             /* כתום מובהר קצת */

  --color-text-primary: #F5F7FA;
  --color-text-secondary: #CBD2D9;
  --color-text-muted: #9AA5B1;

  --color-border: #3E4C59;

  --color-success: #68D391;
  --color-warning: #F6AD55;
  --color-error: #FC8181;
  --color-info: #63B3ED;
}
עשו עכשיו 5 דקות

ב-Realtime Colors (עם הפלטה שלכם מ-Do-Now #6), לחצו על ה-toggle ל-dark mode. איך זה נראה? אם הפלטה שלכם "לבן+כחול+לבן" — הרקע הופך לשחור אבל המראה נראה רע. זה מנבא מה יקרה אצלכם. תקנו: לחצו על color pickers והדביקו ערכים מהדוגמה למעלה (למשל surface=#1F2933). רענן ותראה את השיפור.

מסגרת החלטה: באיזו אסטרטגיית dark mode להשתמש
אסטרטגיהאיך עובדתמתי מתאימהחיסרון
Auto-only (prefers-color-scheme) Dark מופיע רק אם ה-OS ב-dark אתר פשוט, brand, אפליקציה פנימית משתמש לא יכול לבחור אחרת מ-OS שלו
Toggle-only (data-theme) תמיד light כברירת מחדל, משתמש לוחץ כדי לקבל dark אתרים marketing, landing pages, blogs לא מכבד העדפת OS — יכול להיות annoying
Hybrid (מומלץ ל-90% מהמקרים) Default = העדפת OS. משתמש יכול לשנות ולשמור. רוב האתרים — SaaS, e-commerce, productivity קוד מעט יותר מורכב (JavaScript לטוגל)
Dark-first Default = dark, אפשר לעבור ל-light Creative portfolios, dev tools, design agencies קהל רחב מצפה ל-light כברירת מחדל; יכול להרגיש "שונה"
No dark mode Light only אתרים קטנים, landing page one-off, דף קמפיין משתמשים בסביבה חשוכה יסבלו — לא רצוי ל-SaaS בשימוש ארוך

הכלל: אם המוצר שלכם משמש יותר מ-10 דקות בפעם — חייבים dark mode (hybrid). אם זה landing page של 30 שניות — מיותר.

מתחיל 8 דקות חינם פרקטי

3.13 חוק 60-30-10 — חלוקת הצבעים שיוצרת איזון

חוק 60-30-10 הוא כלל זהב שמקורו בעיצוב פנים, אבל עובד מושלם באתרים: 60% dominant, 30% secondary, 10% accent. זו לא תיאוריה — זה המבנה שהעין האנושית מצפה לראות במרחב ויזואלי מאוזן.

הפירוק לאתר

אחוזתפקידצבע טיפוסימה זה באתר
60% Dominant / Background Neutral (background + surface) רקעים של sections, cards, ה-"bulk" של המסך
30% Secondary Primary color כותרות מודגשות, כפתורי primary, icons, links, borders מודגשים
10% Accent Accent color CTA אחד יחיד, badges "new", highlights חריגים

דוגמה קונקרטית — Hero section של "פסיפס"

מדמיינים hero section של 1440×900 פיקסלים:

התוצאה: העין מבינה מיד ש"הלחיצה" היא על הכתום — כי הוא היחיד. אם היו 5 כפתורים כתומים, אף אחד מהם לא היה בולט. החוק של 60-30-10 הוא בעצם הכלל של הגבלת ה-accent: יש רק accent אחד בכל מסך.

איך לדעת אם אתם עומדים בחוק

טיפ פרקטי: פתחו screenshot של ה-hero שלכם ב-Photoshop / Figma / Photopea. השתמשו ב-Eyedropper ודגמו 10 נקודות רנדומליות. ספרו כמה מהן Neutral vs Primary vs Accent. אם ה-distribution לא בערך 6:3:1 — יש לכם בעיית איזון. אם כל 10 הנקודות הן primary — אתם באזור ה"כחול בלי סוף" מסעיף 3.9.

חריגים ומצבים שבהם 60-30-10 לא עובד

עשו עכשיו 4 דקות

פתחו screenshot של ה-hero הנוכחי שלכם (או של כל אתר שאתם בונים). ב-Figma/Photopea/Preview, דגמו 10 נקודות (לחיצה בגוון אקראי בכל אזור). ספרו את ה-distribution: כמה neutrals, כמה primary, כמה accent. רשמו את האחוזים. אם אתם לא באזור 60-30-10, רשמו מה צריך לשנות (בדרך כלל: להחליף שימושי primary בneutrals, או להקטין את היחס של ה-accent).

מתחיל 8 דקות חינם מושג

3.14 צבעים שמעבירים מסר — אמינות, אנרגיה, יוקרה, טבע

יש מחקרים רבים על השפעת צבע על תפיסה. הרבה מהם גבוליים מבחינה מדעית (color psychology הוא תחום עם הרבה adaptation תרבותית ופרטנית), אבל יש כמה חוקי-אצבע שעובדים מספיק טוב לשמש נקודת התחלה. השתמשו בזה כ-framework ראשוני, לא כאמת מוחלטת.

טבלת המסרים — הצבעים העיקריים

Hueמסר עיקריתעשיות טבעיותשמות מוצרים מוכרים
כחול עמוק אמינות, רצינות, יציבות Fintech, Healthcare, Corporate, Enterprise Stripe, PayPal, Intel, IBM
כחול בהיר / Teal נקיון, מודרניות, טכנולוגיה SaaS, Productivity, Cloud, Communications Slack (teal), Twilio, Dropbox
ירוק טבע, צמיחה, בריאות, אקולוגיה Health, Fitness, Finance (growth), Sustainability Spotify (green), Whole Foods, Duolingo
סגול יצירתיות, יוקרה, רוחניות, אומנות Creative tools, Beauty, Spirituality, Premium Figma (purple), Twitch, Yahoo, Hallmark
אדום אנרגיה, דחיפות, אהבה, מלחמה Food, Entertainment, Sports, E-commerce YouTube, Netflix, Coca-Cola, Target
כתום ידידותיות, צעירות, אופטימיות E-commerce, Entertainment, Food, Kids Amazon (orange), HubSpot, Nickelodeon
צהוב שמחה, אזהרה, אנרגיה חמה Fast food, Children, Construction warnings McDonald's, Snapchat, IKEA, DHL
ורוד / Rose ספורטיביות בלי גסות, female-coded, playful Beauty, Fashion, D2C brands, Social apps T-Mobile (magenta), Glossier, Airbnb
שחור יוקרה, מיניולציה, כח, סוד Luxury, Fashion, High-end tech, Gaming Chanel, Tesla, Linear, PlayStation
חום / Earth-tones אותנטיות, warmth, מסורת, נוחות Artisan, Food (organic), Travel, Home UPS (brown), Patagonia, Hershey's

3 חוקים לבחירה לפי מסר

  1. הבחירה הראשונה היא hue, לא shade — החליטו קודם "כחול / ירוק / סגול", ואז תתחילו לחפש את ה-shade הנכון בתוך אותה משפחה.
  2. ה-accent בדרך כלל מנוגד למסר של primary — אם primary הוא "אמין" (כחול), accent הוא "אנרגיה" (כתום/אדום). זה יוצר דינמיקה.
  3. Context תרבותי משנה — בישראל אדום יכול להיות "רציני/מלחמתי" (דגל, צבא), בעוד שבסין הוא "מזל ושגשוג". חושבים על הקהל המטרה לפני הבחירה.
בינוני 12 דקות חינם פרקטי רגיש למועדכנות

3.15 פרומפט AI — הטמפלייט שמזין פלטה בלי שהוא יחליף אותה

עכשיו שיש לכם פלטה מלאה, design tokens, ו-dark mode — צריך להזין את זה ל-AI בצורה שלא תיתן לו לסטות. זה יותר קשה ממה שזה נשמע: ברירת המחדל של Bolt/Lovable/v0 היא לבחור צבעים בעצמם. אם לא מחזיקים אותם בקו — הם יחזרו לblue-600 אחרי 3 איטרציות.

הטמפלייט — ready to copy-paste

DESIGN TOKENS — USE THESE EXACTLY. DO NOT INVENT NEW COLORS.

Define these CSS custom properties in :root and use only var(--...) references throughout the site. Never hardcode hex values in class attributes or style attributes.

Brand colors:
--color-primary: [PRIMARY_HEX]; /* [PRIMARY_DESCRIPTION, e.g. "deep navy, brand identity"] */
--color-primary-hover: [PRIMARY_HOVER_HEX];
--color-secondary: [SECONDARY_HEX]; /* [SECONDARY_DESCRIPTION] */
--color-accent: [ACCENT_HEX]; /* CTA only, used sparingly */
--color-accent-hover: [ACCENT_HOVER_HEX];

Neutrals (5 shades):
--neutral-50: [NEUTRAL_50_HEX]; /* page background */
--neutral-200: [NEUTRAL_200_HEX]; /* borders, dividers */
--neutral-400: [NEUTRAL_400_HEX]; /* muted text, placeholders */
--neutral-700: [NEUTRAL_700_HEX]; /* body text */
--neutral-900: [NEUTRAL_900_HEX]; /* headings */

Semantic colors:
--color-success: [SUCCESS_HEX];
--color-warning: [WARNING_HEX];
--color-error: [ERROR_HEX];
--color-info: [INFO_HEX];

RULES — enforce strictly:
1. The ONLY CTA color is --color-accent. There must be exactly ONE primary CTA per screen.
2. Follow the 60-30-10 rule: ~60% neutrals (background + surfaces), ~30% primary (headings, links, primary buttons), ~10% accent (single CTA, badges).
3. All text must pass WCAG AA contrast: body text 4.5:1 minimum against its background; large text 3:1.
4. Do NOT use Tailwind default blue-600, purple-600, or purple-to-blue gradients anywhere. Do NOT introduce colors that aren't in the palette above.
5. Dark mode: implement with @media (prefers-color-scheme: dark) AND a manual toggle via [data-theme="dark"]. In dark mode, invert the neutrals: background → --neutral-900, surface → --neutral-800, text → --neutral-50.
6. At the end, output a contrast audit: list each critical text-on-background pair with its ratio. Flag any that don't meet AA.

איך להשתמש — 4 צעדים

  1. החליפו את כל ה-placeholders (הערכים בסוגריים מרובעים) עם ה-hex מהפלטה שלכם מסעיף 3.11.
  2. הדביקו את הטמפלייט בתחילת הפרומפט, לפני שמתחילים לתאר את תוכן האתר.
  3. הוסיפו תיאור שגרתי של האתר אחרי ("Build a landing page for a fintech startup for Israeli freelancers with sections: hero, features, pricing, testimonials, CTA").
  4. בסוף הפרומפט, הוסיפו: "At the end, verify that all colors used are from the palette above, with no additions. Flag any violations."

דוגמת פרומפט מלא עם פלטת "פסיפס"

DESIGN TOKENS — USE THESE EXACTLY. DO NOT INVENT NEW COLORS.

Brand colors:
--color-primary: #0B4F6C;
--color-primary-hover: #073449;
--color-secondary: #2EA39B;
--color-accent: #F76E4C;
--color-accent-hover: #E55535;

Neutrals:
--neutral-50: #FAFBFC; --neutral-200: #E4E7EB; --neutral-400: #9AA5B1; --neutral-700: #3E4C59; --neutral-900: #1F2933;

Semantic: --color-success: #2F855A; --color-warning: #D69E2E; --color-error: #C53030; --color-info: #2B6CB0;

[כאן — הכללים 1-6 מלמעלה]

Now build: A landing page for "Pesipas" — a fintech SaaS for Israeli freelancers managing invoices and taxes. Archetype: Stripe-esque. Sections: Hero, 3 features (auto-invoicing, tax prep, expense tracking), 2-tier pricing, 3 testimonials, final CTA. Hebrew copy, dir="rtl", Heebo for headings and Assistant for body.

תוספת ל-RTL / עברית

אם האתר בעברית, הוסיפו את הבלוק הזה בסוף הפרומפט:

HEBREW/RTL SPECIFIC:
- Language: Hebrew primary, dir="rtl" on the root.
- All semantic colors (success/warning/error/info) must be recognizable to Israeli users — avoid associations that differ (e.g., don't use green for "error" which some cultures do).
- Logo and primary buttons must appear on the correct RTL side (top-right for logo, CTAs on the right or centered).
- Dark mode especially important — many Israeli tech users work in dark environments.
עשו עכשיו 8 דקות

קחו את הטמפלייט למעלה. החליפו את ה-placeholders עם הפלטה שלכם (מסעיפים 3.5 ו-3.11). הריצו ב-Bolt/Lovable/v0/Claude: "Build a landing page for [YOUR PROJECT] using the design tokens above." הרציתם את הגרסה הגנרית ב-Do-Now #1 של הפרק (אם עשיתם את פרק 1) — השוו את 2 התוצאות. רשמו 3 הבדלים ויזואליים בולטים.

תרגיל 1: בניית פלטה מלאה ב-Coolors 25 דקות
  1. בחרו מותג / פרויקט אישי אמיתי (או פיקטיבי — "חנות קפה ב-תל אביב", "SaaS לאימון כושר", "פלטפורמת חינוך").
  2. בחרו Archetype (SaaS / Agency / Portfolio / E-commerce) — ראו פרק 2 אם צריך תזכורת.
  3. בחרו חוק הרמוניה (Analogous / Complementary / Triadic / Split-Complementary) — השתמשו ב-framework 3.3.
  4. פתחו coolors.co/generate ובנו פלטה של 5 צבעים: primary, secondary, accent, ו-2 neutrals.
  5. הרחיבו את ה-neutrals ל-5 shades ע"י התאמת lightness (coolors.co/adjust).
  6. הוסיפו 4 semantic colors (success, warning, error, info) — בחרו מ-Tailwind palette או בנו בעצמכם.
  7. שמרו את הפלטה בחשבון Coolors ורשמו את ה-URL.
  8. ייצאו את הפלטה ל-CSS (Export → CSS).

מה צריך להיות בסוף: URL של פלטה ב-Coolors, קובץ CSS עם 5+5+4 = 14 צבעים, וטבלה שמתעדת לכל צבע את תפקידו ואת ה-hex.

תרגיל 2: Contrast Audit ב-WebAIM 20 דקות
  1. לקחו את הפלטה מתרגיל 1.
  2. פתחו webaim.org/resources/contrastchecker.
  3. בדקו את 8 הצמדים הקריטיים מסעיף 3.8 (neutral-900 על neutral-50, white על primary, וכו').
  4. רשמו את ה-contrast ratio לכל אחד בטבלה.
  5. לכל צמד שנכשל ב-AA — גררו את ה-lightness עד שעובר, ועדכנו את הערך בפלטה.
  6. וודאו גם לעבור AAA על body text (7:1) — זה bonus אבל קריטי לקריאות ארוכה.

מה צריך להיות בסוף: טבלה של 8 שורות עם FG/BG/Ratio/WCAG-status, והוכחה שכל הצמדים עוברים AA לפחות.

תרגיל 3: בניית design tokens file מלא 25 דקות
  1. צרו קובץ בשם tokens.css (או blok ב-style tag של index.html).
  2. חלקו לשני tier: "Descriptive" (--blue-50, --blue-500, --neutral-200, וכו') ו-"Functional" (--color-primary, --color-text-primary, --color-background, וכו').
  3. הוסיפו תיעוד (CSS comments) לכל קבוצה.
  4. השתמשו בפלטה שעברה contrast audit מתרגיל 2.
  5. הוסיפו את כל 14 הצבעים + functional aliases (בסך הכל ~25 CSS custom properties).
  6. בדקו שה-file עובד: פתחו HTML פשוט, הוסיפו <div style="background: var(--color-primary); color: var(--color-text-on-primary); padding: 24px">Hello</div> — ובדקו שהצבעים מופיעים.

מה צריך להיות בסוף: קובץ tokens.css מלא של 40-60 שורות, עם תיעוד, מוכן להדבקה לכל פרויקט עתידי.

תרגיל 4: Dark mode מלא עם toggle 30 דקות
  1. הרחיבו את tokens.css מתרגיל 3 עם @media (prefers-color-scheme: dark) שמחליף את ה-functional tokens.
  2. הוסיפו גם :root[data-theme="dark"] { ... } עם אותם ערכים — לתמיכה בtoggle ידני.
  3. וודאו ש-contrast עובר AA גם בdark (רוב ה-neutrals פשוט מתהפכים — 50↔900, 200↔700 — אבל primary/accent יכולים להצריך התאמה).
  4. בנו דף HTML פשוט עם: navbar, hero, 2 cards, footer. השתמשו רק ב-var(--...).
  5. הוסיפו כפתור toggle ב-HTML + JavaScript (15 שורות מסעיף 3.12).
  6. בדקו: לחצו על toggle — הכל חייב להתחלף חלק. סגרו וחזרו — השמירה חייבת להישמר ב-localStorage.
  7. בדקו ב-DevTools → Application → Local Storage שהערך נשמר.

מה צריך להיות בסוף: דף HTML עצמאי עם dark mode תקין, toggle פעיל, ו-persistence ב-localStorage. שתי גרסאות שצריכות לעבור WCAG AA.

תרגיל 5: הרצת פרומפט AI עם הפלטה 30 דקות
  1. קחו את הטמפלייט מסעיף 3.15 ואת הפלטה מתרגיל 1.
  2. מלאו את כל ה-placeholders עם הערכים הקונקרטיים שלכם.
  3. הריצו ב-2 כלי AI שונים (Bolt/Lovable/v0/Cursor) את אותו פרומפט.
  4. השוו את 2 התוצאות. הסתכלו במפרט: האם הצבעים מופיעים כ-CSS custom properties? האם השתמש בהם בלבד או המציא חדשים?
  5. אם AI הוסיף צבעים לא בפלטה — זהו אילו (נפוץ: הוא יוסיף shades נוספים של primary כמו blue-300/blue-400). הוסיפו לפרומפט: "Do not add any shades of primary or accent beyond those defined above."
  6. הריצו שוב. השוו.
  7. בדקו ב-DevTools: לחצו F12, בדקו ב-:root שכל ה-custom properties נמצאות. בדקו על אלמנט ש-background משתמש ב-var(--color-primary) ולא hex מקודד.

מה צריך להיות בסוף: 2 אתרים שנוצרו ב-2 כלי AI שונים עם אותה פלטה, בדיקה ויזואלית של consistency, ופרומפט מעודכן v1.1 עם כללים שהוספתם בעקבות מה שגיליתם.

שגרת עבודה: איך לשמור על פלטה עקבית לאורך פרויקטים
תדירותמה לעשותכמה זמן
בכל פרויקט חדש לפני שכותבים שורת פרומפט — בונים פלטה ב-Coolors, מעבירים ב-Realtime Colors, בודקים ב-WebAIM. מסכמים ב-tokens.css. רק אז מתחילים build. 30-45 דקות
יומי (בזמן פיתוח) בכל סשן פיתוח עם AI — לוודא שהפרומפט כולל את הטמפלייט מ-3.15. בסוף הסשן, לבדוק ב-DevTools שאין hex values מקודדות (search "#" ב-inline styles). 5 דקות בתחילה + 3 בסוף
שבועי לבדוק את הפלטה של הפרויקט על 3 מכשירים שונים (laptop, phone, monitor גדול). בתנאי תאורה שונים (חדר בהיר, חשוך, שמש ישירה). לרשום אם יש בעיות contrast בפועל. 15 דקות
חודשי לפתוח את ה-library האישית של פלטות — לבדוק אם יש שניים שהתחילו להידמות מדי ("עוד כחול-teal"). להוסיף פלטה חדשה משמעותית שונה לקולקציה. 30 דקות
אם אתם עושים רק דבר אחד מהפרק הזה

תגדירו עכשיו את הצבע הראשי שלכם — ובלבד שלא יהיה #2563EB / #3B82F6 / blue-600 / blue-500. בחרו עוד hue או shade. פתחו Coolors ל-30 שניות, לחצו רווח עד שמוצאים צבע שמרגיש לכם "שלכם", העתיקו את ה-hex, שמרו ב-tokens.css כ---color-primary. זהו. השינוי הזה לבד יעביר את האתר שלכם מ"עוד אחד בים של כחול ישראלי" ל"משהו שזוכרים". מ-החלטה של 30 שניות — תמורה שנמשכת לאורך כל חיי המותג.

בדקו את עצמכם — 5 שאלות
  1. מה 5 התפקידים בפלטה מקצועית, וכמה shades צריך לכל אחד? (רמז: primary, secondary, accent, neutrals, semantic)
  2. מה ההבדל בין WCAG AA ל-AAA, ואיזה יעד ראוי לטקסט body בפועל? (רמז: 4.5:1 vs 7:1, AAA לbody AA לשאר)
  3. איך dark mode עובד עם החלפת משתנים בלבד, ולמה זה הופך functional tier חשוב יותר מ-descriptive? (רמז: ה-functional משתנה, ה-descriptive נשאר — components לא צריכים לדעת)
  4. למה "blue-600 של Tailwind" היא בחירה גרועה לסטארטאפ ישראלי ב-2026? (רמז: Tailwind default + דפוס השוק המקומי + קושי להיבדל)
  5. מה חוק 60-30-10 אומר בדיוק, ואיך לבדוק אם אתר שלכם עומד בו? (רמז: 60% neutrals, 30% primary, 10% accent; eyedropper על 10 נקודות)
סיכום הפרק

בפרק הזה יצרתם את הציר הראשון של זהות ויזואלית מקצועית: פלטת צבעים שלמה עם design tokens ו-dark mode. התחלתם מאפס — גלגל צבעים, 4 חוקי הרמוניה, 5 התפקידים של פלטה מקצועית. הכרתם 3 כלים חינמיים שהם הסטנדרט בתעשייה: Coolors ליצירה, Realtime Colors לפריוויו על אתר אמיתי, ו-WebAIM Contrast Checker לוודא שהפלטה עוברת WCAG AA.

הצעד הקריטי היה המעבר מ"פלטה ברשימה" ל"פלטה כ-design tokens ב-CSS custom properties". 2 שכבות: descriptive tier (--blue-500) ו-functional tier (--color-primary). השכבה הפונקציונלית היא המפתח ל-dark mode בחינם: 15 שורות CSS שמחליפות את הערכים הפונקציונליים לפי @media (prefers-color-scheme) או data-theme="dark". ה-components לא משתנים — רק הערכים מאחורי השמות.

למדתם למה "blue-600 של Tailwind" היא מלכודת במיוחד בשוק הישראלי — ואיך לצאת ממנה עם navy מוגדר, monochromatic עם accent, או hue אחר לגמרי. חוק 60-30-10 שנותן לכם דרך מהירה לבדוק אם החלוקה הצבעונית באתר מאוזנת. וכמובן — פרומפט טמפלייט שמזין את הפלטה ל-AI באופן שלא נותן לו לסטות חזרה ל-defaults הגנריים.

יש לכם עכשיו 3 deliverables מוחשיים: (1) פלטת הצבעים האישית שלכם — 14 צבעים, בדוקת WCAG, (2) קובץ tokens.css שמוכן להדבקה בכל פרויקט עתידי, (3) dark mode שפועל עם toggle. שלושתם ביחד הופכים את ה-"מה הצבע שלנו?" משאלה לפתוח לכל פרויקט ל-decision שנעשה פעם אחת ונשמר לתמיד.

הגשר לפרק הבא: בפרק 4 — "טיפוגרפיה שמשנה הכל" — תבנו את הציר השני של זהות ויזואלית: פונטים ו-typographic hierarchy. תראו איך לבחור זוג פונטים (display + body) שעובדים יחד, תגדירו typography scale שלם (h1 עד h6 + body + caption) בתור CSS custom properties דומים לאלה מהפרק הזה, תלמדו להתמודד עם האתגרים הייחודיים של עברית (Heebo, Assistant, Rubik, Noto Sans Hebrew), ותוסיפו עוד בלוק לפרומפט הטמפלייט של AI — עכשיו עם צבעים + טיפוגרפיה.

צ'קליסט — מה צריך להיות מוכן לפני שממשיכים לפרק 4