The requirements for today's web applications are not just focusing on the stable and deterministic good functioning behaviors, a product's failure or success is highly influenced by the user experience and the concrete user interface visualization. In the area of commercial software development, most companies dedicate more and more resources to design and properly implement these user experience flows. Multiple disciplines are involved in this process including graphic design, software development and even marketing and sales areas are present.
In the early ages of computer programs, even if their functionalities were reliable the user-friendliness was not a huge factor in these applications. One of the best examples is the evolution of operating systems; nowadays we have rich visual experience and well-designed processes instead of the minimalistic command line interface from the early ages of operating systems. This evolving spread to other application platforms, forcing them to be more user-friendly and easily usable.
The freedom of the open web gives people access to millions of web applications which give developers and digital product maintainers some big challenges to meet these users requirements and be able to provide an application that gives a positive experience to each user. The first impressions and experiences are critical for a web application so nowadays web development companies are constantly designing and developing new and more consistent user interfaces.
There is a tendency in huge IT organizations - like Google, Microsoft, and IBM - to create a company or product specific design system which contains strict rules and well-designed guidelines defining the visual and behavioral nature of standard components. The purpose of these design systems is to create consistent visual experiences among applications which can lead to seamless user experiences between multiple products.
In my thesis, the main goal is to create an Angular implementation for such design system, called Office UI Fabric created by Microsoft. The outcoming result should be a freely and publicly available reusable software library which contains components defined in the guideline.