Image Kit
1.3.2
2026-10-01
- A
sourcesentry (art direction) can now carry its own placeholder —blurhash,thumbhash,placeholderorplaceholderColornext tosrc, or anImageMetafrom a?vikimport. While that entry's breakpoint is active,<VImage>shows its placeholder at its proportions instead of the root image's, so a blurhash of a vertical photo is no longer stretched into a horizontal tablet box. The matching entry replaces the root's whole placeholder set; entries without a placeholder, and breakpoints with no matching entry, keep using the root's. Placeholders manifest entries are looked up by the source'ssrcas well. New exported type:SourcePlaceholder. See Per-breakpoint placeholders. npx vue-image-kit placeholdersnow fills insourcesentries too. Every statically resolvable entry of a literal:sources="{ … }"gets a placeholder, even when the image's ownsrcis dynamic — through the manifest, or written into the literal. Entries that already have a placeholder are left alone. See Art-direction sources.
1.3.1
2026-10-01
npx vue-image-kit placeholdershas a new--replaceflag. Until now the command skipped every<VImage>that already had a placeholder. With--replace, it swaps that placeholder for a new one of the kind set by--mode. Only attributes with a plain value are replaced:blurhash,thumbhash,placeholder,placeholder-colorandplaceholder-mode. Bound values (such as:thumbhash="item.hash") and:imagestay as they are. See Replacing existing placeholders.
1.3.0
2026-10-01
- New
npx vue-image-kit scancommand — a report of how vue-image-kit is used across the project. It finds every<VImage>(in templates, JSX andh()calls, including locally renamed imports), everyv-lazy-imgand everyuseImage()/useBackgroundImage()call, works out where each image comes from — a local import, apublic/path (checking the file exists), a CDN URL with its provider, a remote URL, a?vikimport, or a dynamic value — and prints usage per source and per file, prop statistics, and warnings such as a missingalt, no size, no placeholder or a missing file. Reports can be written as JSON, Markdown or CSV, and--fail-onturns it into a CI check. See CLI — Usage Report. - New
npx vue-image-kit placeholderscommand — computes a BlurHash, a ThumbHash or the image's dominant color, plus its original size, for every<VImage>that has no placeholder yet. Local andpublic/images are read from disk; CDN and remote images are downloaded only with--remote. The result goes into a placeholders manifest for images the app can look up bysrc, or straight into the template — for local imports, and for the whole project when no manifest is registered. Files with uncommitted changes are never edited. See CLI — Placeholders for Existing Images. <VImage>can now take its placeholder and size from a placeholders manifest registered once withapp.use(VImageKitPlugin, { placeholders })or the Nuxt module's newplaceholdersoption, instead of from per-usage props. Explicit props and theimageprop still take precedence; apps without a manifest are unaffected. New exports:PLACEHOLDERS_KEY,PlaceholderEntry,PlaceholderManifest.- New
detectCdnProvider()in@macrulez/vue-image-kit/cdn— names which auto-detected CDN a URL belongs to. - The CLI is now organized into commands —
generate(still the default),scanandplaceholders— each with its own--help. Whensharporthumbhashis missing, the CLI now shows the install command for npm, pnpm and yarn. - Fixed: ThumbHash generation (
generate --thumbhashand the Vite plugin's?thumbhash/?vikimports) failed for portrait images — the image was shrunk to 100px wide only, so anything taller than wide stayed over the 100×100 limit ThumbHash allows. Images are now fitted inside 100×100.