Angular 6, color from css file in ngStyle directive

Kacper Kapela picture Kacper Kapela · Jul 17, 2018 · Viewed 7.7k times · Source

I would like to use my color which is defined in CSS file for my ngStyle directive (which is in HTML).

This is what i've got in my HTML:

 [ngStyle]="{backgroundColor: isDarkStyle() ? '#29434e' : isNormalStyle() ? '#cfd8dc' : isLightStyle() ? 'white': ''}"

This my CSS file with colors:

//colors for background

$light-background: white;
$normal-background: #cfd8dc;
$dark-background: #29434e;

But i want this:

[ngStyle]="{backgroundColor: isDarkStyle() ? '$dark-background' : isNormalStyle() ? '$normal-background' : isLightStyle() ? '$light-background': ''}"

How can I achieve this result? Thanks for help :)

Answer

לבני מלכה picture לבני מלכה · Jul 17, 2018

Use [ngClass]

See stackblitz:https://stackblitz.com/edit/hello-angular-6-refjye?file=src%2Fapp%2Fapp.component.html

.light{
background: white;
}
.normal{
background: #cfd8dc;
}
.dark{
background: #29434e;
}

in Html

<p [ngClass]="isDarkStyle() ? 'dark' : isLightStyle() ? 'light': isNormalStyle()?'normal':''">
  Start editing to see some magic happen :)
</p>