تاريخ النشر: 1 يوليو 2026
في مؤتمر Google I/O 2026، شاركنا مجموعة كبيرة من التحديثات التي ستتوفّر في منصة Web UI. بدءًا من احترام الإعدادات المفضّلة للمستخدمين إلى تنفيذ التفاعلات الطبيعية وتوجيه التنقّل وتقليل الفوضى والتكيّف مع عوامل الشكل المختلفة، يوفّر الويب الحديث للمطوّرين أدوات قوية للغاية لإنشاء تجارب مستخدم عالية الجودة وملموسة.
في ما يلي ملخّص شامل لكل الميزات المذكورة في جلسة "الميزات الجديدة في واجهة مستخدم الويب"، منظَّمة حسب مجموعتنا الأساسية من مبادئ تجربة المستخدم.
الجزء 1: احترام الإعدادات المفضّلة للمستخدم
التخصيص أساسي لسهولة استخدام الويب. تسهّل واجهات برمجة تطبيقات الويب الحديثة التكيّف مع خيارات المستخدم على مستوى النظام تلقائيًا. على الرغم من أنّ هذه المفاهيم تبدو أساسية وقد تحدّثنا عنها لسنوات، هناك في الواقع بعض واجهات برمجة التطبيقات والأنماط الجديدة التي تسهّل إنشاء هذا التخصيص الديناميكي.
1- contrast-color()
تأخذ دالة CSS contrast-color() لونًا كإدخال وتعرض تلقائيًا إما black أو white، استنادًا إلى اللون الذي يتضمّن تباينًا أعلى مع لون الإدخال استنادًا إلى خوارزمية الحد الأدنى للتباين في معيار WCAG AA. يضمن ذلك سهولة القراءة بدون الحاجة إلى الحفاظ يدويًا على أزواج ألوان النص والخلفية.
مزيد من المعلومات حول "contrast-color()"
2- light-dark()
تتيح لك دالة CSS light-dark() تحديد قيمتَين مختلفتَين (ألوان أو صور) لخاصية ما، إحداهما للوضع الفاتح والأخرى للوضع الداكن، وذلك ضمن تعريف واحد. يختار المتصفّح تلقائيًا لون التباين الصحيح استنادًا إلى color-scheme النشط (الذي يجب ضبطه على light أو dark أو light dark على :root أو عنصر رئيسي).
الجديد في light-dark() هو أنّه لم يعُد يقتصر على قيم الألوان فقط. واعتبارًا من الإصدار 150 من Chrome، يقبل الآن أيضًا قيمتَين للصورة.
Browser Support
3- وظائف CSS المخصّصة (@function)
تتيح لك قاعدة @function @ تحديد دوال مخصّصة وقابلة لإعادة الاستخدام مباشرةً ضمن CSS الأصلية. يمكن أن تقبل هذه الدالة سمات مخصّصة ذات نطاق محلي كمعلَمات، وتجري عمليات حسابية، وتعرض قيمًا باستخدام الواصف result، ما يقلّل من الحاجة إلى المعالجات المسبقة.
بالإضافة إلى طلبات البحث عن أنماط الحاويات والدالة CSS if()، يمكنك إنشاء دالة --light-dark() مخصّصة تعمل مع أي نوع من القيم، كما هو موضّح في هذا العرض التوضيحي:
4. طلبات البحث عن أنماط الحاويات
تتيح طلبات البحث عن الأنماط، وهي جزء من طلبات البحث عن حاويات CSS، للمطوّرين تطبيق أنماط على العناصر الفرعية استنادًا إلى قيم السمات المخصّصة المحسوبة للحاوية الرئيسية، ما يتيح إنشاء مكوّنات ديناميكية بدون الحاجة إلى احتواء الحجم بشكل صريح.
Browser Support
في هذا العرض التوضيحي، يتم استخدام طلبات البحث المتعلقة بالأنماط لضبط الألوان استنادًا إلى السمة المخصّصة --theme.
@container style(--theme: primary) {
.app-card {
--bg-light: #fdf2f8;
--bg-dark: #ff91d3;
--neon-glow: #f472b6;
--btn-light: #be185d;
--btn-dark: #fbcfe8;
--text-on-light: #500732;
--text-on-dark: #fff1f2;
}
}
@container style(--theme: accent) {
.app-card {
--bg-light: #f3e8ff;
--bg-dark: #4c1d95;
--neon-glow: #d8b4fe;
--btn-light: #7e22ce;
--btn-dark: #c084fc;
--text-on-light: #2e1065;
--text-on-dark: #faf5ff;
}
}
@container style(--theme: success) {
/* … */
}
مزيد من المعلومات عن طلبات البحث المتعلقة بالأسلوب
5- الدالة if() في CSS
تتيح دالة CSS if() إمكانية إضافة منطق شرطي مضمّن مباشرةً إلى قيم خصائص CSS. وهي تقيّم سلسلة من الشروط المفصولة بفواصل منقوطة (طلبات بحث عن الأنماط أو طلبات بحث عن الوسائط أو طلبات بحث عن الميزات) وتتيح لك ضبط قيم مختلفة مرتبطة بأول شرط صحيح، مع توفير else احتياطي اختياري.
في العرض التوضيحي السابق، يتم استخدام الدالة if() لإنشاء قاعدة ألوان متباينة ذات مظهر موحّد استنادًا إلى ناتج الدالة contrast-color().
--contrast-color: contrast-color(var(--card-bg));
color: if(
style(--contrast-color: white): var(--text-on-dark);
else: var(--text-on-light)
);
6. @supports at-rule()
تتيح الدالة at-rule() في CSS التي يمكن استخدامها مع @supports للمطوّرين إمكانية رصد الميزات لمعرفة ما إذا كان المتصفّح يتعرّف على قاعدة at معيّنة، مثل @starting-style أو @view-transition.
على سبيل المثال، للتحقّق من إمكانية استخدام @function، استخدِمها على النحو التالي:
@supports at-rule(@function) {
/* Code for browsers that support @function goes here */
}
يتيح استخدام at-rule() التحقّق من التوافق الأساسي مع قاعدة @ نفسها فقط، ولا يمكن استخدامه لاختبار واصفات أو مقدمات أو كتل كاملة من قواعد @ معيّنة. تتوفّر حلول بديلة لرصد ميزات، مثل طلبات البحث الثابتة أو طلبات البحث المتعلقة بالأسلوب.
مزيد من المعلومات حول "@supports at-rule"
7. <meta name="text-scale">
تتيح علامة text-scale الوصفية في HTML للصفحة إمكانية ضبط حجم الخط الأولي للعنصر الجذر <html> بما يتناسب مع إعدادات حجم النص على مستوى نظام التشغيل والمتصفح، وهو أمر مهم بشكل خاص لمنصات الأجهزة الجوّالة.
عند تطبيق هذا التغيير، يحدّد نظام التشغيل الآن حجم الخط في العنصر html، لذا لن تحتاج إلى ضبط font-size أساسي. إذا كنت تستخدم أطوالاً بوحدات نسبية مثل em وrem، ستستند قيم البكسل المحسوبة إلى حجم الخط الأساسي هذا.
<meta name="text=scale" value="scale">
<style>
html {
/* Don't set a base font-size here! */
}
</style>
من علامة التبويب "العرض" في "أدوات مطوّري البرامج"، يمكنك محاكاة حجم الخط المفضّل. استخدِم القائمة المنسدلة لتغيير القيمة.
مزيد من المعلومات حول "<meta name=text-scale>"
الجزء 2: تنفيذ التفاعلات الطبيعية
تُعدّ الحركة الجسدية السلسة والإيماءات الطبيعية من العناصر الأساسية لجعل تجارب الويب تبدو ملموسة مثل التطبيقات الأصلية. وتسهّل عليك CSS الحديثة تحقيق ذلك.
8. دالة التسهيل linear()
تتيح لك دالة تغيير السرعة linear() إنشاء منحنيات انتقال مخصّصة ومعقّدة (مثل الارتدادات أو النوابض أو التجاوزات المرنة) من خلال الاستيفاء الخطي بين عدد غير محدود من نقاط التقدّم المحدّدة.
في العرض التوضيحي التالي، يتم استخدام linear() لمنح مربع الحوار تغيير السرعة الطبيعي عند ظهوره أو إخفائه.
مزيد من المعلومات حول "linear()"
9. @starting-style
تحدّد قاعدة @starting-style في CSS القيم الأولية للسمات في عنصر تريد الانتقال منه عند عرض العنصر لأول مرة في DOM أو عند تغيُّر display من none إلى قيمة مرئية، وذلك لتفعيل انتقالات سلسة عند الدخول.
في العرض التوضيحي السابق، يتم استخدام هذا الخيار لتحريك <dialog> عند ظهوره للمرة الأولى.
10- transition-behavior: allow-discrete
تتيح لك السمة transition-behavior (التي تُستخدَم غالبًا كـ allow-discrete في الاختصار transition) الانتقال بين السمات المنفصلة، مثل display أو overlay، ما يضمن بقاء العناصر مرئية أثناء الصور المتحركة للخروج قبل إخفائها.
11. sibling-index() وsibling-count()
تعرض دالتا CSS sibling-index() وsibling-count() أعدادًا صحيحة تمثّل موضع العنصر المستند إلى 1 بين العناصر الشقيقة وإجمالي عدد العناصر الشقيقة، على التوالي. وهي مثالية لاحتساب تأخيرات الصور المتحركة المتداخلة بشكل ديناميكي في CSS بدون JavaScript.
في هذا العرض التوضيحي، يتم ترتيب محتوى مربّع الحوار بشكل متداخل باستخدام sibling-index() في animation-delay
dialog[open] > * {
animation:
content-entry 0.6s var(--spring) forwards;
/* 0.2s delay for the first item, then staggering by 0.05s via sibling-index()
*/
animation-delay:
calc(sibling-index() * 0.05s + 0.2s);
}
12. إغلاق مربّع الحوار بشكل سريع (السمة closedby)
تتيح لك السمة closedby في العنصر <dialog> (بالقيمة any) استخدام سلوك "الرفض الخفيف" التوضيحي، وإغلاق مربّعات الحوار المشروطة تلقائيًا عند النقر خارجها أو الضغط على ESC، بدون الحاجة إلى JavaScript مخصّص.
يمكنك تجربته في العرض التوضيحي السابق.
13. corner-shape
تتيح السمة المختصرة التجريبية corner-shape للمطوّرين تعديل الزوايا الدائرية (من border-radius) لإنشاء أشكال مرئية مخصّصة، مثل bevel أو scoop أو notch أو squircle (من خلال superellipse()). وتتطابق الحدود والظلال ومخططات التركيز تلقائيًا مع الشكل.
الجزء 3: توفير ميزة التنقّل الموجّه
يساعد توجيه رحلة المستخدم في الحفاظ على السياق وفهم طريقة عمل التطبيق، ما يمنع عمليات إعادة التحميل المربكة. يمكنك إجراء ذلك بعدة طرق، بما في ذلك باستخدام عمليات انتقال العرض التي تمّت إضافة بعض التعديلات إليها مؤخرًا.
14. انتقالات العرض في المستند نفسه
توفّر عمليات الانتقال في المستند نفسه، وهي جزء من View Transition API، آلية لإنشاء صور متحركة بين حالات نموذج المستند (DOM) في تطبيقات الصفحة الواحدة (SPA) من خلال التقاط لقطات وانتقالها باستخدام CSS.
مزيد من المعلومات حول عمليات الانتقال بين طرق العرض في المستند نفسه
15. انتقالات العرض بين المستندات
توسّع هذه الميزة نطاق View Transition API ليشمل تطبيقات الصفحات المتعددة، ما يتيح لك إنشاء انتقالات سلسة ومتحركة عند التنقّل بين المستندات المختلفة من خلال مطابقة العناصر التي تحمل السمة view-transition-name نفسها على مستوى الصفحات.
مزيد من المعلومات حول عمليات الانتقال بين طرق العرض في المستندات
16. عمليات نقل العرض على مستوى العنصر
تتيح لك عمليات الانتقال بين طرق العرض على مستوى العنصر، التي تم طرحها في الإصدار 147 من Chrome، تنفيذ عملية انتقال بين طرق العرض على شجرة فرعية معيّنة من DOM فقط (باستخدام element.startViewTransition()) مع إبقاء بقية الصفحة نشطة وتفاعلية.
Browser Support
عند بدء انتقال عرض نطاقه عنصر، يتم تنفيذه بشكل مستقل: فهو يبحث فقط في شجرة فرعية عن العناصر التي تتضمّن view-transition-name ويتم إدراج الفئة الزائفة ::view-transition في جذر النطاق نفسه. يمكن إجراء العزل بفضل التطبيق التلقائي لـ view-transition-scope: all.
يتيح ذلك تشغيل انتقالات متعددة للعرض في الوقت نفسه، بالإضافة إلى تضمين انتقالات العرض: أثناء إعادة ترتيب العناصر في هذه القوائم، يمكنك أيضًا تبديل القوائم نفسها.
بالإضافة إلى ذلك، يتم دمج الأسماء المستعارة للمجموعات تلقائيًا ويتم اقتطاع تجاوز السعة لاسم المجموعة المستعارة الفرعية عند الحاجة.
تكون انتقالات العرض المحدودة النطاق مثالية للتفاعلات الصغيرة والتحويلات المشروطة بالحالة داخل الصفحة، ما يمنح المستخدم المزيد من السياق عند حدوث تغيير مرئي. هذه طريقة رائعة لتحسين سهولة استخدام تطبيقك مع تحسين مظهره وتجربة استخدامه. هذه التفاصيل الصغيرة تُحدث فرقًا كبيرًا.
مزيد من المعلومات حول عمليات الانتقال بين المشاهد على مستوى العنصر
17. عمليات الانتقال بين طَورَين
هذه ميزة تجريبية تبدأ على الفور عملية انتقال عرض بين المستندات بدون انتظار اكتمال DOM الجديد، حيث تنتقل أولاً إلى شاشة هيكلية وسيطة أو واجهة مستخدم للتحميل، قبل مواصلة عملية انتقال العرض بين المستندات.
مزيد من المعلومات حول عمليات الانتقال بين المشاهد على مرحلتَين
18 الصور المتحركة المستندة إلى الانتقال
تربط الصور المتحركة المستندة إلى الانتقال تقدّم صورة CSS متحركة مباشرةً بموضع الانتقال في حاوية الانتقال، ما يتيح للمطوّرين إنشاء واجهات مستندة إلى الانتقال، مثل تأثيرات اختلاف المنظر الفعّالة ومؤشرات الانتقال.
- مزيد من المعلومات عن الصور المتحركة المستندة إلى التمرير
- تجربة عروض توضيحية متعددة للصور المتحركة المستندة إلى الانتقال
- تعرَّف على الصور المتحركة المستندة إلى التمرير من خلال هذه الدورة التدريبية المجانية المكوّنة من 10 أجزاء
19. الصور المتحركة التي يتم تشغيلها عند التمرير
تتضمّن الميزات الجديدة في Chrome رسومات متحرّكة يتم تشغيلها عند التمرير. تؤدي الحركات التي يتم تشغيلها عند التنقّل إلى تشغيل حركة CSS عادية مستندة إلى الوقت عند تجاوز حدود التنقّل (باستخدام timeline-trigger لتحديد المشغِّل وanimation-trigger لتشغيله)، ما يوفّر بديلاً تصريحيًا لـ IntersectionObserver.
Browser Support
الآلية الأساسية للصور المتحركة التي يتم تشغيلها عند التمرير هي مشغّلات المخطط الزمني التي تكون نشطة أو غير نشطة.
.element {
timeline-trigger:
--t
view()
contain 25% contain 75% / entry 105% exit -5%
;
}
فعِّل أداة العرض في العرض التوضيحي التالي لمعرفة ما يحدث: النطاق الأول هو نطاق التفعيل ويحدّد وقت تفعيل المشغّل. النطاق الثاني هو النطاق النشط الذي يحدّد المدة التي يجب أن يظلّ فيها نشطًا.
مزيد من المعلومات عن الصور المتحركة التي يتم تشغيلها عند التمرير
20. scroll-target-group: auto
يمكنك الآن إنشاء أداة scroll-spy أصلية في CSS تعمل على تمييز روابط التنقّل تلقائيًا استنادًا إلى موضع التمرير لدى المستخدم. من خلال ضبط scroll-target-group: auto على قائمة التنقّل، يضبط المتصفّح تلقائيًا aria-current="true" ويطبّق الفئة الزائفة :target-current على الرابط النشط. يمكن بعد ذلك استخدام :target-current لتنسيق الروابط النشطة بشكل أكبر.
مزيد من المعلومات حول CSS scroll-spy مع scroll-target-group
21. خيار الحاوية scrollIntoView()
تكتسب الطريقة scrollIntoView() الخيار container. يؤدي ضبط target.scrollIntoView({container: 'nearest'}) إلى حصر التمرير في أقرب عنصر تمرير رئيسي بدلاً من أن يرتفع إلى الأعلى، ما يمنع التمرير على مستوى الصفحة من التسبب في فقدان التركيز.
استخدِم مربّع الاختيار في هذا العرض التوضيحي لإيقاف الخيار وتفعيله:
مزيد من المعلومات حول "container: "nearest""
22. الانتقال الآلي القابل للانتظار
تعرض الآن جميع طرق التمرير الآلية (مثل scroll() وscrollTo() وscrollIntoView()) وعدًا. يتيح ذلك للمطوّرين await إكمال الصور المتحركة للتمرير السلس قبل تنفيذ المنطق اللاحق (مثل إضافة تأثير تمييز).
في العرض التوضيحي التالي هنا، يمكنك رؤية هذا الإجراء: يتم أولاً الانتقال إلى العنصر في إطار العرض، وبعد ذلك تتم إضافة تأثير تمييز إليه.
الجزء 4: زيادة المحتوى وتقليل الضوضاء
من أكثر التجارب إزعاجًا على الويب هي توقّع رؤية محتوى ثم يتم حظره بسبب نوافذ منبثقة أو بانرات متطفّلة. منح الأولوية لمساحة المحتوى من خلال إزالة التشويش البصري وحدود التطبيق، ونقل الإجراءات الثانوية إلى خلف واجهة المستخدم ذات الطبقات
23. طلبات البحث المتعلقة بحالة التمرير (scrolled)
تتيح طلبات البحث scroll-state، وهي جزء من طلبات البحث في حاويات CSS، تحديد نمط العناصر التابعة استنادًا إلى حالة التمرير في الحاوية (باستخدام container-type: scroll-state). يكتشف طلب البحث scrolled (على سبيل المثال، scroll-state(scrolled: bottom)) اتجاه التمرير النسبي الأخير، ما يتيح استخدام أنماط مثل "شريط Hidey".
Browser Support
مزيد من المعلومات عن نمط "Hidey Bar"
24. طلبات البحث في الحاويات الثابتة
تتضمّن ميزة "تحديد موضع العنصر الثابت في CSS" طلبات البحث في الحاويات المستندة إلى عناصر ثابتة، ما يتيح لك التحقّق من موضع الاحتياط النشط حاليًا (مثل fallback: bottom أو fallback: flip-block) في عنصر مستند إلى عنصر ثابت، ما يتيح إجراء تعديلات ديناميكية على تصميم عنصر مستند إلى عنصر ثابت (مثل أسهم تلميحات الأدوات).
Browser Support
في العرض التوضيحي التالي، يعيد العنصر المنبثق الذي تمّت إضافة موضع ثابت له تغيير موضعه استنادًا إلى موضعه الاحتياطي وموضعه في إطار العرض باستخدام طلبات البحث في الحاويات المثبّتة. عندما يفتح تلميح الأداة فوق عنصر الاستدعاء، يتم تحريكه من الأسفل إلى الأعلى، بدءًا من المصدر. عندما يكون أسفل العنصر الذي يستدعيه، يتم تحريكه من الأعلى إلى الأسفل.
25. CSS border-shape
تتيح لك السمة border-shape تحديد حدود غير مستطيلة باستخدام بنية الشكل نفسها المستخدَمة في clip-path. على عكس القص، تحافظ border-shape على الحدود والمخططات والتظليل متوافقًا بصريًا مع الشكل المخصّص. وهي تتجاوز أيضًا إمكانات corner-shape، لأنّ border-shape أكثر مرونة.
Browser Support
26. الدالة shape() في CSS
تتيح لك الدالة shape() في CSS تحديد مسارات هندسية معقّدة مضمّنة في CSS. يمكن استخدامها مع سمات مثل clip-path أو border-shape أو shape-outside لإنشاء أشكال مجانية غير مستطيلة يمكن أن يطفو المحتوى عليها.
27. الموضع الثابت لكل محور
بفضل تغيير حديث في مواصفات تجاوز السعة يسمح بأن تكون الحاويات أداة تمرير لمحور واحد فقط، يمكن الآن للتحديد الموضعي الثابت تتبُّع حاويتَي تمرير مختلفتَين (واحدة لكل محور) في الوقت نفسه. يؤدي ذلك إلى عمل العمود الأول والصف العلوي الثابتَين في الجدول على النحو المتوقّع حتى داخل حاويات التمرير أحادية المحور.
Browser Support
تتوفّر هذه الميزة للاختبار في الإصدار 148 من Chrome مع تفعيل ميزة "ميزات تجريبية لمنصة الويب".
مزيد من المعلومات حول position: sticky لكل محور
الجزء 5: التكيّف مع شكل الجهاز
من أهم مزايا الويب مرونته. يمكن للمستخدمين تصفّح الويب من مجموعة متنوّعة من الأجهزة، ولكل منها آليات تفاعل خاصة به. يجب أن تتكيّف التصميمات بشكل أساسي مع الجهاز وطريقة الإدخال، سواء كانت لوحة المفاتيح الافتراضية مفتوحة أو كانت أهداف اللمس نشطة. عند تصميم موقع إلكتروني أو تطبيق ويب، يجب مراعاة شكل الجهاز، ما يمنح موقعك الإلكتروني أو تطبيق الويب لمسة إضافية من الأناقة ويتوافق مع توقّعات المستخدمين.
28. إيماءات تجاوز حد التمرير (المناطق القابلة للتمرير السريع)
من الأمثلة على التكيّف مع عامل الشكل إمكانية استخدام التفاعلات المستندة إلى التمرير السريع والإيماءات على الويب على الأجهزة الجوّالة. يمكنك استخدام أشرطة التمرير لتحقيق بعض هذه التأثيرات، ولكنّها ليست دائمًا طريقة سهلة الاستخدام.
يعمل فريق Chrome على حلّ مقترَح مستنِد إلى التصريح، وذلك بالتعاون مع مجموعة OpenUI، ويتيح لك هذا الحلّ إنشاء مناطق أصلية قابلة للتمرير المستنِد إلى الإيماءات (مثل قوائم Gmail القابلة للتمرير أو القوائم الجانبية القابلة للتجاهل بالتمرير) باستخدام overscrollcontainer وأدوات استدعاء الأوامر، ما يتيح التفاعل معها بشكل طبيعي باستخدام اللمس والتمرير.
مزيد من المعلومات حول إيماءات تجاوز حد التمرير
29. HTML-in-Canvas
تمثّل واجهة برمجة التطبيقات HTML-in-Canvas تغييرًا جذريًا في النموذج، ما يتيح للمطوّرين وضع عناصر DOM حقيقية داخل <canvas> (باستخدام السمة layoutsubtree). تظلّ هذه العناصر قابلة للبحث فيها والوصول إليها بالكامل، وتتوافق مع ميزات المتصفّح، مثل الملء التلقائي، مع السماح لبرامج التظليل WebGL/WebGPU بالتفاعل معها بشكلٍ أصلي.
جولة سريعة
نظرة سريعة على بعض الميزات الفعّالة الأخرى التي تدفع الويب إلى الأمام
30- نقل مع الحفاظ على حالة نموذج العناصر في المستند (moveBefore())
تتيح لك طريقة moveBefore() DOM إعادة ربط عناصر DOM (مثل تشغيل الفيديوهات أو إطارات iframe أو المدخلات المركّزة) بدون إتلاف حالتها أو تشغيل عمليات إعادة التحميل.
هذا يعني أنّ الفيديوهات تستمر في التشغيل، ولا تتم إعادة تحميل إطارات iframe، ولا تتم إعادة تشغيل صور CSS المتحركة، وتحتفظ حقول الإدخال بتركيزها أثناء إعادة ربطها في تصميمك.
مزيد من المعلومات حول "moveBefore()"
31. CSS text-fit
text-fit هي خاصية تجريبية في CSS تعمل على تغيير حجم الخط بشكل ديناميكي ليتناسب تمامًا مع عرض العنصر الحاوي (مثل text-fit: grow per-line-all).
مزيد من المعلومات حول "text-fit"
32. CSS text-box (text-box-trim وtext-box-edge)
تعمل السمة text-box (والسمات المختصرة text-box-trim وtext-box-edge) على تقليل المساحة العمودية (المسافة البادئة) أعلى النص وأسفله، ما يضمن محاذاة عمودية وتوسيطًا مثاليَين.
مزيد من المعلومات حول "text-trim"
33. زخارف الفجوات في CSS
توفّر زخارف الفجوات في CSS column-rule لشبكات CSS ونموذج flexbox، وتضيف السمة الجديدة row-rule، ما يتيح للمطوّرين تصميم المزاريب بين الصفوف والأعمدة. لن تحتاج بعد الآن إلى التعامل مع الحدود أو العناصر الزائفة لتصميم القواعد بين الصفوف والأعمدة.
Browser Support
مزيد من المعلومات حول CSS Gap Decorations
34. وحدات عرض متوافقة مع شريط التمرير (vw وvh وما إلى ذلك)
تطرح وحدات إطار العرض، مثل vw وvh، تلقائيًا حجم أشرطة التمرير (إذا كان من المؤكّد أنّها ستكون مرئية، باستخدام overflow-y: scroll أو scrollbar-gutter: stable المُحدَّدة في :root)، ما يمنع حدوث تجاوز أفقي غير مقصود عند ضبط العناصر على 100vw.
Browser Support
مزيد من المعلومات حول وحدات إطار العرض المتوافقة مع أشرطة التمرير
35. الوصول إلى العناصر الزائفة باستخدام JavaScript
تعرض واجهات برمجة التطبيقات على الويب الآن عناصر CSS الزائفة (مثل ::before أو ::after) إلى JavaScript.
يمكنك استرداد مثيل CSSPseudoElement باستخدام Element.pseudo(type) والتحقّق من العنصر الزائف الذي أدّى إلى تشغيل حدث باستخدام Event.pseudoTarget.
Browser Support
مزيد من المعلومات حول "CSSPseudoElement"
الخاتمة
هذا كل ما لدينا في ملخّص الميزات الجديدة في واجهة مستخدم الويب. نأمل أن تستفيد من هذه الميزات لإنشاء بعض واجهات المستخدم الرائعة. إلى اللقاء في العام المقبل!