تحويل <hr /> إلى تحفة فنية: دمج SVG المتكرر كفاصل مرئي

جمال الحزازي
تحويل  <hr /> إلى تحفة فنية: دمج SVG المتكرر كفاصل مرئي
شفافية المحتوى: تم توليد وتنسيق هذا المقال آلياً عبر محرك صِوان AI لتقديم محتوى تقني دقيق، مباشر، وخالٍ من الحشو المزعج.

في عالم تصميم الويب الحديث، لم يعد الاكتفاء بالعناصر الافتراضية للمتصفح خياراً جذاباً. عنصر <hr />، الذي يُستخدم تقليدياً لإنشاء فاصل أفقي، غالباً ما يفتقر إلى المرونة الجمالية. لحسن الحظ، توفر رسوم SVG (Scalable Vector Graphics) حلاً قوياً ومبتكراً لتحويل هذا الفاصل البسيط إلى عنصر تصميم جذاب ومتكرر، يتماشى مع هوية موقعك البصرية.

ما هو SVG ولماذا نستخدمه؟

SVG هو تنسيق صور قائم على XML للرسومات المتجهة ثنائية الأبعاد. على عكس الصور النقطية (مثل JPG أو PNG)، لا تفقد رسوم SVG جودتها عند تكبيرها أو تصغيرها، مما يجعلها مثالية للاستخدام في تصميم الويب سريع الاستجابة. عند استخدام SVG كفاصل مرئي، يمكننا تحقيق تصاميم معقدة وديناميكية لا يمكن تحقيقها بسهولة باستخدام CSS وحده أو صور نقطية.

معلومة!
يمكن تضمين رسوم SVG مباشرة في HTML أو CSS، مما يقلل من طلبات HTTP ويحسن أداء التحميل.

قيود
التقليدية والحاجة للبديل

بشكل افتراضي، يظهر عنصر <hr /> كخط أفقي رفيع، يختلف مظهره قليلاً بين المتصفحات. على الرغم من إمكانية تعديل بعض خصائصه الأساسية مثل اللون والارتفاع باستخدام CSS، إلا أن تحقيق أنماط معقدة أو متكررة يتطلب تجاوز قدراته المحدودة. هنا يأتي دور SVG لتقديم حلول تصميم لا نهائية، من الخطوط المتموجة إلى الأنماط الهندسية المتكررة.

تصميم SVG لفاصل مرئي متكرر

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

<svg width="10" height="2" viewBox="0 0 10 2" xmlns="http://www.w3.org/2000/svg">
  <circle cx="1" cy="1" r="1" fill="#888" />
</svg>

في هذا المثال، أنشأنا SVG بعرض 10 بكسل وارتفاع 2 بكسل يحتوي على دائرة صغيرة. عند تكرار هذا النمط، سيبدو كخط من النقاط المتباعدة.

تطبيق SVG المتكرر كخلفية

لتحويل SVG إلى فاصل مرئي متكرر، سنستخدم خاصية background-image في CSS، مع تضمين SVG مباشرة كـ data:image/svg+xml. هذا يضمن أن المتصفح يقوم بتحميل SVG كصورة خلفية ويقوم بتكرارها.

