الهوية البصرية
اجعل الموقع ولوحة التحكم لك: الاسم والرمز والأيقونات والألوان والخطوط وبيانات الوكالة ونصوص محركات البحث.
لحزمة الحزمة الكاملة
أين توجد الهوية البصرية
| العنصر | الموقع (storefront/) | لوحة التحكم (admin-dashboard/) |
|---|---|---|
| الاسم وبريد التواصل والسوق | src/config/brand.config.ts | src/config/brand.config.ts |
| الألوان والاستدارة والظلال | src/styles/theme-variables.css | src/styles/theme-variables.css |
| الرمز والأيقونات | public/brand/, public/, src/app/ | public/brand/, public/, src/app/ |
| الخطوط | src/app/[locale]/layout.tsx | src/app/layout.tsx |
| النصوص | messages/ | messages/ |
كل لون رمز (token) يُعرَّف مرة للمظهر الفاتح (:root) ومرة للمظهر الداكن (:root[data-theme="dark"]). تقرأ المكونات الرموز فقط، لذلك يصل تغيير الرمز إلى كل صفحة. غيّر لون العلامة في الكتلتين، وإلا احتفظ مظهر واحد باللون القديم.
اسم الموقع وبريد التواصل والسوق
في storefront/src/config/brand.config.ts:
name: { en: "Velra", ar: "فيلرا" }, // tab titles, sharing cards, the wordmark, the manifest
contactEmail: "hello@velra.example", // until the dashboard's settings answer
market: {
currency: "AED", // prices without a currency of their own, budget ranges, the footer
timeZone: "Asia/Dubai", // viewing slots and dates
utcOffset: "+04:00", // the offset a viewing's preferred time is sent in
areaServed: "Dubai", // the agency's structured data for search engines
},الاسم المكتوب بجانب الرمز نص حي، لذلك يتبع name. يظهر الاسم والمدينة أيضًا في جمل، باللغتين: ابحث في messages/ عن Velra وفيلرا، وعن Dubai ودبي، وأعد كتابة تلك الأسطر. وتلميح المنطقة الزمنية في messages/viewing يقول UTC+4.
رمز الموقع وأيقوناته وصوره
| الملف | الاستخدام |
|---|---|
public/brand/velra-mark.svg | رمز المنزل في المظهر الفاتح (الترويسة والتذييل) |
public/brand/velra-mark-white.svg | رمز المنزل في المظهر الداكن وعلى الصور الفوتوغرافية |
src/app/icon.svg | أيقونة علامة تبويب المتصفح |
src/app/apple-icon.png | أيقونة الشاشة الرئيسية على iPhone وiPad |
public/web-app-manifest-192x192.png, public/web-app-manifest-512x512.png | أيقونات التطبيق القابل للتثبيت |
استبدل الملفات وأبقِ أسماءها، أو غيّر mark.color وmark.white في إعدادات العلامة. صور الوكالة نفسها (الاستوديو، والاستقبال، ولوحتا الشراء والإيجار، وبلاطات أنواع العقارات) تقدّمها واجهة API من public/media/velra/site/ في مجلد واجهة API: استبدلها بالأسماء نفسها. والملف agency-studio.webp هو أيضًا صورة المشاركة لكل صفحة ليس لها عقار خاص بها.
ألوان الموقع وخطوطه
| المتغير | فاتح | داكن | الدور |
|---|---|---|---|
--primaryColor | #236B79 | #5AAAB8 | الإجراءات الأساسية والعناصر المحددة والأسعار وحلقة التركيز |
--primaryColorHover | #194D59 | #77BFCA | التمرير والضغط |
--primary-tint | #E9F3F4 | #1A3238 | التعبئة المحددة واللوحات الهادئة |
--background | #F5F7F8 | #0F1A1E | الصفحة |
--surface | #FFFFFF | #16242A | البطاقات والترويسة والتذييل والنوافذ المنبثقة |
--text | #263F48 | #E6EEF0 | العناوين والنص البارز |
--text-muted | #637780 | #A9BBC1 | النص الثانوي |
يسرد storefront/BRANDING.md كل رمز. تأكد من أن النص على ألوانك ما زال مقروءًا بنسبة 4.5 إلى 1 في المظهرين. تُحمَّل الخطوط عبر next/font/google، فتُقدَّم مع البناء: Manrope للنص اللاتيني، وNoto Sans Arabic للنص العربي، وCormorant Garamond وNoto Naskh Arabic للعناوين. وألوان شريط المتصفح هي themeColor.light وthemeColor.dark في إعدادات العلامة.
نتائج البحث، والمشاركة، والنطاق
NEXT_PUBLIC_SITE_URLهو أساس كل عنوان أساسي، وبدائل اللغات، وبطاقات المشاركة، وrobots.txt، وخريطة الموقع. اضبطه على عنوانك الحقيقي قبل أن تبني.- عناوين الصفحات وأوصافها تحت
metaفي كل مساحة أسماء ضمنmessages/(للصفحة الرئيسية فيmessages/home، والافتراضي فيmessages/layouts). تستخدم صفحة العقار عنوان العقار ووصفه الخاصين لتحسين الظهور، المكتوبين في المحرر، وصورة غلافه. - تُنسَّق الأسعار في
src/lib/utils/formatPrice.tsبرمز العملة متبوعًا بالمبلغ بأرقام لاتينية (AED 4,850,000)؛ وتضيف الإيجارات الفترة من الترجمات. نطاقات الميزانية في البحث فيsrc/constants/search/priceRanges.ts.
فاتح وداكن ونظام
للتطبيقين قائمة مظهر فيها النظام وفاتح وداكن. يتبع النظام نظام التشغيل ويتغير بتغيره. يُحفظ الاختيار في localStorage بالمتصفح (velra-theme في الموقع وvelra-admin-theme في لوحة التحكم)، ولا يُرسل شيء إلى واجهة API، ويطبّقه سكربت قصير في رأس الصفحة قبل أول رسم، فلا تومض إعادة التحميل بالمظهر الآخر.
اسم لوحة التحكم ورمزها وألوانها
- الاسم:
nameفيsrc/config/brand.config.tsهو الاسم المكتوب ونصف العلامة في عنوان كل صفحة (Properties | Velra)؛ ويحويmetaالعنوان والوصف والكلمات المفتاحية الافتراضية، وdomain.urlأساس عناوين البيانات الوصفية المطلقة، وmanifestالتطبيق القابل للتثبيت. أما عنوان كل صفحة فهو تحتmeta.titlesفي مساحتَي الأسماءdashboardوauthضمنmessages/. - الرمز: استبدل
public/brand/velra-mark.svgوvelra-mark-white.svgمع إبقاء الأسماء. أيقونة تبويب المتصفح هيsrc/app/icon0.svg، وأيقونة iPhone هيsrc/app/apple-icon.png، وأيقونات التطبيق القابل للتثبيت هي ملفاweb-app-manifestفيpublic/. - الألوان:
--primaryColorو--primaryColorHoverو--primary-foregroundو--primary-tintو--backgroundو--surfaceو--textو--text-mutedو--borderو--errorColor، إضافة إلى أزواج--tone-*لشارات الحالة، فيsrc/styles/theme-variables.css، مرة لكل مظهر. وأي حالة تأخذ أي درجة موجود فيsrc/config/statusTones.ts. - الخطوط: Manrope وNoto Sans Arabic وCormorant Garamond وNoto Naskh Arabic، تُحمَّل في
src/app/layout.tsxوتُعيَّن فيsrc/styles/base.css.
بيانات الوكالة نفسها
اسم الوكالة وعبارتها التعريفية ووصفها وبريد التواصل ومدينتها إعدادات تُعدَّل في لوحة التحكم تحت الإعدادات ثم الوكالة، ويقرؤها الموقع من GET /api/settings/public. تخزّنها البيانات الأولية باسم agency_name وagency_tagline_en وagency_tagline_ar وagency_description_en وagency_description_ar وcontact_email وagency_city. أما المنازل التي تعرضها الصفحة الرئيسية، والمنزل الذي تعرض غرفته المؤثثة، فتُضبط تحت الإعدادات ثم الصفحة الرئيسية.
شعار العلامة نفسه لا يُرفع في لوحة التحكم: فهو يأتي من الملفات المذكورة أعلاه.
الصياغة وسياسة الخصوصية
كل جملة ظاهرة موجودة في messages/، مجلد لكل منطقة فيه en.json وar.json؛ وأسماء المرافق في messages/amenities. أعد كتابة النصوص في الملفين. سياسة الخصوصية في messages/privacy نص قالب كُتب لوكالة خيالية وتقول ذلك في الصفحة: أعد كتابتها لوكالتك ولبلدك قبل الإطلاق، ثم احذف تلك الملاحظة (الفقرة الأخيرة من src/features/privacy/components/PrivacyHeader.tsx ومفتاحها templateNote في الملفين).