تبديل وضع الظلام/الضوء

حسنًا، أعتقد أن المشكلة كانت أنه مع كل مخطط ألوان، لم يتم تحديد خيار “يمكن للمستخدمين اختيار هذا…” أو أي شيء مشابه. يعمل الآن.

إعجابَين (2)

لدي مشكلة غريبة يبدو أنها تؤثر على فئتين فقط.

إذا كنت في الوضع الداكن، فإن التحديث يعرض شعار الموقع. التبديل إلى الوضع الفاتح ثم العودة إلى الوضع الداكن يحل المشكلة. لكنها ستحدث مرة أخرى عند التحديث.

بعد التحديث

الآن، لكي أكون أكثر تحديدًا، يبدو أن الأمر يتعلق بموضوع الشعارات فقط. المواضيع الأخرى في الفئة تبدو بخير. المواضيع الأخرى في هذه الفئة لم تتأثر. قد يكون الأمر متعلقًا بأن هذا الموضوع يحتوي على الشعارين اللذين تم تحميلهما فيه؟

إعجاب واحد (1)

تصحيح، يبدو أن هذا يحدث أيضًا عند تحميل الصفحة لأول مرة. لذا ربما تكون هناك مشكلة في اكتشاف وضع الظلام في المتصفح بواسطة Discourse؟

إعجابَين (2)

لا يمكنني إعادة إنتاج هذه المشكلة. هل تمانع في تفصيل الخطوات والمتصفح والجهاز الذي كنت تستخدمه؟

إعجابَين (2)

أبلغ المستخدمون عن أنه بعد التبديل إلى الوضع المظلم يدويًا، يعود المنتدى تلقائيًا إلى الوضع الفاتح بمجرد عودة الجهاز إلى الوضع الفاتح.

لإعادة الإنتاج:

  1. اضبط إعدادات جهازك على الوضع الفاتح
  2. قم بتمكين زر التبديل في الشريط الجانبي
  3. قم بتمكين الوضع المظلم على جهازك
  4. قم بتعطيل الوضع المظلم على جهازك

→ يتحول مثيل الخطاب إلى الوضع الفاتح. السلوك المتوقع هو أن يظل المنتدى في الوضع المظلم بسبب اختيار المستخدمين بالتبديل يدويًا.

بشكل أساسي، سيكون من الرائع الحصول على خيار السلوك القديم للتبديل بين الوضع المظلم والوضع الفاتح والتبديل التلقائي تشغيل/إيقاف.

3 إعجابات

أعتقد أنني أستخدم نظام Android 10 على هاتف LG G8X ThinQ، وهو الهاتف المزود بحافظة الشاشة المزدوجة.

إذا قمت بالتبديل بين التطبيقات، فعند العودة إليها، يبدو أنها تقوم بتحميل سمة فاتحة للحظة قبل التبديل إلى السمة الداكنة. يشبه هذا تغيير مظهر النوافذ. يظل الشعار الفاتح ظاهرًا (شعار الهاتف المحمول).

@jrgong شرح كيفية تكرار المشكلة والسبب المشتبه به هو أيضًا شرحي.

المتصفح في الوضع الفاتح، ويقوم المفتاح بالتبديل/فرض الوضع الداكن. ثم يتحول Discourse جزئيًا إلى الوضع الفاتح.

إعجاب واحد (1)

أرى وميضًا للحظة من مخطط الألوان المعاكس عند التحديث أو عند فتح رابط في علامة تبويب جديدة. أرى أيضًا وميضًا مشابهًا بعد نشر رد جديد لسبب ما.

لدي سمة فاتحة ممكّنة، ونظام التشغيل الخاص بي مضبوط على الوضع المظلم. لذلك أرى الفرق عندما يتم تبديلي مرة أخرى إلى الوضع الفاتح.

أعتقد أن الألوان يتم تبديلها من جانب العميل، ولكن يبدو أن إعدادات المستخدم لم يتم المساس بها؟ هل من الممكن ربما تحديث تفضيل “مخطط الألوان” للمستخدم عند التبديل لتجنب ذلك؟ يمكن أن يوفر التبديل من جانب العميل انتقالًا سلسًا، وتغيير تفضيل المستخدم يمكن أن يتجنب الوميض القصير لمخطط الألوان المعاكس عند التحديث؟

5 إعجابات

@jordan.vidrine أردت فقط إثارة هذا الموضوع مرة أخرى. :slight_smile:

إعجابَين (2)

يجب أن يظهر في القائمة المنسدلة الجديدة في الرأس. (التي هي “الشريط الجانبي” ولكن في شكل قائمة منسدلة)

إعجاب واحد (1)

@awesomerobot و @jrgong تحديث فقط. سيتم النظر في هذا :+1:

إعجابَين (2)

للأسف لم يحدث ذلك. لكنني الآن أعرف السبب.

تم تعيين navigation_menu على Header-Drop-Down ولكن لم أتمكن من رؤية الخيار. ولكن عندما قمت بإيقاف تشغيل add_color_scheme_toggle_to_header ظهر في القائمة المنسدلة. لذلك يبدو أنه يظهر في مكان واحد فقط.

شكرا لك! :slight_smile:

إعجابَين (2)

هذا المكون قادر على الاختيار بين مخططات الألوان “الفاتحة” و"الداكنة"، ولكنه لا ينتقل بين الأوضاع الفاتحة والداكنة، كما في: @media (prefers-color-scheme) لا يتم احترامه.

