4 שלב הבסיס

טיפוגרפיה שמשנה הכל — מבחירת פונט ל-hierarchy מקצועי

בפרק הזה תלמדו איך טיפוגרפיה לבד יכולה להפוך אתר ממשעמם למרשים. תבחרו זוג פונטים שעובדים ביחד, תבנו typographic scale שלם עם clamp() ו-CSS custom properties, תתמודדו עם האתגרים הייחודיים של עברית (RTL, mixed content, font availability), ותטענו Google Fonts ו-variable fonts בצורה יעילה שלא פוגעת ב-performance. בסוף יהיה לכם פרומפט מובנה להנחיית AI לייצר טיפוגרפיה מקצועית מהרגע הראשון.

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

לאורך הקורס אתם בונים את היכולת להפוך אתר גנרי שAI בנה לאתר שנראה כמו עבודת סטודיו — ה-capstone בפרק 13. בפרק הקודם (פרק 3) בניתם פלטת צבעים שלמה עם design tokens. בפרק הזה אתם מוסיפים שכבה שנייה: הטיפוגרפיה — אולי ההחלטה הוויזואלית החשובה ביותר באתר. שני הפרקים (3 + 4) ביחד נותנים לכם את שתי השכבות הראשונות של design system: צבע וטקסט. בפרק הבא (פרק 5) נעבור ל-Layout — Grid, Flexbox, ואמנות הרווח הלבן — שבו תראו איך צבע + טיפוגרפיה + spacing הופכים לאתר שלם.

מילון מונחים — 15 מושגים מרכזיים בפרק
מונח (English)תרגוםהגדרה בשורה אחת
Font Pairingזיווג פונטיםהשילוב של 2 פונטים (display + body) שעובדים ביחד — יוצרים קונטרסט בלי להתנגש
Display Fontפונט לכותרותהפונט לכותרות גדולות (H1, H2) — בולט, דקורטיבי, בעל אישיות
Body Fontפונט לטקסטהפונט לגוף הטקסט — נוח לקריאה בגדלים קטנים, ניטרלי ויזואלית
Typographic Hierarchyהיררכיה טיפוגרפיתמערכת של גדלים ומשקלים (H1 גדול וכבד, H2 בינוני, body קטן) שמנחה את העין
Google Fontsגוגל פונטסשירות חינמי של Google עם 1,500+ פונטים שאפשר לטעון דרך @import או link
Variable Fontsפונטים משתניםקובץ פונט יחיד שכולל את כל המשקלים והרוחבים — חוסך bandwidth בצורה משמעותית
font-display: swapהחלפת פונטCSS property שגורם לדפדפן להציג fallback מיד, ואז להחליף לפונט האמיתי כשהוא נטען
FOUTהבהוב טקסטFlash of Unstyled Text — הטקסט מופיע בפונט fallback ואז "קופץ" לפונט האמיתי
FOITטקסט בלתי נראהFlash of Invisible Text — הטקסט בכלל לא מופיע עד שהפונט נטען (הבעיה של font-display: block)
line-heightגובה שורההמרחק האנכי בין שורות טקסט — 1.5 ל-body, 1.1 ל-headings
letter-spacingמרווח אותיותהמרחק האופקי בין אותיות — שלילי לכותרות גדולות, חיובי ל-UPPERCASE
clamp()הגבלת ערךCSS function שמגדירה גודל מינימום/אידאלי/מקסימום — responsive בלי breakpoints
Hebrew Fontsפונטים עברייםפונטים שעוצבו בשביל הא"ב העברי — מצומצמים בכמות אבל איכותיים בעשור האחרון
RTL Typographyטיפוגרפיה ימין-לשמאלטיפוגרפיה בכיוון ימין-לשמאל — כולל אתגרים של alignment, פיסוק, ותוכן מעורב
Mixed Contentתוכן מעורבכשעברית ואנגלית מופיעות באותו משפט — דורש ניהול bidi (bidirectional)
מתחיל 8 דקות חינם מושג

4.1 למה טיפוגרפיה לבד משנה את הכל

