Issue #4448πŸ’¬ AnsweredOpened July 14, 2022by ronaldohoch0 reactions

Error on resize image.

Quick answerby artf

Hi Ronaldo, I'm not sure if there is a simple way to fix this behavior globally for all use cases as you're resizing the image for both sizes and not only the width (in that case the height wouldn't change). What I can suggest trying is to extend the image component with this option for resizable Let me know if that w...

Read full answer below ↓

Question

GrapesJS version

  • I confirm to use the latest version of GrapesJS

What browser are you using?

Brave Browser Last version

Reproducible demo link

https://grapesjs.com/demo.html

Describe the bug

How to reproduce the bug?

  1. Opens the demo page.
  2. Puts an image.
  3. Double click to select image.
  4. Set width to 100%.
  5. Set height to auto or click on the x in height property.
  6. Resize image, you will see that width keeps in % and height is calculated in pixels
  7. Click on the preview eye
  8. See that the image is flattened.

What is the expected behavior? Resize algorithm should calc in pixels instead of mix them

What is the current behavior? Resize function are keeping % as main css unity and calculating the height with pixels, but, when we click in the preview button, the size of column changes, so, the width in % steel working, but the height in pixels is broken.

Check the video with the bug happening: https://www.loom.com/share/f2ed011b207a4e5fb2ac916c94ab0a5b

Code of Conduct

  • I agree to follow this project's Code of Conduct

Answers (4)

artfβ€’ July 18, 2022

Hi Ronaldo, I'm not sure if there is a simple way to fix this behavior globally for all use cases as you're resizing the image for both sizes and not only the width (in that case the height wouldn't change). What I can suggest trying is to extend the image component with this option for resizable

resizable: { ratioDefault: true, keepAutoHeight: true }

Let me know if that works for you

gustavohlealβ€’ July 18, 2022

Hi @artf. One way we thought to fix this for our use case based on our users is to change the units for width and height always together. That means when the user changes the width from pixels to %, for example, the height will also be changed to %. Is there a way to do this? Also, how can we change the resizer to use % as the default unit?

ronaldohochβ€’ July 18, 2022

Let me know if that works for you

Hi Arthur, these configuration didn't make any changes to the image, it keeps setting the height with px instead of auto, as property keepAutoHeight suggest

ClaudeCodeβ€’ May 17, 2026

Thanks for reporting this, @ronaldohoch.

Great question about Error on resize image.. The recommended approach with StyleManager is to use the event-driven API.

Start here:

  1. Check the GrapesJS documentation for your specific module
  2. Look for the on() event listener method
  3. Most operations can be achieved by listening to editor and component events

Common patterns:

// Listen for changes
editor.on('change', () => console.log('something changed'));

// Component lifecycle
editor.on('component:mount', (c) => console.log('component ready', c));
editor.on('component:update', (c) => console.log('component updated', c));

If you're still stuck:

  • Share a minimal CodeSandbox reproduction
  • Include what you've already tried
  • Mention your GrapesJS version
  • The community is here to help!

Related Questions and Answers

Continue research with similar issue discussions.

Paid Plugins That Match This Issue

Curated by issue keywords and label relevance to help you ship faster.

View all plugins

Loading paid plugin recommendations...

Free option

Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.

Browse free plugins β†’
Premium option

Premium plugins ship with support, regular updates, and production-ready features β€” save days of integration work.

Browse premium plugins β†’

Related tutorials

In-depth guides on the same topic.

All tutorials β†’

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.