diff --git a/web/src/lib/components/admin-page/server-stats/server-stats-panel.svelte b/web/src/lib/components/admin-page/server-stats/server-stats-panel.svelte index 3dcd3b4594..2f8d391954 100644 --- a/web/src/lib/components/admin-page/server-stats/server-stats-panel.svelte +++ b/web/src/lib/components/admin-page/server-stats/server-stats-panel.svelte @@ -103,9 +103,7 @@ class="block max-h-[320px] w-full overflow-y-auto rounded-md border dark:border-immich-dark-gray dark:text-immich-dark-fg" > {#each stats.usageByUser as user (user.userId)} - <tr - class="flex h-[50px] w-full place-items-center text-center odd:bg-subtle even:bg-immich-bg odd:dark:bg-immich-dark-gray/75 even:dark:bg-immich-dark-gray/50" - > + <tr class="flex h-[50px] w-full place-items-center text-center even:bg-subtle/20 odd:bg-subtle/80"> <td class="w-1/4 text-ellipsis px-2 text-sm">{user.userName}</td> <td class="w-1/4 text-ellipsis px-2 text-sm" >{user.photos.toLocaleString($locale)} ({getByteUnitString(user.usagePhotos, $locale, 0)})</td diff --git a/web/src/lib/components/album-page/album-title.svelte b/web/src/lib/components/album-page/album-title.svelte index 0c712e426c..f5b1a4fa1e 100644 --- a/web/src/lib/components/album-page/album-title.svelte +++ b/web/src/lib/components/album-page/album-title.svelte @@ -1,7 +1,7 @@ <script lang="ts"> - import { updateAlbumInfo } from '@immich/sdk'; - import { handleError } from '$lib/utils/handle-error'; import { shortcut } from '$lib/actions/shortcut'; + import { handleError } from '$lib/utils/handle-error'; + import { updateAlbumInfo } from '@immich/sdk'; import { t } from 'svelte-i18n'; interface Props { @@ -40,7 +40,7 @@ onblur={handleUpdateName} class="w-[99%] mb-2 border-b-2 border-transparent text-2xl md:text-4xl lg:text-6xl text-immich-primary outline-none transition-all dark:text-immich-dark-primary {isOwned ? 'hover:border-gray-400' - : 'hover:border-transparent'} bg-immich-bg focus:border-b-2 focus:border-immich-primary focus:outline-none dark:bg-immich-dark-bg dark:focus:border-immich-dark-primary dark:focus:bg-immich-dark-gray" + : 'hover:border-transparent'} focus:border-b-2 focus:border-immich-primary focus:outline-none bg-light dark:focus:border-immich-dark-primary dark:focus:bg-immich-dark-gray" type="text" bind:value={newAlbumName} disabled={!isOwned} diff --git a/web/src/lib/components/album-page/album-viewer.svelte b/web/src/lib/components/album-page/album-viewer.svelte index 1f15e22d9e..f3688e780c 100644 --- a/web/src/lib/components/album-page/album-viewer.svelte +++ b/web/src/lib/components/album-page/album-viewer.svelte @@ -1,11 +1,18 @@ <script lang="ts"> + import { shortcut } from '$lib/actions/shortcut'; + import AlbumMap from '$lib/components/album-page/album-map.svelte'; import SelectAllAssets from '$lib/components/photos-page/actions/select-all-assets.svelte'; + import { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; import { assetViewingStore } from '$lib/stores/asset-viewing.store'; + import { AssetStore } from '$lib/stores/assets-store.svelte'; import { dragAndDropFilesStore } from '$lib/stores/drag-and-drop-files.store'; + import { handlePromiseError } from '$lib/utils'; + import { cancelMultiselect, downloadAlbum } from '$lib/utils/asset-utils'; import { fileUploadHandler, openFileUploadDialog } from '$lib/utils/file-uploader'; import type { AlbumResponseDto, SharedLinkResponseDto, UserResponseDto } from '@immich/sdk'; - import { AssetStore } from '$lib/stores/assets-store.svelte'; - import { cancelMultiselect, downloadAlbum } from '$lib/utils/asset-utils'; + import { mdiFileImagePlusOutline, mdiFolderDownloadOutline } from '@mdi/js'; + import { onDestroy } from 'svelte'; + import { t } from 'svelte-i18n'; import CircleIconButton from '../elements/buttons/circle-icon-button.svelte'; import DownloadAction from '../photos-page/actions/download-action.svelte'; import AssetGrid from '../photos-page/asset-grid.svelte'; @@ -13,14 +20,7 @@ import ControlAppBar from '../shared-components/control-app-bar.svelte'; import ImmichLogoSmallLink from '../shared-components/immich-logo-small-link.svelte'; import ThemeButton from '../shared-components/theme-button.svelte'; - import { shortcut } from '$lib/actions/shortcut'; - import { mdiFileImagePlusOutline, mdiFolderDownloadOutline } from '@mdi/js'; - import { handlePromiseError } from '$lib/utils'; import AlbumSummary from './album-summary.svelte'; - import { t } from 'svelte-i18n'; - import { onDestroy } from 'svelte'; - import { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; - import AlbumMap from '$lib/components/album-page/album-map.svelte'; interface Props { sharedLink: SharedLinkResponseDto; @@ -101,14 +101,12 @@ {/if} </header> -<main - class="relative h-dvh overflow-hidden bg-immich-bg px-2 md:px-6 max-md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)] dark:bg-immich-dark-bg" -> +<main class="relative h-dvh overflow-hidden px-2 md:px-6 max-md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)]"> <AssetGrid enableRouting={true} {album} {assetStore} {assetInteraction}> <section class="pt-8 md:pt-24 px-2 md:px-0"> <!-- ALBUM TITLE --> <h1 - class="bg-immich-bg text-2xl md:text-4xl lg:text-6xl text-immich-primary outline-none transition-all dark:bg-immich-dark-bg dark:text-immich-dark-primary" + class="text-2xl md:text-4xl lg:text-6xl text-immich-primary outline-none transition-all dark:text-immich-dark-primary" > {album.albumName} </h1> diff --git a/web/src/lib/components/album-page/albums-table-row.svelte b/web/src/lib/components/album-page/albums-table-row.svelte index fa334ec597..389387e9bb 100644 --- a/web/src/lib/components/album-page/albums-table-row.svelte +++ b/web/src/lib/components/album-page/albums-table-row.svelte @@ -31,7 +31,7 @@ </script> <tr - class="flex h-[50px] w-full place-items-center border-[3px] border-transparent p-2 text-center odd:bg-subtle even:bg-immich-bg hover:cursor-pointer hover:border-immich-primary/75 odd:dark:bg-immich-dark-gray/75 even:dark:bg-immich-dark-gray/50 dark:hover:border-immich-dark-primary/75 md:p-5" + class="flex h-[50px] w-full place-items-center border-[3px] border-transparent p-2 text-center even:bg-subtle/20 odd:bg-subtle/80 hover:cursor-pointer hover:border-immich-primary/75 odd:dark:bg-immich-dark-gray/75 even:dark:bg-immich-dark-gray/50 dark:hover:border-immich-dark-primary/75 md:p-5" onclick={() => goto(`${AppRoute.ALBUMS}/${album.id}`)} {oncontextmenu} > diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index 5606da31a9..1e3c6135f0 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -529,7 +529,7 @@ <div transition:fly={{ duration: 150 }} id="detail-panel" - class="row-start-1 row-span-4 w-[360px] overflow-y-auto bg-immich-bg transition-all dark:border-l dark:border-s-immich-dark-gray dark:bg-immich-dark-bg" + class="row-start-1 row-span-4 w-[360px] overflow-y-auto transition-all dark:border-l dark:border-s-immich-dark-gray" translate="yes" > <DetailPanel {asset} currentAlbum={album} albums={appearsInAlbums} onClose={() => ($isShowDetail = false)} /> @@ -540,7 +540,7 @@ <div transition:fly={{ duration: 150 }} id="editor-panel" - class="row-start-1 row-span-4 w-[400px] overflow-y-auto bg-immich-bg transition-all dark:border-l dark:border-s-immich-dark-gray dark:bg-immich-dark-bg" + class="row-start-1 row-span-4 w-[400px] overflow-y-auto transition-all dark:border-l dark:border-s-immich-dark-gray" translate="yes" > <EditorPanel {asset} onUpdateSelectedType={handleUpdateSelectedEditType} onClose={closeEditor} /> @@ -589,7 +589,7 @@ <div transition:fly={{ duration: 150 }} id="activity-panel" - class="row-start-1 row-span-5 w-[360px] md:w-[460px] overflow-y-auto bg-immich-bg transition-all dark:border-l dark:border-s-immich-dark-gray dark:bg-immich-dark-bg" + class="row-start-1 row-span-5 w-[360px] md:w-[460px] overflow-y-auto transition-all dark:border-l dark:border-s-immich-dark-gray" translate="yes" > <ActivityViewer diff --git a/web/src/lib/components/asset-viewer/download-panel.svelte b/web/src/lib/components/asset-viewer/download-panel.svelte index 95633134a8..74ff4cc594 100644 --- a/web/src/lib/components/asset-viewer/download-panel.svelte +++ b/web/src/lib/components/asset-viewer/download-panel.svelte @@ -16,7 +16,7 @@ {#if downloadManager.isDownloading} <div transition:fly={{ x: -100, duration: 350 }} - class="fixed bottom-10 start-2 z-[10000] max-h-[270px] w-[315px] rounded-2xl border bg-immich-bg p-4 text-sm shadow-sm" + class="fixed bottom-10 start-2 z-[10000] max-h-[270px] w-[315px] rounded-2xl border p-4 text-sm shadow-sm bg-light" > <p class="mb-2 text-xs text-gray-500">{$t('downloading').toUpperCase()}</p> <div class="my-2 mb-2 flex max-h-[200px] flex-col overflow-y-auto text-sm"> diff --git a/web/src/lib/components/faces-page/assign-face-side-panel.svelte b/web/src/lib/components/faces-page/assign-face-side-panel.svelte index 19a99fdb94..c1906b70e0 100644 --- a/web/src/lib/components/faces-page/assign-face-side-panel.svelte +++ b/web/src/lib/components/faces-page/assign-face-side-panel.svelte @@ -1,20 +1,20 @@ <script lang="ts"> + import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; + import SearchPeople from '$lib/components/faces-page/people-search.svelte'; import { timeBeforeShowLoadingSpinner } from '$lib/constants'; - import { getPersonNameWithHiddenValue } from '$lib/utils/person'; + import { photoViewerImgElement } from '$lib/stores/assets-store.svelte'; import { getPeopleThumbnailUrl, handlePromiseError } from '$lib/utils'; - import { AssetTypeEnum, type AssetFaceResponseDto, type PersonResponseDto, getAllPeople } from '@immich/sdk'; + import { handleError } from '$lib/utils/handle-error'; + import { zoomImageToBase64 } from '$lib/utils/people-utils'; + import { getPersonNameWithHiddenValue } from '$lib/utils/person'; + import { AssetTypeEnum, getAllPeople, type AssetFaceResponseDto, type PersonResponseDto } from '@immich/sdk'; import { mdiArrowLeftThin, mdiClose, mdiMagnify, mdiPlus } from '@mdi/js'; + import { onMount } from 'svelte'; + import { t } from 'svelte-i18n'; import { linear } from 'svelte/easing'; import { fly } from 'svelte/transition'; - import { photoViewerImgElement } from '$lib/stores/assets-store.svelte'; import ImageThumbnail from '../assets/thumbnail/image-thumbnail.svelte'; import LoadingSpinner from '../shared-components/loading-spinner.svelte'; - import SearchPeople from '$lib/components/faces-page/people-search.svelte'; - import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; - import { zoomImageToBase64 } from '$lib/utils/people-utils'; - import { t } from 'svelte-i18n'; - import { handleError } from '$lib/utils/handle-error'; - import { onMount } from 'svelte'; interface Props { editedFace: AssetFaceResponseDto; @@ -74,7 +74,7 @@ <section transition:fly={{ x: 360, duration: 100, easing: linear }} - class="absolute top-0 z-[2001] h-full w-[360px] overflow-x-hidden p-2 bg-immich-bg dark:bg-immich-dark-bg dark:text-immich-dark-fg" + class="absolute top-0 z-[2001] h-full w-[360px] overflow-x-hidden p-2 dark:text-immich-dark-fg" > <div class="flex place-items-center justify-between gap-2"> {#if !searchFaces} diff --git a/web/src/lib/components/faces-page/manage-people-visibility.svelte b/web/src/lib/components/faces-page/manage-people-visibility.svelte index c3c75d495b..8e2544f989 100644 --- a/web/src/lib/components/faces-page/manage-people-visibility.svelte +++ b/web/src/lib/components/faces-page/manage-people-visibility.svelte @@ -8,6 +8,7 @@ notificationController, NotificationType, } from '$lib/components/shared-components/notification/notification'; + import { ToggleVisibility } from '$lib/constants'; import { locale } from '$lib/stores/preferences.store'; import { getPeopleThumbnailUrl } from '$lib/utils'; import { handleError } from '$lib/utils/handle-error'; @@ -15,7 +16,6 @@ import { mdiClose, mdiEye, mdiEyeOff, mdiEyeSettings, mdiRestart } from '@mdi/js'; import { t } from 'svelte-i18n'; import CircleIconButton from '../elements/buttons/circle-icon-button.svelte'; - import { ToggleVisibility } from '$lib/constants'; interface Props { people: PersonResponseDto[]; @@ -134,7 +134,7 @@ </div> </div> -<div class="flex flex-wrap gap-1 bg-immich-bg p-2 pb-8 dark:bg-immich-dark-bg md:px-8 mt-16"> +<div class="flex flex-wrap gap-1 p-2 pb-8 md:px-8 mt-16"> <PeopleInfiniteScroll {people} hasNextPage={true} {loadNextPage}> {#snippet children({ person })} {@const hidden = personIsHidden[person.id]} diff --git a/web/src/lib/components/faces-page/merge-face-selector.svelte b/web/src/lib/components/faces-page/merge-face-selector.svelte index c2c1c65647..2c57fcd120 100644 --- a/web/src/lib/components/faces-page/merge-face-selector.svelte +++ b/web/src/lib/components/faces-page/merge-face-selector.svelte @@ -2,11 +2,13 @@ import { goto } from '$app/navigation'; import { page } from '$app/state'; import Icon from '$lib/components/elements/icon.svelte'; + import { dialogController } from '$lib/components/shared-components/dialog/dialog'; import { ActionQueryParameterValue, AppRoute, QueryParameter } from '$lib/constants'; import { handleError } from '$lib/utils/handle-error'; import { getAllPeople, getPerson, mergePerson, type PersonResponseDto } from '@immich/sdk'; import { mdiCallMerge, mdiMerge, mdiSwapHorizontal } from '@mdi/js'; import { onMount } from 'svelte'; + import { t } from 'svelte-i18n'; import { flip } from 'svelte/animate'; import { quintOut } from 'svelte/easing'; import { fly } from 'svelte/transition'; @@ -16,8 +18,6 @@ import { NotificationType, notificationController } from '../shared-components/notification/notification'; import FaceThumbnail from './face-thumbnail.svelte'; import PeopleList from './people-list.svelte'; - import { dialogController } from '$lib/components/shared-components/dialog/dialog'; - import { t } from 'svelte-i18n'; interface Props { person: PersonResponseDto; @@ -99,7 +99,7 @@ <section transition:fly={{ y: 500, duration: 100, easing: quintOut }} - class="absolute start-0 top-0 z-[9999] h-full w-full bg-immich-bg dark:bg-immich-dark-bg" + class="absolute start-0 top-0 z-[9999] h-full w-full bg-light" > <ControlAppBar onClose={onBack}> {#snippet leading()} @@ -117,7 +117,7 @@ > {/snippet} </ControlAppBar> - <section class="bg-immich-bg px-[70px] pt-[100px] dark:bg-immich-dark-bg"> + <section class="px-[70px] pt-[100px]"> <section id="merge-face-selector"> <div class="mb-10 h-[200px] place-content-center place-items-center"> <p class="mb-4 text-center uppercase dark:text-white">{$t('choose_matching_people_to_merge')}</p> diff --git a/web/src/lib/components/faces-page/people-search.svelte b/web/src/lib/components/faces-page/people-search.svelte index 835f4188c4..3809efbea5 100644 --- a/web/src/lib/components/faces-page/people-search.svelte +++ b/web/src/lib/components/faces-page/people-search.svelte @@ -50,7 +50,7 @@ searchedPeopleLocal = $bindable(), type, numberPeopleToSearch = maximumLengthSearchPeople, - inputClass = 'w-full gap-2 bg-immich-bg dark:bg-immich-dark-bg', + inputClass = 'w-full gap-2', showLoadingSpinner = $bindable(false), placeholder = $t('name_or_nickname'), onReset = () => {}, diff --git a/web/src/lib/components/faces-page/person-side-panel.svelte b/web/src/lib/components/faces-page/person-side-panel.svelte index 5e8b35c74b..89b078ce2d 100644 --- a/web/src/lib/components/faces-page/person-side-panel.svelte +++ b/web/src/lib/components/faces-page/person-side-panel.svelte @@ -1,34 +1,34 @@ <script lang="ts"> + import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; + import Icon from '$lib/components/elements/icon.svelte'; + import { dialogController } from '$lib/components/shared-components/dialog/dialog'; import LoadingSpinner from '$lib/components/shared-components/loading-spinner.svelte'; import { timeBeforeShowLoadingSpinner } from '$lib/constants'; + import { assetViewingStore } from '$lib/stores/asset-viewing.store'; + import { photoViewerImgElement } from '$lib/stores/assets-store.svelte'; import { boundingBoxesArray } from '$lib/stores/people.store'; import { websocketEvents } from '$lib/stores/websocket'; import { getPeopleThumbnailUrl, handlePromiseError } from '$lib/utils'; import { handleError } from '$lib/utils/handle-error'; + import { zoomImageToBase64 } from '$lib/utils/people-utils'; import { getPersonNameWithHiddenValue } from '$lib/utils/person'; import { + AssetTypeEnum, createPerson, + deleteFace, getFaces, reassignFacesById, - AssetTypeEnum, type AssetFaceResponseDto, type PersonResponseDto, - deleteFace, } from '@immich/sdk'; - import Icon from '$lib/components/elements/icon.svelte'; import { mdiAccountOff, mdiArrowLeftThin, mdiPencil, mdiRestart, mdiTrashCan } from '@mdi/js'; import { onMount } from 'svelte'; + import { t } from 'svelte-i18n'; import { linear } from 'svelte/easing'; import { fly } from 'svelte/transition'; import ImageThumbnail from '../assets/thumbnail/image-thumbnail.svelte'; import { NotificationType, notificationController } from '../shared-components/notification/notification'; import AssignFaceSidePanel from './assign-face-side-panel.svelte'; - import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; - import { zoomImageToBase64 } from '$lib/utils/people-utils'; - import { photoViewerImgElement } from '$lib/stores/assets-store.svelte'; - import { t } from 'svelte-i18n'; - import { dialogController } from '$lib/components/shared-components/dialog/dialog'; - import { assetViewingStore } from '$lib/stores/asset-viewing.store'; interface Props { assetId: string; @@ -194,7 +194,7 @@ <section transition:fly={{ x: 360, duration: 100, easing: linear }} - class="absolute top-0 z-[2000] h-full w-[360px] overflow-x-hidden p-2 bg-immich-bg dark:bg-immich-dark-bg dark:text-immich-dark-fg" + class="absolute top-0 z-[2000] h-full w-[360px] overflow-x-hidden p-2 dark:text-immich-dark-fg bg-light" > <div class="flex place-items-center justify-between gap-2"> <div class="flex items-center gap-2"> diff --git a/web/src/lib/components/faces-page/unmerge-face-selector.svelte b/web/src/lib/components/faces-page/unmerge-face-selector.svelte index 41c584d602..13404a2f2c 100644 --- a/web/src/lib/components/faces-page/unmerge-face-selector.svelte +++ b/web/src/lib/components/faces-page/unmerge-face-selector.svelte @@ -11,6 +11,7 @@ } from '@immich/sdk'; import { mdiMerge, mdiPlus } from '@mdi/js'; import { onMount, type Snippet } from 'svelte'; + import { t } from 'svelte-i18n'; import { quintOut } from 'svelte/easing'; import { fly } from 'svelte/transition'; import Button from '../elements/buttons/button.svelte'; @@ -19,7 +20,6 @@ import { NotificationType, notificationController } from '../shared-components/notification/notification'; import FaceThumbnail from './face-thumbnail.svelte'; import PeopleList from './people-list.svelte'; - import { t } from 'svelte-i18n'; interface Props { assetIds: string[]; @@ -120,7 +120,7 @@ <section transition:fly={{ y: 500, duration: 100, easing: quintOut }} - class="absolute start-0 top-0 z-[9999] h-full w-full bg-immich-bg dark:bg-immich-dark-bg" + class="absolute start-0 top-0 z-[9999] h-full w-full bg-light" > <ControlAppBar {onClose}> {#snippet leading()} @@ -161,7 +161,7 @@ {/snippet} </ControlAppBar> {@render merge?.()} - <section class="bg-immich-bg px-[70px] pt-[100px] dark:bg-immich-dark-bg"> + <section class="px-[70px] pt-[100px]"> <section id="merge-face-selector relative"> {#if selectedPerson !== null} <div class="mb-10 h-[200px] place-content-center place-items-center"> diff --git a/web/src/lib/components/forms/library-import-paths-form.svelte b/web/src/lib/components/forms/library-import-paths-form.svelte index 28d6eff4e5..5acaaf2a8c 100644 --- a/web/src/lib/components/forms/library-import-paths-form.svelte +++ b/web/src/lib/components/forms/library-import-paths-form.svelte @@ -177,9 +177,7 @@ <tbody class="block w-full overflow-y-auto rounded-md border dark:border-immich-dark-gray"> {#each validatedPaths as validatedPath, listIndex (validatedPath.importPath)} <tr - class={`flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg ${ - listIndex % 2 == 0 ? 'bg-subtle' : 'bg-immich-bg dark:bg-immich-dark-gray/50' - }`} + class="flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="w-1/8 text-ellipsis ps-8 text-sm"> {#if validatedPath.isValid} @@ -215,9 +213,7 @@ </tr> {/each} <tr - class={`flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg ${ - importPaths.length % 2 == 0 ? 'bg-subtle' : 'bg-immich-bg dark:bg-immich-dark-gray/50' - }`} + class="flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="w-4/5 text-ellipsis px-4 text-sm"> {#if importPaths.length === 0} diff --git a/web/src/lib/components/forms/library-scan-settings-form.svelte b/web/src/lib/components/forms/library-scan-settings-form.svelte index a36192185f..7c36052dbe 100644 --- a/web/src/lib/components/forms/library-scan-settings-form.svelte +++ b/web/src/lib/components/forms/library-scan-settings-form.svelte @@ -127,9 +127,7 @@ <tbody class="block w-full overflow-y-auto rounded-md border dark:border-immich-dark-gray"> {#each exclusionPatterns as exclusionPattern, listIndex (exclusionPattern)} <tr - class={`flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg ${ - listIndex % 2 == 0 ? 'bg-subtle' : 'bg-immich-bg dark:bg-immich-dark-gray/50' - }`} + class="flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="w-3/4 text-ellipsis px-4 text-sm">{exclusionPattern}</td> <td class="w-1/4 text-ellipsis flex justify-center"> @@ -147,9 +145,7 @@ </tr> {/each} <tr - class={`flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg ${ - exclusionPatterns.length % 2 == 0 ? 'bg-subtle' : 'bg-immich-bg dark:bg-immich-dark-gray/50' - }`} + class="flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="w-3/4 text-ellipsis px-4 text-sm"> {#if exclusionPatterns.length === 0} diff --git a/web/src/lib/components/layouts/ErrorLayout.svelte b/web/src/lib/components/layouts/ErrorLayout.svelte index 70853939ed..dbf3b136be 100644 --- a/web/src/lib/components/layouts/ErrorLayout.svelte +++ b/web/src/lib/components/layouts/ErrorLayout.svelte @@ -1,7 +1,7 @@ <script lang="ts"> + import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; import Icon from '$lib/components/elements/icon.svelte'; import ImmichLogo from '$lib/components/shared-components/immich-logo.svelte'; - import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte'; import { copyToClipboard } from '$lib/utils'; import { mdiCodeTags, mdiContentCopy, mdiMessage, mdiPartyPopper } from '@mdi/js'; import { t } from 'svelte-i18n'; @@ -22,7 +22,7 @@ </script> <div class="h-dvh w-dvw"> - <section class="bg-immich-bg dark:bg-immich-dark-bg"> + <section> <div class="flex place-items-center border-b px-6 py-4 dark:border-b-immich-dark-gray"> <a class="flex place-items-center gap-2 hover:cursor-pointer" href="/photos"> <ImmichLogo class="h-[50px]" /> @@ -33,7 +33,7 @@ <div class="fixed top-0 flex h-full w-full place-content-center place-items-center overflow-hidden bg-black/50"> <div> <div - class="w-[500px] max-w-[95vw] rounded-3xl border bg-immich-bg shadow-sm dark:border-immich-dark-gray dark:bg-immich-dark-gray dark:text-immich-dark-fg" + class="w-[500px] max-w-[95vw] rounded-3xl border shadow-sm dark:border-immich-dark-gray dark:text-immich-dark-fg bg-subtle/80" > <div> <div class="flex items-center justify-between gap-4 px-4 py-4"> diff --git a/web/src/lib/components/layouts/user-page-layout.svelte b/web/src/lib/components/layouts/user-page-layout.svelte index d15b371049..747dda91a6 100644 --- a/web/src/lib/components/layouts/user-page-layout.svelte +++ b/web/src/lib/components/layouts/user-page-layout.svelte @@ -51,7 +51,7 @@ </header> <div tabindex="-1" - class="relative grid grid-cols-[theme(spacing.0)_auto] overflow-hidden bg-immich-bg dark:bg-immich-dark-bg sidebar:grid-cols-[theme(spacing.64)_auto] + class="relative grid grid-cols-[theme(spacing.0)_auto] overflow-hidden sidebar:grid-cols-[theme(spacing.64)_auto] {hideNavbar ? 'h-dvh' : 'h-[calc(100dvh-var(--navbar-height))]'} {hideNavbar ? 'pt-[var(--navbar-height)]' : ''} {hideNavbar ? 'max-md:pt-[var(--navbar-height-md)]' : ''}" diff --git a/web/src/lib/components/onboarding-page/onboarding-theme.svelte b/web/src/lib/components/onboarding-page/onboarding-theme.svelte index 9d3345dc2d..64c2ba51c4 100644 --- a/web/src/lib/components/onboarding-page/onboarding-theme.svelte +++ b/web/src/lib/components/onboarding-page/onboarding-theme.svelte @@ -23,7 +23,7 @@ <div class="flex gap-4 mb-6"> <button type="button" - class="w-1/2 aspect-square bg-immich-bg rounded-3xl transition-all shadow-sm hover:shadow-xl border-[3px] border-immich-dark-primary/80 border-immich-primary dark:border dark:border-transparent" + class="light w-1/2 aspect-square bg-light rounded-3xl transition-all shadow-sm hover:shadow-xl border-[3px] border-immich-dark-primary/80 border-immich-primary dark:border dark:border-transparent" onclick={() => themeManager.setTheme(Theme.LIGHT)} > <div @@ -35,7 +35,7 @@ </button> <button type="button" - class="w-1/2 aspect-square bg-immich-dark-bg rounded-3xl dark:border-[3px] dark:border-immich-dark-primary/80 dark:border-immich-dark-primary border border-transparent" + class="dark w-1/2 aspect-square bg-light rounded-3xl dark:border-[3px] dark:border-immich-dark-primary/80 dark:border-immich-dark-primary border border-transparent" onclick={() => themeManager.setTheme(Theme.DARK)} > <div diff --git a/web/src/lib/components/photos-page/asset-date-group.svelte b/web/src/lib/components/photos-page/asset-date-group.svelte index b25e9d49f5..943289ab1e 100644 --- a/web/src/lib/components/photos-page/asset-date-group.svelte +++ b/web/src/lib/components/photos-page/asset-date-group.svelte @@ -1,20 +1,19 @@ <script lang="ts"> import Icon from '$lib/components/elements/icon.svelte'; + import type { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; import { - type AssetStore, type AssetBucket, assetSnapshot, assetsSnapshot, + type AssetStore, isSelectingAllAssets, } from '$lib/stores/assets-store.svelte'; import { navigate } from '$lib/utils/navigation'; import { getDateLocaleString } from '$lib/utils/timeline-util'; import type { AssetResponseDto } from '@immich/sdk'; import { mdiCheckCircle, mdiCircleOutline } from '@mdi/js'; - import { fly } from 'svelte/transition'; + import { fly, scale } from 'svelte/transition'; import Thumbnail from '../assets/thumbnail/thumbnail.svelte'; - import type { AssetInteraction } from '$lib/stores/asset-interaction.svelte'; - import { scale } from 'svelte/transition'; import { flip } from 'svelte/animate'; @@ -128,7 +127,7 @@ > <!-- Date group title --> <div - class="flex z-[100] pt-7 pb-5 max-md:pt-5 max-md:pb-3 h-6 place-items-center text-xs font-medium text-immich-fg bg-immich-bg dark:bg-immich-dark-bg dark:text-immich-dark-fg md:text-sm" + class="flex z-[100] pt-7 pb-5 max-md:pt-5 max-md:pb-3 h-6 place-items-center text-xs font-medium text-immich-fg dark:text-immich-dark-fg md:text-sm" style:width={dateGroup.width + 'px'} > {#if !singleSelect && ((hoveredDateGroup === dateGroup.groupTitle && isMouseOverGroup) || assetInteraction.selectedGroup.has(dateGroup.groupTitle))} diff --git a/web/src/lib/components/photos-page/skeleton.svelte b/web/src/lib/components/photos-page/skeleton.svelte index 87ff91c511..ba1b88c993 100644 --- a/web/src/lib/components/photos-page/skeleton.svelte +++ b/web/src/lib/components/photos-page/skeleton.svelte @@ -9,7 +9,7 @@ <div class="overflow-clip" style:height={height + 'px'}> <div - class="flex z-[100] pt-7 pb-5 h-6 place-items-center text-xs font-medium text-immich-fg bg-immich-bg dark:bg-immich-dark-bg dark:text-immich-dark-fg md:text-sm" + class="flex z-[100] pt-7 pb-5 h-6 place-items-center text-xs font-medium text-immich-fg bg-light dark:text-immich-dark-fg md:text-sm" > {title} </div> diff --git a/web/src/lib/components/share-page/individual-shared-viewer.svelte b/web/src/lib/components/share-page/individual-shared-viewer.svelte index b3573ff3b5..89da05f5ad 100644 --- a/web/src/lib/components/share-page/individual-shared-viewer.svelte +++ b/web/src/lib/components/share-page/individual-shared-viewer.svelte @@ -87,7 +87,7 @@ }; </script> -<section class="bg-immich-bg dark:bg-immich-dark-bg"> +<section> {#if sharedLink?.allowUpload || assets.length > 1} {#if assetInteraction.selectionActive} <AssetSelectControlBar diff --git a/web/src/lib/components/shared-components/album-selection/album-selection-modal.svelte b/web/src/lib/components/shared-components/album-selection/album-selection-modal.svelte index 50ffae0322..3bc0161236 100644 --- a/web/src/lib/components/shared-components/album-selection/album-selection-modal.svelte +++ b/web/src/lib/components/shared-components/album-selection/album-selection-modal.svelte @@ -1,17 +1,17 @@ <script lang="ts"> - import { type AlbumResponseDto, getAllAlbums } from '@immich/sdk'; - import { onMount } from 'svelte'; - import AlbumListItem from '../../asset-viewer/album-list-item.svelte'; - import NewAlbumListItem from './new-album-list-item.svelte'; - import FullScreenModal from '$lib/components/shared-components/full-screen-modal.svelte'; import { initInput } from '$lib/actions/focus'; - import { t } from 'svelte-i18n'; - import { albumViewSettings } from '$lib/stores/preferences.store'; import { AlbumModalRowConverter, AlbumModalRowType, isSelectableRowType, } from '$lib/components/shared-components/album-selection/album-selection-utils'; + import FullScreenModal from '$lib/components/shared-components/full-screen-modal.svelte'; + import { albumViewSettings } from '$lib/stores/preferences.store'; + import { type AlbumResponseDto, getAllAlbums } from '@immich/sdk'; + import { onMount } from 'svelte'; + import { t } from 'svelte-i18n'; + import AlbumListItem from '../../asset-viewer/album-list-item.svelte'; + import NewAlbumListItem from './new-album-list-item.svelte'; let albums: AlbumResponseDto[] = $state([]); let recentAlbums: AlbumResponseDto[] = $state([]); @@ -98,7 +98,7 @@ {/each} {:else} <input - class="border-b-4 border-immich-bg bg-immich-bg px-6 py-2 text-2xl focus:border-immich-primary dark:border-immich-dark-gray dark:bg-immich-dark-gray dark:focus:border-immich-dark-primary" + class="border-b-4 border-immich-bg px-6 py-2 text-2xl focus:border-immich-primary dark:border-immich-dark-gray dark:focus:border-immich-dark-primary" placeholder={$t('search')} {onkeydown} bind:value={search} diff --git a/web/src/lib/components/shared-components/control-app-bar.svelte b/web/src/lib/components/shared-components/control-app-bar.svelte index d96d2dbc76..2e00c9e745 100644 --- a/web/src/lib/components/shared-components/control-app-bar.svelte +++ b/web/src/lib/components/shared-components/control-app-bar.svelte @@ -32,7 +32,7 @@ trailing, }: Props = $props(); - let appBarBorder = $state('bg-immich-bg border border-transparent'); + let appBarBorder = $state('bg-light border border-transparent'); const onScroll = () => { if (window.scrollY > 80) { @@ -42,7 +42,7 @@ appBarBorder = 'border border-gray-600'; } } else { - appBarBorder = 'bg-immich-bg border border-transparent'; + appBarBorder = 'bg-light border border-transparent'; } }; diff --git a/web/src/lib/components/shared-components/navigation-bar/navigation-bar.svelte b/web/src/lib/components/shared-components/navigation-bar/navigation-bar.svelte index bdd3d14d98..b5dfdb7fa2 100644 --- a/web/src/lib/components/shared-components/navigation-bar/navigation-bar.svelte +++ b/web/src/lib/components/shared-components/navigation-bar/navigation-bar.svelte @@ -55,7 +55,7 @@ > <SkipLink text={$t('skip_to_content')} /> <div - class="grid h-full grid-cols-[theme(spacing.32)_auto] items-center border-b bg-immich-bg py-2 dark:border-b-immich-dark-gray dark:bg-immich-dark-bg sidebar:grid-cols-[theme(spacing.64)_auto]" + class="grid h-full grid-cols-[theme(spacing.32)_auto] items-center border-b py-2 dark:border-b-immich-dark-gray sidebar:grid-cols-[theme(spacing.64)_auto]" > <div class="flex flex-row gap-1 mx-4 items-center"> <IconButton diff --git a/web/src/lib/components/shared-components/scrubber/scrubber.svelte b/web/src/lib/components/shared-components/scrubber/scrubber.svelte index eafec2da0b..c180a86533 100644 --- a/web/src/lib/components/shared-components/scrubber/scrubber.svelte +++ b/web/src/lib/components/shared-components/scrubber/scrubber.svelte @@ -446,7 +446,7 @@ aria-valuemax={toScrollY(1)} aria-valuemin={toScrollY(0)} data-id="immich-scrubbable-scrollbar" - class="absolute end-0 z-[1] select-none bg-immich-bg hover:cursor-row-resize" + class="absolute end-0 z-[1] select-none hover:cursor-row-resize" style:padding-top={PADDING_TOP + 'px'} style:padding-bottom={PADDING_BOTTOM + 'px'} style:width @@ -464,7 +464,7 @@ class={[ { 'border-b-2': isDragging }, { 'rounded-bl-md': !isDragging }, - 'truncate opacity-85 pointer-events-none absolute end-0 z-[100] min-w-20 max-w-64 w-fit rounded-ss-md border-immich-primary bg-immich-bg py-1 px-1 text-sm font-medium shadow-[0_0_8px_rgba(0,0,0,0.25)] dark:border-immich-dark-primary dark:bg-immich-dark-gray dark:text-immich-dark-fg', + 'bg-light truncate opacity-85 pointer-events-none absolute end-0 z-[100] min-w-20 max-w-64 w-fit rounded-ss-md border-immich-primary py-1 px-1 text-sm font-medium shadow-[0_0_8px_rgba(0,0,0,0.25)] dark:border-immich-dark-primary dark:text-immich-dark-fg', ]} style:top="{hoverY + 2}px" > @@ -506,7 +506,7 @@ {#if assetStore.scrolling && scrollHoverLabel && !isHover} <p transition:fade={{ duration: 200 }} - class="truncate pointer-events-none absolute end-0 bottom-0 z-[100] min-w-20 max-w-64 w-fit rounded-tl-md border-b-2 border-immich-primary bg-immich-bg/80 py-1 px-1 text-sm font-medium shadow-[0_0_8px_rgba(0,0,0,0.25)] dark:border-immich-dark-primary dark:bg-immich-dark-gray/80 dark:text-immich-dark-fg" + class="truncate pointer-events-none absolute end-0 bottom-0 z-[100] min-w-20 max-w-64 w-fit rounded-tl-md border-b-2 border-immich-primary bg-subtle/70 py-1 px-1 text-sm font-medium shadow-[0_0_8px_rgba(0,0,0,0.25)] dark:border-immich-dark-primary dark:text-immich-dark-fg" > {scrollHoverLabel} </p> diff --git a/web/src/lib/components/shared-components/side-bar/side-bar-section.svelte b/web/src/lib/components/shared-components/side-bar/side-bar-section.svelte index 8043023ef0..8f1a03ba67 100644 --- a/web/src/lib/components/shared-components/side-bar/side-bar-section.svelte +++ b/web/src/lib/components/shared-components/side-bar/side-bar-section.svelte @@ -35,7 +35,7 @@ id="sidebar" aria-label={ariaLabel} tabindex="-1" - class="immich-scrollbar relative z-auto w-0 sidebar:w-[16rem] overflow-y-auto overflow-x-hidden bg-immich-bg pt-8 transition-all duration-200 dark:bg-immich-dark-bg" + class="immich-scrollbar relative z-auto w-0 sidebar:w-[16rem] overflow-y-auto overflow-x-hidden pt-8 transition-all duration-200" class:shadow-2xl={isExpanded} class:dark:border-e-immich-dark-gray={isExpanded} class:border-r={isExpanded} diff --git a/web/src/lib/components/shared-components/upload-asset-preview.svelte b/web/src/lib/components/shared-components/upload-asset-preview.svelte index bd3b7856d1..451874ca8b 100644 --- a/web/src/lib/components/shared-components/upload-asset-preview.svelte +++ b/web/src/lib/components/shared-components/upload-asset-preview.svelte @@ -40,11 +40,7 @@ }; </script> -<div - in:fade={{ duration: 250 }} - out:fade={{ duration: 100 }} - class="flex flex-col rounded-lg bg-immich-bg text-xs dark:bg-immich-dark-bg p-2 gap-1" -> +<div in:fade={{ duration: 250 }} out:fade={{ duration: 100 }} class="flex flex-col rounded-lg text-xs p-2 gap-1"> <div class="flex items-center gap-2"> <div class="flex items-center justify-center"> {#if uploadAsset.state === UploadState.PENDING} diff --git a/web/src/lib/components/user-settings-page/user-api-key-list.svelte b/web/src/lib/components/user-settings-page/user-api-key-list.svelte index ab9ffb294c..c1b39ff9a8 100644 --- a/web/src/lib/components/user-settings-page/user-api-key-list.svelte +++ b/web/src/lib/components/user-settings-page/user-api-key-list.svelte @@ -125,11 +125,9 @@ </tr> </thead> <tbody class="block w-full overflow-y-auto rounded-md border dark:border-immich-dark-gray"> - {#each keys as key, index (key.id)} + {#each keys as key (key.id)} <tr - class={`flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg ${ - index % 2 == 0 ? 'bg-subtle' : 'bg-immich-bg dark:bg-immich-dark-gray/50' - }`} + class="flex h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="w-1/3 text-ellipsis px-4 text-sm">{key.name}</td> <td class="w-1/3 text-ellipsis px-4 text-sm" diff --git a/web/src/lib/components/user-settings-page/user-usage-statistic.svelte b/web/src/lib/components/user-settings-page/user-usage-statistic.svelte index c87cdf8cf6..933d54ceea 100644 --- a/web/src/lib/components/user-settings-page/user-usage-statistic.svelte +++ b/web/src/lib/components/user-settings-page/user-usage-statistic.svelte @@ -57,7 +57,7 @@ {#snippet row(viewName: string, stats: AssetStatsResponseDto)} <tr - class="flex h-14 w-full place-items-center text-center dark:text-immich-dark-fg odd:bg-immich-bg even:bg-subtle odd:dark:bg-immich-dark-gray/50 even:dark:bg-immich-dark-gray/75" + class="flex h-14 w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="w-1/4 px-4 text-sm">{viewName}</td> <td class="w-1/4 px-4 text-sm">{stats.images.toLocaleString($locale)}</td> @@ -95,7 +95,7 @@ <div class="overflow-x-auto"> <table class="w-full text-start mt-4"> <thead - class="mb-4 flex h-12 w-full rounded-md border bg-gray-50 text-immich-primary dark:border-immich-dark-gray dark:bg-immich-dark-gray dark:text-immich-dark-primary" + class="mb-4 flex h-12 w-full rounded-md border text-immich-primary dark:border-immich-dark-gray bg-subtle dark:text-immich-dark-primary" > <tr class="flex w-full place-items-center text-sm font-medium text-center"> <th class="w-1/2">{$t('owned')}</th> @@ -103,9 +103,7 @@ </tr> </thead> <tbody class="block w-full overflow-y-auto rounded-md border dark:border-immich-dark-gray"> - <tr - class="flex h-14 w-full place-items-center text-center dark:text-immich-dark-fg bg-immich-bg dark:bg-immich-dark-gray/50" - > + <tr class="flex h-14 w-full place-items-center text-center dark:text-immich-dark-fg bg-subtle/20"> <td class="w-1/2 px-4 text-sm">{albumStats.owned.toLocaleString($locale)}</td> <td class="w-1/2 px-4 text-sm">{albumStats.shared.toLocaleString($locale)}</td> </tr> diff --git a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 88840b382d..d84e3bda63 100644 --- a/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/albums/[albumId=id]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -588,9 +588,7 @@ {/if} {/if} - <main - class="relative h-dvh overflow-hidden bg-immich-bg px-6 max-md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)] dark:bg-immich-dark-bg" - > + <main class="relative h-dvh overflow-hidden px-6 max-md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)]"> <AssetGrid enableRouting={viewMode === AlbumPageViewMode.SELECT_ASSETS ? false : true} {album} @@ -678,7 +676,7 @@ <button type="button" onclick={() => (viewMode = AlbumPageViewMode.SELECT_ASSETS)} - class="mt-5 flex w-full place-items-center gap-6 rounded-md border bg-immich-bg px-8 py-8 text-immich-fg transition-all hover:bg-gray-100 hover:text-immich-primary dark:border-none dark:bg-immich-dark-gray dark:text-immich-dark-fg dark:hover:text-immich-dark-primary" + class="mt-5 bg-subtle flex w-full place-items-center gap-6 rounded-md border px-8 py-8 text-immich-fg transition-all hover:bg-gray-100 hover:text-immich-primary dark:border-none dark:text-immich-dark-fg dark:hover:text-immich-dark-primary" > <span class="text-text-immich-primary dark:text-immich-dark-primary" ><Icon path={mdiPlus} size="24" /> @@ -709,7 +707,7 @@ <div transition:fly={{ duration: 150 }} id="activity-panel" - class="z-[2] w-[360px] md:w-[460px] overflow-y-auto bg-immich-bg transition-all dark:border-l dark:border-s-immich-dark-gray dark:bg-immich-dark-bg" + class="z-[2] w-[360px] md:w-[460px] overflow-y-auto transition-all dark:border-l dark:border-s-immich-dark-gray" translate="yes" > <ActivityViewer diff --git a/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 2f916d732c..c921d6a7e9 100644 --- a/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -42,7 +42,7 @@ }; </script> -<main class="grid h-dvh bg-immich-bg pt-18 dark:bg-immich-dark-bg"> +<main class="grid h-dvh pt-18"> {#if assetInteraction.selectionActive} <AssetSelectControlBar assets={assetInteraction.selectedAssets} diff --git a/web/src/routes/(user)/people/+page.svelte b/web/src/routes/(user)/people/+page.svelte index fd632fccce..d222fa3d8f 100644 --- a/web/src/routes/(user)/people/+page.svelte +++ b/web/src/routes/(user)/people/+page.svelte @@ -458,7 +458,7 @@ <dialog open transition:fly={{ y: innerHeight, duration: 150, easing: quintOut, opacity: 0 }} - class="absolute start-0 top-0 z-[9999] h-full w-full bg-immich-bg dark:bg-immich-dark-bg" + class="absolute start-0 top-0 z-[9999] h-full w-full bg-light" aria-modal="true" aria-labelledby="manage-visibility-title" use:focusTrap diff --git a/web/src/routes/(user)/people/[personId]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/people/[personId]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 6b260cf9c5..b1b5b3b8cc 100644 --- a/web/src/routes/(user)/people/[personId]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/people/[personId]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -487,7 +487,7 @@ </header> <main - class="relative h-dvh overflow-hidden bg-immich-bg tall:ms-4 md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)] dark:bg-immich-dark-bg" + class="relative h-dvh overflow-hidden tall:ms-4 md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)]" use:scrollMemoryClearer={{ routeStartsWith: AppRoute.PEOPLE, beforeClear: () => { diff --git a/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte index dc03a2ae70..447712177e 100644 --- a/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/search/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -291,10 +291,7 @@ {:else} <div class="fixed z-[100] top-0 start-0 w-full"> <ControlAppBar onClose={() => goto(previousRoute)} backIcon={mdiArrowLeft}> - <div - class="-z-[1] bg-immich-bg dark:bg-immich-dark-bg" - style="position:absolute;top:0;left:0;right:0;bottom:0;" - ></div> + <div class="-z-[1] bg-light" style="position:absolute;top:0;left:0;right:0;bottom:0;"></div> <div class="w-full flex-1 ps-4"> <SearchBar grayTheme={false} value={terms?.query ?? ''} searchQuery={terms} /> </div> diff --git a/web/src/routes/(user)/share/[key]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/share/[key]/[[photos=photos]]/[[assetId=id]]/+page.svelte index 7e6057696a..33e8f43cf5 100644 --- a/web/src/routes/(user)/share/[key]/[[photos=photos]]/[[assetId=id]]/+page.svelte +++ b/web/src/routes/(user)/share/[key]/[[photos=photos]]/[[assetId=id]]/+page.svelte @@ -4,17 +4,17 @@ import IndividualSharedViewer from '$lib/components/share-page/individual-shared-viewer.svelte'; import ControlAppBar from '$lib/components/shared-components/control-app-bar.svelte'; import ImmichLogoSmallLink from '$lib/components/shared-components/immich-logo-small-link.svelte'; - import ThemeButton from '$lib/components/shared-components/theme-button.svelte'; import PasswordField from '$lib/components/shared-components/password-field.svelte'; - import { user } from '$lib/stores/user.store'; - import { handleError } from '$lib/utils/handle-error'; - import { getMySharedLink, SharedLinkType } from '@immich/sdk'; - import type { PageData } from './$types'; - import { setSharedLink } from '$lib/utils'; - import { t } from 'svelte-i18n'; - import { navigate } from '$lib/utils/navigation'; + import ThemeButton from '$lib/components/shared-components/theme-button.svelte'; import { assetViewingStore } from '$lib/stores/asset-viewing.store'; + import { user } from '$lib/stores/user.store'; + import { setSharedLink } from '$lib/utils'; + import { handleError } from '$lib/utils/handle-error'; + import { navigate } from '$lib/utils/navigation'; + import { getMySharedLink, SharedLinkType } from '@immich/sdk'; import { tick } from 'svelte'; + import { t } from 'svelte-i18n'; + import type { PageData } from './$types'; interface Props { data: PageData; @@ -70,7 +70,7 @@ </ControlAppBar> </header> <main - class="relative h-dvh overflow-hidden bg-immich-bg px-6 max-md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)] dark:bg-immich-dark-bg sm:px-12 md:px-24 lg:px-40" + class="relative h-dvh overflow-hidden px-6 max-md:pt-[var(--navbar-height-md)] pt-[var(--navbar-height)] sm:px-12 md:px-24 lg:px-40" > <div class="flex flex-col items-center justify-center mt-20"> <div class="text-2xl font-bold text-immich-primary dark:text-immich-dark-primary">{$t('password_required')}</div> diff --git a/web/src/routes/admin/library-management/+page.svelte b/web/src/routes/admin/library-management/+page.svelte index b0be2cb3ce..10865628a8 100644 --- a/web/src/routes/admin/library-management/+page.svelte +++ b/web/src/routes/admin/library-management/+page.svelte @@ -298,9 +298,7 @@ <tbody class="block overflow-y-auto rounded-md border dark:border-immich-dark-gray"> {#each libraries as library, index (library.id)} <tr - class={`grid grid-cols-6 h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg ${ - index % 2 == 0 ? 'bg-subtle' : 'bg-immich-bg dark:bg-immich-dark-gray/50' - }`} + class="grid grid-cols-6 h-[80px] w-full place-items-center text-center dark:text-immich-dark-fg even:bg-subtle/20 odd:bg-subtle/80" > <td class="text-ellipsis px-4 text-sm">{library.name}</td> <td class="text-ellipsis px-4 text-sm"> diff --git a/web/src/routes/admin/users/+page.svelte b/web/src/routes/admin/users/+page.svelte index 75b35491f6..dc21be6c24 100644 --- a/web/src/routes/admin/users/+page.svelte +++ b/web/src/routes/admin/users/+page.svelte @@ -103,13 +103,11 @@ </thead> <tbody class="block w-full overflow-y-auto rounded-md border dark:border-immich-dark-gray"> {#if allUsers} - {#each allUsers as immichUser, index (immichUser.id)} + {#each allUsers as immichUser (immichUser.id)} <tr class="flex h-[80px] overflow-hidden w-full place-items-center text-center dark:text-immich-dark-fg {immichUser.deletedAt ? 'bg-red-300 dark:bg-red-900' - : index % 2 == 0 - ? 'bg-subtle' - : 'bg-immich-bg dark:bg-immich-dark-gray/50'}" + : 'even:bg-subtle/20 odd:bg-subtle/80'}" > <td class="w-8/12 sm:w-5/12 lg:w-6/12 xl:w-4/12 2xl:w-5/12 text-ellipsis break-all px-2 text-sm" ><Link href="{AppRoute.ADMIN_USERS}/{immichUser.id}">{immichUser.email}</Link></td