There are generally two types of design: the way in which you design your user interface (the GUI), and the way in which you design the software components (API interfaces, services, components, and more). Throughout this book, we'll be covering quite a few design principles for the code. Angular is a spectacularly well-designed piece of software, and this is great for us because it provides a perfect opportunity to discuss software design as we learn Angular itself, in addition to when building our application. We'll also be covering user interface design principles in general as we build our application throughout the remainder of this book, but particularly when we build out our templates using our wireframes to help guide us.
In general, the term UX design is used when discussing user interface design. Borrowing a definition of UX design from Wikipedia:
This is a good definition and applies to more than just software products.