Несмотря на то, что использовать small с вводом довольно сложно и легко, я бы порекомендовал вам использовать библиотеку Angular Material, написанную специально для angular, но только если вы еще не создали bootstrap как зависимость вашего проекта, потому что angular material и bootstrap не не очень хорошо работают вместе. С учетом сказанного и предположения, что вы выберете угловой материал, решение ваших проблем с макетом закончено.
Вместо использования тега div вы должны использовать mat-form-field , а вместо small вы будете использовать mat-error , вам не нужно менять логику для этого, только теги. Угловая зависимость от материала позаботится о компоновке и оформлении.
Взгляните на документацию, если вы угловатый парень, я уверен, вам понравится:
https://material.angular.io/components/form-field/overview