الرموز

معظم الصور هي جزء من المحتوى الخاص بك، لكن الأيقونات جزء من واجهة المستخدم الخاصة بك. يجب أن يتغير حجمها وتتكيف بنفس الطريقة التي يتم بها تغيير وتكيف نص واجهة المستخدم.

رسومات موجّهة يمكن تغيير حجمها

تتوفّر خيارات متعددة لتنسيق الصور: JPG وWebP وAVIF. بالنسبة إلى الصور غير الفوتوغرافية، يمكنك الاختيار بين تنسيق رسومات الشبكة المحمولة (PNG) وتنسيق الرسومات الموجّهة التي يمكن تغيير حجمها (SVG).

يمكن استخدام كل من ملفات PNG وSVG بشكل جيد في التعامل مع المناطق ذات الألوان المسطحة، وكلاهما يتيح إضافة خلفيات شفافة لصورك. إذا كنت تستخدم ملفًا بتنسيق PNG، ستحتاج على الأرجح إلى إنشاء نُسخ متعددة من الصورة بأحجام مختلفة واستخدام السمة srcset على العنصر img لجعل الصورة متجاوبة. إذا كنت تستخدم رسومات SVG، سيكون مستجيبًا بشكل افتراضي.

ملفات PNG (وJPG وWebP وAVIF) هي صور نقطية. تخزن صور الصور النقطية المعلومات على شكل وحدات بكسل. في رسومات SVG، يتم تخزين المعلومات كتعليمات رسم. عندما يقرأ المتصفّح ملف SVG، يتم تحويل التعليمات إلى وحدات بكسل. وأفضل ما في الأمر أن هذه التعليمات نسبية. وبغض النظر عن الأبعاد التي تستخدمها لوصف الخطوط والأشكال، يتم عرض كل شيء بالدرجة المناسبة تمامًا. وبدلاً من إنشاء رسومات SVG متعددة بأحجام مختلفة، يمكنك إنشاء ملف SVG واحد يعمل بجميع الأحجام. ليس من الضروري استخدام السمة srcset.

<img src="image.svg" alt="A description of the image." width="25" height="25">
<img src="image.svg" alt="A description of the image." width="250" height="250">

يُستخدم ملف XML لكتابة التعليمات في ملف SVG. هذه لغة ترميزية، مثل HTML.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-21 -21 42 42" width="100" height="100">
  <title>Smiling face</title>
  <circle r="20" fill="yellow" stroke="black"/>
  <ellipse rx="2.5" ry="4" cx="-6" cy="-7" fill="black"/>
  <ellipse rx="2.5" ry="4" cx="6" cy="-7" fill="black"/>
  <path stroke="black" d="M -12,5 A 13.5,13.5,0 0,0 12,5 A 13,13,0 0,1 -12,5"/>
</svg>

وجه مبتسم

ويمكنك أيضًا وضع رسومات موجّهة يمكن تغيير حجمها (SVG) في HTML.

<figure>
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="-21 -21 42 42" width="100" height="100">
    <title>Smiling face</title>
    <circle r="20" fill="yellow" stroke="black"/>
    <ellipse rx="2.5" ry="4" cx="-6" cy="-7" fill="black"/>
    <ellipse rx="2.5" ry="4" cx="6" cy="-7" fill="black"/>
    <path stroke="black" d="M -12,5 A 13.5,13.5,0 0,0 12,5 A 13,13,0 0,1 -12,5"/>
  </svg>
  <figcaption>
  A description of the image.
  </figcaption>
</figure>

وفي حال تضمين رسومات SVG مماثلة، لن يحتاج المتصفّح إلى تقديم طلب إضافي. وسيصبح تنزيل الصورة متوفّرًا بتنسيق HTML ...ضمن ترميز HTML. كما ستكتشف قريبًا، يمنحك تضمين رسومات SVG مثل هذه مزيدًا من التحكم في نمطها أيضًا.

الأيقونات والنصوص

غالبًا ما تتميز صور الأيقونات بأشكال بسيطة على خلفية شفافة. يعد تنسيق SVG مثاليًا للأيقونات.

إذا كان لديك زر أو رابط به نص وأيقونة بداخله، فإن الأيقونة تكون عرضًا تقديميًا. إنه النص المهم. عند استخدام عنصر img، تشير السمة alt الفارغة إلى أنّ الصورة عرضية.

<button>
<img src="hamburger.svg" alt="" width="16" height="16">
Menu
</button>

