النمط الجاهز يجمع الثلاث معًا. والحقول التي تتركها فارغة تعود إلى القيم الافتراضية.
| الطبقة | ما الذي تقرّره | كيف تغيّرها |
|---|---|---|
Theme |
الألوان والمقاسات ومقياس النص، وشكل كل ما يرسمه المحرك — لوحات الأزرار وحقول الإدخال والتبويبات ورسوم مفاتيح التبديل | اكتب ملف .tres، أو ولّد واحدًا بـ tools/make_theme.py |
GoSkin |
شكل كل ما يرسمه الكود — عصا التوجيه، ووجوه الخانات السريعة، وحلقة العلامة الإرشادية، والشرائح، والهياكل المؤقتة، والفواصل، وعناوين الأقسام | اشتقّ منه صنفًا وتجاوز الدوال التي تهمّك فقط |
GoIconSet |
أيقونات تُطلب بالاسم — 84 رسمة افتراضية، أو 16 رسمة محفورة من مجموعة العصور الوسطى فوقها. حزمة نقوش أو خط أيقونات؛ والكود المستدعي واحد في الحالتين | زوّده بمجموعة، أو تجاوز بضعة أسماء فقط |
StyleBoxFlat —
اضبط نصف القطر على صفر فتحصل على زاوية قائمة؛ ولا شيء بينهما. أما الزوايا المقطوعة قطريًا،
وحافة واحدة أسمك، وتوهّج خارجي: فلا يرسم المحرك منها شيئًا. وعصا التوجيه والعلامة الإرشادية
تُرسمان في _draw()، حيث لا تصل السمة أصلًا.
اختيار واحد منها
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
هذا السطر وحده يبدّل السمة والمظهر والأيقونات. ومن المحرّر استعمل
Project Settings → Gohud → Theme → Preset؛ ومن مورد إعدادات، GoConfig.preset.
إبقاء حقل واحد على اختيارك
GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons # أيقوناتك أنت، وكل ما عداها من النمط الجاهز
ضبط theme أو skin أو icons صراحةً يغلب النمط الجاهز.
الأنماط الجاهزة المدمجة الأربعة عشر
| النمط الجاهز | اللوحات | المظهر · الأيقونات |
|---|---|---|
default_dark · default_light | لوحات StyleBoxFlat مدوّرة على سلّم ظلال متدرّج؛ والأزرار الأساسية ترتفع ثم تغوص عند الضغط | GoSkin · 84 أيقونة افتراضية |
scifi_dark · scifi_light | لوحات GoStyleBoxCut مشطوفة بحافة نيون وتوهّج؛ وعلامات تركيز من GoStyleBoxBracket | GoSkinSciFi — عصا توجيه سداسية · الأيقونات الافتراضية |
medieval_dark · medieval_light | إطارات GoStyleBoxMedieval مطروقة — حديد وجلد، أو رقّ — بمسامير وزخارف أركان على القوائم | GoSkinMedieval · 16 أيقونة محفورة فوق الافتراضية |
material_light · material_dark جديد | Material 3 Expressive لشاشات التطبيقات — أزرار حبة بارتفاع 40dp داخل مساحة لمس 48dp، ومربعات حوار 28dp، وبطاقات مملوءة، وحقول بحدود، ومنزلق Expressive؛ أما مكوّنات التطبيق (شريط التنقل، والشريط العلوي، وزر FAB، وشريط البحث، والرقائق، والتقدّم، ومنتقي التاريخ) فتتبع رموز مكوّنات M3 | GoSkinMaterial · الأيقونات الافتراضية |
kids_light · kids_dark جديد | للأطفال — صندوق الألعاب: حواف سميكة وحافة صلبة تحت كل زر تنخفض عند الضغط عليه، وحقول نص غائرة، وألسنة على شكل فقاعات، وأشرطة كالهلام، ولكل نوع من عناصر التحكم لون طباشيري خاص به، وخانات سريعة كالحلوى، وشارات كالملصقات، وعصا تحكم بألوان قوس قزح، ومخططات ملونة. تبقى الأحجام وخط المشروع كما هي. | GoSkinKids · الأيقونات الافتراضية |
arcade_light · arcade_dark جديد | آلة ألعاب أركيد يرسمها GoStyleBoxArcade: كل مفتاح ملوّن بتدرّج من الأعلى إلى الأسفل، ولمعة بيضاء، وشفة تنخفض حين يُضغط، داخل حدّ حبري كحلي، وتسميته بيضاء بحدّ حبري — أخضر للأساسي، ومفاتيح زرقاء، وأحمر للخطر، ومفاتيح صغيرة خزامية. ألواح سميكة بإطار ملوّن حول تجويف فاتح؛ ولافتة عنوان ذهبية ومفتاح إغلاق أحمر مستدير على النوافذ. | GoSkinArcade · الأيقونات الافتراضية |
comic_light · comic_dark جديد | إطارات قصص مصوّرة يرسمها GoStyleBoxComic: حدّ حبري عريض وظلّ حادّ على كل وجه، يختفي حين يُضغط الوجه؛ ومفاتيح التبديل ومربعات الاختيار ومقابض المنزلقات محبَّرة، ولافتة عنوان صفراء على النوافذ. وعرض الحدّ وحجم الظلّ وظهور الظلال من عدمه كلها إعدادات في GoConfig. | GoSkinComic · الأيقونات الافتراضية |
الأربعة عشر كلها، جنبًا إلى جنب
شاشة المعرض نفسها ولم يتغيّر سوى اسم النمط الجاهز — لا يختلف سطر واحد من كود الودجات. وكل صورة لهاتف يُمسك قائمًا، بمقاس 390×844.

