(فيجما) Figma هو محرر رسومي عبر الإنترنت للتصميم التعاوني. يُستخدم Figma بشكل أساسي لإنشاء نماذج أولية للمواقع والتطبيقات.
يمكنك العمل مع Figma عبر الموقع الإلكتروني أو تطبيق سطح المكتب (بالنقر على "Desktop app for macOS"
أو "Desktop app for Windows"). بعد ذلك، يجب تسجيل الدخول إلى الحساب أو إنشاء حساب جديد.
بعد تسجيل الدخول، ستظهر الصفحة الرئيسية حيث تُعرض المشاريع في الوسط. على الجانب الأيسر توجد لوحة للتنقل إلى المشاريع الحديثة، المسودات، المفضلة، ومشاريع الفرق (يمكن إنشاء فرق للعمل على مشاريع مشتركة وتعديلها معًا).
لإنشاء مشروع، نضغط على "Drafts" في اللوحة اليسرى، ثم "Design file" في اللوحة العلوية.
يمكن تقسيم الواجهة إلى أربع مناطق:
- على اليسار - الطبقات
- في الوسط - مساحة العمل
- على اليمين - تحرير خصائص العناصر
- في الأعلى - الأدوات
الإطار هو العنصر الأساسي للتصميم في Figma. يُعد الإطار وثيقة مكتملة يمكن أن تكون صفحة لموقع ويب أو شاشة لتطبيق جوّال. يجمع الإطار العناصر المختلفة داخله.
لإضافة لون إلى الصفحة، نضغط على الإطار، ثم ننتقل إلى علامة التبويب "Fill" في اللوحة اليمنى - وهي المسؤولة عن تعبئة اللون، ثم نضغط على المربع. يمكننا اختيار اللون باستخدام شريط التمرير أو إدخال رمز اللون يدويًا.
ستعرض البطاقة صورة، اسمًا، وصفًا مختصرًا، سعرًا، وزرًا للانتقال إلى صفحة وصف المنتج التفصيلية. نحتاج إلى - 2 مستطيل، صورة، و3 كتل نصية.
لإنشاء مستطيل، اختره من لوحة الأدوات أو اضغط على المفتاح R، ثم أنشئ مستطيلًا بحجم عشوائي في مساحة العمل أثناء الضغط على زر الفأرة الأيسر. في علامة التبويب الخاصة بالمستطيل، يمكنك اختيار خط، سهم، شكل بيضاوي، مضلع، نجمة، أو صورة.
سننشئ مستطيلًا آخر، ونضيف صورة وعناصر نصية. عند إنشاء عناصر داخل الإطار، يتم إنشاؤها تلقائيًا في لوحة الطبقات داخل هذا الإطار.
يتم ضبط خصائص العناصر في اللوحة اليمنى.
خصائص النص:
- الخط. يمكنك اختيار الخط من موقع Google Fonts. اضغط على Filters <- Language. اختر Cyrillic لاختيار خط يدعم اللغة الروسية.
- النمط - اجعل الوصف المختصر وزر الضغط بخط Medium، والعنوان والسعر بخط SemiBold.
- الحجم - عادةً ما تكون أحجام النصوص على المواقع 14px، لذا سنجعل الوصف المختصر والزر بهذا الحجم، بينما سيكون حجم العنوان والسعر 16px، ليتميزوا عن باقي النصوص.
نختار عنصر النص، في علامة التبويب Text نضغط على اسم الخط، ثم نبحث عن الخط المطلوب، ونقوم بتعيين النمط وحجم الخط أدناه. إذا قمت بالنقر على الثلاث نقاط، ستظهر جميع إعدادات الخط.
سنجري نفس الشيء على عناصر النص الأخرى.
خصائص العناصر الهندسية:
- اللون. نحن نعرف كيفية القيام بذلك بالفعل.
- تدوير الزوايا.
لنستعرض معًا إعدادات هذه العلامة: X و Y - إحداثيات العنصر داخل الإطار، W و H - العرض والارتفاع، رمز الزاوية - زاوية دوران العنصر، وتدوير الزوايا.
سنقوم بتدوير الزوايا للبطاقة والصورة بمقدار 20px، بينما ستكون الزوايا في الزر بمقدار 10px.
- الإطار. سنضيف إطارًا للزر ونتخلص من التعبئة. لذلك، في قسم Stroke نضغط على "+", وسنضيف إطارًا. يمكننا ضبط اللون، السماكة، والجهات التي نريد إضافة الإطار لها. في قسم Fill، نضغط على "-" لإزالة اللون.
خصائص الصورة:
لتغيير الحجم، يجب سحب حدود الصورة، مع الضغط على مفتاح Shift لتغيير الأبعاد بشكل متناسب.
إذا كنت بحاجة إلى قص الصورة، انتقل إلى علامة التبويب Fill واضغط على الصورة. في النافذة التي ستظهر، ستجد قائمة منسدلة فوق الصورة، اختر منها Crop وقم بتغيير الحدود. إذا كنت ترغب في استبدال الصورة، قم بالتحريك على الصورة في هذه النافذة، وستظهر لك زر "Choose image".
لقد أعددنا جميع العناصر، والآن سنقوم بتنسيقها.
أولاً، دعنا نجمع الزر. اختر المستطيل والنص الخاص بالزر مع الضغط على مفتاح Shift، في اللوحة اليمنى في أول علامة تبويب، يمكنك ضبط المحاذاة. نحتاج إلى محاذاة العناصر بالنسبة لبعضها البعض عموديًا وأفقيًا، اضغط على الأيقونتين 2 و 5، ثم اضغط على Ctrl+G (لتجميع العناصر).
default.mp4
الآن سنقوم بتجميع البطاقة، وننقل العناصر إلى المستطيل الذي يشكل خلفية البطاقة، ونقوم بمحاذاة العناصر، ونجعل السعر والزر في نفس المستوى ثم نقوم بتجميعها. إذا كانت عدة عناصر مجمعة، فعند النقر مرة واحدة على عنصر، سيتم تحديد المجموعة بأكملها، لذلك يجب النقر مرتين على العنصر لتحديده فقط.
في Figma، هناك أداة تُعرف باسم Auto Layout. هذه الأداة تسمح بإنشاء حاويات يمكن أن تحتوي على عناصر واجهة مستخدم أخرى، ثم يمكن ضبط قواعد الترتيب، مثل المحاذاة أو المسافة بين العناصر. يمكن مقارنة Auto Layout بـ flex في CSS. نحدد جميع عناصر البطاقة، بما في ذلك الخلفية، وفي اللوحة اليمنى نجد علامة التبويب Auto Layout، ونضغط على الزر الإضافي.
نقوم بنسخ البطاقة وتغيير المحتوى.
سنجعل الصورة والوصف في كتل منفصلة.
تعريف لغه (HTML) - هي لغة ترميز تُستخدم لتحديد هيكل صفحات الويب التي يزورها المستخدمون. تتكون HTML من مجموعة من العناصر التي تستخدمها لتغطية أو لف أو وضع علامات على أجزاء مختلفة من المحتوى، بحيث يكون له مظهر محدد أو يعمل بطريقة معينة.
العنصر = علامة بداية + المحتوى + علامة نهاية
<p>Hello world!</p>
علامة البداية: تتكون من اسم (تسمية) العلامة، الموضوعة داخل أقواس الزاوية. تعمل هذه العلامة كمؤشر لبداية العنصر، ومن هذه اللحظة تؤثر العلامة على المحتوى الذي يليها
علامة النهاية: تبدو مثل علامة البداية، ولكنها تحتوي على شريط مائل قبل اسم العلامة
المحتوى: يشمل نصًا أو عناصر أخرى
دعونا نلقي نظرة على العلامات التي نحتاجها:
<div>..</div>
. يستخدم لتنظيم المحتوى على صفحة الويب ووضع المحتوى في كتل منفصلة. ينشئ عنصر div كتلة تمتد بشكل افتراضي عبر عرض المتصفح بالكامل، ويتم نقل العنصر التالي إلى سطر جديد.<p>..</p>
. يمثل فقرة نصية، ويُستخدم للفصل بين كتل النصوص بمسافات أو خطوط فارغة.<h1-6>..</h1-6>
. يمثل ستة مستويات من العناوين للأقسام. <h1>
هو أعلى مستوى، و<h6>
هو الأدنى. بشكل افتراضي، تبدأ عناوين العناصر في سطر جديد وتحتل كامل العرض المتاح في الكتلة المحتوية.<img/>
. يضيف صورة. السمة src ضرورية وتحتوي على مسار الصورة (سواء كان مسار ملف أو رابط من الإنترنت)، وتحتوي السمة alt على النص البديل. محركات البحث تستخدم النص البديل لفهرسة الصورة، وإذا كان هناك مشكلة في عرض الصورة، يظهر النص البديل. يمكن تعديل إعدادات الصورة من خلال css.مثال:
<img src="./img/sun.png" alt="Картинка солнца"/>
<a>..</a>
. يُستخدم مع السمة href لإنشاء رابط تشعبي إلى صفحات ويب، ملفات، عناوين بريد إلكتروني، مواقع داخل نفس الصفحة، أو أي عنصر يمكن الوصول إليه عبر URL.لمزيد من المعلومات حول العلامات.
تعريف لغه (CSS) (؛Cascading Style Sheets؛) - هي لغة جداول الأنماط، لغة لوصف مظهر صفحة الويب. من خلال HTML نقوم بإنشاء العناصر، ومن خلال CSS نقوم بتعيين الخصائص لها. لنفترض أننا أنشأنا تخطيطًا باستخدام HTML. الآن نريد أن نجعل مظهر الصفحة جميلاً، لذلك نحتاج إلى وصف كيف يجب أن يبدو كل عنصر. لهذا، يجب وصف مجموعة من قواعد تنسيق العنصر أو ببساطة النمط.
مجموعة القواعد = محدد {خاصية: قيمة;}
div {
background: #EFEFEF;
}
المحددات - اسم العنصر الذي سيتم تعيين نمط له
الخصائص - ما نريد تغييره
القيمة - واحدة من المضاهر الممكنة للخاصية
نوع المحدد | css | html | يحدد القواعد ل |
---|---|---|---|
عنصر | p { color: #ffffff; } |
<p> |
لجميع عناصر p |
معرف | #my-id { color: #ffffff; } |
<p id="my-id"> |
العنصر الذي يحمل هذا المعرف. يجب أن تكون كل قيمة معرف فريدة في الصفحة |
فئة | .title { color: #ffffff; } |
<p class="title"> <h3 class="title"> |
لجميع العناصر التي تحمل الفئة المحددة. يمكن أن يكون هناك عدة أمثلة للفئة في الصفحة |
فئة زائفة | p:hover { color: #252525; } |
<p> |
العنصر المحدد في الحالة المحددة. في هذا المثال <p> ، يغير اللون عند تمرير الماوس |
يوجد عدد هائل من الخصائص وقيمها، دعونا نستعرض جزءًا صغيرًا منها، والتي لا يمكن الاستغناء عنها، يمكنك دراسة الباقي عند الحاجة.
height - يحدد ارتفاع العنصر.
border - إطار حول العنصر. يمكن تخصيص سمك الإطار، نوعه ولونه. مثال: `border: 1px solid black`.
border-radius - يجعل زوايا العنصر مستديرة ويحدد ذلك بوحدات البكسل أو النسب المئوية بالنسبة لحجم العنصر.
margin - حجم المسافة الخارجية حول العنصر، يُحدد بوحدات px، %، auto، وغيرها.
padding - حجم المسافة الداخلية داخل العنصر، يُحدد بوحدات px، %، auto، وغيرها.
- اللاحقات: top, right, left, bottom. على سبيل المثال: { margin-top: 10px; padding-left: 2%; }
- عدد القيم:
- { margin: 1px } - هوامش بمقدار 1px من جميع الجوانب
- { margin: 1px 5px } - القيمة الأولى للهوامش العليا والسفلية، والثانية للهوامش اليسارية واليمنية
- { margin: 1px 5px auto } - القيمة الأولى لهامش الجزء العلوي، والثانية لليسار واليمين، والثالثة للأسفل
- { margin: 1px 5px auto 0 } - باتجاه عقارب الساعة لكل جانب: الأعلى، اليمين، الأسفل، واليسار
القيم:
- block - يبدأ العنصر بسطر جديد ويشغل كامل عرض الحاوية.
- inline - يتم وضع العنصر داخل العنصر الأب ولا يشغل سطرًا منفصلًا.
- none - العنصر لا يظهر.
- grid - يظهر العنصر في شكل شبكة.
- flex - مرن.
display: flex
الفكرة الأساسية - توزيع مرن للمساحة بين العناصر، ترتيب مرن، محاذاة، وإدارة مرنة.
- flex-direction - اتجاه ترتيب العناصر (في صف، في عمود، وما إلى ذلك).
- align-items - محاذاة العناصر داخل الحاوية على المحور العرضي.
تستخدم هذه الخصائص فقط عند تحديد { display: flex; }
.
مثال:
.container{
display: flex;
/* العناصر مرتبة في عمود */
flex-direction: column;
/* الفواصل متساوية بين العناصر */
justify-content: space-between;
}
المزيد عن القيم لهذه الخصائص.
على عكس حاوية الفليكس التي تعمل بعدد واحد فقط من الأبعاد، تتيح الشبكات (grids) العمل مع بعدين في وقت واحد: الأفقي والعمودي. يمكنك دمج خلايا فردية، وتغيير أحجام الصفوف والأعمدة، وضبط الهوامش بينها.
.container {
display: grid;
/* سيتم إنشاء 3 أعمدة */
grid-template-columns: 150px auto 40%;
/* سيتم إنشاء صفين */
grid-template-rows: 200px 250px;
}
إذا كنت بحاجة إلى أعمدة أو صفوف متساوية، يمكنك استخدام دالة repeat()
. بالنسبة للشبكة، هناك وحدة قياس خاصة بها وهي fr
، التي تُحسب تلقائيًا.
grid-template-columns: repeat(3, 1fr) /* ثلاثة أعمدة، كل منها سيشغل 1/3 من عرض العنصر الأب */
grid-template-columns: repeat(3, 250px); /* ثلاثة أعمدة بارتفاع 250 بكسل */
لمزيد من المعلومات حول الشبكة.
color - لون النص
font-family - خط النص
font-size - حجم الخط
font-weight - نمط الخط
text-align - محاذاة النص داخل العنصر
object-fit - تغيير حجم الصورة وتحديد مكانها داخل الحاوية
- rem — تعادل حجم خط العنصر الجذري (html). هذا مفيد لتلك العناصر التي يجب أن ترتبط بحجم خط html، بدلاً من حجم خط أب معين.
- vw و vh تُستخدم لتعيين الأحجام كنسب مئوية من عرض أو ارتفاع نافذة المتصفح. إنها مفيدة لإنشاء تصميمات مرنة تتكيف مع أحجام الشاشات المختلفة. 1vw يساوي 1% من عرض نافذة المتصفح، و 1vh يساوي 1% من ارتفاع النافذة.
أولاً، سنقوم بإنشاء التخطيط، ثم سنقوم بكتابة الأنماط.
نقوم بإنشاء ملف index.html
و style.css
، ونكتب في index.html
.
<!DOCTYPE html>
<html lang="rus">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Магазин</title>
<link rel="stylesheet" href="style.css"/>
</head>
<body>
<div class="space">
<div class="header"></div>
<div class="container"></div>
</div>
</body>
</html>
داخل عنصر body
، سنقوم بإنشاء div
باسم space
، والذي سنقوم بترتيب عناصر الصفحة داخله. تم تقسيم الصفحة إلى جزئين: الرأس والحاوية. يمكنك إضافة اسم الشركة، وشريط التنقل في الرأس. ستكون البطاقات داخل الحاوية.
ملف style.css
عند إنشاء البطاقة في Figma، كان من الضروري اختيار خط من موقع Google Fonts. الآن على صفحة الخط، يجب الضغط على "Get Font" -> "Get embed code" -> التبديل إلى @import
-> نسخ الكود. نضيف هذا import
في بداية ملف style.css
.
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
*{
margin: 0;
padding: 0;
font-family: 'Montserrat', sans-serif;
color: #000000;
}
body{
background: #EFEFEF;
}
.space{
width: 80%;
margin-left: auto;
margin-right: auto;
}
``
ماذا فعلنا من خلال الأنماط؟
- قمنا بتعيين خلفية للصفحة بالكامل
- الحاوية التي تحتوي على جميع العناصر تشكل 80% من عرض الشاشة ومركزة في المنتصف بسبب ذلك
**أنماط الحاوية**
دع البطاقات تتوزع بواقع 4 بطاقات في الصف والمسافة بينها 20 بكسل.
```css
.container{
display: grid;
grid-template-columns: repeat(4,1fr);
gap: 20px;
}
تتكون البطاقة من صورة، عنوان، وصف، سعر وزر. سنستخدم div class="card"
الذي يجمع جميع العناصر معًا.
سنضيف ذلك داخل فئة الحاوية
<div class="card">
<img src="./img/1.jpg" class="image">
<p class="title">LA ROCHE-POSAY effaclar</p>
<p class="short-description">Крем-гель для проблемной кожи</p>
<p>1348 ₽</p>
<a href="" class="card-button">Подробнее</a>
</div>
الآن لدينا على الصفحة صورة بسيطة وعناصر نصية.
أنماط للخلفية
في Figma، نرى ما هي خصائص خلفية البطاقة:
- لون الخلفية - #FFFAFA
- تقوس الحواف - 20px
- الحشوة الداخلية 20px، ولكن دعنا نجعلها كنسبة مئوية - 10%
.card{
border-radius: 20px;
background-color: #FFFAFA;
padding: 10%;
display: flex;
flex-direction: column;
justify-content: space-between;
}
لكي تتغير أبعاد البطاقة مع المحتوى ويمكننا التحكم في ترتيب العناصر، سنجعلها حاوية فليكس، يجب أن تكون العناصر في عمود مع مسافة متساوية بينها.
أنماط الصورة
سنأخذ الارتفاع والتدوير من فيغما.
خاصية object-fit - تتحكم في تغيير حجم الصورة وترتيبها
القيم:
- contain - يتم تغيير حجم الصورة بشكل متناسب لتناسب تمامًا داخل العنصر الأب، في هذه الحالة قد تحتوي الصورة على مناطق فارغة على الجوانب أو من الأعلى أو من الأسفل
- fill - تملأ الصورة المساحة المتاحة بالكامل للعنصر، وقد تتشوه نسبها
- none - ستظهر الصورة بأحجامها الطبيعية، متجاهلة أحجام العنصر الأب
- scale-down — هذه القيمة تحدد تلقائيًا وتختار القيمة الأنسب بين none و contain، أي إذا كانت أبعاد الصورة أكبر من أبعاد العنصر الأب، فسيتصرف scale-down مثل contain، وإلا فسيتصرف مثل none
.image{
width: 100%;
height: 211px;
border-radius: 20px;
object-fit: cover;
}
ستشغل الصورة 100% من العرض المتاح لها، حيث أن البطاقة تحتوي على padding بنسبة 10%، وبالتالي ستملأ الصورة 80% من عرض البطاقة وستكون في المنتصف.
أنماط العنوان
حجم الخط - 16px، النمط - bold (يمكن أيضًا تحديده بالأرقام، bold - 700). دعونا نضيف أيضًا هامشًا من الأعلى بمقدار 16px.
.title{
margin-top: 16px;
font-size: 16px;
font-weight: bold;
}
أنماط الوصف
حجم الخط - 14px، النمط - Medium، دعونا نضيف هامشًا من الأعلى والأسفل بمقدار 10px، وأن يكون النص مليئًا بعرض 100% من المساحة المتاحة له.
.short-description{
font-size: 14px;
font-weight: 500;
width: 100%;
margin-top: 10px;
margin-bottom: 10px;
}
أنماط الزر
يتم تعيين خط تحت نص الروابط بشكل افتراضي، ويمكن إزالته باستخدام text-decoration: none;
بالنسبة لـ padding، يتم تحديد قيمتين، فلنتذكر أن القيمة الأولى هي للهامش العلوي والسفلي، والثانية هي للهامش الأيمن والأيسر.
.card-button{
padding: 8px 10px;
border-radius: 10px;
border: 1px solid #000000;
text-decoration: none;
font-size: 14px;
font-weight: 500;
}
الآن سنجمع الصورة والعنوان والوصف في div واحد، والسعر والزر في div آخر.
<div class="card">
<div class="info">
<img src="./img/2.jpg" class="image">
<p class="title">LA ROCHE-POSAY nutritic intense riche</p>
<p class="short-description">Питательный крем для глубокого восстановления сухой кожи</p>
</div>
<div class="down">
<p>1915 ₽</p>
<a href="" class="card-button">Подробнее</a>
</div>
</div>
سنكتب نمطًا لعنصر down
بحيث يتم وضع السعر والزر في صف واحد، ويكون السعر على الحافة اليسرى، والزر على الحافة اليمنى. للقيام بذلك، سنجعل down
حاوية مرنة وسنقوم بتعيين justify-content: space-between;
، بينما يتحكم align-items
في المحاذاة.
لتحديد كعلامة داخل الفئة، يمكنك القيام بذلك على النحو التالي: .<اسم الفئة> <اسم العلامة>
. بالنسبة للسعر، نقوم بتحديد حجم الخط والأسلوب.
.down{
display: flex;
justify-content: space-between;
align-items: center;
}
.down p{
font-size: 16px;
font-weight: 700;
}
في النهاية نحصل على بطاقة مثل هذه
بعد إضافة المزيد من البطاقات واسم الشركة في الرأس، أصبح الشكل كالتالي: