Есть хорошая статья на мдн про нативную валидацию. Через селектор :not(:placeholder-shown):valid/:invalid можно вешать стили для отображения состояния полей
Заходишь в фигму - вкладка Community - тыкаешь на любой проект который понравился - копируешь фрейм - верстаешь
Там тебе и целые сайты с несколькими страницами, отдельные элементы интерфейсов, адаптив сразу. Шик