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

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

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

اجعل الموقع ولوحة التحكم لك: الاسم، والشعارات الكاملة والأيقونات، والألوان والخطوط، وبطاقات المشاركة، والمظاهر، والأماكن التي تكتب فيها واجهة API اسم المنتج.

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

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

العنصرالموقع (website/)لوحة التحكم (dashboard/)
الاسم والبيانات الوصفيةmessages/layout/<locale>.json (Metadata, Common.brand), src/config/site.tssrc/config/brand.config.ts, messages/metadata/<locale>.json
الشعار الكامل والرمزpublic/brand/، ويُضبط حجمه في src/components/Logo.tsxpublic/brand/، ويُضبط حجمه في src/config/brand.config.ts
الأيقوناتsrc/app/icon.svgsrc/app/ وملفا web-app-manifest في public/
بطاقة المشاركةpublic/meta_image.pngmeta.ogImage في src/config/brand.config.ts
الألوانsrc/styles/theme-variables.csssrc/styles/theme-variables.css
الأشكالpublic/shapes/public/shapes/
الخطوطsrc/fonts/ وpublic/fonts/src/fonts/
النصوصmessages/ وsrc/content/messages/

كل لون رمز معرَّف مرة واحدة للمظهر الفاتح ومرة للمظهر الداكن. تقرأ المكونات الرموز فقط، فيصل أي رمز تغيّره إلى كل شاشة. غيّر لون الهوية في الكتلتين، وإلا بقي لأحد المظهرين اللون القديم.

اسم الموقع ونصوصه

  • الاسم في عناوين التبويبات وبطاقات المشاركة هو Metadata.siteName في messages/layout/en.json وar.json، وبجانبه العنوان الافتراضي والوصف والنص البديل لصورة المشاركة. والاسم الذي يقرؤه قارئ الشاشة للشعار هو Common.brand، وسطر حقوق النشر هو Footer.copyright.
  • عنوان كل صفحة ووصفها موجودان تحت meta في مساحة اسمها داخل messages/، مثل PricingPage.meta في messages/pricing/.
  • يظهر اسم المنتج أيضًا داخل الجمل، مكتوبًا Northstack بالأحرف اللاتينية في اللغتين: ابحث عنه في messages/ وsrc/content/ وأعد كتابة تلك الأسطر. التوثيق والمدونة وسجل التغييرات في src/content/ تصف Northstack نفسه وهي لك لتعيد كتابتها.
الملفالاستخدام
public/brand/logo-light.svg, public/brand/logo-dark.svgالشعار الكامل (الرمز والاسم مرسومان معًا) في الترويسة والتذييل ومعاينة مساحة العمل، في الصفحات الفاتحة والداكنة. الشعار نفسه يخدم اللغتين.
src/app/icon.svgأيقونة علامة تبويب المتصفح
public/meta_image.pngبطاقة المشاركة بقياس 1200 في 630، المذكورة في ogImage داخل src/config/site.ts، لكل صفحة.
public/shapes/المربعات والدوائر والأرباع والمثلثات المرسومة حول الأقسام، عبر src/components/Shape.tsx

استبدل ملفَّي الشعار الكامل بملفيك مع الاسمين نفسيهما. تُكتب نسبتهما في LOCKUP_RATIO داخل src/components/Logo.tsx (379.24 في 68 كما يُشحن): اضبطها على عرض شعارك مقسومًا على ارتفاعه، لتحتفظ الترويسة بحجمها.

ألوان الموقع وخطوطه

المتغيرفاتحداكنالدور
--background, --surface#f1ece3#171717, #202020الصفحة واللوحات
--text, --text-muted#111111, #5d5e63#f1ece3, #b9b8b2النص
--border, --border-strong#b8b5ad, #111111#696761, #b8b5adالخطوط والحدود
--primary#111111#f1ece3الأزرار الأساسية
--brand-action#c7492c#c7492cأزرار الدعوة إلى الإجراء الحمراء
--link, --focus#1151d8#82a8ffالروابط وحلقة التركيز
--red, --cobalt, --sunflower#c7492c, #1151d8, #efbf43الأمر نفسهالأشكال وعلامات الحالة
--errorColor#a83a20#e0714fالأخطاء

