ownCloud Web with Custom Theming

Introduction

Just like with other clients (Desktop, Android, iOS), themes can be used with ownCloud Web. As an organization or company you may be interested in theming the ownCloud Web user interface with your brand and slogan and playful individuals may simply enjoy the fun of decorating ownCloud Web the way they like.

This can be achieved by providing a json file that contains text snippets (like brand name and slogan), paths to images (e.g. logos or favicons) and design tokens for various parameters like color, sizing and spacing. In the following, we explain the setup and configuration options and provide an empty template for you to get started.

ownCloud Web can be seen as a hub for extensions like the files extension, the user management extension and others. The central part of ownCloud Web with respect to theming is the web-runtime which holds all general style definitions which can be used by but also be individually set by an extension. This makes it possible to e.g. individually style the general frame independent of an extension.

Providing a Theme

With Infinite Scale, you can define a theming json file via the WEB_UI_THEME_PATH environment variable. This theming json file takes precedence over the config/config.json that is used in the development process when building the Web UI. See an example config.json at GitHub.

If no theme is provided or the loading of your custom theme fails, the standard Infinite Scale theme will be loaded as a fallback. However, this doesn’t stop you from correctly loading a theme that is wrongly formatted, so please read the instructions below carefully.

Loading Themes

  • Web themes are loaded, if added in the Infinite Scale source code, at build-time from <ocis_repo>/services/web/assets/themes. This cannot be manipulated at runtime.

  • Additionally, the administrator can provide custom themes by storing it in the path defined by the environment variable WEB_ASSET_THEMES_PATH.

  • With the theme root directory defined, the system needs to know which theme to use. This can be done by setting the WEB_UI_THEME_PATH environment variable.

  • The final theme is composed of the built-in and the custom theme provided by the administrator via WEB_ASSET_THEMES_PATH and WEB_UI_THEME_PATH.

  • For example, Infinite Scale by default contains a built-in ownCloud theme. If the administrator provides a custom theme via the WEB_ASSET_THEMES_PATH directory like, WEB_ASSET_THEMES_PATH/owncloud/themes.json, this one will be used instead of the built-in one.

Some theme keys are mandatory, like the common.shareRoles settings. Such mandatory keys are injected automatically at runtime if not provided.

Configuring a Theme