مكون سمة يبدو كالتالي:

CSS

@media (prefers-color-scheme: light) {
    .darkonly { display: none; }
}
@media (prefers-color-scheme: dark) {
    .lightonly { display: none; }
}

و HEAD

<script type='text/x-handlebars' data-template-name='/connectors/above-site-header/darkdetector'>
    <span class="darkonly">داكن</span><span class="lightonly">فاتح</span>
</script>

سيظهر النص “فاتح” حتى لو تم تمكين الوضع “الداكن” (أو بصياغة أفضل: سيقول “داكن” أو “فاتح” اعتمادًا على وضع الظلام في نظام التشغيل، وبغض النظر عن مخطط الألوان المختار).

هل هناك أي حل لهذا؟ هناك العديد من الأشياء التي تعتمد على استعلامات الوسائط هذه.

3 إعجابات

إذا كان discourse مشابهًا لنظام windows xp، فحاول تشغيل المتصفح/نظام التشغيل في الوضع الفاتح وتشغيل duscourse في الوضع المظلم. في نظام windows xp، يتم دائمًا تراكب مخطط الألوان فوق المخطط الافتراضي.

عندما يكون هناك أكثر من مخطط ألوان داكن واحد يمكن للمستخدم تحديده، تظهر القائمتان المنسدلتان ويظهر رمز التبديل.

image

عندما يكون هناك مخطط ألوان داكن واحد فقط يمكن للمستخدم تحديده، تختفي القائمة المنسدلة “داكن” وبدلاً من ذلك، تظهر خانة الاختيار “الوضع الداكن التلقائي”.

عندما يفكر المستخدم “مرحباً، لا أريده أن يكون تلقائياً، أريد استخدام التبديل” ويلغي تحديد خانة الاختيار “تلقائي”، يختفي التبديل.

لذلك للحصول على التبديل اليدوي، عليك تمكين التبديل التلقائي. :thinking:

5 إعجابات

لذلك، يتم الحصول على لون الشق في جهاز iPhone باستخدام علامات

<meta name="theme-color" media="(prefers-color-scheme: ...)" content="#...">

التي يتم حقنها في رأس HTML. هذا يعني أنه إذا كان جهازك في الوضع الداكن وقد اختار المُبدّل مخطط ألوان فاتح، أو عندما يكون الجهاز في الوضع الفاتح وقد اختار المُبدّل مخطط ألوان داكن، فإن لون شق iPhone يكون خاطئًا.

إعجاب واحد (1)

أعتقد أن هذا السلوك غير مرغوب فيه:

حالياً، تم تعيين لون النظام على الوضع الداكن. أستخدم شعاراً باللونين الأسود/الأبيض للسمة الفاتحة/الداكنة.

  1. في المثيل، أقوم بتعيين السمة على فاتح.
  2. أزور صفحة موضوع.
  3. في البداية، يتم تحميل الشعار الصحيح ولكن:
  4. قم بالتمرير لأسفل ولأعلى (يجب أن يتحول الرأس من الشعار الكامل > عنوان الموضوع > الشعار الكامل).
  5. عند التمرير لأعلى مرة أخرى (على سبيل المثال، حيث يصبح عنوان الموضوع شعاراً كاملاً مرة أخرى، يظهر الشعار الخاطئ (أبيض على أبيض).
إعجابَين (2)

أحاول تكرار هذا محليًا وحتى عندما يكون مخطط الألوان الداكن واحد فقط قابل للاختيار، ما زلت أرى القائمة المنسدلة، بدلاً من الوضع التلقائي. (في إعدادات المسؤول)

إعادة الإنتاج:

  • تثبيت Discourse فارغ جاهز للاستخدام كما هو الحال هذا الصباح
  • انظر هذا في ملفي الشخصي → الواجهة

  • إزالة مخططات الألوان Dracula و Solarized Dark و WCAG Dark
  • العودة إلى الملف الشخصي
  • رؤية القائمة المنسدلة تختفي ويظهر رأس “الوضع الداكن” مع مربع الاختيار

يتم التحكم فيه بواسطة showDarkColorSchemeSelector و showDarkModeToggle في interface.hbs. انظر أيضًا التعليق في interface.js

  @discourseComputed("userSelectableDarkColorSchemes")
  showDarkColorSchemeSelector(darkSchemes) {
    // عندما يتم تعيين مخطط داكن افتراضي
    // القائمة المنسدلة بها عنصران (تعطيل / استخدام افتراضي الموقع)
    // ولكننا نعرض مربع اختيار في هذه الحالة
    const minToShow = this.defaultDarkSchemeId > 0 ? 2 : 1;
    return darkSchemes && darkSchemes.length > minToShow;
  },

إعجابَين (2)

:star_struck: شكراً على هذه الاستجابة المفصلة. كنت فقط “أمنع” هذه السمات الداكنة من أن تكون قابلة للتحديد، وسأقوم الآن ببعض الاختبارات بحذف هذه السمات تمامًا.

إعجاب واحد (1)

إذًا نعم، هذه حالة استثنائية جيدة وجدتها. لن تعمل هذه الميزة التبديلية إلا في هذا السيناريو إذا كان المستخدم قد قام أيضًا بتمكين هذا التفضيل الشخصي لـ discourse-core.

سنعمل على جعل هذا يعمل في تلك الحالة أيضًا.

4 إعجابات