ألوان شريط المتصفح (#f1ece3 و#171717) هي themeColor في src/app/[locale]/layout.tsx. تأكد من أن النص على ألوانك ما زال مقروءًا بنسبة 4.5 إلى 1 في المظهرين.

تُشحن الخطوط مع التطبيق، فلا ينزّلها البناء أبدًا: Inter للنص اللاتيني (src/fonts/InterVariable-latin.woff2، وتُحمَّل في src/fonts/fonts.ts)، وNoto Sans Arabic للنص العربي وAlmarai للعناوين العربية (public/fonts/، وتُعرَّف في src/styles/fonts.css وتُحمَّل مسبقًا في الصفحات العربية). ولكل منها رخصة SIL Open Font License بجانبه. لتغيير خط، ضع ملف .woff2 الخاص به في المجلد نفسه، ووجّه التعريف إليه، وأبقِ رخصته بجانبه.

نتائج البحث، والمشاركة، والنطاق

  • NEXT_PUBLIC_SITE_URL هو أساس كل عنوان أساسي، وبدائل اللغات، وبطاقات المشاركة، وrobots.txt، وخريطة الموقع. اضبطه على عنوانك الحقيقي قبل أن تبني.
  • تُكتب الأسعار بالطريقة نفسها في اللغتين، وعلامة الدولار أولًا بالأرقام اللاتينية، عبر src/lib/format/formatUsd.ts.
  • تذكر بيانات الصفحة الوصفية Aniq-UI مؤلفًا لها (authors في src/app/[locale]/layout.tsx): ضع اسمك هناك.

فاتح وداكن

  • الموقع يعرض في قائمة المظهر: النظام وفاتح وداكن. «النظام» يتبع نظام التشغيل. يُحفظ الاختيار في localStorage بالمتصفح باسم northstack-theme، ويطبّقه سكربت في ترويسة الصفحة قبل أول رسم، فلا يومض المظهر الآخر عند إعادة التحميل.
  • لوحة التحكم فيها زر مظهر واحد في شريطها العلوي، قرص نصفه ممتلئ اسمه «تبديل المظهر» لقارئات الشاشة، يبدّل بين الفاتح والداكن. وإلى أن يُضغط تتبع لوحة التحكم نظام التشغيل. يُحفظ الاختيار في localStorage باسم theme ويُطبَّق قبل أول رسم بالطريقة نفسها.
  • لا يُرسَل شيء عن المظهر إلى واجهة API.

اسم لوحة التحكم وشعارها الكامل وألوانها

  • الاسم: name في BRAND_CONFIG (src/config/brand.config.ts) هو جزء الهوية في كل عنوان تبويب (Team | Northstack)، والنص البديل للشعار، واسم التطبيق المثبَّت. وهو نفسه في اللغتين. عنوان كل صفحة تحت pages في messages/metadata/en.json وar.json، والعنوان الافتراضي والوصف تحت site. ويظهر اسم المنتج أيضًا داخل الجمل في messages/، بالأحرف اللاتينية في اللغتين.
  • البيانات الوصفية: meta.keywords وmeta.author (Aniq-UI كما يُشحن: ضع اسمك) وmeta.ogImage، وهي الصورة التي يعرضها الرابط المشارَك، مع حجمها. وهي كما تُشحن أيقونة التطبيق 512 في 512، فتُشارَك بطاقة صغيرة؛ وصورة 1200 في 630 تُشارَك بطاقة كبيرة. وtheme.light وtheme.dark هما لونا شريط المتصفح، وmanifest ألوان التطبيق المثبَّت وأيقوناته.
  • الشعار الكامل والرمز: استبدل logo-light.svg وlogo-dark.svg وmark-light.svg وmark-dark.svg في public/brand/ مع إبقاء الأسماء، واضبط logo.width وlogo.height على نسب شعارك الجديد. يظهر الرمز وحده في الشريط الجانبي المطوي وفي ترويسة الهاتف، ويُرسم بنسبة 100 في 48 في src/components/ui/BrandLogo.tsx.
  • الأيقونات: src/app/favicon.ico (التبويب)، وsrc/app/icon0.svg وsrc/app/icon1.png، وsrc/app/apple-icon.png (الشاشات الرئيسية في iPhone وiPad)، وpublic/web-app-manifest-192x192.png وpublic/web-app-manifest-512x512.png للتطبيق المثبَّت.
  • الألوان: لوحة الألوان (--paper و--ink و--red و--cobalt و--sunflower)، والأسطح والنصوص، والخطوط (--border و--border-strong)، والإجراءات، وعلامات الحالة (--status-progress و--status-review و--status-blocked و--status-done) ولون المخطط، في src/styles/theme-variables.css، مرة لكل مظهر. وتُرسم الأشكال بواسطة src/components/ui/Shape.tsx من public/shapes/، ويظهر الأشخاص بلا صورة كمربعات بأحرفهم الأولى.
  • الخطوط: Inter للنص اللاتيني وIBM Plex Sans Arabic للعربي، من src/fonts/ (مع رخصها)، وتُحمَّل في src/styles/fonts.ts.
  • العناوين: NEXT_PUBLIC_BASE_URL هو عنوان لوحة التحكم نفسها (robots.txt وخريطة الموقع والبيانات الوصفية وعنوان مساحة العمل في الإعداد الأولي والإعدادات)، وNEXT_PUBLIC_WEBSITE_URL عنوان الموقع (روابط التوثيق والخصوصية والشروط).

تُبقي لوحة التحكم كل صفحة بعيدة عن محركات البحث (noindex في ترويسة الصفحة وترويسة X-Robots-Tag)، كما ينبغي للوحة الإدارة.

الأماكن التي تكتب فيها واجهة API اسم المنتج

المكانالملف
مرسل كل بريد، SMTP_FROM (والقيمة Northstack <no-reply@localhost> عندما يكون فارغًا)back-end/.env, back-end/src/modules/mail/mail.service.ts
موضوع رسالة إعادة ضبط بيانات الدخولback-end/src/modules/auth/account.service.ts
موضوع رسالة الدعوةback-end/src/modules/workspaces/services/invitations.service.ts
عنوان فاتورة PDF وبنودهاback-end/src/modules/billing/services/billing.service.ts
اسم الخطة في صفحة الدفع على Stripeback-end/src/modules/billing/providers/stripe.provider.ts
أسماء التراخيص في صفحة الدفع والإيصالback-end/src/modules/licenses/constants/license-offers.ts

تملأ إعدادات المنصة الأولية اسم المنتج وشعاره النصي وعنوان الدعم (back-end/src/database/seeders/app-settings.seeder.ts)، وتُعدَّل في صفحة إعدادات المنصة بلوحة التحكم. ومن هذه لا يقرأ اسم المنتج وعنوان الدعم إلا المساعد الذكي، ليذكر المنتج في إجاباته؛ أما الشاشات فتأخذ الاسم من الملفات أعلاه.

الصياغة والصفحات القانونية

كل جملة ظاهرة موجودة في messages/ (والنصوص الطويلة للموقع في src/content/)، مع en.json وar.json. أعد كتابة النص في الملفين. سياسة الخصوصية وشروط الاستخدام وسياسة ملفات الارتباط وصفحة حقوق البيانات في messages/legal نصوص تجريبية، بتاريخ «آخر تحديث» تجريبي: أعد كتابتها لنشاطك وبلدك قبل أن تستقبل عملاء حقيقيين.

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

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

حل المشكلات

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

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