default_dark
default_light
scifi_dark
scifi_light
medieval_dark
medieval_light
material_light
material_dark
kids_light
kids_dark
comic_light
comic_dark
arcade_light
arcade_darkالعصور الوسطى: حديد وجلد ورقّ
medieval_dark يزاوج الحديد والجلد الداكنين بالذهب العتيق. وmedieval_light
يستعمل الرقّ والحبر. وكلاهما يستعمل GoSkinMedieval والودجات القائمة و16 أيقونة أصلية
بتفاصيل محفورة؛ أما أيقونات التنقّل فتعود إلى المجموعة الأصلية.
GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# أو: GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)
اختر النمط الجاهز قبل إنشاء واجهتك. وتبقى تجاوزات GoConfig.theme و
skin وicons الصريحة هي الأولى. افتح
res://addons/gohud/examples/medieval/medieval.tscn واضغط F6 لترى صفحة شخصية
وحقيبة وسجل مهام تعمل فعلًا. وأزرارها تبدّل التنويعات وتفتح تفاصيل الأغراض.


إطارات القوائم فيها مسمار وزخرفة ركن صغيرة؛ أما HUD الدائم الظهور فيحتفظ بحافة هادئة.
والصحة والمانا وقدرة التحمّل تستعمل تعبئة حمراء وزرقاء وزيتونية. وخط Cinzel مقصور على العناوين
والعناوين الفرعية؛ ونص المتن يبقى على خط المضيف أو الخط الافتراضي. والخط المضمَّن يحمل رخصته في
assets/fonts/cinzel/OFL.txt.
المجموعة المحفورة تعيد رسم bag وbook وbox وcoin وcrown
وflag وheart وkey وmap وpotion وshield
وstar وsword وuser، وتضيف scroll وseal.
وكل اسم آخر يعود إلى المجموعة الافتراضية، فيحتفظ close وsettings برسمهما
الافتراضي في كل نمط جاهز. وخط Cinzel يغطي الحروف اللاتينية؛ فامنح العناوين المترجمة خطًّا خاصًّا بها عبر
shape.fonts.
DPITexture؛ وأن خانة سريعة حقيقية تستعمل المظهر؛ وأن تغيير
مقابض نسخة من المظهر يصل إلى الخانة دون المساس بالنمط الجاهز؛ وأن الرجوع يعيد هندسة النمط الافتراضي والخيال العلمي.
اصنع مملكتك أنت
python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# عدّل themes/palettes/kingdom.json، ثم:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# وفي GDScript، قبل إنشاء الودجات:
GoUi.use_preset(&"kingdom")
سمات JSON تستطيع أن ترث سمات JSON أخرى. والقيم المحذوفة تحتفظ بإعدادات أصلها؛ أما الوراثة الدائرية فمرفوضة. والنمط الجاهز المولَّد يحتفظ بمجموعة أيقونات أصله.
| الإعداد | الأثر |
|---|---|
shape.material | 0: حديد · 1: جلد · 2: رقّ. يتحكم في علامات السطح. |
shape.grain_alpha | عتامة النقش. استعمل 0 للحصول على سطح نظيف. |
shape.ornament_scale · shape.bevel_strength | حجم زخرفة ركن القائمة وشدّة إبراز الحافة المشطوفة. |
shape.fonts | يربط أدوار العنوان والعنوان الفرعي والتعليق والمتن والزر بملفات خطوط res:// داخل الإضافة. والأدوار المحذوفة تحتفظ بخطها الموروث. |
skin.dials | نصف قطر الخانة السريعة، وظهور المسامير، والحبيبات، والإبراز. والجدول الكامل أدناه يسرد كل مقبض. |
Material 3: مظهر لشاشات التطبيقات جديد
material_light وmaterial_dark يجلبان Material 3 Expressive إلى gohud — أشكال مكوّنات M3
ومقاساتها وخطوطها، وكل رقم فيها مأخوذ من مجموعة رموز M3 الرسمية (material-web،
tokens/versions/latest). استعملهما حيث ينبغي أن تبدو الشاشة تطبيقًا لا قائمة لعبة:
المتاجر، وصناديق الوارد، وصفحات الحساب والإعدادات، ولوحات الصدارة، والتطبيق المرافق للعبة.
GoUi.use_preset(GoThemePresets.MATERIAL_LIGHT)
# أو: GoUi.use_preset(GoThemePresets.MATERIAL_DARK)

