As a developer I'm always trying to find ways to encapsulate functionality. For years I've tried to encapsulate UI code so that I could "quickly and easily" build user interfaces. However, I'm starting to understand that this type of thinking can get me into trouble.
Don't misunderstand me, there are some great UI libraries like sebForm/sebField.
These libraries are great for creating full blown web applications in which you want a consistent look and feel across 100's if not thousands of pages.
However, these libraries just don't provide the type of layout flexibility that is needed for your standard every day website. Each website I create has it's own look and feel and creating a standard UI library for this type of development would be impossible.
So I find myself sort of "recreating the wheel" on each project and I think that's ok.
On each new site I implement the UI consistently across the site, but little bit different from the last site I created.
Since I'm so lazy I really try to reuse code when and where I can, but I think there is a minimum amount of uniqueness to each project that requires me to make a new wheel.