Commit Graph

597 Commits

Author SHA1 Message Date
Simon L. 1d2b23eed7 fix(theming): preserve uploaded favicon and touch icon
PR #58224 dropped the `$iconFile === null` guard around the app-specific
icon generation in getFavicon()/getTouchIcon(), so an uploaded custom
favicon was always overwritten by the generated, context-colored icon
whenever Imagick could produce an ICO/PNG.

Restore the guard so the generation path only runs as a fallback when no
custom favicon was uploaded, while keeping the improved Imagick
capability detection from #58224.

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Simon L. <szaimen@e.mail.de>
2026-06-13 21:43:48 +02:00
Ferdinand Thiessen 2a5fc73ca9 fix: resolve PHP deprecation of imagedestroy
> Prior to PHP 8.0.0, imagedestroy() freed any memory associated with the image resource.
> As of 8.0.0, the GD extension uses objects instead of resources, and objects cannot be explicitly closed.

With PHP 8.5 this is deprecated and causes a deprecation warning!

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-11 00:59:15 +02:00
Git'Fellow 17bbc56dab fix(theming): read cachebuster as int in manifest endpoint
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-06-05 10:34:44 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
Anna Larch 8a0080cbbb fix(theming): fix broken custom images introduced in 32.0.9
PR #58224 introduced a raster→SVG conversion path in ImageManager::getImage()
that breaks display of custom theming images. The root cause is a three-part
bug chain:

1. getImage() attempted to convert raster images (PNG/JPEG) to SVG format,
   which Imagick cannot do meaningfully and produces broken output.
2. getMimeType() returns 'application/octet-stream' for extensionless stored
   files, so the Content-Type response header was wrong.
3. Stale .svg cache files persisted after image replacement, causing
   subsequent requests to serve the wrong format.

Fix by:
- Restricting the Imagick conversion to SVG→PNG only (not raster→SVG)
- Reading the stored MIME type from IAppConfig for extensionless files in
  ThemingController::getImage()
- Deleting .svg cache files in ImageManager::delete()
- Injecting IAppConfig into ImageManager and reading the cachebuster via
  IAppConfig::getAppValueInt() so the URL returned after upload always
  carries the freshly-incremented value (IConfig::getAppValue() can return
  a stale cached value within the same request)
- Updating the FileInputField Vue component to use a reactive cacheKey ref
  that increments on every upload, so the thumbnail refreshes even when the
  MIME type of the new image is the same as the old one

AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-05-07 19:40:49 +02:00
Andy Scherzinger 414a95a1ad Merge pull request #59899 from nextcloud/feat/font-weight-variables
feat(theming): Introduce font weight variables
2026-05-01 17:19:50 +02:00
Ferdinand Thiessen d8e8703796 chore: add missing Override attribute to app code
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:28 +02:00
kramo 068f359dc2 feat(theming): Introduce font weight variables
Counterpart of
https://github.com/nextcloud-libraries/nextcloud-vue/pull/8469

Signed-off-by: kramo <git@kramo.page>
2026-04-28 14:10:37 +02:00
John Molakvoæ 8fa69c1c29 fix(theming): deprecation message
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2026-03-24 15:24:18 +01:00
skjnldsv f2c73ebffd fix(theming): deprecate OCA.Theming and move to capabilities
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2026-03-24 15:24:18 +01:00
Jonas db3ff20ce9 fix(theming): move text selection text color into variable
Signed-off-by: Jonas <jonas@freesources.org>
2026-03-17 19:06:41 +01:00
Jonas 3f27ba3aac feat(theming): use translucent color for text selection
Keeps old design with stronger constrast between background color and
background for high contrast themes.

Fixes: #55508

Signed-off-by: Jonas <jonas@freesources.org>
2026-03-17 19:05:56 +01:00
Jonas 39a0545c53 feat(theming): add --color-mark CSS variable for highlighted text
Required for nextcloud/text#8309

Signed-off-by: Jonas <jonas@freesources.org>
2026-03-17 18:04:21 +01:00
SebastianKrupinski 3bd7784c1e fix(theming): Fix favicon and touchicon ratios
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-02-23 10:38:50 -05:00
Cristian Scheid 0a5f75e719 fix(theming): display error messages on image upload and delete previous image only after validation
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-12 08:03:03 -03:00
provokateurin f12cecb684 feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Carl Schwan 5d0d0c17e5 chore(rector): Run rector on apps, core and tests directory
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:23:23 +01:00
Carl Schwan 6408ed0b51 feat(AppFramework): Add missing NoSameSiteCookieRequired attribute
Allow to replace the old annotation.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-28 21:48:16 +01:00
Carl Schwan b040fb1c73 feat(AppFramework): Add missing NoTwoFactorRequired attribute
It's in our documentation but was never implemented.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-01-28 21:48:16 +01:00
SebastianKrupinski e2c4db1541 fix: generate favourite icon without imagick svg support
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-26 13:57:22 -05:00
Côme Chilliet 67d93c6b04 fix(theming): Fix favicon and touchicon ratios
On some systems (depending on imagick version I think) the ratio would
 be messed up on the touchicon, favicon and link preview images.