material_light
material_dark
GoDialogs · material_light
GoDialogs · material_darkما الذي يتغيّر
| الجزء | في Material 3 |
|---|---|
| الأزرار | حبوب (زاوية كاملة). اللوح بارتفاع 40dp، موسَّط داخل مساحة اللمس 48dp، فلا تصغر مساحة الضغط؛ ولوح الزر المدمج 32dp. والتسميات بخط Roboto بوزن 500. |
| مربعات الحوار والأوراق | زوايا 28dp (extra-large)، وحشوة 24dp، وعنوان رئيسي 24sp — GoDialogs وGoSurface وGoSheet وكل نافذة منبثقة مبنية عليها. |
| البطاقات | بطاقات مملوءة بزوايا 12dp وحشوة 16dp. |
| الحقول والمنزلقات | حقول نص بحدود؛ ومنزلق Expressive بمقبضه الطويل. |
| الشرائح والأزرار المقسّمة | زوايا 8dp (small). |
| مكوّنات التطبيق | GoNavBar وGoAppBar وGoFab وGoSearchBar والشرائح وGoProgress وGoDatePicker تتبع رموز مكوّنات M3. |
| الخط | Roboto المضمَّن للعناوين والعناوين الفرعية والتعليقات والأزرار. ونص المتن يبقى على خط مشروعك، فتظلّ الكورية واليابانية والصينية والعربية تُرسم. |
| العتامة | كل لوحة معتمة — فأسطح M3 مصمتة. (أما لوحات الافتراضي والخيال العلمي والعصور الوسطى فمعتمة بنسبة 80%، فتظهر اللعبة من خلالها.) |
| المظهر | GoSkinMaterial: الدرج هو الورقة الجانبية المشروطة (modal side sheet) في M3، ووجه وحدة التحكّم هو شريط الأدوات العائم في M3، واللافتات تجلس على surface_container_low. |
tools/check_contrast.py يقيس المظهرين كما يقيس كل مظهر آخر.
خط Roboto مرخّص بموجب SIL Open Font License 1.1 (assets/fonts/roboto/OFL.txt) ولا تستعمله إلا
أنماط Material الجاهزة.
الأطفال: صندوق الألعاب جديد
kids_light (كريمي وخوخي بلون أساسي عِنَبي) وkids_dark (أرضية بلون التوت الأزرق، ولون أساسي
أصفر مشمس، وحبوب بلون النعناع) مظهر مصنوع لألعاب الأطفال وتطبيقات التعلّم — ممتلئ ومشرق وطريّ، من النوع
الذي يرغب إصبع صغير في الضغط عليه.
GoUi.use_preset(&"kids_light")
# أو: GoUi.use_preset(&"kids_dark")

