One of the hottest trends in web development nowadays are "Components". I've written, spoken, and trained others on how to develop with components in mind. However, there is more to components than meets the eyes. Components are not something you address at the end of your project during development or theming, components need to be in the conversation from the beginning of a project.
Components should be introduced into the project as early as possible. Even during a sales pitch or discovery. Reason for doing this is that components can drastically change design, theming and development. There are so many benefits on building components versus the traditional top-to-bottom approach and the sooner we start including components in the conversation the sooner these benefits can start paying off.
In this talk I'll go over a basic workflow for building components. We will start by talking about best practices for naming components, structuring markup and styles and then we will move on to breaking things down to their smallest pieces so our components are as reusable as possible. We will briefly talk about Atomic design.
Then we will jump into code and build a pretty basic component following the practices we discussed to produce a component that is clean, lightweight, flexible, reusable and works perfectly on any device size. We will build variations that allow us to present content in different ways without having repeat ourselves.
I recently wrote about this topic. Read the blog post.