יש ניסוי שאני מבקש מכל לומד לעשות לפני הפרק הזה: קחו את האתר הגנרי שבניתם עם AI (מ-Do Now #1 בפרק 1), ותחליפו רק את הפונט. לא את הצבעים, לא את ה-layout, לא את התוכן — רק את הפונט. החליפו את Inter ב-זוג Fraunces (לכותרות) + Inter (לטקסט). תעדכנו את הגדלים: H1 יעבור ל-56px, body ל-17px, line-height ל-1.6.

מה שיקרה אתם תראו בעיניכם. האתר "מתנער" מהרושם של "AI בנה אותי" תוך שינוי של 3 שורות CSS. אותו layout, אותם צבעים, אותו תוכן — ופתאום הוא מרגיש מעוצב. זו עוצמת הטיפוגרפיה: היא המשתנה היחיד שכמעט תמיד הופך אתר ממשעמם למרשים.

למה דווקא טיפוגרפיה?

שלוש סיבות עיקריות:

  1. 95% מהאתר הוא טקסט. הסתכלו על כל אתר — Stripe, Linear, Apple, monday.com. מה אתם רואים יותר מהכל? טקסט. טקסט בגדלים שונים, משקלים שונים, מיקומים שונים. אם הטקסט מעוצב טוב, האתר מעוצב טוב. אם הטקסט גנרי, האתר גנרי.
  2. הפונט הוא האישיות של המותג. Fraunces משדר editorial ומכובד. Space Grotesk משדר startup עכשווי. Playfair Display משדר יוקרה קלאסית. Rubik משדר friendly ונגיש. ברגע שבחרתם פונט, בחרתם אישיות. Inter לבד = אין אישיות (וזה בדיוק הבעיה של AI slop).
  3. היררכיה טיפוגרפית מחליפה 80% מהעיצוב. אתר עם H1 בגודל 56px ו-body בגודל 17px, עם line-height 1.6 ו-spacing נדיב, נראה "מעוצב" גם בלי איורים, בלי תמונות גדולות, בלי אנימציות. היררכיה נכונה היא העיצוב.
התובנה הגדולה

טיפוגרפיה היא השקעה עם התמורה הגבוהה ביותר לדקה בכל הקורס. 15 דקות של הגדרת font pairing + scale + line-height משפרות את האתר יותר מ-3 שעות של שינויי layout ואנימציות. זה המקום להתחיל כשאתם משדרגים אתר גנרי.

למה AI לא עושה את זה לבד

כבר ראינו בפרק 1 ש-AI ברירת-מחדל משתמש ב-Inter לכל דבר. אבל הבעיה עמוקה יותר:

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

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

פתחו את האתר הגנרי שבניתם עם AI. לחצו F12, בחרו את הכותרת הראשית. בדקו ב-Computed tab: מה ה-font-family? מה ה-font-size? מה ה-font-weight? מה ה-line-height? רשמו. עכשיו בדקו את גוף הטקסט. סבירות גבוהה שתמצאו Inter בכל מקום, עם הפרשי גודל קטנים, ו-line-height זהה. רשמו את הערכים — נשווה בסוף הפרק.

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

פתחו 3 אתרים שאתם מכירים: Stripe.com, Linear.app, ו-monday.com. על כל אחד — הפעילו F12 על הכותרת הראשית. בדקו את ה-font-family שלה, ואז של body. רשמו את 3 הזוגות. תראו שלכל אחד יש font pairing ברור — לא פונט יחיד.

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

4.2 סוגי פונטים — serif, sans-serif, display, monospace

לפני שבוחרים פונט, צריך להכיר את 4 המשפחות. כל משפחה משדרת משהו שונה, ומתאימה ל-use-case שונה.

1. Serif — המשפחה הקלאסית

מה זה: פונטים עם "רגליות" קטנות בקצוות האותיות (Times New Roman, Georgia, Playfair Display, Fraunces). מקורם בכתב יד ובדפוס הקלאסי.

מה הם משדרים: editorial, מכובד, מסורתי, אמין. השימוש הקלאסי: עיתונים, ספרים, מגזינים. בעולם ה-web המודרני: landing pages של מותגים שרוצים להיראות "פרימיום" או "מבוגרים" (Apollo, Medium, The New York Times).

מתי להשתמש: כותרות שצריכות לשדר מכובדות — עיתונאי, משפטי, פיננסי, יוקרה, rwb3 editorial. לא מתאים ל-body בגדלים קטנים (האותיות נהרסות מתחת ל-16px).

דוגמאות בולטות: Fraunces (modern serif, variable), Playfair Display (high-contrast, elegant), Lora (soft, readable), Source Serif 4 (professional).

2. Sans-serif — המשפחה המודרנית

מה זה: פונטים ללא רגליות, עם אותיות "נקיות" (Arial, Helvetica, Inter, Roboto, Space Grotesk). Sans = בלי בצרפתית.

מה הם משדרים: modern, neutral, נקי, טכנולוגי. השימוש הקלאסי: UI של אפליקציות, SaaS, startups, כל דבר digital-first.

מתי להשתמש: body text כמעט תמיד (קריא גם בגדלים קטנים), ו-UI components. לכותרות אם ה-tone טכנולוגי/startup.

דוגמאות בולטות: Inter (neutral, דיפולט ל-UI), Space Grotesk (geometric, startup vibes), Manrope (soft, friendly), IBM Plex Sans (corporate modern), Geist (Vercel's house font, 2024-2026 trending).

3. Display — המשפחה הדקורטיבית

מה זה: פונטים בעלי אישיות חזקה שעוצבו ספציפית לכותרות גדולות (Abril Fatface, Rubik Mono One, Bebas Neue, Clash Display). הם לא מיועדים לטקסט רגיל — רק ל-hero או ל-callouts.

מה הם משדרים: אישיות חזקה, תלוי בפונט הספציפי — fashion, creative, bold, playful, retro.

מתי להשתמש: רק ל-hero headline, או לכותרות גדולות במיוחד (80px+). לעולם לא ל-body ולא ל-H3 ומטה.

דוגמאות בולטות: Abril Fatface (editorial fashion), Bebas Neue (condensed bold), Clash Display (modern bold), Rubik Mono One (playful-tech).

4. Monospace — המשפחה הטכנית

מה זה: פונטים שכל אות בהם תופסת את אותו רוחב (JetBrains Mono, IBM Plex Mono, Fira Code, Space Mono). מקורם ממכונות כתיבה.

מה הם משדרים: טכנולוגי, precise, code, terminal. בעולם ה-SaaS המודרני: משתמשים בזה בתור accent font ל-labels, numbers, code snippets, ו-badge text.

מתי להשתמש: קוד, גרסאות, מספרים, labels ב-UI טכנולוגי. לא לטקסט רציף.

דוגמאות בולטות: JetBrains Mono (developer-first), IBM Plex Mono (elegant technical), Fira Code (ligatures), Space Mono (retro-futuristic).

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

פתחו fonts.google.com. בצד שמאל יש סינון — בחרו "Serif". סקרו 5 פונטים. עכשיו החליפו ל-"Sans Serif" וסקרו 5 פונטים. עכשיו "Display". תשימו לב להבדל — Serif מרגיש "ספרותי", Sans-serif "טכני", Display "מייצג". זה ה-תחושה שתעבירו למבקר באתר.

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

4.3 Font Pairing — כללי הזיווג שעובדים

אתר פרימיום כמעט תמיד משתמש ב-2 פונטים: display font לכותרות ו-body font לטקסט. לפעמים מוסיפים גם monospace כ-accent (ל-labels וקוד). אבל אף פעם לא יותר מ-3 פונטים — זו הדרך המהירה לכאוס ויזואלי.

השאלה: איך בוחרים 2 פונטים שעובדים ביחד? יש 4 כללים שמסדרים 95% מההחלטות.

כלל 1: קונטרסט — לא דמיון

שני פונטים שנראים דומים מדי "מתנגשים" — העין לא יודעת אם הם אותו פונט עם bug או שניים שונים. בחרו 2 פונטים ברורים בהבדל. הדרכים הנפוצות:

כלל 2: היררכיה ברורה — תפקיד לכל אחד

לפני שבוחרים, תחליטו מי המלך ומי המשרת:

אל תחליפו ביניהם. display שרץ באופן body יהיה מעייף לקריאה. body ב-H1 יהיה חסר אישיות.

כלל 3: אותה "תקופה"

Fraunces (מודרני-קלאסי) + Space Mono (retro) = קונפליקט סגנוני. Playfair Display (אלגנטי) + Rubik Mono One (playful) = כאוס. בחרו 2 פונטים מאותה אווירה:

כלל 4: קריאות קודם לכל

לא משנה כמה Display יפה, אם ה-body לא קריא, האתר נכשל. בחרו body שהוא:

מסגרת החלטה: Font Pairing Framework

5 זיווגי פונטים מוכחים — העתיקו את הזוג שמתאים ל-tone שלכם:

#ToneDisplay (כותרות)Body (טקסט)Accent (monospace)מתאים ל
1Modern TechSpace Grotesk 700Inter 400-500JetBrains Mono 400SaaS, Developer tools, Startups
2Editorial PremiumFraunces 600Inter 400Blogs, Agency, Thought leadership
3Luxury ClassicPlayfair Display 700Source Sans 3 400Fashion, Hospitality, Jewelry
4Playful FriendlyRubik 700Manrope 400Consumer apps, Gaming, Education
5Corporate ModernIBM Plex Sans 600IBM Plex Sans 400IBM Plex Mono 400Enterprise, B2B, Fintech

הכלל: אם אתם לא בטוחים — לכו עם #1 (Modern Tech). זה הזוג שעובד על 70% מה-SaaS באינטרנט ותמיד נראה מקצועי.

טעות נפוצה: 3+ פונטים שונים באתר

מה קורה: מתחיל בונה אתר ומחליט "רוצה פונט מיוחד לכותרות, פונט אחר ל-body, פונט שלישי ל-buttons, פונט רביעי ל-footer". התוצאה: כאוס ויזואלי שנראה כמו אתר מ-2005.

למה זה מפתה: פונטים חדשים נראים מעניינים — האינסטינקט הוא לנסות כמה שיותר.

מה לעשות במקום: כלל 2-3: לא יותר מ-2 פונטים (display + body), ואם חייבים — 3 (+ monospace כ-accent). אם מרגיש שחסר גיוון, משחקים עם משקלים של אותו פונט (400, 600, 800) ולא מוסיפים פונט חדש.

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

מתוך 5 הזיווגים בטבלה, בחרו אחד שמתאים לפרויקט שלכם (אפילו פרויקט היפותטי). כתבו בלוק הערה לעצמכם: "הפרויקט שלי הוא [X], ה-tone [Y], ולכן אני בוחר זוג פונטים [display: Z + body: W] כי [סיבה]". שמירה של ההחלטה הזו מעבר לשנייה חוסכת 20 דקות של היסוס בעתיד.

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

4.4 Google Fonts — איך לבחור ולטעון נכון

Google Fonts הוא המקור החינמי הטוב ביותר לפונטים ל-web. למעלה מ-1,500 פונטים, תמיכה ב-100+ שפות (כולל עברית), ו-CDN מהיר. אבל יש 3 טעויות נפוצות בטעינה שהורגות performance. נעבור על השיטה הנכונה.

שלב 1: בחירה ב-fonts.google.com

ב-fonts.google.com:

  1. חפשו את הפונט (למשל "Heebo" או "Fraunces")
  2. לחצו על הפונט — תיכנסו לעמוד הפונט
  3. בצד — תסמנו רק את המשקלים שאתם באמת צריכים (לא את כולם!)
  4. בחרו את ה-subsets הרלוונטיים: latin (אנגלית) + hebrew אם רלוונטי
  5. קבלו את קוד ה-<link> או @import

שלב 2: טעינה נכונה ב-HTML

הקוד הנכון לטעינת 2 פונטים, רק המשקלים שצריך, עם preconnect ו-font-display: swap:

<!-- 1. preconnect לפתיחת חיבור מוקדם -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

<!-- 2. טעינת הפונטים — רק המשקלים שצריך -->
<link href="https://fonts.googleapis.com/css2?family=Heebo:wght@400;600;800&family=Assistant:wght@400;500&display=swap" rel="stylesheet">

שימו לב ל-4 דברים חשובים:

  1. 2 שורות preconnect — פותחות חיבור ל-Google לפני הורדת הפונט. חוסכות 100-300ms.
  2. שילוב 2 פונטים בקריאה אחתfamily=Heebo...&family=Assistant... במקום 2 שורות נפרדות. חוסך HTTP request.
  3. רק משקלים ספציפייםwght@400;600;800, לא כל המשקלים. משקל אחד = ~30KB.
  4. display=swap — בסוף ה-URL. חובה (נסביר בסעיף הבא).

שלב 3: שימוש ב-CSS

:root {
  --font-display: 'Heebo', system-ui, sans-serif;
  --font-body: 'Assistant', system-ui, sans-serif;
}

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 800;
}

body, p {
  font-family: var(--font-body);
  font-weight: 400;
}

שימו לב: ה-system-ui, sans-serif בסוף הוא ה-fallback. אם הפונט לא נטען (או לא נטען עדיין), הדפדפן יציג את פונט המערכת. זה מה שמונע טקסט בלתי-נראה.

טעות נפוצה: טעינת כל המשקלים של הפונט

מה קורה: מתחיל מעתיק מ-Google Fonts את ברירת המחדל ללא סינון משקלים, ומקבל family=Heebo:wght@100;200;300;400;500;600;700;800;900. התוצאה: 9 קבצים, ~270KB של פונטים, זמן טעינה כבד.

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

מה לעשות במקום: ברוב האתרים מספיקים 3 משקלים: 400 (regular), 600 (semibold), 800 (bold). זה חוסך ~180KB — זה ההבדל בין LCP של 2.3 שניות ל-3.5 שניות. אם אתם משתמשים רק ב-600 ו-800 לכותרות, אפשר לחסוך עוד יותר.

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

פתחו את fonts.google.com. בחרו את 2 הפונטים מה-Do Now הקודם (הזוג שבחרתם). סננו ל-3 משקלים: 400, 600, 800. ב-display bar למטה — לחצו "Get embed code". העתיקו את שורת ה-<link>. שמרו בקובץ טקסט בצד — נשתמש בזה בתרגיל.

בינוני 8 דקות חינם יישום

4.5 Variable Fonts — פונט אחד, עשרות משקלים

Variable fonts הם טכנולוגיה מ-2018 שב-2026 כבר תומכת ב-97% מהדפדפנים. הרעיון: במקום לטעון 5 קבצים נפרדים (Heebo-Regular, Heebo-Medium, Heebo-Bold, Heebo-ExtraBold, Heebo-Black), טוענים קובץ יחיד שמכיל את כל הטווח של המשקלים. אחר כך אפשר להשתמש בכל משקל — 400, 523, 687, 812 — בלי לטעון קובץ נוסף.

היתרונות

איך זה עובד — טעינה ו-syntax

ב-Google Fonts, רוב הפונטים הפופולריים כבר זמינים כ-variable. Heebo הוא דוגמה — תראו בעמוד שלו אפשרות "Style" עם slider.

טעינת variable font:

<!-- הטווח wght@300..900 טוען את כל הטווח כקובץ אחד -->
<link href="https://fonts.googleapis.com/css2?family=Heebo:wght@300..900&display=swap" rel="stylesheet">

שימוש ב-CSS — כל משקל שרוצים:

h1 { font-weight: 800; }
h2 { font-weight: 700; }
.medium-bold { font-weight: 550; } /* משקל שלא קיים ב-static */

/* שליטה מדויקת יותר עם font-variation-settings */
.hero-title {
  font-variation-settings: 'wght' 825;
}

variable fonts + animation — טריק עוצמתי

מאחר שאפשר להשתמש בכל משקל, אפשר גם להאניים ביניהם:

.button {
  font-weight: 500;
  transition: font-weight 200ms ease-out;
}

.button:hover {
  font-weight: 700; /* מעבר חלק, לא קפיצה */
}

זה נראה מקצועי, עדין, ומגניב — והוא בלתי אפשרי עם static fonts.

רשימת variable fonts מומלצים (Google Fonts)

פונטAxisטווחהערה
Interwght, slnt100-900, 0-10degהכי פופולרי, תמיכה בעברית
Heebowght100-900עברית — variable
Assistantwght200-800עברית — variable
Fraunceswght, opsz, SOFT, WONK100-900Serif, עם 4 axes
Space Groteskwght300-700Sans modern
Manropewght200-800Sans friendly
עשו עכשיו 3 דקות

בדפדפן — פתחו את DevTools (F12). Elements → Styles. מצאו element עם כותרת. שנו את font-weight מ-400 ל-450, 500, 550, 600, 650, 700. אם הפונט variable — תראו את השינוי החלק. אם הוא static — תראו "קפיצה" בכל 100 יחידות. זה ההבדל.

בינוני 6 דקות חינם performance

4.6 font-display: swap — למה זה חובה

יש property אחד ב-CSS שמבדיל בין אתר פרימיום לאתר חובבני בעיני Google, ובעיני כל גולש שגלש במובייל ברשת 4G חלשה: font-display. 3 שורות שצריך להבין.

הבעיה: FOIT ו-FOUT

כשהדפדפן טוען דף, הוא מגלה ב-CSS שיש צורך בפונט חיצוני (Heebo מ-Google). הדפדפן מתחיל להוריד את הפונט — זה לוקח 200-800ms ברשת טובה, ו-2-3 שניות ברשת חלשה במובייל. בינתיים, מה הוא מציג?

יש 5 ערכים אפשריים ל-font-display:

ערךמה קורה עד שהפונט נטעןתוצאה למשתמש
auto (default ישן)ברוב הדפדפנים — טקסט בלתי נראהFOIT — משתמש רואה לבן עד 3 שניות
blockטקסט בלתי נראה 3 שניות, אז fallbackFOIT — אסון, אל תשתמשו
swapfallback מופיע מיד, מוחלף כשהפונט נטעןFOUT — טקסט מהבהב פעם אחת, אבל קריא מיד
fallbackfallback 100ms, אז swap לשנייה, אחרת fallback לנצחפשרה — אם הפונט איטי מאוד, לא יחליף
optionalהפונט ייטען רק אם מהיר מאוד, אחרת fallback לנצחמקצוען — לאתרים עם performance קריטי

הבחירה המעשית: swap

ברוב המקרים — השתמשו ב-swap. הסיבה: טקסט לא נראה הוא יותר גרוע מטקסט שקופץ. אם משתמש לא רואה טקסט ב-2 שניות הראשונות, הוא נוטש. אם הוא רואה טקסט ב-fallback ואז רואה "קפיצה" לפונט האמיתי — זה מרגיש מהיר ומקצועי.

איך ליישם: ב-URL של Google Fonts, הוסיפו &display=swap:

<link href="https://fonts.googleapis.com/css2?family=Heebo:wght@400;700&display=swap" rel="stylesheet">

אם אתם טוענים פונט דרך @font-face (פונט מסחרי שקניתם), הוסיפו את השורה:

@font-face {
  font-family: 'Ploni';
  src: url('/fonts/Ploni.woff2') format('woff2');
  font-display: swap;
}

טריק מתקדם: size-adjust ו-ascent-override

ה-FOUT (ההבהוב) מציק אם ה-fallback font שונה מאוד בגודל מהפונט האמיתי — אז הטקסט "קופץ" בגודל. הפתרון ב-2024-2026: size-adjust ב-@font-face fallback:

@font-face {
  font-family: 'Heebo-Fallback';
  src: local('Arial');
  size-adjust: 97%;  /* לגרום ל-Arial להיראות כמו Heebo בגודל */
  ascent-override: 92%;
  descent-override: 28%;
}

זה טריק מתקדם — לא חובה לרוב האתרים. אבל אם אתם בונים אתר שמתמקד ב-LCP מתחת ל-2 שניות, זה מחזיר 10-15 נקודות ב-Lighthouse.

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

באתר שלכם — בדקו את ה-<link> של Google Fonts. האם יש &display=swap בסוף? אם לא — הוסיפו. אם טוענים פונט דרך @font-face — וודאו שיש font-display: swap בתוך. זה 10 שניות של תיקון שחוסך 500ms-2s לכל משתמש במובייל.

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

4.7 Typographic Hierarchy — מ-display ל-caption

Typographic hierarchy היא ההבחנה הויזואלית בין 6 רמות של טקסט באתר. זו המערכת שמנחה את העין של הקורא: "קודם תסתכל על זה, אחר כך על זה, בסוף על זה". בלי hierarchy — הכל בעל אותה חשיבות, והעין לא יודעת לאן להסתכל.

7 הרמות של typographic scale מקצועי

רמהתפקידDesktopMobileWeightLine-heightLetter-spacing
DisplayHero headline72-96px44-56px8001.0-1.1-0.03em
H1עמוד headline48-64px36-44px7001.1-0.02em
H2Section headline36-48px28-32px7001.2-0.01em
H3תת-כותרת24-32px20-24px6001.30
H4Card title18-20px16-18px6001.40
Bodyפסקה רגילה16-18px15-16px4001.60
Captionתיאור קטן, hint12-14px12-13px400-5001.40.01em

המספרים קודם לכל — Scale Ratio

איך קובעים את ה-ratio בין הרמות? יש שיטות מתמטיות מוכחות:

כלי אונליין: typescale.com — בחרו ratio, תקבלו את כל המספרים.

Typographic scale שלם עם CSS custom properties

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

:root {
  /* Fonts */
  --font-display: 'Fraunces', 'Heebo', Georgia, serif;
  --font-body: 'Inter', 'Assistant', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;

  /* Type scale — Perfect Fourth ratio */
  --text-xs: 0.75rem;      /* 12px - caption */
  --text-sm: 0.875rem;     /* 14px - small body */
  --text-base: 1rem;       /* 16px - body */
  --text-lg: 1.125rem;     /* 18px - large body */
  --text-xl: 1.25rem;      /* 20px - h4 */
  --text-2xl: 1.5rem;      /* 24px - h3 */
  --text-3xl: 2rem;        /* 32px - h2 */
  --text-4xl: 2.5rem;      /* 40px - h1 */
  --text-5xl: 3.5rem;      /* 56px - display mobile */
  --text-6xl: 5rem;        /* 80px - display desktop */

  /* Line-heights */
  --leading-tight: 1.1;    /* headings */
  --leading-snug: 1.3;     /* h3-h4 */
  --leading-normal: 1.6;   /* body */
  --leading-relaxed: 1.75; /* long-form content */

  /* Letter-spacing */
  --tracking-tight: -0.03em;  /* display */
  --tracking-snug: -0.02em;   /* h1-h2 */
  --tracking-normal: 0;       /* body */
  --tracking-wide: 0.025em;   /* UPPERCASE */
}

h1 {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: 700;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-snug);
}

