الميزات الجديدة في Chrome 118

في ما يلي ما تحتاج إلى معرفته:

اسمي "أدريانا جارا". لنلقِ نظرة على الميزات الجديدة للمطوّرين في الإصدار 118 من Chrome.

قاعدة @scope في CSS

تسمح قاعدة @scope في القاعدة للمطوّرين بتحديد نطاق قواعد النمط لجذر نطاق محدد وعناصر النمط وفقًا لقُرب جذر النطاق المحدد.

باستخدام @scope، يمكنك إلغاء الأنماط استنادًا إلى القرب، وهو ما يختلف عن أنماط CSS المعتادة التي يتم تطبيقها بالاستناد إلى ترتيب المصدر وتحديد المصدر فقط. في المثال التالي، يوجد موضوعان.

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

بدون نطاق، فإن النمط المطبق هو النمط الأخير الذي تم تعريفه.

بدون @scope
.pink-theme a { color: hotpink; }
.lightpink-theme a { color: lightpink; }

رابطان، الأول مكتوب عليه &quot;أنا وردي فاتح!&quot; والآخر هو &quot;وردي مختلف&quot;، كلا الرابطين باللون الوردي الفاتح، أسفل نص الروابط يقرأ نمط بيان ترتيب المصادر.

باستخدام النطاق، يمكنك الحصول على عناصر متداخلة والنمط الذي ينطبق هو النمط الخاص بأقرب أصل.

مع @scope
@scope (.pink-theme) {
    a {
        color: hotpink;
    }
}

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

رابطان، يظهر على الأول النص &quot;أنا وردي فاتح&quot;، وعلى الثاني النص &quot;وردي مختلف&quot;، والرابط الثاني وردي داكن، وتحت نص الروابط يظهر النمط الأقرب للعنصر الأصلي مع علامة اختيار خضراء بجانبه.

ويساعدك النطاق أيضًا على تجنُّب كتابة أسماء فئات طويلة ومعقدة، ويسهّل إدارة المشاريع الأكبر حجمًا وتجنُّب تعارضات الأسماء.

بدون @scope
<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 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;
  }
}

اطّلِع على المقالة حصر نطاق وصول أدوات الاختيار باستخدام قاعدة CSS @scope للحصول على مزيد من المعلومات.

ميزة وسائط 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.

تحسينات على لوحة "المصادر" في "أدوات مطوّري البرامج"

تتضمّن أدوات المطوّرين التحسينات التالية في لوحة المصادر: ميزة مساحة العمل التي تم تحسينها من حيث الاتساق، وأبرزها إعادة تسمية اللوحة المصادر > نظام الملفات إلى مساحة العمل مع نص واجهة المستخدم الآخر، المصادر > مساحة العمل تتيح لك أيضًا مزامنة التغييرات التي تجريها في أدوات المطوّرين مباشرةً مع ملفات المصدر.

يمكنك أيضًا الآن إعادة ترتيب الأقسام على الجانب الأيسر من لوحة المصادر عن طريق السحب والإفلات، ويمكن الآن للوحة المصادر طباعة JavaScript المضمّنة بشكل جميل ضمن أنواع النصوص البرمجية التالية: module وimportmap وspeculationrules، كما يمكنها تمييز بنية نوعَي النصوص البرمجية importmap وspeculationrules، وكلاهما يتضمّن تنسيق JSON.

قبل وبعد الطباعة الجميلة وتمييز البنية لنوع نص برمجي قواعد التكهّنات

اطّلع على الميزات الجديدة في أدوات مطوّري البرامج لمعرفة المزيد حول تحديثات أدوات مطوري البرامج في Chrome 118.

وغير ذلك

بالطبع هناك الكثير.

  • أصبحت WebUSB API متاحة الآن لعمال الخدمة المسجّلين من خلال إضافات المتصفّح، ما يتيح للمطوّرين استخدام واجهة برمجة التطبيقات عند الاستجابة لأحداث الإضافات.

  • لمساعدة المطوّرين على الحدّ من الصعوبات التي يواجهها مسار طلبات الدفع، سنزيل متطلبات تفعيل المستخدمين في Payment Request وSecure Payment Confirmation.

  • أصبحت دورة إصدار Chrome أقصر، وسيتم إصدار الإصدارات الثابتة كل ثلاثة أسابيع، بدءًا من الإصدار 119 من Chrome الذي سيتم طرحه بعد ثلاثة أسابيع.

مراجع إضافية

لا يشمل ذلك سوى بعض النقاط الرئيسية. يمكنك الاطّلاع على الروابط أدناه للاطّلاع على التغييرات الإضافية في الإصدار 118 من Chrome.

اشتراك

للاطّلاع على آخر الأخبار، يمكنك الاشتراك في قناة YouTube الخاصة بمطوّري Chrome، وستتلقّى إشعارًا عبر البريد الإلكتروني عند نشر فيديو جديد.

مرحبًا أدريانا جارا، وفور طرح Chrome 119، سأكون على أتمّ استعداد لإخبارك بالميزات الجديدة في Chrome.