Atenção: Funcionalidade incluída na propriedade de CSS object-fit (mirror link). Dê preferência para object-fit. Use miniaturas apenas como pollyfill do CSS, caso necessário.
Use a class ui_thumb no box que contém a imagem, desde que esse box tenha uma largura e altura definidas.
É possível usar a função de miniaturas em layouts fluídos, onde não há uma largura definida para o box.
Nesse caso, use data-thumb-fluid="true". Assim, não é necessário definir uma dimensão do box, muito útil em layouts fluidos.
Opcionalmente, é possível complementar data-thumb-fluid="true" com o atributo data-thumb-fluid-ratio e definir a proporção desejada da miniatura, ex: 4:3 (padrão), 16:9,1:1, etc.
Pronto! Isso é suficiente. Entenda a função:
A função identifica o perfil da imagem do box entre: vertical, quadrado ou horizontal. A partir disso, ela determina qual será o redimensionamento apropriado para cada imagem, se pela largura ou altura do box.
A imagem não precisa ter altura e largura prévias, afinal, ela será redimensionada. O box, por sua vez, deve ter as 2 dimensões informadas, seja por estilo inline, incorporado ou importado. Através dessas informações as imagens serão ajustadas.
Caso queira, você pode customizar a função:
Por padrão, as imagens são centralizadas no box, sejam elas verticais ou horizontais
Para alterar esse comportamento, insira o atributo data-thumb-align na imagem ui_thumb e indique "true" para centralizar (padrão), "false" para não centralizar ou "true-vportrait" para que as imagens horizontais continuem centralizadas, mas alinhadas em uma proporção áurea aproximada (golden-ratio) para as imagens verticais, o que pode ser muito útil para retratos.
Após o ajuste das imagens, usuários avançados podem implementar uma função do tipo callback
Para isso, crie a função callback_thumb(total) quando todas as imagens estiverem configuradas, onde obj é o elemento que envolve a imagem, xdi é o contador da imagem, img é a imagem propriamente dita e total é o total de miniaturas.
Essas funções não são obrigatórias, ou seja, só serão executadas se existirem. Caso positivo, para evitar duplicidades, lembre-se de implementar as funções callback em arquivos específicos, presentes nas respectivas páginas finais, já que o seu objetivo não é genérico.