body {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  font-weight: 400;
}

מה שהמערכת הזו נותנת: כל החלטה טיפוגרפית במקום אחד. שינוי של --text-4xl משפיע על כל ה-H1s באתר. זה הבסיס של design tokens לטיפוגרפיה.

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

העתיקו את בלוק ה-CSS Custom Properties למעלה לקובץ חדש. שנו רק את ה---font-display וה---font-body ל-2 הפונטים שבחרתם (מ-Do Now 4). שמרו בשם typography-tokens.css. זה ה-scale שלכם — נשתמש בו בתרגילים.

מתחיל 7 דקות חינם יישום

4.8 Line-height ו-Letter-spacing — החוקים שאף אחד לא מספר

אפשר לבחור את הפונטים הכי יפים בעולם ולהגדיר scale מושלם — אם ה-line-height שגוי, הטקסט ייראה חובבני. זה הפרמטר שעין מאומנת רואה תוך שנייה, ומתחילים לא שמים לב אליו בכלל.

Line-height — הכלל המרכזי

Line-height (רווח בין שורות) תלוי בגודל הטקסט:

סוג טקסטLine-heightלמה
Display (72px+)1.0-1.1אותיות גדולות — מרווח קטן יוצר density דרמטי
H1-H2 (32-56px)1.1-1.2עדיין כותרות — ה-impact מהקומפקטיות
H3-H4 (18-28px)1.3-1.4בגבול בין כותרת לטקסט
Body (14-18px)1.5-1.7קריאות של פסקאות ארוכות
Long-form (blog, article)1.7-1.8בטקסט ארוך, יותר מרווח = פחות עייפות
Code blocks1.4-1.5טקסט monospace צריך פחות רווח