Sourced from GitHub
{
  "common": {
    "name": "ownCloud – a Kiteworks company",
    "slogan": "Kiteworks Open Source Program Office",
    "logo": "themes/owncloud/assets/oc_coloured.svg",
    "urls": {
      "accessDeniedHelp": "",
      "imprint": "",
      "privacy": "",
      "accessibilityStatement": "",
      "universalAccessEasyLanguage": "",
      "universalAccessSignLanguage": ""
    }
  },
  "clients": {
    "android": {},
    "desktop": {},
    "ios": {},
    "web": {
      "defaults": {
        "appBanner": {},
        "logo": {
          "topbar": "themes/owncloud/assets/oc_white.svg",
          "favicon": "themes/owncloud/assets/favicon.jpg",
          "login": "themes/owncloud/assets/oc_white.svg"
        },
        "loginPage": {
          "backgroundImg": "themes/owncloud/assets/loginBackground.jpg"
        },
        "icons": {
          "universalAccess": "",
          "universalAccessEasyLanguage": "",
          "universalAccessSignLanguage": ""
        },
        "designTokens": {
          "breakpoints": {
            "xsmall-max": "",
            "small-default": "",
            "small-max": "",
            "medium-default": "",
            "medium-max": "",
            "large-default": "",
            "large-max": "",
            "xlarge": ""
          },
          "fontSizes": {
            "default": "",
            "large": "",
            "medium": ""
          },
          "sizes": {
            "form-check-default": "",
            "height-small": "",
            "height-table-row": "",
            "icon-default": "",
            "max-height-logo": "",
            "max-width-logo": "",
            "width-medium": "",
            "tiles-default": "",
            "tiles-resize-step": ""
          },
          "spacing": {
            "xsmall": "",
            "small": "",
            "medium": "",
            "large": "",
            "xlarge": "",
            "xxlarge": ""
          }
        }
      },
      "themes": [
        {
          "isDark": false,
          "name": "Light Theme",
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "rgba(255, 255, 5, 0.1)",
              "background-default": "#ffffff",
              "background-highlight": "#f3f6fc",
              "background-muted": "#F1F5FB",
              "background-secondary": "#ffffff",
              "background-hover": "#f3f6fc",
              "background-sidebar": "#ffffff",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#ceddee",
              "border": "#ecebee",
              "input-bg": "#ffffff",
              "input-border": "#ceddee",
              "input-text-default": "#041e42",
              "input-text-muted": "#4c5f79",
              "swatch-brand-default": "#224474",
              "swatch-brand-hover": "#223959",
              "swatch-brand-contrast": "#ffffff",
              "swatch-danger-contrast": "#ffffff",
              "swatch-danger-default": "rgb(197, 48, 48)",
              "swatch-danger-hover": "#b12b2b",
              "swatch-danger-muted": "rgb(204, 117, 117)",
              "swatch-inverse-default": "#ffffff",
              "swatch-inverse-hover": "#ffffff",
              "swatch-inverse-muted": "#bfbfbf",
              "swatch-passive-default": "#264d7f",
              "swatch-passive-hover": "#264d7f",
              "swatch-passive-hover-outline": "#264d7f",
              "swatch-passive-muted": "#99bae0",
              "swatch-passive-contrast": "#ffffff",
              "swatch-primary-default": "#224474",
              "swatch-primary-hover": "#16243b",
              "swatch-primary-muted": "#224474",
              "swatch-primary-muted-hover": "#16243b",
              "swatch-primary-gradient": "#224474",
              "swatch-primary-gradient-hover": "#16243b",
              "swatch-primary-contrast": "#ffffff",
              "swatch-success-default": "rgb(3, 84, 63)",
              "swatch-success-hover": "#023b2c",
              "swatch-success-muted": "rgb(83, 150, 10)",
              "swatch-success-contrast": "#ffffff",
              "swatch-warning-default": "rgb(183, 76, 27)",
              "swatch-warning-hover": "#a04318",
              "swatch-warning-muted": "rgba(183, 76, 27, .5)",
              "swatch-warning-contrast": "#ffffff",
              "text-default": "oklch(13% 0.028 261.692)",
              "text-inverse": "#ffffff",
              "text-muted": "#4c5f79",
              "icon-folder": "#224474",
              "icon-archive": "#fbbe54",
              "icon-image": "#ee6b3b",
              "icon-spreadsheet": "#15c286",
              "icon-document": "#3b44a6",
              "icon-video": "#045459",
              "icon-audio": "#700460",
              "icon-presentation": "#ee6b3b",
              "icon-pdf": "#ec0d47",
              "icon-medical": "#0984db"
            },
            "tagColorsList": [
              "#b12f2f",
              "#a0422a",
              "#8e5026",
              "#7d5821",
              "#6f5e1d",
              "#62621a",
              "#57651b",
              "#4a691c",
              "#3c6b1c",
              "#2d6d1d",
              "#1d6d1d",
              "#1d6d2d",
              "#1d6d3d",
              "#1d6c4c",
              "#1c6b5b",
              "#1c6a6a",
              "#206779",
              "#26648e",
              "#2d5fa9",
              "#3755ca",
              "#4e4ed0",
              "#6246ce",
              "#763dcb",
              "#8833c1",
              "#952faf",
              "#9f2a9f",
              "#a42b8b",
              "#a72d76",
              "#ac2e60",
              "#af2e48"
            ]
          }
        },
        {
          "isDark": false,
          "name": "Light Theme – High Contrast",
          "logo": {
            "topbar": "themes/owncloud/assets/logo_dark.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "rgba(255, 255, 5, 0.1)",
              "background-default": "#ffffff",
              "background-highlight": "oklch(87.2% 0.01 258.338)",
              "background-muted": "#ffffff",
              "background-secondary": "#ffffff",
              "background-hover": "oklch(87.2% 0.01 258.338)",
              "background-sidebar": "#ffffff",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#000000",
              "border": "#ecebee",
              "input-bg": "#ffffff",
              "input-border": "#000000",
              "input-text-default": "#000000",
              "input-text-muted": "#333333",
              "swatch-brand-default": "#FFFFFF",
              "swatch-brand-hover": "rgb(236, 236, 236)",
              "swatch-brand-contrast": "#000000",
              "swatch-danger-contrast": "#ffffff",
              "swatch-danger-default": "rgb(197, 48, 48)",
              "swatch-danger-hover": "#b12b2b",
              "swatch-danger-muted": "rgb(204, 117, 117)",
              "swatch-inverse-default": "#000000",
              "swatch-inverse-hover": "#555555",
              "swatch-inverse-muted": "#bfbfbf",
              "swatch-passive-default": "#000000",
              "swatch-passive-hover": "#555555",
              "swatch-passive-hover-outline": "#555555",
              "swatch-passive-muted": "#333333",
              "swatch-passive-contrast": "#ffffff",
              "swatch-primary-default": "#000000",
              "swatch-primary-hover": "#555555",
              "swatch-primary-muted": "#000000",
              "swatch-primary-muted-hover": "#555555",
              "swatch-primary-gradient": "#000000",
              "swatch-primary-gradient-hover": "#555555",
              "swatch-primary-contrast": "#ffffff",
              "swatch-success-default": "rgb(3, 84, 63)",
              "swatch-success-hover": "#023b2c",
              "swatch-success-muted": "rgb(83, 150, 10)",
              "swatch-success-contrast": "#ffffff",
              "swatch-warning-default": "rgb(183, 76, 27)",
              "swatch-warning-hover": "#a04318",
              "swatch-warning-muted": "rgba(183, 76, 27, .5)",
              "swatch-warning-contrast": "#ffffff",
              "text-default": "#000000",
              "text-inverse": "#ffffff",
              "text-muted": "#333333",
              "icon-folder": "#000000",
              "icon-archive": "#fbbe54",
              "icon-image": "#ee6b3b",
              "icon-spreadsheet": "#15c286",
              "icon-document": "#3b44a6",
              "icon-video": "#045459",
              "icon-audio": "#700460",
              "icon-presentation": "#ee6b3b",
              "icon-pdf": "#ec0d47",
              "icon-medical": "#0984db"
            },
            "tagColorsList": [
              "#841717",
              "#772915",
              "#683412",
              "#5a3c10",
              "#4e410e",
              "#44440c",
              "#3c480d",
              "#314a0d",
              "#264c0d",
              "#1a4d0e",
              "#0e4e0e",
              "#0e4e1a",
              "#0e4d27",
              "#0e4d33",
              "#0d4c3f",
              "#0d4b4b",
              "#0f4857",
              "#124568",
              "#174180",
              "#1c37a0",
              "#2323c4",
              "#3e20b7",
              "#541da6",
              "#631a94",
              "#6d1783",
              "#741474",
              "#781565",
              "#7d1653",
              "#801741",
              "#82172c"
            ]
          }
        },
        {
          "isDark": true,
          "name": "Dark Theme",
          "logo": {
            "topbar": "themes/owncloud/assets/logo.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "#696969",
              "background-default": "#000000",
              "background-highlight": "#383838",
              "background-muted": "oklch(21% 0.034 264.665)",
              "background-secondary": "#404040",
              "background-hover": "#383838",
              "background-sidebar": "#000B1C",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#ceddee",
              "border": "#383838",
              "input-bg": "#4f4f4f",
              "input-border": "#696969",
              "input-text-default": "#dadcdf",
              "input-text-muted": "#bdbfc3",
              "swatch-brand-default": "#191A25",
              "swatch-brand-hover": "#ffffff",
              "swatch-brand-contrast": "#dadcdf",
              "swatch-inverse-default": "",
              "swatch-inverse-hover": "",
              "swatch-inverse-muted": "#696969",
              "swatch-passive-default": "#ffffff",
              "swatch-passive-hover": "#f8f8f8",
              "swatch-passive-hover-outline": "#f8f8f8",
              "swatch-passive-muted": "#bdbfc3",
              "swatch-passive-contrast": "#000000",
              "swatch-primary-default": "#8EB1DB",
              "swatch-primary-hover": "#6297ce",
              "swatch-primary-muted": "#8EB1DB",
              "swatch-primary-muted-hover": "#6297ce",
              "swatch-primary-gradient": "#8EB1DB",
              "swatch-primary-gradient-hover": "#6297ce",
              "swatch-primary-contrast": "#000000",
              "swatch-success-background": "rgba(0, 188, 140, 0)",
              "swatch-success-default": "rgb(0, 200, 152)",
              "swatch-success-hover": "#00f0b4",
              "swatch-success-muted": "rgba(0, 188, 140, .5)",
              "swatch-success-contrast": "#000000",
              "swatch-warning-background": "rgba(0,0,0,0)",
              "swatch-warning-default": "rgb(232, 191, 73)",
              "swatch-warning-hover": "#eed077",
              "swatch-warning-muted": "rgba(232, 178, 19, .5)",
              "swatch-danger-default": "rgb(255, 137, 126)",
              "swatch-danger-hover": "#ff7566",
              "swatch-danger-muted": "rgba(255, 72, 53, .5)",
              "swatch-danger-contrast": "#000000",
              "swatch-warning-contrast": "#000000",
              "text-default": "#dadcdf",
              "text-inverse": "#000000",
              "text-muted": "#c2c2c2",
              "icon-folder": "#ffffff",
              "icon-archive": "rgb(255, 207, 1)",
              "icon-image": "rgb(255, 111, 0)",
              "icon-spreadsheet": "rgb(0, 182, 87)",
              "icon-document": "rgb(44, 101, 255)",
              "icon-video": "rgb(0, 187, 219)",
              "icon-audio": "rgb(208, 67, 236)",
              "icon-presentation": "rgb(255, 64, 6)",
              "icon-pdf": "rgb(225, 5, 14)",
              "icon-medical": "rgb(9,132,219)"
            },
            "tagColorsList": [
              "#db9393",
              "#d79686",
              "#d19a76",
              "#c99e5e",
              "#bea43f",
              "#aaaa39",
              "#98b03b",
              "#84b53c",
              "#6fb93e",
              "#58bc3f",
              "#3fbe3f",
              "#3fbc58",
              "#3fbc71",
              "#3ebb89",
              "#3eb9a0",
              "#3db6b6",
              "#59b1c8",
              "#76add1",
              "#88a7d7",
              "#95a3dc",
              "#a0a0df",
              "#aa9dde",
              "#b59add",
              "#c096dc",
              "#cb91da",
              "#d88bd8",
              "#d98dca",
              "#d98ebb",
              "#da91ae",
              "#da91a0"
            ]
          }
        },
        {
          "isDark": true,
          "name": "Dark Theme – High Contrast",
          "logo": {
            "topbar": "themes/owncloud/assets/logo.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "#696969",
              "background-default": "#000000",
              "background-highlight": "oklch(21% 0.034 264.665)",
              "background-muted": "#000000",
              "background-secondary": "#000000",
              "background-hover": "oklch(21% 0.034 264.665)",
              "background-sidebar": "#000000",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#ceddee",
              "border": "#383838",
              "input-bg": "#000000",
              "input-border": "#ffffff",
              "input-text-default": "#ffffff",
              "input-text-muted": "oklch(87.2% 0.01 258.338)",
              "swatch-brand-default": "#000000",
              "swatch-brand-hover": "#ffffff",
              "swatch-brand-contrast": "#ffffff",
              "swatch-inverse-default": "",
              "swatch-inverse-hover": "",
              "swatch-inverse-muted": "#f8f8f8",
              "swatch-passive-default": "#ffffff",
              "swatch-passive-hover": "#f8f8f8",
              "swatch-passive-hover-outline": "#f8f8f8",
              "swatch-passive-muted": "#ffffff",
              "swatch-passive-contrast": "#000000",
              "swatch-primary-default": "#ffffff",
              "swatch-primary-hover": "#f8f8f8",
              "swatch-primary-muted": "#ffffff",
              "swatch-primary-muted-hover": "#f8f8f8",
              "swatch-primary-gradient": "#ffffff",
              "swatch-primary-gradient-hover": "#f8f8f8",
              "swatch-primary-contrast": "#000000",
              "swatch-success-background": "rgba(0, 188, 140, 0)",
              "swatch-success-default": "rgb(0, 200, 152)",
              "swatch-success-hover": "#00f0b4",
              "swatch-success-muted": "rgba(0, 188, 140, .5)",
              "swatch-success-contrast": "#000000",
              "swatch-warning-background": "rgba(0,0,0,0)",
              "swatch-warning-default": "rgb(232, 191, 73)",
              "swatch-warning-hover": "#eed077",
              "swatch-warning-muted": "rgba(232, 178, 19, .5)",
              "swatch-danger-default": "rgb(255, 137, 126)",
              "swatch-danger-hover": "#ff7566",
              "swatch-danger-muted": "rgba(255, 72, 53, .5)",
              "swatch-danger-contrast": "#000000",
              "swatch-warning-contrast": "#000000",
              "text-default": "#ffffff",
              "text-inverse": "#000000",
              "text-muted": "#f8f8f8",
              "icon-folder": "#ffffff",
              "icon-archive": "rgb(255, 207, 1)",
              "icon-image": "rgb(255, 111, 0)",
              "icon-spreadsheet": "rgb(0, 182, 87)",
              "icon-document": "rgb(44, 101, 255)",
              "icon-video": "rgb(0, 187, 219)",
              "icon-audio": "rgb(208, 67, 236)",
              "icon-presentation": "rgb(255, 64, 6)",
              "icon-pdf": "rgb(225, 5, 14)",
              "icon-medical": "rgb(9,132,219)"
            },
            "tagColorsList": [
              "#e3baba",
              "#e0bbb2",
              "#dcbeab",
              "#d7c09e",
              "#d1c48e",
              "#c8c87a",
              "#bccb81",
              "#b1ce86",
              "#a6cf8b",
              "#9dd290",
              "#94d394",
              "#92d39f",
              "#90d2ab",
              "#90d2b7",
              "#8dd0c3",
              "#8bcfcf",
              "#9dccd7",
              "#a9c8dc",
              "#b3c5e0",
              "#bac2e3",
              "#c1c1e5",
              "#c6bfe5",
              "#cdbee4",
              "#d3bbe3",
              "#dab8e2",
              "#e1b7e1",
              "#e1b7d9",
              "#e2b7d1",
              "#e2b8c9",
              "#e3bac2"
            ]
          }
        },
        {
          "isDark": false,
          "mode": "vault",
          "name": "Light Theme",
          "logo": {
            "topbar": "themes/owncloud/assets/logo_dark.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "rgba(255, 255, 5, 0.1)",
              "background-default": "#ffffff",
              "background-highlight": "#FFFAE2",
              "background-muted": "#f8f8f8",
              "background-secondary": "#ffffff",
              "background-hover": "#FFFAE2",
              "background-sidebar": "#ffffff",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#ceddee",
              "border": "#ecebee",
              "input-bg": "#ffffff",
              "input-border": "#ceddee",
              "input-text-default": "#041e42",
              "input-text-muted": "#4c5f79",
              "swatch-brand-default": "#F0AA39",
              "swatch-brand-hover": "#CA912B",
              "swatch-brand-contrast": "#000000",
              "swatch-danger-contrast": "#ffffff",
              "swatch-danger-default": "rgb(197, 48, 48)",
              "swatch-danger-hover": "#b12b2b",
              "swatch-danger-muted": "rgb(204, 117, 117)",
              "swatch-inverse-default": "#ffffff",
              "swatch-inverse-hover": "#ffffff",
              "swatch-inverse-muted": "#bfbfbf",
              "swatch-passive-default": "#000000",
              "swatch-passive-hover": "#555555",
              "swatch-passive-hover-outline": "#F7D496",
              "swatch-passive-muted": "#99bae0",
              "swatch-passive-contrast": "#000000",
              "swatch-primary-default": "#9C6B00",
              "swatch-primary-hover": "#6C4500",
              "swatch-primary-muted": "#F0AA39",
              "swatch-primary-muted-hover": "#CA912B",
              "swatch-primary-gradient": "#F0AA39",
              "swatch-primary-gradient-hover": "#CA912B",
              "swatch-primary-contrast": "#000000",
              "swatch-success-default": "rgb(3, 84, 63)",
              "swatch-success-hover": "#023b2c",
              "swatch-success-muted": "rgb(83, 150, 10)",
              "swatch-success-contrast": "#ffffff",
              "swatch-warning-default": "rgb(183, 76, 27)",
              "swatch-warning-hover": "#a04318",
              "swatch-warning-muted": "rgba(183, 76, 27, .5)",
              "swatch-warning-contrast": "#ffffff",
              "text-default": "oklch(13% 0.028 261.692)",
              "text-inverse": "#ffffff",
              "text-muted": "#4c5f79",
              "icon-folder": "#000000",
              "icon-archive": "#fbbe54",
              "icon-image": "#ee6b3b",
              "icon-spreadsheet": "#15c286",
              "icon-document": "#3b44a6",
              "icon-video": "#045459",
              "icon-audio": "#700460",
              "icon-presentation": "#ee6b3b",
              "icon-pdf": "#ec0d47",
              "icon-medical": "#0984db"
            },
            "tagColorsList": [
              "#b12f2f",
              "#a0422a",
              "#8e5026",
              "#7d5821",
              "#6f5e1d",
              "#62621a",
              "#57651b",
              "#4a691c",
              "#3c6b1c",
              "#2d6d1d",
              "#1d6d1d",
              "#1d6d2d",
              "#1d6d3d",
              "#1d6c4c",
              "#1c6b5b",
              "#1c6a6a",
              "#206779",
              "#26648e",
              "#2d5fa9",
              "#3755ca",
              "#4e4ed0",
              "#6246ce",
              "#763dcb",
              "#8833c1",
              "#952faf",
              "#9f2a9f",
              "#a42b8b",
              "#a72d76",
              "#ac2e60",
              "#af2e48"
            ]
          }
        },
        {
          "isDark": false,
          "mode": "vault",
          "name": "Light Theme – High Contrast",
          "logo": {
            "topbar": "themes/owncloud/assets/logo_dark.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "rgba(255, 255, 5, 0.1)",
              "background-default": "#ffffff",
              "background-highlight": "oklch(87.2% 0.01 258.338)",
              "background-muted": "#ffffff",
              "background-secondary": "#ffffff",
              "background-hover": "oklch(87.2% 0.01 258.338)",
              "background-sidebar": "#ffffff",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#000000",
              "border": "#ecebee",
              "input-bg": "#ffffff",
              "input-border": "#000000",
              "input-text-default": "#000000",
              "input-text-muted": "#333333",
              "swatch-brand-default": "#F0AA39",
              "swatch-brand-hover": "#CA912B",
              "swatch-brand-contrast": "#000000",
              "swatch-danger-contrast": "#ffffff",
              "swatch-danger-default": "rgb(197, 48, 48)",
              "swatch-danger-hover": "#b12b2b",
              "swatch-danger-muted": "rgb(204, 117, 117)",
              "swatch-inverse-default": "#000000",
              "swatch-inverse-hover": "#555555",
              "swatch-inverse-muted": "#bfbfbf",
              "swatch-passive-default": "#000000",
              "swatch-passive-hover": "#555555",
              "swatch-passive-hover-outline": "#555555",
              "swatch-passive-muted": "#333333",
              "swatch-passive-contrast": "#ffffff",
              "swatch-primary-default": "#000000",
              "swatch-primary-hover": "#555555",
              "swatch-primary-muted": "#000000",
              "swatch-primary-muted-hover": "#555555",
              "swatch-primary-gradient": "#000000",
              "swatch-primary-gradient-hover": "#555555",
              "swatch-primary-contrast": "#ffffff",
              "swatch-success-default": "rgb(3, 84, 63)",
              "swatch-success-hover": "#023b2c",
              "swatch-success-muted": "rgb(83, 150, 10)",
              "swatch-success-contrast": "#ffffff",
              "swatch-warning-default": "rgb(183, 76, 27)",
              "swatch-warning-hover": "#a04318",
              "swatch-warning-muted": "rgba(183, 76, 27, .5)",
              "swatch-warning-contrast": "#ffffff",
              "text-default": "#000000",
              "text-inverse": "#ffffff",
              "text-muted": "#333333",
              "icon-folder": "#000000",
              "icon-archive": "#fbbe54",
              "icon-image": "#ee6b3b",
              "icon-spreadsheet": "#15c286",
              "icon-document": "#3b44a6",
              "icon-video": "#045459",
              "icon-audio": "#700460",
              "icon-presentation": "#ee6b3b",
              "icon-pdf": "#ec0d47",
              "icon-medical": "#0984db"
            },
            "tagColorsList": [
              "#841717",
              "#772915",
              "#683412",
              "#5a3c10",
              "#4e410e",
              "#44440c",
              "#3c480d",
              "#314a0d",
              "#264c0d",
              "#1a4d0e",
              "#0e4e0e",
              "#0e4e1a",
              "#0e4d27",
              "#0e4d33",
              "#0d4c3f",
              "#0d4b4b",
              "#0f4857",
              "#124568",
              "#174180",
              "#1c37a0",
              "#2323c4",
              "#3e20b7",
              "#541da6",
              "#631a94",
              "#6d1783",
              "#741474",
              "#781565",
              "#7d1653",
              "#801741",
              "#82172c"
            ]
          }
        },
        {
          "isDark": true,
          "mode": "vault",
          "name": "Dark Theme",
          "logo": {
            "topbar": "themes/owncloud/assets/logo.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "#696969",
              "background-default": "#000000",
              "background-highlight": "#383838",
              "background-muted": "oklch(21% 0.034 264.665)",
              "background-secondary": "#404040",
              "background-hover": "#383838",
              "background-sidebar": "#000B1C",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#ceddee",
              "border": "#383838",
              "input-bg": "#000000",
              "input-border": "#ffffff",
              "input-text-default": "#ffffff",
              "input-text-muted": "#bdbfc3",
              "search-input-text-muted": "#bdbfc3",
              "swatch-brand-default": "#191A25",
              "swatch-brand-hover": "#ffffff",
              "swatch-brand-contrast": "#F0AA39",
              "swatch-inverse-default": "",
              "swatch-inverse-hover": "",
              "swatch-inverse-muted": "#696969",
              "swatch-passive-default": "#F0AA39",
              "swatch-passive-hover": "#CA912B",
              "swatch-passive-hover-outline": "#CA912B",
              "swatch-passive-muted": "#bdbfc3",
              "swatch-passive-contrast": "#000000",
              "swatch-primary-default": "#F0AA39",
              "swatch-primary-hover": "#CA912B",
              "swatch-primary-muted": "#F0AA39",
              "swatch-primary-muted-hover": "#CA912B",
              "swatch-primary-gradient": "#F0AA39",
              "swatch-primary-gradient-hover": "#CA912B",
              "swatch-primary-contrast": "#000000",
              "swatch-success-background": "rgba(0, 188, 140, 0)",
              "swatch-success-default": "rgb(0, 200, 152)",
              "swatch-success-hover": "#00f0b4",
              "swatch-success-muted": "rgba(0, 188, 140, .5)",
              "swatch-success-contrast": "#000000",
              "swatch-warning-background": "rgba(0,0,0,0)",
              "swatch-warning-default": "rgb(232, 191, 73)",
              "swatch-warning-hover": "#eed077",
              "swatch-warning-muted": "rgba(232, 178, 19, .5)",
              "swatch-danger-default": "rgb(255, 137, 126)",
              "swatch-danger-hover": "#ff7566",
              "swatch-danger-muted": "rgba(255, 72, 53, .5)",
              "swatch-danger-contrast": "#000000",
              "swatch-warning-contrast": "#000000",
              "text-default": "#ffffff",
              "text-inverse": "#000000",
              "text-muted": "#E6C56B",
              "icon-folder": "#ffffff",
              "icon-archive": "rgb(255, 207, 1)",
              "icon-image": "rgb(255, 111, 0)",
              "icon-spreadsheet": "rgb(0, 182, 87)",
              "icon-document": "rgb(44, 101, 255)",
              "icon-video": "rgb(0, 187, 219)",
              "icon-audio": "rgb(208, 67, 236)",
              "icon-presentation": "rgb(255, 64, 6)",
              "icon-pdf": "rgb(225, 5, 14)",
              "icon-medical": "rgb(9,132,219)"
            },
            "tagColorsList": [
              "#db9393",
              "#d79686",
              "#d19a76",
              "#c99e5e",
              "#bea43f",
              "#aaaa39",
              "#98b03b",
              "#84b53c",
              "#6fb93e",
              "#58bc3f",
              "#3fbe3f",
              "#3fbc58",
              "#3fbc71",
              "#3ebb89",
              "#3eb9a0",
              "#3db6b6",
              "#59b1c8",
              "#76add1",
              "#88a7d7",
              "#95a3dc",
              "#a0a0df",
              "#aa9dde",
              "#b59add",
              "#c096dc",
              "#cb91da",
              "#d88bd8",
              "#d98dca",
              "#d98ebb",
              "#da91ae",
              "#da91a0"
            ]
          }
        },
        {
          "isDark": true,
          "mode": "vault",
          "name": "Dark Theme – High Contrast",
          "logo": {
            "topbar": "themes/owncloud/assets/logo_dark.svg",
            "favicon": "themes/owncloud/assets/favicon.jpg",
            "login": "themes/owncloud/assets/oc_white.svg"
          },
          "designTokens": {
            "colorPalette": {
              "background-accentuate": "#696969",
              "background-default": "#000000",
              "background-highlight": "oklch(21% 0.034 264.665)",
              "background-muted": "#000000",
              "background-secondary": "#000000",
              "background-hover": "oklch(21% 0.034 264.665)",
              "background-sidebar": "#000000",
              "color-components-apptopbar-background": "transparent",
              "color-components-apptopbar-border": "#ceddee",
              "border": "#383838",
              "input-bg": "#000000",
              "input-border": "#ffffff",
              "input-text-default": "#ffffff",
              "input-text-muted": "oklch(27.8% 0.033 256.848)",
              "search-input-bg": "#ffffff",
              "search-input-border": "#000000",
              "search-input-text-default": "#000000",
              "search-input-text-muted": "oklch(27.8% 0.033 256.848)",
              "swatch-brand-default": "#F0AA39",
              "swatch-brand-hover": "#CA912B",
              "swatch-brand-contrast": "#000000",
              "swatch-inverse-default": "",
              "swatch-inverse-hover": "",
              "swatch-inverse-muted": "#f8f8f8",
              "swatch-passive-default": "#ffffff",
              "swatch-passive-hover": "#f8f8f8",
              "swatch-passive-hover-outline": "#f8f8f8",
              "swatch-passive-muted": "#ffffff",
              "swatch-passive-contrast": "#000000",
              "swatch-primary-default": "#ffffff",
              "swatch-primary-hover": "#f8f8f8",
              "swatch-primary-muted": "#ffffff",
              "swatch-primary-muted-hover": "#f8f8f8",
              "swatch-primary-gradient": "#ffffff",
              "swatch-primary-gradient-hover": "#f8f8f8",
              "swatch-primary-contrast": "#000000",
              "swatch-success-background": "rgba(0, 188, 140, 0)",
              "swatch-success-default": "rgb(0, 200, 152)",
              "swatch-success-hover": "#00f0b4",
              "swatch-success-muted": "rgba(0, 188, 140, .5)",
              "swatch-success-contrast": "#000000",
              "swatch-warning-background": "rgba(0,0,0,0)",
              "swatch-warning-default": "rgb(232, 191, 73)",
              "swatch-warning-hover": "#eed077",
              "swatch-warning-muted": "rgba(232, 178, 19, .5)",
              "swatch-danger-default": "rgb(255, 137, 126)",
              "swatch-danger-hover": "#ff7566",
              "swatch-danger-muted": "rgba(255, 72, 53, .5)",
              "swatch-danger-contrast": "#000000",
              "swatch-warning-contrast": "#000000",
              "text-default": "#ffffff",
              "text-inverse": "#000000",
              "text-muted": "#f8f8f8",
              "icon-folder": "#ffffff",
              "icon-archive": "rgb(255, 207, 1)",
              "icon-image": "rgb(255, 111, 0)",
              "icon-spreadsheet": "rgb(0, 182, 87)",
              "icon-document": "rgb(44, 101, 255)",
              "icon-video": "rgb(0, 187, 219)",
              "icon-audio": "rgb(208, 67, 236)",
              "icon-presentation": "rgb(255, 64, 6)",
              "icon-pdf": "rgb(225, 5, 14)",
              "icon-medical": "rgb(9,132,219)"
            },
            "tagColorsList": [
              "#e3baba",
              "#e0bbb2",
              "#dcbeab",
              "#d7c09e",
              "#d1c48e",
              "#c8c87a",
              "#bccb81",
              "#b1ce86",
              "#a6cf8b",
              "#9dd290",
              "#94d394",
              "#92d39f",
              "#90d2ab",
              "#90d2b7",
              "#8dd0c3",
              "#8bcfcf",
              "#9dccd7",
              "#a9c8dc",
              "#b3c5e0",
              "#bac2e3",
              "#c1c1e5",
              "#c6bfe5",
              "#cdbee4",
              "#d3bbe3",
              "#dab8e2",
              "#e1b7e1",
              "#e1b7d9",
              "#e2b7d1",
              "#e2b8c9",
              "#e3bac2"
            ]
          }
        }
      ]
    }
  }
}