انتقل إلى المقال
Aniq-UI

E-Commerceالهوية البصرية

الهوية البصرية

أين يوجد اسم المتجر وشعاره وأيقوناته وألوانه وخطوطه في كل تطبيق، وما الذي تغيّره لتجعله يحمل هويتك.

لحزمة الحزمة الكاملة

أين توجد الهوية البصرية

تُضبط الهوية البصرية في الملفات، لا في لوحة الإدارة. لكل من المتجر ولوحة الإدارة نسخته الخاصة، لذا غيّر كل تطبيق تنشره.

العنصرالمتجر (storefront/)لوحة الإدارة (admin-dashboard/)
الاسم، والوصف، وبيانات التواصل، والروابطsrc/config/brand.config.tssrc/config/brand.config.ts
الشعارالاسم، مكتوبًا كنص بواسطة src/layouts/app/NavBar/components/Logo.tsxpublic/assets/images/logo-for-lightmode.png وlogo-for-darkmode.png
أيقونة المتصفح (Favicon) وأيقونات التطبيقsrc/app/ (favicon.ico وicon0.svg وicon1.png وapple-icon.png) وpublic/web-app-manifest-192x192.png و-512x512.pngالملفات نفسها في src/app/ وpublic/ الخاصين بها
الألوانsrc/styles/theme-variables.csssrc/styles/theme-variables.css
الخطوطsrc/app/layout.tsx وsrc/styles/base.cssلا شيء مضبوط: خطوط النظام
النصوصmessages/<namespace>/<locale>.jsonmessages/ وتسميات الشريط الجانبي في navigationData.ts

يُظهر yarn dev التغيير فورًا. أما بناء الإنتاج فيُضمِّن الهوية البصرية أثناء البناء، لذا شغّل yarn build مرة أخرى، أو docker compose up --build للحزمة الكاملة.

الاسم في المتجر

يأتي المتجر باسم STORE (وستور بالعربية). كل شيء موجود في BRAND_CONFIG، في storefront/src/config/brand.config.ts؛ لحقول النص قيمة en وقيمة ar.

الحقلأين يظهر
storeNameالشعار: علامة نصية في الشريط العلوي والتذييل، وحقوق النشر في التذييل.
nameتبويب المتصفح (Page | Name)، واسم الموقع في معاينة المشاركة، وتفاصيل الموقع التي تقرؤها محركات البحث.
companyاسم المؤسسة الذي تقرؤه محركات البحث.
meta.title, meta.description, meta.keywords, meta.authorعنوان الصفحة الرئيسية، والوصف والكلمات المفتاحية الافتراضية.
meta.ogImage, meta.twitterImageالصورة التي تظهر عند مشاركة صفحة، وهي مسار داخل public/. تأتي افتراضيًا بصورة الواجهة الرئيسية للصفحة الرئيسية.
logo.iconشعار المؤسسة الذي تقرؤه محركات البحث.
theme.light, theme.darkلون شريط أدوات المتصفح على الهواتف.
manifestاسم التطبيق المثبّت وألوانه وأيقوناته.
contact.email, contact.phone, contact.addressعمود التواصل في التذييل وصفحة التواصل. تأتي بقيم مؤقتة: استبدلها.
links.instagram, links.twitter, links.facebook, links.linkedinأيقونات التواصل الاجتماعي في التذييل، كعناوين URL كاملة (يظهر twitter باسم X). كل حقل مملوء تظهر له أيقونة؛ والحقول الفارغة مخفية. تأتي فارغة، فلا يظهر صف التواصل الاجتماعي في المتجر الجديد. وتُدرج العناوين نفسها كحسابات المؤسسة لمحركات البحث.

يأتي العنوان العام للموقع من NEXT_PUBLIC_SITE_URL، لا من هذا الملف. النصوص المرفقة تصف متجرًا للملابس الرجالية: الأوصاف في brand.config.ts، والصفحة الرئيسية في messages/home/، وعناوين الصفحات في messages/seo/ هي الأماكن التي تعيد فيها كتابتها.

الاسم في لوحة الإدارة

تأتي لوحة الإدارة باسم Aniq Dashboard. كل شيء موجود في BRAND_CONFIG، في admin-dashboard/src/config/brand.config.ts؛ لحقول النص قيمة en وقيمة ar.

الحقلأين يظهر
nameعنوان تبويب المتصفح في كل صفحة، والاسم في الترويسة، واسم الموقع في معاينة المشاركة، والتذييل.
companyسطر «بواسطة» في التذييل، والمؤسسة التي تقرؤها محركات البحث.
versionالتذييل.
logo.altتسمية قارئ الشاشة لشعار صفحة تسجيل الدخول.
logo.iconشعار المؤسسة الذي تقرؤه محركات البحث. لا يُرسم على الشاشة.
metaالعنوان والوصف والكلمات المفتاحية والمؤلف الافتراضية، والصورة التي تظهر عند مشاركة رابط لوحة الإدارة.
domain.urlالأساس للروابط المطلقة في البيانات الوصفية. يأتي بالقيمة https://yourdomain.com: اضبطه على عنوان لوحة الإدارة نفسها.
theme, manifestلون شريط أدوات المتصفح، واسم التطبيق المثبّت وألوانه وأيقوناته.
contact, linksالبريد الإلكتروني والهاتف والحسابات الخاصة بالمؤسسة، لمحركات البحث فقط.