הכלל המסכם: כמה שהטקסט גדול יותר, line-height קטן יותר. כמה שהטקסט קטן יותר, line-height גדול יותר.

Letter-spacing — מתי להרחיב, מתי לצמצם

Letter-spacing (tracking) הוא המרחק האופקי בין אותיות. יש 3 חוקים:

  1. כותרות גדולות (32px+) → letter-spacing שלילי (-0.02em עד -0.04em). למה: בגדלים גדולים, האותיות "מפוזרות" ונראות רחוקות. סגירה קלה יוצרת compactness מקצועית. זו אחת הנגיעות החזקות ביותר של מעצבים מקצועיים.
  2. Body (14-18px) → letter-spacing 0. אף פעם אל תשנו את ברירת המחדל של body. זה מקלקל קריאות.
  3. UPPERCASE → letter-spacing חיובי (0.05em עד 0.1em). למה: אותיות גדולות באנגלית צפופות מטבען — רווח קל מציל אותן.

דוגמה מלאה

.hero-title {
  font-size: 5rem;          /* 80px */
  line-height: 1.05;
  letter-spacing: -0.03em;  /* שלילי — compactness */
  font-weight: 800;
}

.body-paragraph {
  font-size: 1rem;          /* 16px */
  line-height: 1.6;
  letter-spacing: 0;        /* default */
}

.label-uppercase {
  font-size: 0.75rem;       /* 12px */
  line-height: 1.2;
  letter-spacing: 0.08em;   /* חיובי — UPPERCASE needs air */
  text-transform: uppercase;
  font-weight: 600;
}
טעות נפוצה: line-height default לכל דבר

