diff --git a/packages/kolibri/components/pages/AppBarPage/internal/AppBar.vue b/packages/kolibri/components/pages/AppBarPage/internal/AppBar.vue
index 496a6978404..f2ed029edfd 100644
--- a/packages/kolibri/components/pages/AppBarPage/internal/AppBar.vue
+++ b/packages/kolibri/components/pages/AppBarPage/internal/AppBar.vue
@@ -2,7 +2,10 @@
@@ -10,9 +13,12 @@
@@ -26,7 +32,7 @@
>
@@ -94,7 +100,7 @@
@@ -27,7 +27,7 @@
:ariaLabel="coreString('moreOptions')"
icon="optionsHorizontal"
appearance="flat-button"
- :color="$themeTokens.text"
+ :color="themeConfig.appBar.textColor"
:primary="false"
class="kiconbutton-style"
>
@@ -51,6 +51,7 @@
import isUndefined from 'lodash/isUndefined';
import commonCoreStrings from 'kolibri/uiText/commonCoreStrings';
import useKResponsiveWindow from 'kolibri-design-system/lib/composables/useKResponsiveWindow';
+ import themeConfig from 'kolibri/styles/themeConfig';
import NavbarLink from './NavbarLink';
/**
* Used for navigation between sub-pages of a top-level Kolibri section
@@ -67,6 +68,7 @@
windowIsLarge,
windowIsMedium,
windowWidth,
+ themeConfig,
};
},
props: {
diff --git a/packages/kolibri/components/pages/AppBarPage/internal/SideNav.vue b/packages/kolibri/components/pages/AppBarPage/internal/SideNav.vue
index aac3431052e..ec9a7a84953 100644
--- a/packages/kolibri/components/pages/AppBarPage/internal/SideNav.vue
+++ b/packages/kolibri/components/pages/AppBarPage/internal/SideNav.vue
@@ -196,14 +196,15 @@
height: topBarHeight + 'px',
width: `${width}`,
paddingTop: windowIsSmall ? '4px' : '8px',
- backgroundColor: $themeTokens.appBar,
+ backgroundColor: themeConfig.appBar.background,
+ color: themeConfig.appBar.textColor,
}"
>
diff --git a/packages/kolibri/styles/internal/themeSpec.js b/packages/kolibri/styles/internal/themeSpec.js
index 681fcaa1dee..02b9fef4490 100644
--- a/packages/kolibri/styles/internal/themeSpec.js
+++ b/packages/kolibri/styles/internal/themeSpec.js
@@ -1,4 +1,5 @@
import logger from 'kolibri-logging';
+import { themeTokens } from 'kolibri-design-system/lib/styles/theme';
import isObject from 'lodash/isObject';
const logging = logger.getLogger(__filename);
@@ -42,6 +43,25 @@ const _imageSpec = {
};
export default {
+ appBar: {
+ type: Object,
+ default: null,
+ spec: {
+ background: {
+ type: String,
+ default: themeTokens().appBar,
+ },
+ textColor: {
+ type: String,
+ default: themeTokens().text,
+ },
+ topLogo: {
+ type: Object,
+ default: null,
+ spec: _imageSpec,
+ },
+ },
+ },
brandColors: {
type: Object,
default: null,
diff --git a/packages/kolibri/styles/themeConfig.js b/packages/kolibri/styles/themeConfig.js
index 0bd59d23632..5d11aa0aa28 100644
--- a/packages/kolibri/styles/themeConfig.js
+++ b/packages/kolibri/styles/themeConfig.js
@@ -2,6 +2,8 @@ import Vue from 'vue';
const themeConfig = Vue.observable({
appBar: {
+ background: null,
+ textColor: null,
topLogo: {
src: null,
alt: null,