تأتي لوحة الإدارة باسم Aniq Dashboard، مع أيقونة التطبيق (/web-app-manifest-512x512.png) كصورة للمشاركة. وجّه meta.ogImage وmeta.twitterImage إلى ملفك الخاص داخل public/؛ الصورة بمقاس 1200 في 630 تملأ بطاقات المعاينة الكبيرة على أفضل وجه.

الشعار والأيقونات

  • شعار المتجر هو اسمه مكتوبًا كنص، من storeName، في الشريط العلوي (src/layouts/app/NavBar/components/Logo.tsx) والتذييل (src/layouts/app/footer/components/FooterBrandIntro.tsx). لاستخدام صورة بدلًا منه، ضع صورتك في Logo.tsx. ملفا logo-for-lightmode.png وlogo-for-darkmode.png في المتجر غير مستخدمين.
  • شعار لوحة الإدارة، في الترويسة وفي صفحة تسجيل الدخول، صورتان، واحدة لكل مظهر: استبدل public/assets/images/logo-for-lightmode.png وlogo-for-darkmode.png مع الإبقاء على اسميهما. يشير src/styles/theme-variables.css إليهما عبر --logo-bg-image.
  • استبدل أيقونة المتصفح وأيقونات التطبيق في src/app/ وpublic/ لكل تطبيق، مع الإبقاء على أسماء الملفات، حتى تواصل ملفات manifest والمتصفح العثور عليها.

الألوان والمظاهر

يعرّف كل تطبيق ألوانه كمتغيرات CSS في src/styles/theme-variables.css: مجموعة تحت :root للمظهر الفاتح، وأخرى تحت .dark للمظهر الداكن. اللون المميّز هو --primaryColor، وقيمته #ee8038 في التطبيقين.

المتغيرما يلوّنه
--primaryColor, --primaryColorHoverالأزرار والروابط والعناصر المميَّزة
--accent-textالنص الملوّن باللون المميّز على الأسطح الفاتحة (في المتجر فقط)
--backgroundالصفحة
--surface, --surface-hoverالبطاقات واللوحات وحالة التمرير فوقها (يضيف المتجر --surface-elevated)
--text, --text-mutedنص المحتوى والنص الثانوي
--borderالفواصل وحدود حقول الإدخال
  • غيّر اللون في المجموعتين، حتى يبقى المظهران متناسقين.
  • يتبع المظهر إعدادات نظام الزائر إلى أن يختار مظهرًا بزر التبديل، فيُحفظ اختياره في المتصفح.
  • الحقل theme في brand.config.ts هو لون شريط أدوات المتصفح فقط، لا لون الواجهة.

الخطوط

يحمّل المتجر ثلاثة خطوط من Google Fonts برابط واحد في src/app/layout.tsx: خط Plus Jakarta Sans لكل النصوص اللاتينية، ويُضبط على body في src/styles/base.css؛ وخط Zain للنص العربي، في الملف نفسه؛ وخط IBM Plex Sans Arabic للعناوين العربية، عبر الصنف .font-display-ar في src/styles/utilities.css.

لتغيير أحدها، استبدل عائلته في رابط Google Fonts داخل layout.tsx، ثم قيمة font-family المقابلة في ملفات CSS تلك. اختر خطًا عربيًا يتضمن الأوزان التي تستخدمها الصفحات.

لا تحمّل لوحة الإدارة أي خط ويب، وتستخدم خطوط النظام. أضف خطًا بالطريقة نفسها إن أردت.

ابحث عن كل ذكر للاسم

لا تكرر رسائل المتجر الاسم: حقوق النشر في التذييل تأخذه من storeName. أما اسم لوحة الإدارة فيظهر في نصوصها الخاصة. تحقق من التطبيقين:

الطرفيةفي storefront
grep -rn "STORE\|ستور" src messages
الطرفيةفي admin-dashboard
grep -rn "Aniq\|أنيق" src messages

واجهة API

لا تحمل واجهة API أي هوية خاصة بها ولا ترسل أي بريد إلكتروني. رسائل تسجيل الدخول والأخطاء فيها نص عادي في back-end/src/i18n/translations/<locale>/.

توقفت عند خطوة؟

ابحث عن الحل قبل أن تبدأ من جديد.

حل المشكلات

تفضيلات ملفات تعريف الارتباط

نستخدم ملفات تعريف الارتباط لتعزيز تجربة التصفح الخاصة بك وتحليل حركة المرور على الموقع وتخصيص المحتوى. بالنقر على "قبول الكل"، فإنك توافق على استخدامنا لملفات تعريف الارتباط للتحليلات والإعلانات المخصصة.