خطوات التنفيذ العملي

  1. الخطوة 1: إعداد عنصر <hr /> في HTML

    نبدأ بعنصر <hr /> بسيط في ملف HTML الخاص بك:

    <!DOCTYPE html>
    <html lang="ar">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>SVG HR Example</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
        <h1>مقال حول SVG كفاصل <hr /></h1>
        <p>هذا نص قبل الفاصل.</p>
        <hr />
        <p>هذا نص بعد الفاصل.</p>
        <hr class="dots" />
        <p>فاصل بنقاط.</p>
        <hr class="wave" />
        <p>فاصل بموجة.</p>
    </body>
    </html>
  2. الخطوة 2: تصميم SVG للنمط

    سنستخدم نمطاً بسيطاً من الخطوط المائلة المتكررة. يمكن تحويل هذا SVG إلى تنسيق URL لسهولة تضمينه في CSS.

    <svg width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
      <line x1="0" y1="10" x2="10" y2="0" stroke="#ccc" stroke-width="1" />
    </svg>

    هذا النمط سيخلق خطوطاً مائلة متكررة. يمكن تعديل stroke و stroke-width لتغيير اللون والسماكة.

  3. الخطوة 3: تطبيق CSS على <hr />

    الآن، سنقوم بتطبيق النمط على عنصر <hr /> باستخدام CSS. سنقوم بإزالة الحدود الافتراضية وتعيين SVG كخلفية متكررة.

    hr {
        border: none; /* إزالة الحدود الافتراضية */
        height: 10px; /* تحديد ارتفاع الفاصل ليتناسب مع ارتفاع SVG */
        background-image: url("data:image/svg+xml,%3Csvg width='10' height='10' viewBox='0 0 10 10' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='10' x2='10' y2='0' stroke='%23ccc' stroke-width='1' /%3E%3C/svg%3E");
        background-repeat: repeat-x; /* تكرار النمط أفقياً */
        background-size: 10px 10px; /* حجم النمط الواحد */
        margin: 2em 0; /* مسافة أعلى وأسفل الفاصل */
    }
    /* مثال على نمط آخر: نقاط */
    hr.dots {
        height: 2px;
        background-image: url("data:image/svg+xml,%3Csvg width='10' height='2' viewBox='0 0 10 2' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='1' fill='%23888' /%3E%3C/svg%3E");
        background-repeat: repeat-x;
        background-size: 10px 2px;
    }
    /* مثال على نمط آخر: موجة */
    hr.wave {
        height: 20px;
        background-image: url("data:image/svg+xml,%3Csvg width='40' height='20' viewBox='0 0 40 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 10 Q10 0 20 10 T40 10' stroke='%23f00' fill='none' stroke-width='2'/%3E%3C/svg%3E");
        background-repeat: repeat-x;
        background-size: 40px 20px;
    }
    

    لاحظ أننا قمنا بترميز SVG ليكون آمناً للاستخدام في URL. يمكن استخدام أدوات عبر الإنترنت لترميز SVG إلى URL إذا كان النمط معقداً.

نصيحة: لإنشاء أنماط SVG معقدة، يمكنك تصميمها في محرر رسومي مثل Adobe Illustrator أو Inkscape، ثم تصديرها كـ SVG. بعد ذلك، قم بتحسين الكود وإزالة أي عناصر غير ضرورية قبل ترميزها لـ CSS.

اعتبارات إمكانية الوصول

عند استبدال <hr /> برسوم SVG، من المهم التأكد من أن الفاصل لا يزال ينقل المعنى الدلالي الصحيح إذا كان ذلك مطلوباً. إذا كان الفاصل مجرد عنصر تزييني، فلا بأس. ولكن إذا كان يمثل فاصل محتوى ذا معنى، فتأكد من أن القارئات الشاشة لا تتجاهله تماماً. يمكن إضافة aria-hidden="true" إذا كان تزيينياً بحتاً، أو استخدام role="separator" إذا كان له معنى دلالي.

كيف يمكنني جعل SVG المتكرر مستجيباً؟

بما أننا نستخدم SVG كصورة خلفية، فإن استجابته تعتمد على كيفية تحديد background-size. إذا استخدمت وحدات نسبية مثل % أو vw لـ background-size، فسيتكيف النمط مع حجم العنصر الأب. تأكد أيضاً من أن height الخاص بـ hr يتكيف مع الشاشات المختلفة باستخدام استعلامات الوسائط (Media Queries).

هل يمكنني تحريك SVG المستخدم كفاصل؟

نعم، يمكن تحريك رسوم SVG باستخدام CSS Animations أو JavaScript. ومع ذلك، عند استخدامها كـ background-image، تكون خيارات التحريك محدودة. لتحريك النمط نفسه، ستحتاج إلى تضمين SVG مباشرة في HTML واستخدام CSS أو JavaScript لتحريك مساراته أو أشكاله، أو استخدام @keyframes مع background-position لإنشاء تأثير تمرير.

المشاركات ذات الصلة

المقال الأصلي:
تحويل <hr /> إلى تحفة فنية: دمج SVG المتكرر كفاصل مرئي
المصدر: صِوان AI
شكر خاص لـ GEMINI و جمال الحزازي.

عن المؤلف

جمال الحزازي
مرحبا انا منشئ محتوى رقمي (صِوانˣʸᶻ) مهتم بالتصميم ui/ux، مدون في مجال التقنية و العلوم تعرف على المزيد.
اشتري لي كوب قهوة ☕

إرسال تعليق

اكتب تعليقك 🤗، لكن تيقن ان كلماتك تعبر عن من انت.
"لا يقال قف لاراك بل تكلم لأعرفك"