modifiers/aspectRatio

This module forces elements to be resized with a specified dx/dy ratio.

interact(target).resizable({
  modifiers: [
    interact.modifiers.snapSize({
      targets: [ interact.snappers.grid({ x: 20, y: 20 }) ],
    }),
    interact.aspectRatio({ ratio: 'preserve' }),
  ],
});