
Explore Angular Material to quickly build enterprise apps with a baseline of high-quality, ready-to-use widgets, including data tables, tree components, dialogs, and drag-and-drop, plus virtual scrolling, theming, and responsive design.
join the angular material in-depth course and set up your local environment by cloning the Angular Dash University repository, switching to the one-dash-start branch, and installing dependencies with npm.
Explore how Angular Material implements Material Design as a web UI library for Angular apps and how to add it to a project, with components, widgets, themes, and responsive design.
Add angular material to an existing angular app by running ng add @angular/material, choose a theme like indigo pink, and enable browser animations; build a hello world slider to verify.
Set up a complete navigation system using Angular Material, with a top toolbar and a side nav drawer, connected to the router via router outlets and routerLink.
Explore Angular Material navigation by implementing toolbars, side menus, and dropdown menus with mat menu and mat button directives, linking screens with router links and nested navigation.
Explore building a home screen with an Angular Material tab group featuring beginner and advanced course lists, using material cards and a mini fab button for an engaging UI.
Create a course list with angular material cards and shadows, sourcing beginner and advanced data via observables and async pipe, with view and edit actions via router link and dialog.
Implement a two-step data entry form using Angular Material's horizontal linear stepper. Guide users from course details to lessons with labeled steps and next and back navigation.
Explore angular material input fields in a responsive reactive form, using the material form field and mat input directives with floating placeholders, appearances, prefixes, suffixes, hints, and min-length validation.
Learn to implement an Angular Material radio button in a reactive form, using a mat-radio-group with free and premium options, linked via form control name and optional disabling.
Explore the angular material select box, including single and multiple selection, option groups, and dynamic options, integrated with a form control and appearance settings like fill and outline.
Master the angular material date picker in a reactive form, wiring the released at field to a mat input with a calendar overlay and toggle, enabling navigation and date highlighting.
Explore highlighting calendar dates in the angular material date picker by creating a dateClass function that returns a css class for days (e.g., first of month) and applying it.
Learn to implement Angular Material checkboxes in a reactive form, covering boolean flags, indeterminate state, required validation, color theming, and disabled and ripple behavior.
Explore the Angular Material text area component, its integration with reactive forms, and how to configure appearance, placeholder, and auto-resize using CDK directives to control row limits.
Explore the angular material tooltip, compare it with native tooltips, and configure show and hide delays, dynamic text, and flexible positioning with the MatTooltip directive and MatTooltipPosition directive.
Explore how to display lesson data with the angular material data table, using a simple array data source, display columns, and row templates to enable sorting, styling, and pagination.
Learn to style angular material data tables by applying per-column classes, hover highlights, and header and cell styling, then explore loading, pagination, and sorting in subsequent lessons.
Refactor the course component to load lessons from the backend via the courses service using findLessons with paging starting at first page and handle errors with catchError and an alert.
Explore how to implement an angular material loading indicator with the mat spinner to show backend data loading for a data table, controlled by a loading flag and RxJS finalize.
Learn to add a material data table paginator in Angular Material, wire it to backend data loading, and configure page size options to fetch the correct page of lessons.
Learn to enable sorting in an Angular Material data table by applying matSort and matSortHeader, configuring a default sort, handling sort events, and syncing with pagination.
Learn to implement multi template data rows in Angular Material data tables, enabling expandable, collapsible rows that reveal long descriptions using an alternative template.
Implement data selection in Angular Material data table using a selection model to enable multi-row selection and a header select all checkbox with an indeterminate state.
Learn to implement sticky headers and sticky columns in an Angular Material data table, using the sticky property and the matHeaderRow directive within a scrollable container.
Master Angular Material dialogs and create an edit course dialog with a title, form fields, and action buttons. Understand the dialog structure and how to pass data to a dialog.
Demonstrates a reusable Angular Material dialog pattern: open function, configurable options, injected data for prefilled forms, and returning edited data via the after closed observable.
Use Angular Material dialogs for editing a few fields or confirmations. Avoid them for large forms; prefer master-detail patterns and responsive design, especially on mobile.
Learn angular material drag and drop by building a reorderable list with CDK drop list and moveItemInArray. Visualize drop zones with a drag placeholder and apply reusable scss mixins.
Learn to implement advanced Angular Material drag and drop between two lists using a shared drop list group and transfer array item to move items between lists.
Learn responsive design with Angular Material by turning the home component into a grid list that adapts from one column on mobile to multiple columns on larger screens.
introduces the angular material mat-grid-list component to create a responsive grid of course cards with configurable columns and tile sizes, using breakpoint observer to adapt columns across devices.
Using the Angular Material breakpoint observer service, detect handset, tablet, and desktop form factors and automatically adjust columns and row height without custom media queries.
Use Breakpoint Observer to implement responsive design in Angular Material without custom media queries, toggling a handset portrait class to adjust margins, padding, and full-width cards.
Apply media queries and a custom modal panel class to stretch Angular Material dialogs to full screen on phones in portrait mode, improving mobile ux.
Explore the Angular Material tree component through nested and flat trees, set up a tree demo playground, and visualize node-based data with expandable sections and lessons.
Create and display a nested Angular Material tree with a nested data source and tree control, including leaf and expandable nodes, templates, and indentation.
Explore angular material nested versus flat trees, showing how to implement a flat tree with level-based indentation, data source and tree control, and when flattening boosts infinite scrolling and performance.
Learn how Angular Material's virtual scrolling with CDK Virtual For renders only visible items in a scrolling container, dramatically improving performance for large datasets.
Learn to build an Angular Material custom theme by defining primary and accent palettes, creating a theme variable, and applying the styles across all components.
Master Angular Material in-depth with modular components, custom themes, and material design patterns; learn when to use dialogs or master-detail, and how breakpoint observer and pagination optimize responsive user interface.
This course covers in detail the Angular Material component library, and comes with a running Github repo.
This Course in a Nutshell
Angular is an amazing framework that does a lot of the work for us, but one thing that the core modules don't do by themselves is provide you with commonly used user interface components.
Imagine what it would be like to use Angular, but have to develop all your dropdown boxes, date pickers, menus, and all those commonly needed and very standard components every time that you need to develop an application.
This would be not only impractical, but in most cases impossible as some of these components might take weeks to months to develop and test given their complexity!
Also, how about styling and theming your application and make sure that everything looks neat and professional?
Imagine what it would like to have to style your whole application from scratch, from a completely empty page. This is a huge amount of work and custom development that most companies prefer to avoid.
And so this is where Angular Material comes in! :-)
Angular Material is an amazing component suite for Angular which is based on Material Design (a UI development standard from Google).
With Angular Material, you can quickly give your applications that typical Android-like Material Design look and feel, just by adding a few components and styles to your application.
Also, you will never have to develop your own date picker and many other commonly needed components, everything is already available from the beginning of your project.
These are very high quality components that have been extensively tested in thousands of applications, including for usability, user-friendliness and responsiveness.
These components, developed by Google themselves are some of the highest quality UI components that you can choose to build your application, and they are ready to be used from day one in your project.
Course Overview
In this course we are going to build a sample Angular application from scratch using Angular Material.
We are going to first set up the menu structure of the application, and then we are going to display some data on the screen using commonly used container components like tab containers, and we will apply some Material Design principles.
We will then learn how to use some of the most commonly needed form controls, like inputs and text areas, date pickers, dropdowns, radio buttons and checkboxes, and other commonly used form components.
We will build a complex form using Angular Material, and show how to properly display form control errors. We will then learn how to use Material data table component to display tabulated data, including how to credit in-place editable tables and expandable table rows.
We will show how to paginate the data in the data table, and we will display a loading indicator to the user while the data gets loaded.
We will also cover in detail a very commonly used feature which are dialogs, and discuss when to use them and when not to use them and talk about some useful best practices.
We will then cover some of the most advanced components in the Angular Material suite, including it's powerful drag and drop features, the responsive design capabilities of Angular Material, and we will cover also in detail how to use the material tree component.
We will learn how to handle large amounts of data using virtual scrolling, and we will finish the course by learning how to create your own custom themes.
Table of Contents
This course will go over the following topics:
Set up Angular Material from scratch
navigation and containers, side menu, tab container
display data with cards, use some buttons
commonly used form controls and buttons - create course form
inputs and text areas
radio buttons, checkboxes, tooltips
date picker, date/time formatting
Displaying form errors
Angular Data Table in depth
Editable in-line table
Expandable table rows
pagination and loading indicator
Overlays, best practices to use them
Drag and Drop
Responsive design with mat-grid-list
Responsive breakpoint observers
Tree component
Virtual scrolling - handling large amounts of data
Custom Themes
Switching themes at runtime
What Will You Learn In this Course?
At the end of this course, you will feel very comfortable using the Angular Material library to build and style your applications
You will know how to add Angular Material to an existing Angular application, and you will be familiar with most of its more commonly used components, as well as with many of the most advanced components
Have a look at the course free lessons below, and please enjoy the course