π Theming for Angular Applications with CSS Variables
#angular #guide #theming
1. Install required packages
2. Define CSS variables
π Code Link
3. Create pre-defined themes
π Code Link
4. Create a theme service to operate the theme
Create a new service from the ng-cli.
π Code Link
5. Create a theme component for the theme switcher
Create a new component from the ng-cli.
π Code Link
π Code Link
π Code Link
β Article link
#angular #guide #theming
1. Install required packages
Install the font-awesome/angular-fontawesome package for creating the theme switcher later.
npm install --save @font-awesome/angular-fontwaesome
2. Define CSS variables
First, we have to define colors as CSS variables in the styles.scss. The properties defined in the :root section could be referred to globally.
:root represents the <html> element and is identical to the selector html .
3. Create pre-defined themes
Create a new TypeScript file.
β Define required theme types (line 1 ~ line 4)
β Define required themes in the JSON format (line11 ~ line 35)
4. Create a theme service to operate the theme
Create a new service from the ng-cli.
ng g s theme
Update the service.
β Expose the method to retrieve the theme type from memory and localStorage (line 20 ~ line 23)
β Expose the method to set the theme type to memory and localStorage (line 42 ~ line 47)
The key is document.documentElement(line 55). It stands for the root DOM. In setCurrentTheme() , we set the new value for the corresponding theme.
5. Create a theme component for the theme switcher
Create a new component from the ng-cli.
ng g c theme
Update the theme.component.ts.
β In ngOnInit() phase, we set the corresponding icon for the theme type retrieved from the service (line 23 ~ line 26)
β When the user toggles, we set the icon for the next theme type retrieved from the service (line 28 ~ line 32)
Update the theme.component.html to place the icon.
Update the theme.component.scss to switch the theme of the icon.
The theme switcher will look like the following images.
β Article link
Please open Telegram to view this post
VIEW IN TELEGRAM
π4