--background-invert-if-bright: invert(100%);
--background-image-invert-if-bright: no;
--image-background: url('/core/img/app-background.jpg');
+ --image-background-default: url('/core/img/app-background.jpg');
--color-background-plain: #0082c9;
--primary-invert-if-bright: no;
--color-primary: #00639a;
--color-primary-light-hover: #dbe4e9;
--color-primary-text-dark: #ededed;
--color-primary-element: #00639a;
+ --color-primary-element-default-hover: #329bd3;
--color-primary-element-text: #ffffff;
--color-primary-element-hover: #3282ae;
--color-primary-element-light: #e5eff4;
margin-bottom: 20px;
cursor: pointer;
background-color: var(--color-primary-default);
- background-image: var(--image-background, var(--image-background-plain, url("../../../core/img/app-background.jpg"), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
+ background-image: var(--image-background-default, var(--image-background-plain, url("../../../core/img/app-background.jpg"), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
}
#theming #theming-preview #theming-preview-logo {
cursor: pointer;
margin-bottom: 20px;
cursor: pointer;
background-color: var(--color-primary-default);
- background-image: var(--image-background, var(--image-background-plain, url('../../../core/img/app-background.jpg'), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
+ background-image: var(--image-background-default, var(--image-background-plain, url('../../../core/img/app-background.jpg'), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
#theming-preview-logo {
cursor: pointer;
protected function generatePrimaryVariables(string $colorMainBackground, string $colorMainText): array {
$colorPrimaryLight = $this->util->mix($this->primaryColor, $colorMainBackground, -80);
$colorPrimaryElement = $this->util->elementColor($this->primaryColor);
+ $colorPrimaryElementDefault = $this->util->elementColor($this->defaultPrimaryColor);
$colorPrimaryElementLight = $this->util->mix($colorPrimaryElement, $colorMainBackground, -80);
// primary related colours
// used for buttons, inputs...
'--color-primary-element' => $colorPrimaryElement,
+ '--color-primary-element-default-hover' => $this->util->mix($colorPrimaryElementDefault, $colorMainBackground, 60),
'--color-primary-element-text' => $this->util->invertTextColor($colorPrimaryElement) ? '#000000' : '#ffffff',
'--color-primary-element-hover' => $this->util->mix($colorPrimaryElement, $colorMainBackground, 60),
'--color-primary-element-light' => $colorPrimaryElementLight,
* Generate admin theming background-related variables
*/
protected function generateGlobalBackgroundVariables(): array {
+ $user = $this->userSession->getUser();
$backgroundDeleted = $this->config->getAppValue(Application::APP_ID, 'backgroundMime', '') === 'backgroundColor';
$hasCustomLogoHeader = $this->util->isLogoThemed();
// If primary as background has been request or if we have a custom primary colour
// let's not define the background image
- if ($backgroundDeleted && $this->themingDefaults->isUserThemingDisabled()) {
- $variables['--image-background-plain'] = 'true';
+ if ($backgroundDeleted) {
$variables['--color-background-plain'] = $this->themingDefaults->getColorPrimary();
+ if ($this->themingDefaults->isUserThemingDisabled() || $user === null) {
+ $variables['--image-background-plain'] = 'true';
+ }
}
// Register image variables only if custom-defined
if ($image === 'background') {
// If background deleted is set, ignoring variable
if ($backgroundDeleted) {
+ $variables['--image-background-default'] = 'no';
continue;
}
$variables['--image-background-size'] = 'cover';
+ $variables['--image-background-default'] = "url('" . $imageUrl . "')";
}
$variables["--image-$image"] = "url('" . $imageUrl . "')";
}
.menutoggle {
opacity: 1 !important;
}
+ #app-navigation {
+ border-right: 1px solid var(--color-border);
+ }
+ div.crumb {
+ filter: brightness(150%);
+ }
";
}
}
// Default last fallback values
'--image-background' => "url('" . $this->urlGenerator->imagePath('core', 'app-background.jpg') . "')",
+ '--image-background-default' => "url('" . $this->urlGenerator->imagePath('core', 'app-background.jpg') . "')",
'--color-background-plain' => $this->defaultPrimaryColor,
];
.menutoggle {
opacity: 1 !important;
}
+ #app-navigation {
+ border-right: 1px solid var(--color-border);
+ }
";
}
}
$returnValue = $this->getSlogan();
break;
case 'color':
- $returnValue = $this->getColorPrimary();
+ $returnValue = $this->getDefaultColorPrimary();
break;
case 'logo':
case 'logoheader':
->method('deleteAppValue')
->with('theming', 'color');
$this->config
- ->expects($this->exactly(3))
+ ->expects($this->exactly(2))
->method('getAppValue')
->withConsecutive(
['theming', 'cachebuster', '0'],
['theming', 'color', null],
- ['theming', 'disable-user-theming', 'no'],
)->willReturnOnConsecutiveCalls(
'15',
$this->defaults->getColorPrimary(),
- 'no',
);
$this->config
->expects($this->once())
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
color: var(--color-text);
text-align: center;
- background-color: var(--color-main-background-not-plain, var(--color-primary));
- background-image: var(--image-background, var(--image-background-plain, url('../../../core/img/app-background.jpg'), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
+ background-color: var(--color-primary-default, var(--color-primary));
+ background-image: var(--image-background-plain, var(--image-background, url('../../../core/img/app-background.jpg'), linear-gradient(40deg, #0082c9 0%, #30b6ff 100%)));
background-attachment: fixed;
min-height: 100%; /* fix sticky footer */
height: auto;