מה קורה: מפתח לא מגדיר line-height. הדפדפן משתמש ב-normal — ~1.2 — לכל הטקסטים. התוצאה: body טקסט צפוף מדי (קשה לקריאה), headings מרווחים מדי (חסרי impact).

למה זה מפתה: לא חושבים על line-height בכלל — הוא "פועל".

מה לעשות במקום: הגדירו מפורשות line-height לכל רמה: headings 1.1-1.2, body 1.5-1.7. מי שמדלג על זה — האתר שלו נראה "Word 95" בעיני מעצב מקצועי. זה ההבדל הכי מובהק בין אתר חובבני לאתר מעוצב.

בינוני 8 דקות חינם יישום

4.9 clamp() — גדלים responsive בלי breakpoints

עד 2020, הדרך להתמודד עם גדלי טקסט שונים במובייל/desktop היתה media queries: כותבים h1 { font-size: 32px; }, ואז @media (min-width: 768px) { h1 { font-size: 48px; } }, ואז עוד breakpoint, ועוד. זה מסורבל ולא תמיד עובד טוב בין מסכים.

ב-2021 הגיע clamp() — ופתר את הבעיה הזו מהיסוד.

מה זה clamp()

clamp() היא פונקציית CSS שמקבלת 3 ערכים:

font-size: clamp(MIN, IDEAL, MAX);

דוגמה פרקטית:

h1 {
  font-size: clamp(2rem, 5vw + 1rem, 4.5rem);
}

מה שיקרה:

Responsive type scale שלם — מוכן להעתיק-להדביק

הנה ה-scale שאני מציע לכל פרויקט חדש. הוא משתמש ב-clamp() לכל רמה, ומונע את הצורך ב-breakpoints לטיפוגרפיה:

:root {
  /* Display — hero-size */
  --text-display: clamp(2.5rem, 5vw + 2rem, 6rem);

  /* Headings */
  --text-h1: clamp(2rem, 3vw + 1.5rem, 4rem);
  --text-h2: clamp(1.75rem, 2.5vw + 1rem, 3rem);
  --text-h3: clamp(1.375rem, 1.5vw + 0.75rem, 2rem);
  --text-h4: clamp(1.125rem, 1vw + 0.75rem, 1.5rem);

  /* Body */
  --text-lg: clamp(1.0625rem, 0.5vw + 0.9rem, 1.25rem);
  --text-base: clamp(1rem, 0.3vw + 0.9rem, 1.125rem);
  --text-sm: clamp(0.875rem, 0.2vw + 0.8rem, 1rem);

  /* Caption */
  --text-xs: clamp(0.75rem, 0.1vw + 0.7rem, 0.875rem);
}

.hero h1 { font-size: var(--text-display); }
h1 { font-size: var(--text-h1); }
h2 { font-size: var(--text-h2); }
h3 { font-size: var(--text-h3); }
h4 { font-size: var(--text-h4); }
body { font-size: var(--text-base); }
.caption { font-size: var(--text-xs); }

זה החלק היפה: קובץ אחד, 10 שורות — ו-0 media queries לטיפוגרפיה. הטקסט יתאים בצורה חלקה לכל מסך מ-320px עד 2560px.

חישוב ה-IDEAL value

איך בוחרים את הערך האמצעי? יש סוד: Utopia.fyi calculator. אתם נותנים לו את הגודל שאתם רוצים ב-mobile ו-desktop, והוא מחשב את ה-clamp המדויק. URL: utopia.fyi/type/calculator.

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

פתחו את utopia.fyi/type/calculator. הזינו: Min viewport 360, Max viewport 1440, Min font-size 16, Max font-size 18. ראו את ה-clamp() שנוצר. עכשיו שנו ל-Min 32, Max 56 — זה ה-H1. העתיקו 4 ערכי clamp (display, h1, h2, body) לקובץ typography-tokens.css שלכם. תרגישו כמה זה חלק מול media queries.

מתחיל 15 דקות חינם עברית critical

4.10 פונטים עבריים — 5 ההמלצות המלאות

זה הסעיף החשוב ביותר בפרק למי שבונה אתרים בעברית. העולם של פונטים עבריים מצומצם מאוד לעומת אנגלית (10s של פונטים איכותיים vs 1,500+ באנגלית), אבל בעשור האחרון — בזכות עבודה מרשימה של מעצבים ישראליים — יש לנו 5 פונטים שהם ברמת עולם ומתאימים לכל use-case.

לכל פונט נעבור על: יתרונות, חסרונות, best use-case, איפה להשיג, ואיך לטעון.

1. Heebo — הגרסה העברית ה-universal

על הפונט: Heebo הוא פונט sans-serif שנועד להיות "Roboto בעברית". מעוצב על ידי Oded Ezer Type Foundry. Variable font עם טווח 100-900.

2. Assistant — נקי, מודרני, עדכני

על הפונט: מעוצב על ידי Barak Chamo. פונט geometric sans-serif שנתפס כיום כ-"הפונט הרציני" של עברית מודרנית. Variable font.

3. Rubik — ידידותי, עגול, playful

על הפונט: מעוצב על ידי Meir Sadan ו-Cyreal. פונט sans-serif עם פינות מעוגלות. משתמשים בו אתרים רבים בישראל (מ-Waze ועד אתרי סטארטאפים).

4. Secular One — Display חזק לכותרות בלבד

על הפונט: פונט display עברי בעל weight יחיד (800). מעוצב על ידי Oren Watkins. "פונט הפוסטר" של עברית.

5. Noto Sans Hebrew — ה-fallback הבטוח

על הפונט: חלק מפרויקט Noto של Google — פונט שנועד לכסות את כל שפות העולם. Variable font.

פונטים עבריים פרימיום (בתשלום) — אם יש תקציב

אם יש לכם תקציב (50-500 ₪), אפשר לצאת מהסט של 5 ה-Google Fonts ולקבל משהו באמת יחיד:

מקומות לרכישה: HebrewFonts.co.il, Fonts.co.il, ו-Yanone (לפונטים בינלאומיים עם תמיכה בעברית).

מסגרת החלטה: Hebrew Font Decision Matrix
סוג פרויקטDisplay (H1)BodyAccent
SaaS / StartupSecular One 800Heebo 400Heebo 600
Enterprise / B2BAssistant 700Assistant 400Heebo 500
Consumer AppRubik 800Rubik 400
Blog / EditorialHeebo 800Assistant 400
E-commerceHeebo 700Heebo 400Assistant 500
ממשלה / מוסדNoto Sans Hebrew 700Noto Sans Hebrew 400
Agency / PortfolioPloni (פרימיום) / Secular OneAssistant 400

הכלל המסכם: אם אתם מהססים — Secular One (Display) + Heebo (Body). זה הזוג הבטוח שתמיד נראה מקצועי בעברית. גרסה שנייה בטוחה: Assistant (Display + Body) במשקלים שונים.

5 זיווגי פונטים עברית + אנגלית מוכחים

הרוב מהאתרים בישראל הם דו-לשוניים (עברית + מונחים באנגלית). הנה 5 זיווגים שעובדים:

#עברית Displayאנגלית Displayעברית Bodyאנגלית Bodyאווירה
1Heebo 800Inter 800Heebo 400Inter 400Safe modern — לרוב הפרויקטים
2Assistant 700IBM Plex Sans 700Assistant 400IBM Plex Sans 400Tech SaaS מקצועי
3Secular One 800Space Grotesk 700Heebo 400Inter 400Editorial startup
4Rubik 800Rubik 800Rubik 400Rubik 400Friendly consumer (Rubik אחד לשתי השפות!)
5Ploni (פרימיום)Fraunces 700Assistant 400Inter 400Premium luxury