kids_light
kids_dark
GoDialogs · kids_light
GoDialogs · kids_darkما الذي يتغيّر
| الجزء | في مظهري الأطفال |
|---|---|
| كل وجه | حلوى هلامية يرسمها GoStyleBoxJelly: حافة ممتلئة، وشفة صلبة تحت كل ما تضغطه، وجسم أفتح في أعلاه وأعمق في أسفله، ولمعة بيضاء في أعلى اليسار. والمفاتيح وصفوف القوائم والعناوين القابلة للطيّ والحقول والأشرطة والمنزلقات واللوحات كلها ترتديها. |
| الضغط | تختفي الشفة ويغوص الوجه في مكانها، ثم انضغاطة هلامية — عريضة ومسطّحة لحظةً، ثم ارتداد مرن. وهي تعمل على كل زر يصنعه gohud؛ وreduce_motion يطفئها. |
| الحقول والألسنة والأشرطة | حقل النص هو الهلام نفسه مقلوبًا إلى الداخل — بئر غائرة. والألسنة فقاعات، وللأشرطة لمعة هلامية. |
| اللون | لكل نوع من عناصر التحكم لونه الطباشيري الخاص، يختاره المولّد نفسه الذي يخدم كل المظاهر، فتظلّ كل بوابات التباين صامدة. |
| النوافذ | شريط مشمس (بلون النعناع ليلًا) خلف عنوان النافذة — يصغر العنوان حتى 15 ليبقى على سطر واحد — وزر إغلاق مستدير كالحلوى بلون الخطر الطباشيري وعليه علامة إغلاق بيضاء. |
| أجزاء المظهر | GoSkinKids: الخانات السريعة مكعّبات حلوى تغوص أثناء مهلة الاستعداد، والشارات ملصقات، والشرائح وحبة التنقل قطع هلام صغيرة، والصور الرمزية حلوى مستديرة، وعصا التوجيه بألوان قوس قزح، والمخططات بألوان الطباشير، والتنبيهات والإشعارات ملاحظات ملصقة بإطار صلب. |
| العتامة | اللوحات والبطاقات والإشعارات والنوافذ المنبثقة معتمة. |

اصنع صندوق ألعابك أنت
python3 addons/gohud/tools/new_theme.py candy --from kids_light
# عدّل themes/palettes/candy.json، ثم:
python3 addons/gohud/tools/make_theme.py candy
GoUi.use_preset(&"candy")
القصص المصوّرة: حبر عريض جديد
comic_light (لوحات بيضاء على صفحة بلون الورق الكريمي، ولون أساسي أزرق كوبالتي) وcomic_dark (لوحات أردوازية على
صفحة ليلية، وحدود كريمية، ولون أساسي أصفر) يرسمان كل وجه كإطار من قصة مصوّرة — حدّ حبري عريض وخلفه ظلّ
حادّ.
GoUi.use_preset(&"comic_light")
# أو: GoUi.use_preset(&"comic_dark")

comic_light
comic_dark
GoDialogs · comic_light
GoDialogs · comic_darkما الذي يتغيّر
| الجزء | في مظهري القصص المصوّرة |
|---|---|
| كل وجه | يرسمه GoStyleBoxComic: لون السطح داخل حدّ عريض بلون الحبر، وظلّ حادّ نحو الأسفل واليمين. والمفاتيح وصفوف القوائم والحقول والألسنة والأشرطة والمنزلقات واللوحات والنوافذ المنبثقة كلها ترتديه. |
| الضغط | يختفي الظلّ ويغوص الوجه في مكانه. |
| عناصر التحكم | مفاتيح التبديل ومربعات الاختيار وأزرار الاختيار الأحادي ومقابض المنزلقات محبَّرة كذلك، لكلٍّ منها ظلّه الصغير الخاص. |
| النوافذ | لافتة صفراء خلف عنوان النافذة وزر إغلاق مستدير محبَّر. |
| أجزاء المظهر | GoSkinComic: الخانات السريعة والشرائح والشارات والصور الرمزية والإشعارات وشريط التنقل وزر FAB وخلايا التاريخ محبَّرة؛ ومقبض عصا التوجيه يلقي ظلًّا؛ والمخططات بألوان أساسية جريئة. |
| العتامة | اللوحات والبطاقات والإشعارات والنوافذ المنبثقة معتمة؛ وبطاقات HUD معتمة بنسبة 92%. |
إعدادات الحبر والظلّ
ثلاثة إعدادات في GoConfig تغيّر كل وجه من وجوه القصص المصوّرة دفعة واحدة. لا يُعاد بناء شيء — تُعاد رسم الشاشة لحظة ضبطها.
GoUi.config.comic_border_width = 2.0 # الحدّ (dp) — 3 افتراضيًا
GoUi.config.comic_shadow_size = 6.0 # الظلّ (dp) — 4 افتراضيًا
GoUi.config.comic_shadow = false # بلا ظلال في أي مكان
ويمكن لودجة واحدة أن تسلك طريقها الخاص، أيًّا كان الإعداد:
GoStyle.comic_shadow(skip_button, false) # هذا الزر مسطّح
GoStyle.comic_shadow(card, true, true) # هذه البطاقة وكل ما فيها تحتفظ بظلّها
GoStyle.comic_border(title, 5.0) # حدّ أعرض لهذا وحده

