| @@ -51,8 +51,30 @@ | ||
| 51 | 51 | array($this, 'render_pro_locked_field'), |
| 52 | 52 | 10, |
| 53 | 53 | 2 |
| 54 | 54 | ); |
| 55 | + // System mode shows BOTH header logos (see system_mode_logo_styles). Run after | |
| 56 | + // the framework registers its 'adminify' stylesheet (default priority 10). | |
| 57 | + add_action( 'admin_enqueue_scripts', array($this, 'system_mode_logo_styles'), 100 ); | |
| 58 | + } | |
| 59 | + | |
| 60 | + /** | |
| 61 | + * Fix the settings-header logo in System mode. | |
| 62 | + * | |
| 63 | + * The header prints both a light and a dark logo; the framework CSS hides one | |
| 64 | + * based on the body's .adminify-light-mode / .adminify-dark-mode class. System | |
| 65 | + * mode adds NEITHER class, so neither hide-rule fires and both logos show. | |
| 66 | + * | |
| 67 | + * These fallbacks are scoped under .wp-adminify-settings with lower specificity | |
| 68 | + * than the mode-class rules, so they only take effect when no mode class is | |
| 69 | + * present (i.e. System) and pick a single logo from the OS prefers-color-scheme. | |
| 70 | + */ | |
| 71 | + public function system_mode_logo_styles() { | |
| 72 | + if ( !wp_style_is( 'adminify', 'enqueued' ) && !wp_style_is( 'adminify', 'registered' ) ) { | |
| 73 | + return; | |
| 74 | + } | |
| 75 | + $css = '.wp-adminify-settings img.adminify-settings-dark-logo{display:none}' . '.wp-adminify-settings img.adminify-settings-light-logo{display:inline-block}' . '@media (prefers-color-scheme: dark){' . '.wp-adminify-settings img.adminify-settings-light-logo{display:none}' . '.wp-adminify-settings img.adminify-settings-dark-logo{display:inline-block}' . '}'; | |
| 76 | + wp_add_inline_style( 'adminify', $css ); | |
| 55 | 77 | } |
| 56 | 78 | |
| 57 | 79 | /** |
| 58 | 80 | * Snapshot the wp-adminify-settings menu, submenu and page callback right |