نظرًا لأن CSS مخصصة للعرض التقديمي، يمكنك وضع الرمز في CSS كصورة خلفية.

<button class="menu">
Menu
</button>
.menu {
  background-image: url(hamburger.svg);
  background-position: 0.5em;
  background-repeat: no-repeat;
  background-size: 1em;
  padding-inline-start: 2em;
}

إذا وضعت رسومات SVG داخل رمز HTML، استخدِم السمة aria-hidden لإخفائه من التكنولوجيا المساعِدة.

<button class="menu">
  <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 80" width="16" height="16">
    <rect width="100" height="20" />
    <rect y="30" width="100" height="20"/>
    <rect y="60" width="100" height="20"/>
  </svg>
  Menu
</button>

الرموز المستقلة

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

إذا قررت استخدام أيقونة بدون أي نص مصاحب، فلن يعد الرمز عرضًا تقديميًا. لا تُعد صورة الخلفية في CSS طريقة مناسبة لعرض الرمز. يجب إعطاء الرمز اسمًا يسهل الوصول إليه في HTML.

إذا استخدمت عنصر img، سيحصل الرمز على اسم يمكن الوصول إليه من السمة alt.

<button>
<img src="hamburger.svg" alt="Menu" width="16" height="16">
</button>

يتوفر خيار آخر وهو وضع الاسم الذي يمكن الوصول إليه على الرابط أو الزر نفسه وإعلان أن الصورة هي عرضية. استخدِم السمة aria-label لتوفير اسم يمكن الوصول إليه.

<button aria-label="Menu">
<img src="hamburger.svg" alt="" width="16" height="16">
</button>

إذا وضعت SVG داخل رمز HTML، استخدِم السمة aria-label على الرابط أو الزر لمنحه اسمًا يمكن الوصول إليه واستخدِم السمة aria-hidden على الرمز.

<button aria-label="Menu">
  <svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 80" width="16" height="16">
    <rect width="100" height="20" />
    <rect y="30" width="100" height="20"/>
    <rect y="60" width="100" height="20"/>
  </svg>
</button>

أنماط الرموز

إذا ضمّنت رموز SVG مباشرةً في رمز HTML، يمكنك تصميم أجزاء منها مثل أي عنصر آخر في صفحتك. لا يمكنك تنفيذ ذلك إذا استخدمت عنصر img لعرض الرموز الخاصة بك.

في المثال التالي، تتضمّن عناصر rect داخل الرسومات الموجّهة التي يمكن تغيير حجمها (SVG) القيمة fill التي تبلغ blue لمطابقة الأنماط لنص الزر.

button {
 color: blue;
}
button rect {
  fill: blue;
}

يمكنك تطبيق نمطَي hover وfocus أيضًا.

button:hover,
button:focus {
  color: red;
}
button:hover rect,
button:focus rect {
  fill: red;
}

المراجِع

تُعد الأيقونات جزءًا مهمًا من العلامة التجارية لموقعك. ستتعرف في الخطوة التالية على كيفية جعل جوانب أخرى من علامتك التجارية متجاوبة مع مختلف الأجهزة بفضل فعالية التصميم.

التحقّق من استيعابك

اختبر معلوماتك حول الأيقونات

يمكن أن يعالج الرسومات الموجّهة التي يمكن تغيير حجمها (SVG) أي كثافة وحدات بكسل باستخدام ملف واحد أو كتلة رموز <svg>.

صحيح
يتضمن SVG كيفية رسم الأشكال والخطوط، بأي كثافة بكسل أو مقياس أو تكبير.
خطأ
على عكس .png أو .jpg، لا يحتاج رسومات SVG إلى srcset أو عنصر <picture>.

ما مزايا كود SVG الموجودة مباشرة في HTML؟

إمكانية تعديل نمط من صفحات الأنماط المتتالية (CSS)
مطابقة أشكال رموز SVG مع الأزرار وألوان العلامة التجارية.
ليس عليك تنزيل أي محتوى.
جميع التعليمات موجودة.
يتم التحميل الكسول تلقائيًا.
لا حاجة إلى تنزيل أي عمليات تنزيل على الإطلاق.
استهلاك أقل لوحدة المعالجة المركزية (CPU).
لقد اختلقت هذا الأمر.
مظهر فاتح أو داكن بدون مادة عرض جديدة.
يمكن أن تؤدي طلبات البحث عن الوسائط إلى تغيير أنماط الرسومات الموجّهة التي يمكن تغيير حجمها (SVG) المضمّنة.