navidrome/ui
Deluan d732e5419a fix(artwork): shape the blurhash placeholder to the artwork's aspect ratio
The UI decoded every blurhash into a 32x32 bitmap and stretched it to fill its
container, so a non-square cover showed a full-box blur that collapsed into a
letterboxed image the moment it loaded. On the album detail page the
placeholder overhung the image by a third of the box height.

A blurhash string carries no aspect ratio of its own, so the dimensions have to
come from the server. artwork.width/height were already stored and read by
nobody; they now surface on ItemImage as imageWidth/imageHeight, hydrated
through the join that was already in place. Existing rows already carry them,
so no migration or rescan is needed.

A square request is padded rather than cropped, which aspect-fits the content
inside the square the server returns. That made the grid a second instance of
the same bug, so `square` now implies contain for the image as well as the
placeholder, instead of the two renderers reading it differently.
2026-07-26 10:21:45 -04:00
..
bin fix(ui): service worker crashing on precacheAndRoute (#3528) 2024-12-08 17:43:34 -05:00
build ci: create versions with goreleaser 2020-01-26 20:09:25 -05:00
public fix(ui): Fix Nautiline theme font and width on mobile devices (#5590) 2026-06-10 16:47:54 -04:00
src fix(artwork): shape the blurhash placeholder to the artwork's aspect ratio 2026-07-26 10:21:45 -04:00
.eslintignore test: update test command to run without watch mode 2025-05-24 22:58:04 -04:00
.eslintrc build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
.gitignore fix(ui): PWA not updating properly in new Vite config (#3493) 2024-11-30 10:33:16 -05:00
embed.go feat(subsonic): add structured sidecar lyrics support with OpenSubsonic v2 karaoke cues and agent layers (#5076) 2026-06-19 12:00:58 -04:00
index.html feat(plugins): add JSONForms-based plugin configuration UI (#4911) 2026-01-19 20:51:00 -05:00
package-lock.json feat(ui): add BlurHashCanvas placeholder component 2026-07-23 20:45:04 -04:00
package.json feat(ui): add BlurHashCanvas placeholder component 2026-07-23 20:45:04 -04:00
prettier.config.js build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
tsconfig.app.json build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
tsconfig.json build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
tsconfig.node.json build(ui): migrate from CRA/Jest to Vite/Vitest (#3311) 2024-09-28 11:54:36 -04:00
vite.config.js feat(plugins): add JSONForms-based plugin configuration UI (#4911) 2026-01-19 20:51:00 -05:00