Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
4c22df7
Theme selector implementation
brucefrankstad26-beep Jul 29, 2026
68844aa
Dark mode implementation
ChrisTouo Jul 29, 2026
7448448
New changes regarding the dark mode
brucefrankstad26-beep Jul 30, 2026
5cedf06
Dashboard Changes
brucefrankstad26-beep Jul 30, 2026
0aa87ae
Changes on the Storage
brucefrankstad26-beep Jul 30, 2026
ba99bd9
Merge branch 'main' into 1209-cms-dark-mode
brucefrankstad26-beep Jul 30, 2026
8e31449
APP: animate login and privacy-policy banner popups instead of snappi…
MrDirkelz Jul 29, 2026
6acbd51
Merge branch 'bruce-cms-dark-mode' into 1209-cms-dark-mode
brucefrankstad26-beep Jul 30, 2026
0ea99fd
Enhance dark mode support across components with improved styling and…
ChrisTouo Jul 30, 2026
a1d6581
fix the bug on the the theme button
ChrisTouo Jul 31, 2026
96adadc
Continued Changes on the Storage page
brucefrankstad26-beep Jul 31, 2026
41f5dde
Dashboard Fix
brucefrankstad26-beep Jul 31, 2026
cf779c3
Merge branch 'bruce-cms-dark-mode' into 1209-cms-dark-mode
brucefrankstad26-beep Jul 31, 2026
d7c49bf
changes
brucefrankstad26-beep Jul 31, 2026
1edac99
More changes to fix the dashboard and sidebar for light mode
brucefrankstad26-beep Jul 31, 2026
5d418f0
more changes to optimise light mode for Dashboard and SideBar
brucefrankstad26-beep Jul 31, 2026
e10602f
Changes on the Language Overview
brucefrankstad26-beep Jul 31, 2026
085a455
Other Changes to the modals, language overview
brucefrankstad26-beep Jul 31, 2026
eb7b5a8
Changes to AuthProvider, Edit User and AutoGroup Mappings
brucefrankstad26-beep Jul 31, 2026
39c9236
Minor Changes
brucefrankstad26-beep Jul 31, 2026
792745b
No Actual Changes
brucefrankstad26-beep Aug 11, 2026
e25dd42
Second attempt at changes
brucefrankstad26-beep Jul 31, 2026
ab40b52
Improvements on the side bar's dark mode
ChrisTouo Jul 31, 2026
dde2931
Other changes
brucefrankstad26-beep Jul 31, 2026
65649c6
Enhance dark mode styles across components for better visual consistency
ChrisTouo Jul 31, 2026
d8a4ac4
Enhance dark mode support across various components
ChrisTouo Aug 6, 2026
4a4c1f7
More Changes to the CMS Dark Mode
brucefrankstad26-beep Aug 11, 2026
a5dc92f
Changes
brucefrankstad26-beep Aug 11, 2026
b43be46
More Changes to the CMS Dark Mode
brucefrankstad26-beep Aug 11, 2026
728fe82
More Changes
brucefrankstad26-beep Aug 12, 2026
1d628c7
Edit Content Changes
brucefrankstad26-beep Aug 14, 2026
91e4a1e
Accents on the Dashboard StatCards
brucefrankstad26-beep Aug 14, 2026
1c002be
Other accent additions
brucefrankstad26-beep Aug 17, 2026
cfc6287
Dark Mode More Changes
brucefrankstad26-beep Aug 26, 2026
ea91f01
Dark mdoe Changes - 27/8/25
brucefrankstad26-beep Aug 28, 2026
e277924
Dark Mode Fixes Sep 1
brucefrankstad26-beep Sep 1, 2026
40956e5
Merge branch 'main' into bruce-cms-dark-mode
brucefrankstad26-beep Sep 4, 2026
6c050d7
First set of changes
brucefrankstad26-beep Sep 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cms/index.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!doctype html>
<html lang="en" class="h-screen overflow-hidden bg-zinc-50 text-zinc-900">
<html lang="en" class="h-screen overflow-hidden dark:bg-slate-700 dark:text-zinc-100">
<head>
<meta charset="UTF-8" />
<link id="favIcon" rel="icon" href="%VITE_LOGO_FAVICON%" />
Expand Down
32 changes: 20 additions & 12 deletions cms/src/components/BasePage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -70,25 +70,28 @@ const handleMobileSidebarToggle = () => {
</script>

<template>
<div class="flex h-full flex-col overflow-hidden">
<div class="flex h-full flex-col overflow-hidden dark:bg-slate-900">
<div
:class="isFullWidth ? 'mx-auto w-full' : 'min-w-full max-w-7xl'"
class="flex min-h-0 flex-1 flex-col overflow-hidden"
>
<div class="relative z-30 flex-shrink-0">
<div
data-topbar
class="flex h-12 shrink-0 items-center gap-x-1 bg-white shadow-sm sm:gap-x-3"
class="flex h-12 shrink-0 items-center gap-x-1 bg-white shadow-sm dark:bg-slate-800 dark:shadow-none sm:gap-x-3"
:class="[
{ 'border-b border-zinc-200': !$slots.internalPageHeader },
{
'border-b border-zinc-200 dark:border-slate-700':
!$slots.internalPageHeader,
},
topBarInsetClasses,
]"
>
<button
v-if="isEditContentPage || isMobileScreen || isEditLanguagePage"
type="button"
data-test="chevron-icon"
class="text-zinc-500"
class="text-zinc-500 transition-colors dark:text-zinc-400 hover:dark:text-zinc-200"
:class="{
'ml-1.5 max-lg:-ml-1': isEditContentPage || isEditLanguagePage,
}"
Expand All @@ -109,17 +112,19 @@ const handleMobileSidebarToggle = () => {

<!-- Separator -->
<div
class="h-6 w-px bg-zinc-900/10"
class="h-6 w-px bg-zinc-900/10 dark:bg-zinc-100/10"
:class="{ hidden: !isEditContentPage && !isEditLanguagePage }"
aria-hidden="true"
/>

<TopBar>
<template #quickActions>
<div class="flex w-full min-w-0 items-center justify-between gap-2">
<div
class="flex w-full min-w-0 items-center justify-between gap-2 dark:text-zinc-100"
>
<h1
v-if="title"
class="text-md flex min-w-0 items-center gap-2 truncate font-semibold leading-7"
class="text-md flex min-w-0 items-center gap-2 truncate font-semibold leading-7 dark:text-zinc-100"
>
{{ title }}
</h1>
Expand All @@ -143,15 +148,18 @@ const handleMobileSidebarToggle = () => {
</TopBar>
</div>
</div>
<div v-if="loading" class="flex min-h-0 flex-1 items-center justify-center">
<div
v-if="loading"
class="flex min-h-0 flex-1 items-center justify-center dark:bg-slate-900"
>
<LoadingBar />
</div>
<template v-else>
<RouterLink
v-if="backLinkLocation"
:to="backLinkLocation"
:params="backLinkParams"
class="-mx-2 mb-1 inline-flex items-center gap-1 rounded-md px-2 py-1 text-sm text-zinc-600 hover:bg-zinc-100 hover:text-zinc-900 active:bg-zinc-200 sm:pl-6"
class="-mx-2 mb-1 inline-flex items-center gap-1 rounded-md px-2 py-1 text-sm text-zinc-600 transition-colors hover:bg-zinc-100 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-slate-800 dark:hover:text-zinc-200 sm:pl-6"
>
<ArrowLeftIcon class="h-4 w-4" /> {{ backLinkText }}
</RouterLink>
Expand Down Expand Up @@ -181,7 +189,7 @@ const handleMobileSidebarToggle = () => {

<div
v-if="$slots.internalPageHeader"
class="w-full flex-shrink-0 border-b border-t border-zinc-300 border-t-zinc-100 bg-white shadow"
class="w-full flex-shrink-0 border-b border-t border-zinc-300 border-t-zinc-100 bg-white shadow dark:border-slate-700 dark:border-t-slate-800 dark:bg-slate-800/50 dark:shadow-none"
>
<div class="py-2" :class="chromeInsetClasses">
<slot name="internalPageHeader" />
Expand All @@ -190,7 +198,7 @@ const handleMobileSidebarToggle = () => {

<div
data-test="base-page-content"
class="flex min-h-0 flex-1 flex-col"
class="flex min-h-0 flex-1 flex-col dark:bg-slate-900"
:class="contentInsetClasses"
>
<div
Expand All @@ -212,7 +220,7 @@ const handleMobileSidebarToggle = () => {
<div
v-if="$slots.footer"
data-test="base-page-footer"
class="flex-shrink-0 border-t border-zinc-200 bg-white pb-2 pt-2 lg:pb-4"
class="flex-shrink-0 border-t border-zinc-200 bg-white pb-2 pt-2 dark:border-slate-700 dark:bg-slate-800 lg:pb-4"
:class="contentInset && contentInsetClasses"
>
<slot name="footer" />
Expand Down
6 changes: 3 additions & 3 deletions cms/src/components/EmptyState.vue
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,11 @@ const goBackOrHome = useGoBackOrHome();
<div class="mx-3 rounded-md border-2 border-dashed border-zinc-200 py-12 text-center lg:mx-0">
<component
:is="icon ?? DocumentPlusIcon"
class="mx-auto h-10 w-10 text-zinc-400"
class="mx-auto h-10 w-10 dark:text-zinc-100"
aria-hidden="true"
/>
<h3 class="mt-2 text-sm font-semibold text-zinc-900">{{ title }}</h3>
<p class="mt-1 text-sm text-zinc-500">{{ description }}</p>
<h3 class="mt-2 text-sm font-semibold dark:text-zinc-100">{{ title }}</h3>
<p class="mt-1 text-sm dark:text-zinc-100">{{ description }}</p>
<div class="mt-6 flex flex-wrap items-center justify-center gap-3">
<LButton
v-if="showBackButton"
Expand Down
13 changes: 6 additions & 7 deletions cms/src/components/authProvider/AuthConfig.vue
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ function normalizeDomainString(value: string | undefined): string {
</script>

<template>
<div class="rounded-md border border-b border-zinc-200 bg-white p-2 pb-2">
<div class="rounded-md border border-b border-zinc-200 p-2 pb-2 dark:bg-slate-800">
<div class="mb-2 flex items-center justify-between">
<h3 class="text-sm font-medium text-zinc-900">Auth Configuration</h3>
<h3 class="text-sm font-medium dark:text-zinc-100">Auth Configuration</h3>
</div>

<div class="space-y-2">
<div>
<label for="domain" class="mb-1 block text-xs font-medium text-zinc-700">
<label for="domain" class="mb-1 block text-xs font-medium dark:text-zinc-100">
Domain
<span v-if="!isEditing" class="text-red-500">*</span>
</label>
Expand All @@ -58,7 +58,7 @@ function normalizeDomainString(value: string | undefined): string {
</div>

<div>
<label for="clientId" class="mb-1 block text-xs font-medium text-zinc-700">
<label for="clientId" class="mb-1 block text-xs font-medium dark:text-zinc-100">
Client ID
<span v-if="!isEditing" class="text-red-500">*</span>
</label>
Expand All @@ -75,7 +75,7 @@ function normalizeDomainString(value: string | undefined): string {
</div>

<div>
<label for="audience" class="mb-1 block text-xs font-medium text-zinc-700">
<label for="audience" class="mb-1 block text-xs font-medium dark:text-zinc-100">
Audience
<span v-if="!isEditing" class="text-red-500">*</span>
</label>
Expand All @@ -89,11 +89,10 @@ function normalizeDomainString(value: string | undefined): string {
:required="!isEditing"
@update:model-value="provider.audience = $event"
/>
<p class="mt-0.5 text-[11px] text-zinc-500">
<p class="mt-0.5 text-[11px] dark:text-zinc-100">
The API identifier/audience configured in your auth provider
</p>
</div>

</div>
</div>
</template>
19 changes: 9 additions & 10 deletions cms/src/components/authProvider/DisplayCard.vue
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ const handleEdit = () => {

<template>
<div
class="w-full cursor-pointer divide-y divide-zinc-100 border-y border-zinc-300 bg-white px-2 py-1 sm:rounded-md sm:border"
class="w-full cursor-pointer divide-y divide-zinc-100 border-y border-zinc-500 px-2 py-1 dark:bg-slate-800 sm:rounded-md sm:border"
@click="handleEdit"
>
<div class="relative flex cursor-pointer items-center justify-between py-1">
Expand All @@ -61,7 +61,9 @@ const handleEdit = () => {
'flex justify-between': isSmallScreen,
}"
>
<div class="mr-1 max-w-full truncate text-wrap text-sm font-medium">
<div
class="mr-1 max-w-full truncate text-wrap text-sm font-medium dark:text-zinc-100"
>
{{
capitaliseFirstLetter(provider.displayName || provider.label) ||
provider.domain ||
Expand All @@ -72,7 +74,7 @@ const handleEdit = () => {
</div>

<div class="flex w-full items-center gap-2 py-1 text-xs">
<div class="flex flex-nowrap gap-1">
<div class="flex flex-nowrap gap-1 dark:text-zinc-100">
<LBadge
v-if="provider.domain && provider.clientId"
type="default"
Expand Down Expand Up @@ -103,7 +105,7 @@ const handleEdit = () => {
<div v-if="isSmallScreen" class="flex flex-wrap items-center gap-1 py-1">
<div class="flex flex-1 items-center gap-1">
<div>
<UserGroupIcon class="h-4 w-4 text-zinc-400" />
<UserGroupIcon class="h-4 w-4 dark:text-zinc-100" />
</div>
<div class="flex flex-wrap gap-1">
<LBadge
Expand All @@ -125,18 +127,15 @@ const handleEdit = () => {
</LBadge>
</div>
</div>
<div class="flex w-max items-start text-xs text-zinc-400">
<ClockIcon class="mr-[1px] h-3.5 w-3.5 text-zinc-400" />
<div class="flex w-max items-start text-xs dark:text-zinc-100">
<ClockIcon class="mr-[1px] h-3.5 w-3.5 dark:text-zinc-100" />
<span title="Last Updated" class="text-[11px]">{{
renderDate("small", "Last Updated", provider.updatedTimeUtc)
}}</span>
</div>
</div>

<div
v-if="!isSmallScreen"
class="flex items-center justify-between pt-1 text-xs sm:gap-4"
>
<div v-if="!isSmallScreen" class="flex items-center justify-between pt-1 text-xs sm:gap-4">
<div class="flex w-full flex-1 flex-wrap items-center gap-1">
<UserGroupIcon class="h-4 w-4 text-zinc-400" />
<LBadge
Expand Down
6 changes: 3 additions & 3 deletions cms/src/components/authProvider/FormModal.vue
Original file line number Diff line number Diff line change
Expand Up @@ -219,10 +219,10 @@ const handleRevert = () => {

<LabelAndType v-model:provider="provider" :disabled="isDisabled" />

<div class="rounded-md border border-zinc-200 bg-white p-2">
<div class="rounded-md border border-zinc-700 p-2 dark:bg-slate-800">
<label
for="provider-sort-index"
class="mb-1 block text-xs font-medium text-zinc-700"
class="mb-1 block text-xs font-medium dark:text-zinc-100"
>
Sort Index
</label>
Expand All @@ -247,7 +247,7 @@ const handleRevert = () => {
</p>
</div>

<div class="rounded-md border border-zinc-200 bg-white p-2">
<div class="rounded-md border border-zinc-500 p-2 dark:bg-slate-800">
<LCombobox
v-model:selected-options="provider.memberOf as string[]"
:label="`Group Membership`"
Expand Down
8 changes: 4 additions & 4 deletions cms/src/components/authProvider/IconSection.vue
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ watch(
</script>

<template>
<div class="rounded-md border border-zinc-200 bg-white p-2">
<div class="rounded-md border border-zinc-200 p-2 dark:bg-slate-800">
<div class="mb-1 flex items-center justify-between">
<label class="block text-xs font-medium text-zinc-700">Icon</label>
<label class="block text-xs font-medium dark:text-zinc-100">Icon</label>
<LButton
v-if="isBucketSelected"
:icon="ArrowUpOnSquareIcon"
Expand All @@ -101,7 +101,7 @@ watch(
@change="handleFileChange"
/>
</div>
<div class="rounded-md border border-zinc-200 bg-white p-2">
<div class="rounded-md border border-zinc-200 p-2 dark:bg-slate-800">
<ImageEditor
ref="imageEditorRef"
v-model:parent="provider as unknown as ContentParentDto"
Expand All @@ -111,7 +111,7 @@ watch(
/>
</div>
<div class="mt-2">
<label for="icon-opacity" class="mb-1 block text-xs font-medium text-zinc-700">
<label for="icon-opacity" class="mb-1 block text-xs font-medium dark:text-zinc-100">
Icon Opacity
</label>
<div class="flex items-center gap-2">
Expand Down
14 changes: 7 additions & 7 deletions cms/src/components/authProvider/LabelAppearance.vue
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@ const provider = defineModel<AuthProviderDto>("provider", { required: true });
</script>

<template>
<div class="rounded-md border border-zinc-200 bg-white p-2">
<h3 class="mb-2 text-sm font-medium text-zinc-900">Appearance</h3>
<div class="rounded-md border border-zinc-200 p-2 dark:bg-slate-800">
<h3 class="mb-2 text-sm font-medium dark:text-zinc-100">Appearance</h3>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="mb-1 block text-xs font-medium text-zinc-700"
>Text Color</label
>
<label class="mb-1 block text-xs font-medium dark:text-zinc-100">Text Color</label>
<div class="flex items-center gap-2">
<div
class="relative h-[38px] w-[38px] flex-shrink-0 overflow-hidden rounded-md border border-zinc-300"
Expand Down Expand Up @@ -47,7 +45,7 @@ const provider = defineModel<AuthProviderDto>("provider", { required: true });
</div>
</div>
<div>
<label class="mb-1 block text-xs font-medium text-zinc-700"
<label class="mb-1 block text-xs font-medium dark:text-zinc-100"
>Background Color</label
>
<div class="flex items-center gap-2">
Expand All @@ -57,7 +55,9 @@ const provider = defineModel<AuthProviderDto>("provider", { required: true });
<input
type="color"
:value="provider.backgroundColor || '#ffffff'"
@input="provider.backgroundColor = ($event.target as HTMLInputElement).value"
@input="
provider.backgroundColor = ($event.target as HTMLInputElement).value
"
class="absolute inset-0 h-full w-full cursor-pointer rounded-full opacity-0"
:disabled="disabled"
/>
Expand Down
10 changes: 5 additions & 5 deletions cms/src/components/authProvider/UserFieldMappings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,15 @@ function setMapping(key: "externalUserId" | "email" | "name", value: string) {
</script>

<template>
<div class="rounded-md border border-zinc-200 bg-white p-2">
<h3 class="mb-2 text-sm font-medium text-zinc-900">User field names</h3>
<div class="rounded-md border border-zinc-200 p-2 dark:bg-slate-800">
<h3 class="mb-2 text-sm font-medium dark:text-zinc-100">User field names</h3>
<p class="mb-2 text-[11px] text-zinc-500">
Override the JWT claim paths used to identify users. Leave blank to use standard OIDC
defaults (<code>sub</code>, <code>email</code>, <code>name</code>).
</p>
<div class="space-y-2">
<div>
<label for="ufm-userId" class="mb-1 block text-xs font-medium text-zinc-700"
<label for="ufm-userId" class="mb-1 block text-xs font-medium dark:text-zinc-100"
>User ID claim</label
>
<LInput
Expand All @@ -56,7 +56,7 @@ function setMapping(key: "externalUserId" | "email" | "name", value: string) {
/>
</div>
<div>
<label for="ufm-email" class="mb-1 block text-xs font-medium text-zinc-700"
<label for="ufm-email" class="mb-1 block text-xs font-medium dark:text-zinc-100"
>Email claim</label
>
<LInput
Expand All @@ -70,7 +70,7 @@ function setMapping(key: "externalUserId" | "email" | "name", value: string) {
/>
</div>
<div>
<label for="ufm-name" class="mb-1 block text-xs font-medium text-zinc-700"
<label for="ufm-name" class="mb-1 block text-xs font-medium dark:text-zinc-100"
>Name claim</label
>
<LInput
Expand Down
Loading
Loading