DEV Community

Cover image for ngStyle in Angular for Dynamic styling
Harshal Suthar
Harshal Suthar

Posted on • Originally published at ifourtechnolab.com

ngStyle in Angular for Dynamic styling

In this blog, we will be going to learn about the styling of Angular components using the ngStyle core directives. We will look at the various ways to dynamically assign a CSS style to an element using the style property.

If you don’t have the latest version of the angular cli then you need to update the angular cli latest version. After that installing angular CLI, you can use angular CLI to create a new angular project using the following command.

ng new styleDemo

Enter fullscreen mode Exit fullscreen mode

Next, we are using bootstrap for better design and install the bootstrap using this command:


npm install bootstrap --save 

Enter fullscreen mode Exit fullscreen mode

After installing bootstrap, add the bootstrap to the angular.json file.

"styles": [ 
"src/styles.scss", 
"node_modules/bootstrap/dist/css/bootstrap.min.cs"
], 

Enter fullscreen mode Exit fullscreen mode

What is a Style attribute?

The Style attribute is used for the style of a view element. We can set the inline styles using the style attribute.

Syntax:

Image description

As you can see from the above example of the style attribute, this sets the background color of thep tag to red

The declaration block can have one or more declarations.

Image description

The string assigned to the style attribute contains the CSS style declaration block. In the declaration block, declaration CSS property and value.

Style declaration:


selector {
css-property: value;
css-property: value;
}

Enter fullscreen mode Exit fullscreen mode

Example of the style attribute:

Image description

The inline style for the p element styles from the selector.

Read More: Angular Localization With Ivy

Property binding with style:

Property binding is used for the styling of one CSS property. We can style only one property

Syntax:

Image description

Example of the property binding with the style:

Image description

In this example, the square brackets represent a property binding and contain the property to update dynamically.

Style binding will also have the unit. Some CSS properties need a unit of measurement like font-size, padding, margin, width, height, etc

Image description

Example:

In the app.component.html file, we can write the style property.

Image description

In the app.component.ts file, we can set the isValid value to true.


import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'NgStyleDemo';
isValid = true;
}          

Enter fullscreen mode Exit fullscreen mode

What is the NgStyle?

The NgStyle attribute is used to change the appearance and behavior of the element. NgSytle is most useful when the value is dynamic.

We can set the styles using the ngStyle directive.

Image description

As you can see in the above example of the NgStyle, this sets the background color of the div to red.

We can add multiple CSS properties in a ngStyle directive.

Image description

As you can see in the above example of the ngStyle, this sets the multiple CSS properties to the div element like background-color, color, font-size, etc.

Example 1

In this example, we will use ngStyle for styling and can write the inline CSS on the element.

Image description

Example 2

app.components.ts


import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'NgStyleDemo';

myCss = {
'background-color' : 'green',
'color' : 'white', 
'font-size' : '40px',
'font-weight' : 'bold',
};
}

Enter fullscreen mode Exit fullscreen mode

app.component.html

Image description

In this example, we can write the CSS in the app.component.ts file and use the CSS variable in the ngstyle directive in the app.component.html file.

Example 3

Step 1: In the ngstyle.component.ts file, we can declare an array of the data.


import { Component, OnInit } from '@angular/core';
@Component({
  selector: 'app-ngstyle',
  templateUrl: './ngstyle.component.html',
  styleUrls: ['./ngstyle.component.scss']
})
export class DirectiveComponent implements OnInit {
  constructor() { }
  ngOnInit(): void {
  }
  people: any[] = [
    {
      "name": "Keval Patel",
      "country": 'India'
    },
    {
      "name": "Mcleod Mueller",
      "country": 'USA'
    },
    {
      "name": "Aniket Badrakiya",
      "country": 'UK'
    },
    {
      "name": "Neel Patel",
      "country": 'India'
    },
    {
      "name": "Cook Tyson",
      "country": 'USA'
    },
    {
      "name": "Vishal Rathod",
      "country": 'India'
    }
  ];
}

Enter fullscreen mode Exit fullscreen mode

Step 2: Create an HTML view.

Image description

Example 4


import { Component } from '@angular/core';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'NgStyleDemo';
  people: any[] = [
    {
      "name": "Keval Patel",
      "country": 'India'
    },
    {
      "name": "Mcleod Mueller",
      "country": 'USA'
    },
    {
      "name": "Aniket Badrakiya",
      "country": 'UK'
    },
    {
      "name": "Neel Patel",
      "country": 'Canada'
    },
    {
      "name": "Cook Tyson",
      "country": 'USA'
    },
    {
      "name": "Vishal Rathod",
      "country": 'UK'
    },
    {
      "name": "Meha Patel",
      "country": 'India'
    },
    {
      "name": "Ayush Desai",
      "country": 'Australia'
    },
    {
      "name": "Riya Rathod",
      "country": 'Canada'
    }
  ];
  getColor(country) {
    switch (country) {
      case 'India':
        return 'blue';
      case 'UK':
        return 'red';
      case 'Australia':
        return 'yellow';
      case 'USA':
        return 'green';
      case 'Canada':
        return 'orange';
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

Looking to hire dedicated Angular Developer? Your Search ends here.

Create a HTML view to display the data.

Image description

You should see an output like below:

Image description

Alternate Syntax of the above example:

Image description

Conclusion

In this blog, we described that what is style attribute and how to use the same. We have explained what is NgStyle directive in Angular for Dynamic styling and discussed a few various sets of examples for the NgStyle.

Top comments (0)