דוגמה ליישום של זיווג #1 — הגישה הנכונה:

:root {
  /* הגדרה אחת שמטפלת בשתי השפות */
  --font-display: 'Inter', 'Heebo', system-ui, sans-serif;
  --font-body: 'Inter', 'Assistant', system-ui, sans-serif;
}

/* הדפדפן אוטומטית בוחר את הפונט שמתאים לשפת האות */
/* עברית → Heebo/Assistant, אנגלית → Inter */
h1 { font-family: var(--font-display); }
body { font-family: var(--font-body); }

הסוד: הדפדפן סורק מימין לשמאל את רשימת הפונטים בכל font-family. כשהוא מגיע לתו שלא קיים בפונט הראשון (למשל עברית ב-Inter אנגלי-בלבד), הוא מדלג לפונט הבא. זה "בחירה אוטומטית".

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

חזרו לאתר שאתם בונים. אם יש בו תוכן בעברית — בדקו ב-DevTools איזה פונט משמש לעברית (F12 → בחרו טקסט עברי → Computed → font-family). אם זה Rubik — תשקלו להחליף. אם זה system font (Arial / David) — דחוף להוסיף פונט עברי אמיתי. בחרו זוג #1 מהטבלה (Heebo + Inter) והחליפו.

מתחיל 8 דקות חינם עברית

4.11 RTL Typography — האתגרים הייחודיים

עברית נכתבת מימין לשמאל (RTL — Right-To-Left). האתגר הוא לא רק "הפוך הכל" — יש סט שלם של פרטים טיפוגרפיים שצריך לטפל בהם.

האתגרים המובהקים

1. direction: rtl ו-dir="rtl"

הכרחי מ-HTML הראשון:

<!-- בשורש הדף -->
<html lang="he" dir="rtl">

/* או דרך CSS */
:root { direction: rtl; }

זה גורם לטקסט לזרום מימין לשמאל, ול-layouts לתמוך במירור אוטומטי.

2. פיסוק שמשתנה

סימני פיסוק בעברית מופיעים בסוף שמאלי של משפט (שהוא "אחרי" בעברית), לא בצד ימין. הדפדפן עושה את זה אוטומטית בזכות Unicode BiDi algorithm — אבל לפעמים יש שגיאות. בדקו בדפדפן:

3. גרשיים

בעברית יש שימוש כבד בגרשיים (למשל "צה"ל", "ארה"ב"). בדקו שהפונט מרנדר אותם נכון — לפעמים הם "נופלים" לגובה לא נכון.

4. Alignment

בעברית, ברירת המחדל היא text-align: right (כי זו "תחילת" הטקסט). אבל ל-hero בכל זאת תרצו לפעמים text-align: center. אל תשכחו להגדיר מפורשות.

5. Justify — זהירות

text-align: justify בעברית יוצר לפעמים "נהרות" לבנים (רווחים גדולים בין מילים). אם מוכרחים — השתמשו ב-hyphens: auto או עדיף להישאר עם text-align: right.

RTL Typography Checklist

#מה לבדוקערך מומלץ
1<html dir="rtl" lang="he">חובה
2פונט עברי כ-fallback ב-font-familyHeebo / Assistant / Noto Sans Hebrew
3Line-height ל-body עברי1.6-1.75 (עברית צריכה קצת יותר מאנגלית)
4Letter-spacing בעברית0 (לעולם לא שלילי — עברית רגישה)
5Text-alignright ל-body, center ל-hero
6גרשיים ומרכאותלבדוק רינדור של " " ( )
7Justifyלהימנע (או hyphens: auto)
8Numbers באמצע טקסטנבדק בסעיף הבא
בינוני 8 דקות חינם עברית

4.12 Mixed Content — עברית עם אנגלית באותו משפט

אחד האתגרים הגדולים של אתרים עבריים ב-2026: המשפטים שלנו מלאים באנגלית. "השתמש ב-React לבניית האתר", "קנה עכשיו ב-₪99", "הצטרף ל-newsletter". איך מטפלים בזה נכון?

הבעיה הטכנית

Unicode Bidirectional Algorithm (BiDi) מטפל אוטומטית ברוב המקרים. אבל יש 3 מצבים שבהם מופיעה שגיאה:

  1. מספרים באמצע משפט עברי — לפעמים נכתבים מימין לשמאל במקום משמאל לימין.
  2. סוגריים שמכילים אנגלית — לפעמים "עפים" למקום הלא נכון.
  3. מקפים וסימני פיסוק בין עברית לאנגלית — לפעמים "נתקעים" במקום לא נכון.

דוגמה בעייתית מהחיים

הטקסט הבא נכון סמנטית: "השתמש ב-React (גרסה 18.2.0) לבניית האתר". אבל בדפדפן, ללא טיפול:

הפתרונות

1. unicode-bidi: plaintext

ב-CSS, על אלמנטים שמכילים תוכן מעורב:

p, h1, h2, h3, li {
  unicode-bidi: plaintext;
}

זה אומר לדפדפן: "תסמוך על ה-BiDi algorithm, תן לו לעבוד". פותר 90% מהבעיות.

2. &lrm; ו-&rlm; — Unicode markers

במקרים נדירים שבהם BiDi מתבלבל, אפשר להוסיף markers ב-HTML:

דוגמה: קנה עכשיו ב-&lrm;$99.99 — ה-mark מבטיח שהמחיר יופיע נכון משמאל לימין.

3. פונט עם תמיכה בשני הכיוונים

Inter (בגרסה האחרונה), Heebo, ו-Assistant — כולם כוללים אותיות אנגליות ועבריות. הפונט יודע לרנדר שניהם באותה רמה. לעומת זאת, פונט "עברי-בלבד" או "אנגלי-בלבד" ידרוש החלפה — ותקבלו הבדלי גודל בין השפות.

הכלל המסכם לתוכן מעורב

  1. בחרו פונט שתומך בשתי השפות (Heebo, Assistant, Noto Sans Hebrew)
  2. הוסיפו unicode-bidi: plaintext על אלמנטים עם טקסט
  3. השתמשו ב-&lrm; כשיש מחירים/מספרים/URLs בתוך משפט עברי
  4. בדקו בדפדפן אמיתי, לא רק ב-DevTools (לפעמים יש הבדלים ברינדור)
מסגרת החלטה: Type Scale Construction Framework

איך לבנות typographic scale מאפס — 5 שלבים:

שלבהחלטהאיך מחליטים
1Body size16px הוא הסטנדרט. 17-18px לאתרי long-form. לא לרדת מ-15px.
2Scale ratio1.25x לרוב, 1.333x לאתרים "מעוצבים", 1.2x ל-editorial
3Scale טבלהחישוב: base × ratio^n. כלי: typescale.com
4Line-heightsHeadings 1.1-1.2, Body 1.5-1.7, Long-form 1.7-1.8
5Letter-spacingDisplay -0.03em, H1 -0.02em, body 0, UPPERCASE +0.05em
בינוני 7 דקות חינם performance

4.13 Performance — לטעון רק מה שצריך

פונטים הם הפקטור #1 שהורג LCP (Largest Contentful Paint) באתרים. 4 פונטים × 5 משקלים × 30KB = 600KB של פונטים. ברשת 4G חלשה — 2-3 שניות של ייבוא. הנה איך להפחית את זה ל-80KB.

5 עקרונות ה-performance של פונטים

1. רק המשקלים שצריך

כבר דיברנו על זה. ברוב האתרים — 3 משקלים מספיקים (400, 600, 800). לפעמים אפילו 2 (400 + 700).

