Angular Material is a library developed by Google that implements its design and user experience philosophies and methodologies in web apps developed in Angular.
It provides many features to create a consistent, modern, sleek design that follows strong principles.
Let’s dive into this library to see what it can do for your Angular applications.
Google’s Material Design – The Origin
In order to talk about Angular Material, we should talk about Material itself.
Material was initially introduced in 2014 by Google. Its initial and main goal was to create a shared and united visual language applicable to all of Google’s products and web applications.
This language would, in turn, promote good design principles that would improve the user experience. To achieve this, the team behind Material decided to translate physical properties of objects (such as surfaces, edges, seams, and shadows) to digital equivalents that could guide the user towards experiencing digital content in an intuitive way. The whole design language was inspired by paper and ink specifically.
Material has evolved over the years, as apps and products have become increasingly multi-faceted and complex. It brought to the forefront tools that would empower designers to theme their applications, providing a certain experience or matching a certain brand’s visual language while still maintaining the strong principles it started out with.
Material Design’s principles go over the many aspects of an application’s components:
- Environment: How elements of the UI behave and interact with the world of the UI to create a 3-Dimensional experience.
- Layout: How elements of similar functions should group and relate with each other to create visual consistency.
- Navigation: How elements should be placed in order to communicate transitions to different parts of an application.
- Color: How color informs the user of the app’s functions and meaning at the same time it communicates a brand.
- Typography: How text is used to delineate different parts of a text block or elements of an app. Also takes into consideration support for many types of written languages that can have different character sizes and orientations.
- Sound: How to use sound to communicate the feedback of interacting with elements of your application in a way that is intuitive to the user.
- Iconography: How to design the icons of your application to communicate an easy to understand, yet strong and cohesive style.
- Shape: How the shape of elements can change and communicate their intended hierarchy with other elements.
- Motion: How moving objects can enhance the app’s feedback and create character and express a brand’s style.
- Interaction: How users interactions (such as gestures, selections, etc) can affect the elements of your app.
- Communication: How the app can provide information to the user in order to inform and prevent the user from making mistakes.
These guidelines go into detail over the Dos and Don’ts of the many aspects of each category to clearly communicate the identity that this language establishes.
What is Angular material used for?
Angular Material is a library that puts Material Design into practice and provides Angular developers with tools to apply Material’s design language to an Angular app’s UI.
1. Angular Material Default Components
Angular Material features many commonly used components in web applications. They are compatible with the most popular browsers and allow for responsive design to ease the development of applications that can fit the many platforms Angular already targets, from desktop to mobile and web.
These components also include the built-in animations, interaction feedback, and accessibility options set by the specifications of Material. Their underlying elements are highly customizable in terms of form and placement and can be further themed to fit a brand’s design.
Examples of these components include:
- Input boxes and other text introduction tools, such as Autocomplete Panels, Selection Panels and Password Fields.
- Interaction points such as Buttons with various designs, Button Toggles, Radio Buttons, Checkboxes, Sliders and Slider Toggles.
- Progress Indicators in the form of Bars or Spinners
- Content presenting elements such as Dividers, Expansion Panels, Grid Lists, Normal Lists, Tables and Sort Headers.
- Navigation tools such as Menus, Lists, Paginators, Sidenavs, Tabs, Steppers, Toolbars and Hierarchical Trees.
But if these components alone aren’t enough on their own, Angular Material provides tools to create custom components.
2. CDK in Angular Material
The Component Dev Kit (CDK) is Angular Material’s way to provide developers the ability to tailor the library’s core components and parts in order to create custom elements and solutions.
It is built upon a set of behaviour primitives that can be combined to make more complex UI components. These include:
- Visual elements, such as Steppers, Tables, Text Fields or Trees.
- Behaviour Utilities, provide code with specific purposes that can function as building blocks for other interactions, such as Accessibility tools, Collection managers or Observers that can help building responsive designs.
When Angular Material’s built-in components don’t answer all your application’s needs, the CDK will help you make the component you wish to implement with greater ease.
Whether you’re looking for an extensive and tested library of UI components or a way to implement Google’s Material design language for your web application, Angular Material will cover most if not all of your needs out of the box. For anything else, Angular Material provides core functionality that will help you realize your vision for your application’s visuals.
If you’re looking for Angular developers to help you build your web applications, DistantJob can provide you with the best people tailored for the job. Give us a call today to get you started!