{"id":1233,"date":"2023-07-25T05:00:00","date_gmt":"2023-07-25T12:00:00","guid":{"rendered":"https:\/\/www.angulartraining.com\/daily-newsletter\/?p=1233"},"modified":"2023-07-21T16:11:29","modified_gmt":"2023-07-21T23:11:29","slug":"ng-class-for-dynamic-styling","status":"publish","type":"post","link":"https:\/\/www.angulartraining.com\/daily-newsletter\/ng-class-for-dynamic-styling\/","title":{"rendered":"ng-class for dynamic styling"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>T<em>his is a guest post by Tomas Kotlar. Thanks for your contribution, Tomas! Remember than anyone can reach out to me to contribute or suggest post ideas.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p><strong><a href=\"https:\/\/angular.io\/api\/common\/NgClass\" target=\"_blank\" rel=\"noopener\" title=\"\">ngClass<\/a><\/strong>, as defined by the Angular documentation, is a built-in attribute directive that dynamically modifies the behavior of other HTML elements. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Common use cases<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Conditional Styling<\/strong><\/h3>\n\n\n\n<p>Let&#8217;s consider a button element that changes color based on whether it&#8217;s disabled or active. We can use <strong><code>ngClass<\/code><\/strong> to toggle between the &#8216;active-btn&#8217; and &#8216;disabled-btn&#8217; classes, giving the button a responsive touch:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-32-1024x229.png\" alt=\"\" class=\"wp-image-1235\" srcset=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-32-1024x229.png 1024w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-32-300x67.png 300w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-32-768x172.png 768w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-32-1536x344.png 1536w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-32.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Whenever the button is clicked, the <code>toggleDisabled()<\/code> function will be executed, toggling the value of <code>isDisabled<\/code>.<\/p>\n\n\n\n<p>As a result, the button will become enabled or disabled based on the updated value of <code>isDisabled<\/code>, and the corresponding style (active or disabled) will be applied.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Using an Object<\/strong><\/h3>\n\n\n\n<p><code>ngClass<\/code> goes beyond just toggling classes. It also lets you iterate over object properties to apply your styles conditionally. This can be handy when working with data-driven apps or displaying dynamic content.<\/p>\n\n\n\n<p>For example, using the following data:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"294\" src=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-33-1024x294.png\" alt=\"\" class=\"wp-image-1236\" srcset=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-33-1024x294.png 1024w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-33-300x86.png 300w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-33-768x220.png 768w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-33-1536x441.png 1536w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-33.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>In our HTML, we can apply dynamic styles using an array:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"326\" src=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-34-1024x326.png\" alt=\"\" class=\"wp-image-1237\" srcset=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-34-1024x326.png 1024w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-34-300x96.png 300w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-34-768x245.png 768w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-34-1536x489.png 1536w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-34.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Based on the type (&#8216;hero&#8217; or &#8216;villain&#8217;), the directive applies the appropriate highlight class to the hero card.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Combining classes using conditions<\/strong><\/h3>\n\n\n\n<p>With <strong><code>ngClass<\/code><\/strong>, you can mix multiple CSS classes, toggling them individually or creating compound styles:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"326\" src=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-35-1024x326.png\" alt=\"\" class=\"wp-image-1239\" srcset=\"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-35-1024x326.png 1024w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-35-300x96.png 300w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-35-768x245.png 768w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-35-1536x489.png 1536w, https:\/\/www.angulartraining.com\/daily-newsletter\/wp-content\/uploads\/2023\/07\/image-35.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The hero cards will be highlighted for heroes who can fly and have a different style for heroes who cannot, based on the <strong><code>canFly<\/code><\/strong> property.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a guest post by Tomas Kotlar. Thanks for your contribution, Tomas! Remember than anyone can reach out to me to contribute or suggest post ideas. ngClass, as defined by the Angular documentation, is a built-in attribute directive that dynamically modifies the behavior of other HTML elements. Common use cases Conditional Styling Let&#8217;s consider [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,8,11,7],"tags":[],"class_list":["post-1233","post","type-post","status-publish","format-standard","hentry","category-angular","category-components","category-directives","category-template-syntax"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/posts\/1233","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/comments?post=1233"}],"version-history":[{"count":4,"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/posts\/1233\/revisions"}],"predecessor-version":[{"id":1241,"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/posts\/1233\/revisions\/1241"}],"wp:attachment":[{"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/media?parent=1233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/categories?post=1233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.angulartraining.com\/daily-newsletter\/wp-json\/wp\/v2\/tags?post=1233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}