תכונות בסיסיות שאפשר להשתמש בהן היום

ריכזנו כאן רק חלק מהתכונות שכלולות ב-Baseline.

Mariko Kosaka

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

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

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

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

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

רכיב תיבת הדו-שיח

הרכיב <dialog> הוא רכיב HTML חדש ליצירת הנחיות בתיבת דו-שיח, כמו חלונות קופצים וחלונות מודולריים.

תמיכה בדפדפן

  • Chrome: 37.
  • קצה: 79.
  • Firefox: 98.
  • Safari: 15.4.

מקור

כדי להשתמש בו, מגדירים את רכיב המודאל ואז פותחים את תיבת הדו-שיח על ידי קריאה ל-method showModal() ברכיב תיבת הדו-שיח.

<dialog id="d">
  <form method="dialog">
    <p>Hi, I'm a dialog.</p>
    <button>ok</button>
  </form>
</dialog>

<button onclick="d.showModal()">
  Open Dialog
</button>

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

מאפייני טרנספורמציה נפרדים של CSS

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

.target {
  translate: 50% 0;
  rotate: 30deg;
  scale: 1.2;
}

תמיכה בדפדפן

  • Chrome:‏ 104.
  • Edge:‏ 104.
  • Firefox: 72.
  • Safari: 14.1.

מקור

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

יחידות חדשות של אזור תצוגה

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

תמיכה בדפדפנים

  • Chrome: 108.
  • קצה: 108.
  • Firefox: 101.
  • Safari: 15.4.

העתקה מעמיקה ב-JavaScript

בעבר, כדי ליצור עותק מעמיק של אובייקט ללא הפניה לאובייקט המקורי, השתמשו בהאק פופולרי ששילב בין JSON.stringify לבין JSON.parse. זה היה טריק נפוץ כל כך, ש-V8 (מנוע ה-JavaScript של Chrome) שיפר באופן משמעותי את הביצועים שלו. אבל אין צורך יותר בהאק הזה עם structuredClone.

const original = {id: 0, prop: {name: "Tom"}}

/* Old hack */ 
const deepCopy = JSON.parse(JSON.stringify(original));

/* New way */
const deepCopy = structuredClone(original);

תמיכה בדפדפנים

  • Chrome:‏ 98.
  • קצה: 98.
  • Firefox: 94.
  • Safari: 15.4.

מקור

פרטים נוספים זמינים במאמר העתקה לעומק ב-JavaScript באמצעות structuredClone.

פסאודו-הקלאס :focus-visible

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

/* focus with tab key */
:focus-visible {
    outline: 5px solid pink;
}

/* mouse click */
:focus:not(:focus-visible) {
    outline: none;
}

תמיכה בדפדפנים

  • Chrome:‏ 86.
  • Edge:‏ 86.
  • Firefox:‏ 85.
  • Safari: 15.4.

מקור

מידע נוסף זמין בקטע 'התמקדות' ב-Learn CSS.

ממשק TransformStream

ממשק TransformStream של Streams API מאפשר להעביר סטרימינג אחד לתוך סטרימינג אחר.

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

תמיכה בדפדפן

  • Chrome:‏ 67.
  • Edge:‏ 79.
  • Firefox: 102.
  • Safari:‏ 14.1.

מקור

סיכום

יש עוד הרבה פיצ'רים שלאחרונה החלו לפעול בצורה הדדית ויציבים לשימוש בפלטפורמת האינטרנט. בהמשך, נעבוד עם קבוצת הקהילה של WebDX כדי להבהיר את קבוצות התכונות הבסיסיות האלה. פרטים נוספים זמינים בכתובת web.dev/baseline.

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

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