חדש ב-Chrome 118

דברים שעליך לדעת:

קוראים לי Adriana Jara. אנחנו מזמינים אותך לבחון מה חדש אצל המפתחים בגרסה 118 של Chrome.

כלל @scope של CSS.

כלל at-rule‏ @scope מאפשר למפתחים להגדיר את היקף הכללים של הסגנון לפי עץ היקף נתון, ואת רכיבי הסגנון בהתאם לקרבה לעץ ההיקף הזה.

ב-@scope אפשר לשנות סגנונות על סמך קירבה, בניגוד לסגנונות ה-CSS הרגילים שמיושמים בהסתמך רק על סדר המקורות וספציפיות. בדוגמה הבאה יש שני נושאים.

<div class="lightpink-theme">
  <a href="#">I'm lightpink!</a>
  <div class="pink-theme">
    <a href="#">Different pink!</a>
  </div>
</div>

ללא היקף, הסגנון שיוחל הוא הסגנון האחרון שהוצהר.

ללא היקף הרשאות
.pink-theme a { color: hotpink; }
.lightpink-theme a { color: lightpink; }

שני קישורים, הראשון כתוב בו &#39;אני ורוד בהיר!&#39; והשני כתוב בו &#39;ורוד שונה&#39;. שני הקישורים הם למעשה בצבע ורוד בהיר, מתחת לטקסט של הקישורים כתוב בסגנון הצהרת סדר המקורות.

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

עם @scope
@scope (.pink-theme) {
    a {
        color: hotpink;
    }
}

@scope (.lightpink-theme){
    a {
        color: lightpink;
    }
}

שני קישורים, הראשון כתוב &#39;אני ורוד בהיר!&#39; והשני כתוב &#39;ורוד שונה&#39;. הקישור השני הוא בצבע ורוד כהה יותר, מתחת לסגנון של האב הקרוב ביותר של טקסט הקישורים, ויש לידו סימן וי ירוק.

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

ללא היקף הרשאות
<div class="first-container">
  <h1 class="first-container__main-title"> I'm the main title</h1>
</div>

<div class="second-container">
  <h1 class="second-container__main-title"> I'm the main title, but somewhere else</h1>
</div>
.first-container__main-title {
  color: grey;
}

.second-container__main-title {
  color: mediumturquoise;
}
עם @scope
<div class="first-container">
  <h1 class="main-title"> I'm the main title</h1>
</div>

<div class="second-container">
  <h1 class="main-title"> I'm the main title, but somewhere else</h1>
</div>
@scope(.first-container){
  .main-title {
   color: grey;
  }
}
@scope(.second-container){
  .main-title {
   color: mediumturquoise;
  }
}

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

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

ייצוג של ה-HTML שלמעלה, עם המילים בהיקף ליד ה-div הראשון והשלישי והמילה לא כלולה ליד ה-div השני והרביעי.

<div class="component">
  <div class="purple">
    <h1>Drink water</h1>
    <p class="purple">hydration is important</p>
  </div>
  <div class="click-here">
    <p>not in scope</p>
    <button>click here</button>
  </div>

  <div class="purple">
    <h1 class="purple">Exercise</h1>
    <p class="purple">move it move it</p>
  </div>

  <div class="link-here">
    <p>Excluded from scope</p>
    <a href="#"> link here </a>
  </div>
</div>
@scope (.component) to (.click-here, .link-here) {
  div {
    color: purple;
    text-align: center;
    font-family: sans-serif;
  }
}

מידע נוסף זמין במאמר הגבלת ההיקף של הסלקטורים באמצעות כלל at-rule‏ @scope ב-CSS.

תכונה של מדיה prefers-reduced-transparency

אנחנו משתמשים בשאילתות מדיה כדי לספק חוויות משתמש שמותאמות להעדפות ולתנאים של המכשיר של המשתמש. לגרסת Chrome הזו יש ערך חדש שיכול לשמש להתאמה של חוויית המשתמש: prefers-reduced-transparency.

ערך חדש שאפשר לבדוק באמצעות שאילתות מדיה הוא prefers-reduced-transparency, שמאפשר למפתחים להתאים את תוכן האינטרנט להעדפה של המשתמש לגבי שקיפות מופחתת במערכת ההפעלה, כמו ההגדרה 'צמצום השקיפות' ב-macOS. הערכים האפשריים הם reduce או no-preference.

.translucent {
  opacity: 0.4;
}

@media (prefers-reduced-transparency) {
  .translucent {
    opacity: 0.8;
  }
}

בנוסף, אפשר לבדוק איך זה נראה בכלי הפיתוח:

מידע נוסף זמין במסמכי התיעוד בנושא prefers-reduced-transparency.

תיקון: גרסה קודמת של המאמר הזה התייחסה לתכונת מדיה חדשה ב-scripting שנמצאת בגרסה הזו. היא תהיה בגרסה 120.

שיפורים בחלונית המקורות ב-DevTools

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

בנוסף, עכשיו אפשר לשנות את סדר החלוניות שבצד ימין של החלונית מקורות באמצעות גרירה ושחרור, ולחלונית מקורות יש עכשיו אפשרות להדפיס יפה של JavaScript בתוך סוגי הסקריפטים הבאים: module, importmap, speculationrules ולהדגיש את התחביר של סוגי הסקריפטים importmap ו-speculationrules, שניהם מחזיקים בפורמט JSON.

לפני ואחרי הדפסה יפה והדגשת תחביר של סוג סקריפט של כללי ספקולציות.

מידע נוסף על העדכונים של כלי הפיתוח ב-Chrome 118 זמין במאמר מה חדש בכלי הפיתוח.

ועוד.

כמובן שיש עוד הרבה.

  • WebUSB API חשוף עכשיו ל-Service Workers שרשומים על ידי תוספים לדפדפן, ומאפשר למפתחים להשתמש ב-API בתגובה לאירועים של תוספים.

  • כדי לעזור למפתחים לצמצם את הקושי בתהליכי בקשת התשלום, אנחנו מסירים את הדרישה להפעלת משתמשים בPayment Request ובSecure Payment Confirmation.

  • מחזור הגרסאות של Chrome מתקצר. גרסאות יציבות יושקו מדי שלושה שבועות, החל מגרסה 119 של Chrome, שתהיה זמינה בעוד שלושה שבועות.

קריאה נוספת

הסקירה הזו כוללת רק כמה נקודות עיקריות. בקישורים הבאים תוכלו לקרוא על שינויים נוספים ב-Chrome 118.

להרשמה

כדי להתעדכן, כדאי להירשם לערוץ YouTube למפתחי Chrome, ותקבלו התראה באימייל בכל פעם שנעלה סרטון חדש.

קוראים לי Adriana Jara, ואחרי שגרסת Chrome 119 תפורסם, אספר לכם מה חדש ב-Chrome!