اصنع قصتك المصوّرة أنت
python3 addons/gohud/tools/new_theme.py inked --from comic_light
# عدّل themes/palettes/inked.json، ثم:
python3 addons/gohud/tools/make_theme.py inked
GoUi.use_preset(&"inked")
الأركيد: مفاتيح ملوّنة وألواح سميكة جديد
arcade_light (ألواح بيضاء على صفحة بلون السماء) وarcade_dark (ألواح كحلية على صفحة ليلية)
يُلبسان كل شاشة حُلّة آلة ألعاب الأركيد: كل مفتاح ملوّن — تدرّج من أعلى فاتح إلى أسفل أعمق،
وخطّ لمعة أبيض، وشفة تنخفض حين يُضغط، داخل حدّ حبري كحلي — وكل لوح سميك، إطار
ملوّن حول تجويف فاتح.
GoUi.use_preset(&"arcade_light")
# أو: GoUi.use_preset(&"arcade_dark")

arcade_light
arcade_dark
GoDialogs · arcade_light
GoDialogs · arcade_darkما الذي يتغيّر
| الجزء | في مظهري الأركيد |
|---|---|
| المفاتيح | يرسمها GoStyleBoxArcade: جسم متدرّج، ولمعة بيضاء حول الزاوية العلوية اليسرى، وشفة أعمق، وحدّ حبري كحلي. المفتاح الأساسي أخضر، والمفاتيح العادية واللسان المختار زرقاء، ومفاتيح الخطر مرجانية وحمراء، والمفاتيح الصغيرة وبقية الألسنة خزامية. |
| التسميات | بيضاء بحدّ حبري على كل مفتاح ملوّن. ويُزاح كل لون حتى تُقرأ تلك التسمية عند كل ارتفاع من تدرّجه — 4.6:1 أو أكثر، مع عدّ الحدّ جزءًا من الحرف، كما يفعل معيار WCAG. |
| الضغط | تختفي الشفة، فيغوص المفتاح في مكانه ثم يقفز عائدًا. |
| الألواح | اللوحات والبطاقات وبطاقات HUD والنوافذ المنبثقة سميكة: إطار ملوّن (6dp حول النافذة، و4 حول البطاقة أو بطاقة HUD، و3 حول القائمة أو الإشعار) بلمعته وشفته الخاصتين، حول تجويف فاتح بخطّ حبري. وتزداد حشوتها قليلًا لتتّسع له، فلا يلامس النص الإطار أبدًا. |
| الحقول والأشرطة | حقول النص وأخاديد الأشرطة تجاويف غائرة؛ وتعبئة الشريط أنبوب ملوّن لامع بلون التعبئة الزاهي. |
| النوافذ | لافتة ذهبية بعنوان أبيض محدّد بالحبر، ومفتاح إغلاق أحمر مستدير بعلامة × بيضاء. |
| أجزاء المظهر | GoSkinArcade: الخانات السريعة والشرائح أغطية مفاتيح، والخانة في فترة التهدئة تضيء بحافة ذهبية، والشارات صفائح فاتحة، والتنبيهات مؤطَّرة بلونها، والبطاقة المختارة تضيء بحافة ذهبية، وزر FAB مفتاح ذهبي، وعصا التوجيه قاعدة لامعة بأربعة أسهم. |
| العتامة | اللوحات والبطاقات والإشعارات والنوافذ المنبثقة معتمة؛ وبطاقات HUD معتمة بنسبة 94%. |
لوّن مفتاحًا واحدًا بلونه الخاص
تلوّن السمة المفاتيح بحسب نوعها. والقائمة التي يريد كل مفتاح فيها لونه الخاص تلوّنها واحدًا واحدًا — فيأتي وجه التمرير أفتح قليلًا، ووجه الضغط أعمق قليلًا، ويبقى الوجه المعطّل باهتًا:
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Resume", _resume, GoStyle.Tone.PRIMARY), Color("#4ACB3E")))
menu.add_child(GoStyle.arcade_paint(GoStyle.button("Shop", _shop), Color("#FF8A1E")))
GoStyle.arcade_paint(stage_card, Color("#E3343D"), true) # إطار اللوح، وكل مفتاح بداخله
arcade_paint() شيئًا.

اصنع أركيدك أنت
python3 addons/gohud/tools/new_theme.py cabinet --from arcade_light
# عدّل themes/palettes/cabinet.json — ألوان *_vivid هي ألوان المفاتيح — ثم:
python3 addons/gohud/tools/make_theme.py cabinet
GoUi.use_preset(&"cabinet")