From bc1d6a6acc799cbda1441d555582f120b99e6242 Mon Sep 17 00:00:00 2001 From: Mees Frensel <33722705+meesfrensel@users.noreply.github.com> Date: Tue, 15 Sep 2026 15:11:42 +0200 Subject: [PATCH] refactor(web): simplify some styling (#31550) --- .../asset-viewer/AssetViewer.svelte | 3 +- .../assets/thumbnail/ImageThumbnail.spec.ts | 8 ++-- .../assets/thumbnail/ImageThumbnail.svelte | 5 +-- .../assets/thumbnail/Thumbnail.svelte | 43 ++++++------------- .../assets/thumbnail/VideoThumbnail.svelte | 2 +- 5 files changed, 21 insertions(+), 40 deletions(-) diff --git a/web/src/lib/components/asset-viewer/AssetViewer.svelte b/web/src/lib/components/asset-viewer/AssetViewer.svelte index f339442ec..b269fd104 100644 --- a/web/src/lib/components/asset-viewer/AssetViewer.svelte +++ b/web/src/lib/components/asset-viewer/AssetViewer.svelte @@ -650,9 +650,8 @@ style:bottom={stackedAsset.id === asset.id ? '0' : '-10px'} > { cursor.current = stackedAsset; diff --git a/web/src/lib/components/assets/thumbnail/ImageThumbnail.spec.ts b/web/src/lib/components/assets/thumbnail/ImageThumbnail.spec.ts index 11a0f078f..c947cdeeb 100644 --- a/web/src/lib/components/assets/thumbnail/ImageThumbnail.spec.ts +++ b/web/src/lib/components/assets/thumbnail/ImageThumbnail.spec.ts @@ -61,7 +61,7 @@ describe('ImageThumbnail component', () => { expect(onComplete).toHaveBeenCalledWith(true); }); - it('applies hidden styles when hidden is true', () => { + it('applies hidden classes when hidden is true', () => { const { baseElement } = render(ImageThumbnail, { url: '/test-thumbnail.jpg', altText: 'Test image', @@ -69,9 +69,9 @@ describe('ImageThumbnail component', () => { hidden: true, }); const img = baseElement.querySelector('img')!; - const style = img.getAttribute('style') ?? ''; - expect(style).toContain('grayscale'); - expect(style).toContain('opacity'); + const className = img.getAttribute('class') ?? ''; + expect(className).toContain('grayscale'); + expect(className).toContain('opacity'); }); it('sets alt text after loading', async () => { diff --git a/web/src/lib/components/assets/thumbnail/ImageThumbnail.svelte b/web/src/lib/components/assets/thumbnail/ImageThumbnail.svelte index 617669c91..9709176d3 100644 --- a/web/src/lib/components/assets/thumbnail/ImageThumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/ImageThumbnail.svelte @@ -64,11 +64,10 @@ border && 'border-3 border-immich-dark-primary/80 hover:border-immich-primary', 'transition-shadow duration-150', highlighted && 'ring-4 ring-immich-primary dark:ring-immich-dark-primary', + hidden && 'grayscale-50 opacity-50', ]); - let style = $derived( - `width: ${widthStyle}; height: ${heightStyle ?? ''}; filter: ${hidden ? 'grayscale(50%)' : 'none'}; opacity: ${hidden ? '0.5' : '1'};`, - ); + let style = $derived(`width: ${widthStyle}; height: ${heightStyle ?? ''};`); {#if errored} diff --git a/web/src/lib/components/assets/thumbnail/Thumbnail.svelte b/web/src/lib/components/assets/thumbnail/Thumbnail.svelte index 5764965bd..5726914b0 100644 --- a/web/src/lib/components/assets/thumbnail/Thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/Thumbnail.svelte @@ -42,7 +42,6 @@ showStackedIcon?: boolean; imageClass?: ClassValue; brokenAssetClass?: ClassValue; - dimmed?: boolean; albumUsers?: UserResponseDto[]; onClick?: (asset: TimelineAsset) => void; onPreview?: (asset: TimelineAsset) => void; @@ -70,7 +69,6 @@ onMouseEvent = undefined, imageClass = '', brokenAssetClass = '', - dimmed = false, }: Props = $props(); let usingMobileDevice = $derived(mediaQueryManager.pointerCoarse); @@ -206,7 +204,12 @@
-
-
+
+
{/if} - - {#if dimmed && !mouseOver} -
- {/if} - {#if !authManager.isSharedLink && asset.isFavorite}
@@ -373,14 +358,12 @@ {#if asset.stack && showStackedIcon}
- -

{asset.stack.assetCount.toLocaleString($locale)}

- -
+

{asset.stack.assetCount.toLocaleString($locale)}

+
{/if}
diff --git a/web/src/lib/components/assets/thumbnail/VideoThumbnail.svelte b/web/src/lib/components/assets/thumbnail/VideoThumbnail.svelte index 2875d96a9..63eedaf9c 100644 --- a/web/src/lib/components/assets/thumbnail/VideoThumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/VideoThumbnail.svelte @@ -94,7 +94,7 @@ class="@container absolute inset-x-0 top-0 flex place-items-center justify-end gap-1 text-xs font-medium text-white text-shadow-[1px_1px_6px_rgb(0_0_0)]" > {#if showTime} -