Мы 15 лет уже пишем одни и те же сайты, с одними и теми же блоками: меню, форма логина, чекаут, карусели-рюшечки и каждый раз пишем заново.
При этом желательно учитывать множество мелочей, так для HTML это проставить соответствующие WAI-ARIA атрибуты, микроданные, etc.
Для CSS - тоже: удобности, зависимости, например resize textarea, плавный скролл в iOS внутри блоков со скроллом, меню бутербродом для мабил
Безумие писать это вручную и инструменты появляются: фреймворки с готовыми элементами, наборы сниппетов, BEM, PostCSS, но мы всё ещё пишем.