To move a block between columns you can use Drag Events. In these events, you're add or remove css styles. what about changing size the block, you can use "mousemove" and "mouseup" events.
Also if you work with react, you can use "react-resizable".
You can check all drag events here