summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorblizzz <blizzz@arthur-schiwon.de>2022-06-11 00:17:41 +0200
committerGitHub <noreply@github.com>2022-06-11 00:17:41 +0200
commit39391701fc68f0f3155e9ad8769875686d458293 (patch)
treec1b7a0d794a689ed0f9203583655dd467777358d
parent520bb6e3acb6f2dcdda0c7574090a7332d1899e7 (diff)
parent06ae90a6391feb96244441e9b9c192187fefb8b4 (diff)
downloadnextcloud-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.php16
-rw-r--r--apps/theming/lib/ThemingDefaults.php4
-rw-r--r--lib/private/legacy/OC_Defaults.php4
-rw-r--r--themes/example/defaults.php2
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'
];