This gallery is made with CSS grid, and we have used a new feature, 'Masonry Grid', which has only been implemented into Firefox at the time of writing this (Feb. 2021). But there is a script that makes it possible to use it in all modern browsers (of course not IE11). You style the grid columns yourself, and then the browser will adjust the vertical space between the images. Your images will have the same width, and the code takes care of the height. It's a good idea to try balancing the height of each column, though. That might be a tad fiddly.
The container with the class name 'masonry-wrapper' can be adjusted to regulate the max width of the gallery. If you want smaller or larger images, the size has to be set on the grid and on the images. The zoom-in on hover is optional.