Managing styles with Angular directives

Angular provides us with various ways to manipulate styles inside an element in a template of our components. I always have problems remembering the correct syntax, hence the idea to write this fiche.
Binding
First of all, for the simplest cases we can use class and style binding
<element [style.max-width.px]="maxWidth"></element><element [class.my_class]="condition"></element>For more complex cases, Angular provides us with built-in ngStyle and ngClass directives.
Both are delivered within the CommonModule.
ngStyle
NgStyle directive allows you to dynamically set CSS styles on an element based on a condition or an expression.
With ngStyle, you can bind to an object literal containing style definition.
<element [ngStyle]="styleObject"></element>For example, we can set the maximum width of an element:
<element [ngStyle]="{'max-width.px': widthExpression}"></element>ngClass
For class manipulation we can use ngClass directive.
It works in a similar way to ngStyle, but it can be used in three different ways - using string, Array or Object.
The following are examples of usage:
<element [ngClass]="condition ? 'class1 class2' : 'class3'"></element>
<element [ngClass]="['class1', 'class2']"></element>
<element [ngClass]="{'class1': condition1', 'class2': condition2 }"></element>