This fixes it without breaking other systems.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-20 11:44:45 +01:00
Joas Schilling 649e042568 fix(settings): Fix reset button for legal and privacy
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-07 09:45:48 +01:00
Joas Schilling 7c64394617 fix(settings): Allow clearing legal and privacy links
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-07 09:29:34 +01:00
Ferdinand Thiessen 754422aa00 refactor(theming): migrate to Typescript and Vue 3
- migrate all components to Typescript
- use script setup where feasible
- migrate to Vue 3

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-12-23 17:00:40 +01:00
Carl Schwan 2ae9626fec refactor(user_ldap): Port most of the remaining deprecated IConfig usage
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-11 13:27:48 +01:00
Robin Appelman 561d3ded23 fix: fix theming config value casting
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-24 18:36:26 +01:00
Carl Schwan 4d47fdaa85 chore: Run rector with new rules for fetch
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:57 +01:00
Ferdinand Thiessen 8840b582c5 refactor(theming): migrate ThemingDefaults to OCP\AppFramework\Services\IAppConfig
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 14:16:40 +01:00
Ferdinand Thiessen 4667634247 fix(theming): use IAppConfig for all ThemingDefaults
Fixes issues where values have the wrong type.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-28 14:58:17 +01:00
Marco Ambrosini 4ef13dd8f7 fix(ui): Update assistant text gradient
Signed-off-by: Marco Ambrosini <marcoambrosini@proton.me>
2025-09-25 12:00:57 +02:00
Joas Schilling edbb4e8fa8 fix(theming): Remove header icon mask in dark mode high contrast as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-09-03 12:58:33 +02:00
Ferdinand Thiessen 9eb4c96d3b fix(theming): adjust assistant icon color on dark theme
* resolves https://github.com/nextcloud/server/issues/54782

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-02 11:03:34 +02:00
Salvatore Martire b247c97964 fix(theming): use IAppConfig instead of IConfig to set theming config
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-08-29 11:06:09 +02:00
Ferdinand Thiessen 7a367b6451 feat(theming): provide Nextcloud Assistant theming colors
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-27 13:19:05 +02:00
Ferdinand Thiessen 03332a1d13 fix(theming): provide proper element color variables for status colors
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-26 18:35:55 +02:00
Ferdinand Thiessen 55f968aa4b fix(theming): add missing color-text-success variable
This was planned to be added and already documented.
The use case is some rare occurences where we use success like text.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-25 14:48:06 +02:00
Ferdinand Thiessen fc5dad8343 feat(theming): add new default background for Nextcloud 32
With Nextcloud 32 we ship a new default background: "Fluid" by Jo Myoung Hee.
Copyright by Nextcloud GmbH under the CC-BY-SA-4.0

- added the background compressed as WebP (90% quality)
- set as new default
- added license reference and move theming related reuse config

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-21 19:22:45 +02:00
provokateurin 7b6303dcc9 fix(theming): Document correct response schema if app is not enabled
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-08-20 12:45:47 +02:00
Ferdinand Thiessen d79e18ab18 feat: add CSS variables for status border and text
The variables like `--color-error` now are based on our secondary
theming, thus they are less "aggressive" colors. But there are two
usecases for primary based status colors:
- borders
- error text messages (e.g. validation errors in forms)

To simplify app changes due to the secondary color theme change this
introduces 3 new variables:
- `--color-text-error` this shall be used if text should have error
  status theming and is displayed on normal background (while
  `--color-error-text` is only for text shown on `--color-error` similar
  as primary and secondary colors)
- `--color-border-error` and `--color-border-success` those should be
  used for element borders if there is one of those statuses to be
  reported (we use this for validation errors as well as for indicating a
  value was saved)

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-18 18:17:59 +02:00
Ferdinand Thiessen 04c9015210 feat: darken hover colors of primary and secondary
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-18 18:15:55 +02:00
Ferdinand Thiessen 64db537b76 feat: use secondary-like status colors
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-18 18:15:55 +02:00
Ferdinand Thiessen 0305004709 fix: add more transparency to the header icon gradient
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-14 10:06:46 +02:00
Ferdinand Thiessen 2be7d03395 feat(AppMenu): add slight opactiy gradient to app icons
- resolves https://github.com/nextcloud/server/issues/54141

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-07-31 19:01:07 +02:00
nfebe 625c1264fe fix(theming): Correctly generate CSS for font themes
Fixes a regression from dropping the SCSS compiler that broke
font themes like OpenDyslexic. The old code relied on the SCSS
compiler to automatically correct the order of the CSS rules,
ensuring the @font-face declaration was always valid.
The server now correctly generates the `@font-face` rule at
the top level of the stylesheet, fixing the previously invalid nested CSS.

Introduced in : f1448fcf07

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-07-11 12:27:41 +01:00
Ferdinand Thiessen 5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Julius Knorr 9f12d68523 fix: Pass over product name as capability
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-18 12:54:43 +02:00
Joas Schilling b8fde8b7cb fix(theming): Instead of expecting a warning handle it properly
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-20 23:06:27 +02:00
Ferdinand Thiessen f1448fcf07 chore(theming): remove scssphp and just native nested CSS
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 09:51:04 +02:00
Ferdinand Thiessen cfdd691f28 fix: ensure enabled (enforced) themes are always set on template layout
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-04 10:16:34 +02:00
doubleO8 da51459022 fix(theming) include 'background_color' in list of supported keys
Signed-off-by: doubleO8 <wb008@hdm-stuttgart.de>
2025-03-08 11:28:06 +01:00