Providers

Storyblok

Nuxt Image internally use Storyblok as static provider.

Integration between Storyblok and the image module. To use this provider you just need to specify the base url of your service in Storyblok.

nuxt.config.ts
export default defineNuxtConfig({
  image: {
    storyblok: {
      baseURL: 'https://a.storyblok.com'
    }
  }
})

Storyblok modifiers

I am following all modifiers present on Storyblok image service

Resizing

Check Storyblok documentation if you want to know more.

the logic is:

  • If you do not define either width or height, the image will not be resized.
  • If you define only width or only height the image will be proportionately resized based on the one you defined.

Example:

<div>Original</div>
<NuxtImg
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>

<div>Resized static</div>
<NuxtImg
  width="500"
  height="500"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>

<div>Proportional to Width</div>
<NuxtImg
  width="500"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>

<div>Proportional to Height</div>
<NuxtImg
  height="500"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>

Fit in with background or not

Check Storyblok documentation if you want to know more.

If you want to use it just add a props fit="in". Take care that storyblok only support fit-in.

You can also use the fill filters to fill your fit-in with a specific background. If you not defining value it will be transparent.

Example:

<div>Fit in with background CCCCCC</div>
<NuxtImg
  width="200"
  height="200"
  fit="in"
  :modifiers="{ filters: { fill: 'CCCCCC' } }"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>

Format

Check Storyblok documentation if you want to know more.

You can modify your image format. Supported format are webp, jpeg and png.

Example:

<h3>Format</h3>
<NuxtImg
  width="200"
  format="webp"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>

Quality

Check Storyblok documentation if you want to know more.

You can update your image quality by defining the quality filters.

Example:

 <div class="flex">
<div>Resized and 10% Quality</div>
<NuxtImg
  provider="storyblok"
  width="200"
  quality="10"
  src="https://a.storyblok.com/f/39898/3310x2192/e4ec08624e/demo-image.jpeg"
/>
</div>

Facial detection

Check Storyblok documentation if you want to know more.

To have a smart crop just define a smart property inside modifier.

Example:

<h3>Facial detection</h3>

<div>Resized without Smart Crop</div>
<NuxtImg
  width="600"
  height="130"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/2250x1500/c15735a73c/demo-image-human.jpeg"
/>

<div>Resized with Smart Crop</div>
<NuxtImg
  width="600"
  height="130"
  :modifiers="{ smart: true }"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/2250x1500/c15735a73c/demo-image-human.jpeg"
/>

Custom focal point

Check Storyblok documentation if you want to know more.

Storyblok offer you the focalize on a specific part of your image. Just use focal filters.

Example:

<div>Focus on the bottom of the image</div>
<NuxtImg
  width="600"
  height="130"
  :modifiers="{ filters: { focal: '450x500:550x600' } }"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/1000x600/d962430746/demo-image-human.jpeg"
/>

<div>Focus on the top of the image</div>
<NuxtImg
  width="600"
  height="130"
  :modifiers="{ filters: { focal: '450x0:550x100' } }"
  provider="storyblok"
  src="https://a.storyblok.com/f/39898/1000x600/d962430746/demo-image-human.jpeg"
/>