diff options
author | blizzz <blizzz@arthur-schiwon.de> | 2022-06-11 00:17:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-11 00:17:41 +0200 |
commit | 39391701fc68f0f3155e9ad8769875686d458293 (patch) | |
tree | c1b7a0d794a689ed0f9203583655dd467777358d | |
parent | 520bb6e3acb6f2dcdda0c7574090a7332d1899e7 (diff) | |
parent | 06ae90a6391feb96244441e9b9c192187fefb8b4 (diff) | |
download | nextcloud-server-39391701fc68f0f3155e9ad8769875686d458293.tar.gz nextcloud-server-39391701fc68f0f3155e9ad8769875686d458293.zip |
Merge pull request #32680 from nextcloud/backport/32510/stable23
[stable23] Properly calculate primary element based on background luminance
-rw-r--r-- | apps/accessibility/lib/Controller/AccessibilityController.php | 16 | ||||
-rw-r--r-- | apps/theming/lib/ThemingDefaults.php | 4 | ||||
-rw-r--r-- | lib/private/legacy/OC_Defaults.php | 4 | ||||
-rw-r--r-- | themes/example/defaults.php | 2 |
4 files changed, 20 insertions, 6 deletions
diff --git a/apps/accessibility/lib/Controller/AccessibilityController.php b/apps/accessibility/lib/Controller/AccessibilityController.php index 7a5a82085dc..857aaf8b90f 100644 --- a/apps/accessibility/lib/Controller/AccessibilityController.php +++ b/apps/accessibility/lib/Controller/AccessibilityController.php @@ -248,7 +248,7 @@ class AccessibilityController extends Controller { return $this->injectedVariables; } $variables = ''; - foreach ($this->defaults->getScssVariables() as $key => $value) { + foreach ($this->defaults->getScssVariables(!$this->isDarkThemeEnabled()) as $key => $value) { $variables .= '$' . $key . ': ' . $value . ';'; } @@ -267,4 +267,18 @@ class AccessibilityController extends Controller { } return $variables; } + + /** + * Return true if the dark theme is enabled for the current user + */ + private function isDarkThemeEnabled(): bool { + if (!$this->userSession->isLoggedIn()) { + return false; + } + $user = $this->userSession->getUser(); + if (!$user) { + return false; + } + return $this->config->getUserValue($user->getUID(), $this->appName, 'theme', false) === 'dark'; + } } diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 3bfccda4a43..9adee687944 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -310,7 +310,7 @@ class ThemingDefaults extends \OC_Defaults { /** * @return array scss variables to overwrite */ - public function getScssVariables() { + public function getScssVariables(bool $brightBackground = true) { $cacheBuster = $this->config->getAppValue('theming', 'cachebuster', '0'); $cache = $this->cacheFactory->createDistributed('theming-' . $cacheBuster . '-' . $this->urlGenerator->getBaseUrl()); if ($value = $cache->get('getScssVariables')) { @@ -334,7 +334,7 @@ class ThemingDefaults extends \OC_Defaults { if ($this->config->getAppValue('theming', 'color', '') !== '') { $variables['color-primary'] = $this->getColorPrimary(); $variables['color-primary-text'] = $this->getTextColorPrimary(); - $variables['color-primary-element'] = $this->util->elementColor($this->getColorPrimary()); + $variables['color-primary-element'] = $this->util->elementColor($this->getColorPrimary(), $brightBackground); } if ($this->config->getAppValue('theming', 'backgroundMime', '') === 'backgroundColor') { diff --git a/lib/private/legacy/OC_Defaults.php b/lib/private/legacy/OC_Defaults.php index 707df7279bb..88207e30adc 100644 --- a/lib/private/legacy/OC_Defaults.php +++ b/lib/private/legacy/OC_Defaults.php @@ -311,9 +311,9 @@ class OC_Defaults { /** * @return array scss variables to overwrite */ - public function getScssVariables() { + public function getScssVariables(bool $brightBackground = true) { if ($this->themeExist('getScssVariables')) { - return $this->theme->getScssVariables(); + return $this->theme->getScssVariables($brightBackground); } return []; } diff --git a/themes/example/defaults.php b/themes/example/defaults.php index 87d60de2ba7..a061ce1701d 100644 --- a/themes/example/defaults.php +++ b/themes/example/defaults.php @@ -119,7 +119,7 @@ class OC_Theme { * Returns variables to overload defaults from core/css/variables.scss * @return array */ - public function getScssVariables() { + public function getScssVariables(bool $brightBackground) { return [ 'color-primary' => '#745bca' ]; |