2. רק ה-subsets שצריך

ב-Google Fonts, אפשר לציין subsets — תמיכה בשפות ספציפיות. אם האתר בעברית בלבד עם קצת אנגלית:

<link href="https://fonts.googleapis.com/css2?family=Heebo:wght@400;700&subset=hebrew,latin&display=swap" rel="stylesheet">

זה חוסך ~40% על הפונט (כי לא טוענים cyrillic, arabic, japanese וכו' שלא צריך).

3. Subsetting מתקדם — רק התווים שצריך

אם יש לכם טקסט ספציפי (למשל לוגו או heading קבוע), אפשר לטעון רק את התווים שצריך:

<!-- טוען רק את התווים A-Z a-z + חלק מעברית -->
<link href="https://fonts.googleapis.com/css2?family=Heebo&text=נויגנחתאבדהוזעמקלכטרפצש&display=swap">

זה מקטין פונט מ-80KB ל-8KB. קיצוני — משמש רק ל-hero אקסטרמי.

4. preconnect + dns-prefetch

לפני טעינת הפונטים, תגידו לדפדפן "אני אטען מ-fonts.googleapis.com":

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

זה חוסך 100-300ms של DNS lookup.

5. Preload לפונט הקריטי

לפונט ה-hero (H1) — תגידו לדפדפן לטעון אותו מוקדם, עם עדיפות גבוהה:

<link rel="preload" href="https://fonts.gstatic.com/s/heebo/v26/NGS6v5_NC0k9P_v6ZUCbLRAHxK1E.woff2" as="font" type="font/woff2" crossorigin>

זה טריק מתקדם — משתמשים בו רק כשה-LCP חשוב מאוד.

Checklist לטעינת פונטים מאופטמת

בינוני 12 דקות חינם תרגול

4.14 Typography Spec Template — פרומפט ל-AI

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

Typography Spec Template v1.0 (English for AI tools)

TYPOGRAPHY SPEC — Use these exactly, do not substitute:

Font Pairing:
- Display font (H1, H2, hero): [FRAUNCES 700 / SPACE GROTESK 700 / PLAYFAIR DISPLAY 700]
- Body font (paragraphs, UI): [INTER 400 / SOURCE SANS 3 400 / MANROPE 400]
- Accent font (code, labels): [JETBRAINS MONO 400 / IBM PLEX MONO 400] — optional
- Hebrew Display: [HEEBO 800 / SECULAR ONE / ASSISTANT 700]
- Hebrew Body: [HEEBO 400 / ASSISTANT 400]

Loading (MUST):
- Use Google Fonts with font-display: swap
- Add preconnect to fonts.googleapis.com and fonts.gstatic.com
- Load ONLY weights 400, 600, 800 (not all weights)
- Use subset=latin,hebrew if site is Hebrew

Type Scale (use CSS custom properties):
- --text-display: clamp(2.5rem, 5vw + 2rem, 6rem)
- --text-h1: clamp(2rem, 3vw + 1.5rem, 4rem)
- --text-h2: clamp(1.75rem, 2.5vw + 1rem, 3rem)
- --text-h3: clamp(1.375rem, 1.5vw + 0.75rem, 2rem)
- --text-h4: clamp(1.125rem, 1vw + 0.75rem, 1.5rem)
- --text-base: clamp(1rem, 0.3vw + 0.9rem, 1.125rem)
- --text-xs: clamp(0.75rem, 0.1vw + 0.7rem, 0.875rem)

Line-heights:
- Headings (H1-H2): 1.1
- Subheadings (H3-H4): 1.3
- Body paragraphs: 1.6
- Long-form content: 1.75

Letter-spacing:
- Display (72px+): -0.03em
- H1-H2 (32-56px): -0.02em
- H3-H4, body: 0
- UPPERCASE labels: +0.05em

DO NOT (anti-patterns):
- Do NOT use Inter alone for everything
- Do NOT load all font weights — only 400, 600, 800
- Do NOT use default line-height (1.5) for headings — use 1.1
- Do NOT use 3+ different fonts — maximum 2 (display + body)
- Do NOT forget font-display: swap

Hebrew/RTL specific (if Hebrew content):
- Set dir="rtl" and lang="he" on html element
- Hebrew body line-height: 1.6-1.75 (slightly more than English)
- Hebrew letter-spacing: 0 always (never negative — Hebrew is sensitive)
- Add unicode-bidi: plaintext on paragraphs with mixed content
- Font-family must list Hebrew font as fallback for English-first fonts

QUALITY GATE:
Before delivery, audit: (1) Is font-display: swap present? (2) Are only 2 fonts used? (3) Are only 2-3 weights loaded? (4) Do headings have line-height 1.1-1.2? (5) Does the body have line-height 1.5-1.7? (6) For Hebrew: is the Hebrew font listed in font-family stack?

גרסת הפרומפט בעברית + התאמה לפרויקט

לפני השימוש — החליפו את הערכים בסוגריים עם הבחירה שלכם. 4 השלבים:

  1. Font pairing: בחרו 1 מ-5 הזיווגים מטבלת Font Pairing Framework (סעיף 4.3), או מ-5 הזיווגים העבריים-אנגליים (סעיף 4.10).
  2. Scale ratio: אם אתם לא יודעים — השאירו את ערכי ה-clamp כמו שהם (Perfect Fourth ratio). אם אתם רוצים ממוזער — שנו ל-Minor Third.
  3. Hebrew section: מחקו אם האתר לא בעברית. השאירו אם יש תוכן עברי.
  4. Quality gate: תמיד להשאיר — זה מה שמאלץ את ה-AI לבדוק את עצמו.

איפה לשלב את הפרומפט הזה

קחו את ה-Anti-AI Starter Prompt מפרק 1, והחליפו את סעיף ה-"Fonts" שבו בפרומפט הטיפוגרפיה המלא מכאן. התוצאה: פרומפט שלם עם צבעים (פרק 3) + טיפוגרפיה (פרק 4) + anti-AI (פרק 1), שזה כבר 70% מה-design brief של אתר פרימיום.

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

העתיקו את ה-Typography Spec Template. התאימו אותו לפרויקט שלכם: בחרו zoo פונטים ספציפי, הוסיפו/הסירו את ה-Hebrew section לפי הצורך. שמרו בקובץ בצד. זה הפרומפט האישי שלכם — תשתמשו בו בתרגיל האחרון.

תרגיל 1: בחירת זוג פונטים לפרויקט אישי 20 דקות
  1. בחרו פרויקט אישי (אתר קיים או פרויקט היפותטי — "מאפייה בתל אביב", "סטארטאפ AI", "portfolio של מעצב")
  2. הגדירו במשפט: "ה-tone של הפרויקט הוא ___" (editorial / modern-tech / luxury / playful / corporate)
  3. מתוך Font Pairing Framework (5 זיווגים) — בחרו את הזיווג המתאים. נמקו במשפט.
  4. אם הפרויקט כולל תוכן עברי — מתוך Hebrew Font Decision Matrix, בחרו את הזיווג העברי.
  5. מתוך 5 זיווגי עברית+אנגלית — בחרו את הזוג הכולל.
  6. פתחו fonts.google.com, הקלידו טקסט עברי ואנגלי לדוגמה, וראו את הזיווג בפועל.

מה צריך להיות בסוף: מסמך של חצי עמוד שכולל: (א) שם פרויקט, (ב) tone, (ג) זיווג פונטים מלא (display + body + Hebrew display + Hebrew body), (ד) נימוק של 2 משפטים, (ה) screenshot מ-Google Fonts specimen.

תרגיל 2: בניית typographic scale שלם 25 דקות
  1. פתחו את utopia.fyi calculator. הזינו: Min viewport 360, Max viewport 1440.
  2. הזינו Min body 16, Max body 18, ratio Perfect Fourth (1.333).
  3. העתיקו את 7 ה-clamp() שנוצרו (display, h1, h2, h3, h4, base, small).
  4. הדביקו בתוך בלוק :root { } כ-CSS custom properties (--text-display, --text-h1 וכו').
  5. הוסיפו line-height tokens (headings 1.1, body 1.6) ו-letter-spacing tokens (display -0.03em, body 0).
  6. החילו על אלמנטים: h1, h2, h3, body, .caption.
  7. פתחו בדפדפן, וחללו לראות את ההתאמה עם window resize.

מה צריך להיות בסוף: קובץ typography-tokens.css עם scale מלא + יישום על אלמנטים, וסרטון/סקרינשוט של הטקסט מתאים את עצמו לגודלי חלונות שונים.

תרגיל 3: טעינת Google Fonts נכונה 20 דקות
  1. קחו את 2 הפונטים מתרגיל 1. ב-fonts.google.com — בחרו רק 3 משקלים (400, 600, 800).
  2. אם יש תוכן עברי — הוסיפו &subset=hebrew,latin.
  3. וודאו שהוספתם &display=swap בסוף.
  4. הוסיפו ל-<head> של ה-HTML:
    • 2 שורות preconnect
    • שורת ה-<link> של הפונטים
  5. פתחו DevTools → Network → Disable cache → Refresh. מדדו את זמן הורדת הפונטים.
  6. הריצו Lighthouse. בדקו ש-LCP < 2.5s וש"Ensure text remains visible during webfont load" הוא green.
  7. השוו לאתר קיים בלי האופטימיזציות — תראו את ההבדל ב-Lighthouse score.

מה צריך להיות בסוף: 2 Lighthouse reports (לפני/אחרי), רשימת השינויים שעשיתם, ובלוק HTML מוכן להעתקה לפרויקטים עתידיים.

תרגיל 4: כתיבת Typography Spec לפרויקט AI 30 דקות
  1. קחו את Typography Spec Template מהפרק. התאימו אישית לפרויקט שלכם (מתרגיל 1).
  2. שילבו אותו עם Anti-AI Starter Prompt מפרק 1 ועם פלטת הצבעים מפרק 3. התוצאה: פרומפט מלא.
  3. הריצו את הפרומפט בכלי AI (Bolt / Lovable / v0 / Claude).
  4. שמרו screenshot של התוצאה.
  5. הריצו בדיקה: (א) האם font-display: swap נטען? (ב) האם יש 2 פונטים בלבד? (ג) האם יש רק 2-3 משקלים? (ד) האם line-height על headings 1.1-1.2? (ה) האם יש clamp() על font-sizes? (ו) אם תוכן עברי — האם הפונט העברי מופיע ב-font-family?
  6. השוו לתוצאה של Do Now #1 (האתר הגנרי). כתבו 5 הבדלים טיפוגרפיים בולטים.
  7. אם שאלה אחת לא עברה — זהו את החלק בפרומפט שצריך חיזוק והוסיפו.

מה צריך להיות בסוף: 2 screenshots (לפני/אחרי), רשימת 5 הבדלים, 6 תשובות לשאלות האודיט, ופרומפט מעודכן v1.1 אישי שלכם.

שגרת עבודה: חידוד העין הטיפוגרפית
תדירותמה לעשותכמה זמן
יומי גלשו ל-3 אתרים (חדשות, SaaS, חנות). על כל אחד — F12 על הכותרת ועל body. רשמו את font-family, size, weight, line-height. נסו לנחש מה Ratio ה-scale. 5 דקות. 5 דקות
שבועי בחרו אתר שבניתם עם AI בשבוע האחרון. הריצו את Typography Audit (6 שאלות מהתרגיל 4). תקנו את 3 הנקודות הגרועות ביותר. 20 דקות
חודשי עדכנו את Typography Spec Template האישי שלכם. הוסיפו zoo פונטים חדש שגיליתם. בחנו על 2 פרויקטים שונים. 30 דקות
אם אתם עושים רק דבר אחד מהפרק הזה

הוסיפו ל-CSS של הפרויקט שלכם 2 שורות בלבד: h1, h2, h3 { line-height: 1.1; letter-spacing: -0.02em; } ו-body { line-height: 1.6; }. זה המינימום המוחלט שיהפוך אתר "בסדר" לאתר "מעוצב". זה 10 שניות של עבודה שנראה יותר השפעה על "professional feel" מאשר 3 שעות של בחירת פונטים. אם תיישמו את זה בכל פרויקט מעכשיו — זכיתם.

בדקו את עצמכם — 5 שאלות
  1. למה כלל 2-3 פונטים ולא יותר? ומה עושים כשמרגישים שחסר גיוון? (רמז: משקלים)
  2. מה ההבדל בין line-height של headings ל-body, ולמה? (רמז: 1.1 vs 1.6 — גודל הטקסט)
  3. למה font-display: swap קריטי? מה הבעיה של FOIT? (רמז: טקסט בלתי נראה vs FOUT)
  4. איך clamp() מחליף media queries לטיפוגרפיה? מה 3 הערכים שלו? (רמז: MIN, IDEAL, MAX)
  5. למה בעברית letter-spacing תמיד 0 ולא שלילי כמו באנגלית? (רמז: מבנה האותיות שונה; עברית רגישה ל-tracking)
סיכום הפרק

בפרק הזה בניתם את אחת היכולות העם-ההשפעה הגבוהה ביותר של Vibe Coder: הבנה מעמיקה של טיפוגרפיה מקצועית. עברתם על 4 משפחות הפונטים (serif, sans-serif, display, monospace), 5 זיווגי font pairing מוכחים, בניית typographic scale שלם עם clamp(), וניהול מלא של פונטים עבריים עם 5 ההמלצות המפורטות (Heebo, Assistant, Rubik, Secular One, Noto Sans Hebrew).

התובנה המרכזית: טיפוגרפיה היא המשתנה עם התמורה הגבוהה ביותר. 15 דקות של font pairing + scale + line-height נכון משפרות את האתר יותר מ-3 שעות של שינויי layout. לכן היא אחת השכבות הראשונות של design system — מיד אחרי צבע.

יש לכם עכשיו 3 deliverables מוחשיים: (1) זוג פונטים מותאם לפרויקט האישי עם נימוק מפורט, (2) typographic scale שלם עם 7 רמות ב-CSS custom properties עם clamp() responsive, ו-(3) Typography Spec Template באנגלית + עברית שתוכלו להעתיק לתחילת כל פרויקט AI.

למדתם גם איך להימנע מ-3 טעויות קטסטרופליות: טעינת כל המשקלים (הורגת performance), שימוש ב-3+ פונטים (כאוס ויזואלי), והזנחה של line-height (הסימן המובהק ביותר של אתר חובבני בעיני מעצב).

הגשר לפרק הבא: בפרק 4 למדתם איך להפוך טקסט ממשעמם למרשים. בפרק 5 — "Layout Mastery — Grid, Flexbox ואמנות הרווח הלבן" — תלמדו איך להפוך המבנה של האתר ממשעמם למרשים. תכירו את ההבדל בין CSS Grid ל-Flexbox, תבנו bento grid בסגנון Apple, תשלטו ב-8px grid system, ותלמדו איך whitespace הוא כלי עיצוב ולא "מקום ריק". צבע (פרק 3) + טיפוגרפיה (פרק 4) + layout (פרק 5) = השלישייה שקובעת 80% מהפרימיום של האתר.

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