nextcloud/apps/theming
Nextcloud bot a251294fbb
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-01-22 00:17:39 +00:00
..
appinfo chore: Bump app versions and requirements 2025-09-04 09:11:05 +02:00
composer chore: Bump autoloader files for new composer version 2025-12-02 10:32:44 +01:00
css fix(ui): Update assistant text gradient 2025-09-25 12:00:57 +02:00
fonts fix(a11y): Update OpenDyslexic from 0.920 to 2.001 2024-09-12 16:53:13 +02:00
img fix(theming): previews need the same file extension as their originals 2025-08-21 19:22:45 +02:00
l10n fix(l10n): Update translations from Transifex 2026-01-22 00:17:39 +00:00
lib fix(theming): Fix favicon and touchicon ratios 2026-01-20 11:44:45 +01:00
src chore: adjust styles for new stylelint config 2026-01-19 15:33:39 +01:00
templates refactor(theming): migrate to Typescript and Vue 3 2025-12-23 17:00:40 +01:00
tests fix(psalm): Fix static analysis issues in apps/*/tests 2026-01-16 12:00:51 +01:00
.l10nignore chore: Add SPDX header 2024-05-31 10:38:47 +02:00
openapi.json chore(deps): Update nextcloud/openapi-extractor to v1.8.3 2025-09-01 16:04:54 +02:00
openapi.json.license chore: Add SPDX header 2024-05-31 10:38:47 +02:00
README.md feat(theming): add new default background for Nextcloud 32 2025-08-21 19:22:45 +02:00
REUSE.toml fix(theming): previews need the same file extension as their originals 2025-08-21 19:22:45 +02:00

Theming

Background picture requirements

A reference to why it was very difficult to actually find good background pictures there are quite some requirements when it comes to picking:

  • It needs to be an exceptionally good photo of course since when chosen, people will see it every day.
  • We need to have a good balance of different motives, e.g. not too many landscape pics.
  • Same for a good balance of different colors.
  • The photo needs to work as a background. Photos with objects focused in the middle dont really work as they will be overlapped by the widgets and content anyway.
  • Especially the top part cannot have too much differing contrast, as then its not possible to see the navigation icons.
  • Especially the top part should be either dark-ish or light-ish, but not a shade exactly inbetween because then contrast can neither be achieved with light nor dark icons.
  • We serve the pictures at 4k resolution and most of the selected images are also available in 6k or higher so it is future-proof.
  • For the search of course we had to limit to CC0, CC By and CC By-Sa. Only CC0 would have been practically impossible cause theres just not so many good ones which fit.
  • Good pages to find photos are StockSnap, Wikimedia Commons, Openverse and Flickr (with license "commercial use & mods allowed"), sorting by interesting or downloads. Most others like Unsplash, Pexels, Pixabay, etc. meanwhile have a non-standard license.

Background picture technicals

  • All backgrounds are sized to maximum 3840px width (4K resolution).
  • To ensure quick loading times, the image needs to be compressed, ideally to around 1 MB or less. E.g. via 9095% quality in GIMP export. We could also explore using newer formats.
  • Previews are sized to 352px width (min height 192px), which is double of the current picker grid size so it looks nice on high-res displays. Quality is also set to around 90% at export.
  • Newer background images are compressed using WebP and a quality of 90 (cwebp -q 90 -o ... ...)

Background picture credits

In img/background/: