diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.html b/src/app/components/creator/room-creator-page/room-creator-page.component.html
index b1c7e79d146dd458dcaf2dfd06894e17a85510b9..0253e5e8cbbe8ddb423370e56d17f1061239fa71 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.html
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.html
@@ -4,7 +4,7 @@
      fxFill>
   <div fxLayout="row"
        fxLayoutAlign="center">
-    <app-mat-spinner-overlay *ngIf="isLoading" overlay="true" useCustomCSSColor="true"></app-mat-spinner-overlay>
+    <app-mat-spinner-overlay *ngIf="isLoading" overlay="true"></app-mat-spinner-overlay>
     <mat-card *ngIf="room">
       <div fxLayout="row">
         <span class="fill-remaining-space"></span>
diff --git a/src/app/components/creator/room-creator-page/room-creator-page.component.scss b/src/app/components/creator/room-creator-page/room-creator-page.component.scss
index 7d4d2c981f19e90ca9fd5809796add2756c0c1a5..e555b3b8887d040ae1d8706dccb2c5dee245e9ec 100644
--- a/src/app/components/creator/room-creator-page/room-creator-page.component.scss
+++ b/src/app/components/creator/room-creator-page/room-creator-page.component.scss
@@ -143,7 +143,3 @@ markdown {
   background: var(--secondary);
   color: var(--on-secondary);
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html
index 5327030937e706f682964b34a53b6c608988d7c9..2c2a037b2ac070b6bfcd6eb83fc1908e65764e7e 100644
--- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html
+++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.html
@@ -4,7 +4,7 @@
      fxFill>
   <div fxLayout="row"
        fxLayoutAlign="center">
-    <app-mat-spinner-overlay *ngIf="isLoading" overlay="true" useCustomCSSColor="true"></app-mat-spinner-overlay>
+    <app-mat-spinner-overlay *ngIf="isLoading" overlay="true"></app-mat-spinner-overlay>
     <mat-card *ngIf="room">
       <div fxLayout="row">
         <span class="fill-remaining-space"></span>
diff --git a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss
index cf286175f300ab35ffa318d6e016fa564376254b..7d5ca669e29422bcd1504837eb371de897a11551 100644
--- a/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss
+++ b/src/app/components/moderator/room-moderator-page/room-moderator-page.component.scss
@@ -147,7 +147,3 @@ markdown {
   color: var(--on-surface);
   margin: 0 3% 0 3% !important;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.html b/src/app/components/participant/room-participant-page/room-participant-page.component.html
index e67dc575840ca736ce55c150f7131ba890979152..37304ea64cecd70d8eb214d52e0514c4933161c2 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.html
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.html
@@ -1,6 +1,6 @@
 <div fxLayout="column" fxLayoutAlign="center" fxLayoutGap="20px" fxFill>
   <div fxLayout="row" fxLayoutAlign="center">
-    <app-mat-spinner-overlay *ngIf="isLoading" overlay="true" useCustomCSSColor="true"></app-mat-spinner-overlay>
+    <app-mat-spinner-overlay *ngIf="isLoading" overlay="true"></app-mat-spinner-overlay>
     <mat-card *ngIf="room">
       <div fxLayout="row">
         <span class="fill-remaining-space"></span>
diff --git a/src/app/components/participant/room-participant-page/room-participant-page.component.scss b/src/app/components/participant/room-participant-page/room-participant-page.component.scss
index 29022f84107fce57d11d2a804642158d859d5b0a..4245f09a284b6dedbf446784aa4fb8e810471ce8 100644
--- a/src/app/components/participant/room-participant-page/room-participant-page.component.scss
+++ b/src/app/components/participant/room-participant-page/room-participant-page.component.scss
@@ -103,7 +103,3 @@ markdown {
   color: var(--on-surface);
   margin: 0 3% 0 3% !important;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.scss b/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.scss
index fed401a5ea269b099a385c2caf760024759791b1..20162aa28dbc89407cb9d659662c08ca9100ecc0 100644
--- a/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.scss
+++ b/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.scss
@@ -173,8 +173,8 @@ mat-icon {
   margin-right: auto;
 }
 
-::ng-deep.mat-drawer-backdrop.mat-drawer-shown {
-  display: none;
+::ng-deep .mat-drawer-backdrop {
+  opacity: 0;
 }
 
 ::ng-deep.mat-slider-track-background {
diff --git a/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts b/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts
index 8139d030531f46da361156a5bca808968e025551..209c571529cc6c1174af4512d16639806d591f86 100644
--- a/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts
+++ b/src/app/components/shared/_dialogs/cloud-configuration/cloud-configuration.component.ts
@@ -4,6 +4,7 @@ import { TagCloudComponent } from '../../tag-cloud/tag-cloud.component';
 import { WeightClass } from './weight-class.interface';
 import { TagCloudMetaDataCount } from '../../../../services/util/tag-cloud-data.service';
 import { CloudParameters, CloudTextStyle } from '../../../../utils/cloud-parameters';
+import { AppComponent } from '../../../../app.component';
 
 @Component({
   selector: 'app-cloud-configuration',
@@ -26,7 +27,7 @@ export class CloudConfigurationComponent implements OnInit {
   alphabeticalSorting: boolean;
   rotation: number;
   highestWeight: number;
-  step:number = 10;
+  step: number = 10;
   weightClasses: WeightClass[] = [
     {
       maxTagNumber: 20,
@@ -99,18 +100,19 @@ export class CloudConfigurationComponent implements OnInit {
       allowManualTagNumber: false
     },
   ];
-  MinFont:number;
-  MaxFont:number;
+  MinFont: number;
+  MaxFont: number;
 
   isTestCloud = false;
 
-  constructor(private translateService: TranslateService) { }
+  constructor(private translateService: TranslateService) {
+  }
 
   ngOnInit() {
     this.translateService.use(localStorage.getItem('currentLang'));
     this.cloudParameters = new CloudParameters(this.parent.currentCloudParameters);
     this.defaultCloudParameters = new CloudParameters(this.parent.currentCloudParameters);
-    this.parent.dataManager.getMetaData().subscribe((value)=>{
+    this.parent.dataManager.getMetaData().subscribe((value) => {
       if (!value) {
         return;
       }
@@ -141,20 +143,20 @@ export class CloudConfigurationComponent implements OnInit {
 
   parseArrayToJsonWeightClasses() {
     this.cloudParameters.cloudWeightSettings.forEach((element, i) => {
-       this.weightClasses[i].tagColor = element.color;
-       this.weightClasses[i].actualTagNumber = this.countPerWeight[i];
-       this.weightClasses[i].rotationAngle = element.rotation;
-       this.weightClasses[i].maxTagNumber = (element.maxVisibleElements == -1 || element.maxVisibleElements == 0) ? this.weightClasses[i].actualTagNumber : element.maxVisibleElements;
-       this.weightClasses[i].allowManualTagNumber = element.allowManualTagNumber;
+      this.weightClasses[i].tagColor = element.color;
+      this.weightClasses[i].actualTagNumber = this.countPerWeight[i];
+      this.weightClasses[i].rotationAngle = element.rotation;
+      this.weightClasses[i].maxTagNumber = (element.maxVisibleElements == -1 || element.maxVisibleElements == 0) ? this.weightClasses[i].actualTagNumber : element.maxVisibleElements;
+      this.weightClasses[i].allowManualTagNumber = element.allowManualTagNumber;
     });
   }
 
   parseJsonToArrayWeightClasses() {
     this.weightClasses.forEach((element, i) => {
       this.cloudParameters.cloudWeightSettings[i].allowManualTagNumber = element.allowManualTagNumber;
-      if(element.allowManualTagNumber == true){
+      if (element.allowManualTagNumber == true) {
         this.cloudParameters.cloudWeightSettings[i].maxVisibleElements = element.maxTagNumber == 0 ? -1 : element.maxTagNumber;
-      }else{
+      } else {
         this.cloudParameters.cloudWeightSettings[i].maxVisibleElements = -1;
       }
       this.cloudParameters.cloudWeightSettings[i].color = element.tagColor;
@@ -167,22 +169,35 @@ export class CloudConfigurationComponent implements OnInit {
     this.parent.setCloudParameters(this.cloudParameters, false);
   }
 
-  cancel() {
+  closePanel() {
     this.parent.tagCloudDataManager.demoActive = false;
+    this.parent.drawer.close();
+    this.readMaxFont();
+    const defaultScale = AppComponent.rescale.getInitialScale();
+    if (defaultScale !== 1) {
+      AppComponent.rescale.setDefaultScale(defaultScale);
+      this.parent.updateTagCloud();
+    }
+  }
+
+  openPanel() {
+    if (AppComponent.rescale.getInitialScale() !== 1) {
+      AppComponent.rescale.setDefaultScale(1);
+    }
+  }
+
+  cancel() {
     this.parent.setCloudParameters(this.defaultCloudParameters);
     this.cloudParameters = new CloudParameters(this.defaultCloudParameters);
-    this.parent.configurationOpen = false;
     this.setStep(0);
-    this.readMaxFont();
+    this.closePanel();
   }
 
   save() {
-    this.parent.tagCloudDataManager.demoActive = false;
     this.parent.setCloudParameters(this.cloudParameters);
     this.defaultCloudParameters = new CloudParameters(this.cloudParameters);
-    this.parent.configurationOpen = false;
     this.setStep(0);
-    this.readMaxFont();
+    this.closePanel();
   }
 
   toggleExtendedView() {
@@ -217,19 +232,19 @@ export class CloudConfigurationComponent implements OnInit {
     this.step--;
   }
 
-  reset(){
+  reset() {
     this.parent.resetColorsToTheme();
-    this.parent.configurationOpen = false;
     this.cloudParameters = new CloudParameters(this.parent.currentCloudParameters);
     this.defaultCloudParameters = new CloudParameters(this.parent.currentCloudParameters);
-    this.readMaxFont();
+    this.closePanel();
   }
 
-  italicChecked(event){
+  italicChecked(event) {
     this.cloudParameters.fontStyle = event.checked === true ? 'italic' : 'normal';
     this.valueChanged();
   }
-  boldChecked(event){
+
+  boldChecked(event) {
     this.cloudParameters.fontWeight = event.checked === true ? 'bold' : 'normal';
     this.valueChanged();
   }
@@ -238,20 +253,20 @@ export class CloudConfigurationComponent implements OnInit {
     return this.cloudParameters.fontWeight === 'bold';
   }
 
-  readMaxFont(){
-    let valMax:number = this.cloudParameters.fontSizeMax;
-    let valMin:number = this.cloudParameters.fontSizeMin;
-    this.MaxFont = Math.floor(valMax/valMin);
+  readMaxFont() {
+    let valMax: number = this.cloudParameters.fontSizeMax;
+    let valMin: number = this.cloudParameters.fontSizeMin;
+    this.MaxFont = Math.floor(valMax / valMin);
   }
 
-  calcMaxFont(event,setMin:Boolean){
-    let val:number = Number(event.target.value);
-    if(val >0 && val <=10 && !setMin){
+  calcMaxFont(event, setMin: Boolean) {
+    let val: number = Number(event.target.value);
+    if (val > 0 && val <= 10 && !setMin) {
       this.cloudParameters.fontSizeMax = this.cloudParameters.fontSizeMin * val;
       this.MaxFont = val;
       this.valueChanged();
     }
-    if(setMin){
+    if (setMin) {
       this.cloudParameters.fontSizeMax = this.cloudParameters.fontSizeMin * this.MaxFont;
       this.valueChanged();
     }
diff --git a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html
index aeb369475c8246c8b0e2029073ea3a6b20eeec3f..0347f4a1c2c13172c71a48055975ddc19f33d6db 100644
--- a/src/app/components/shared/_dialogs/create-comment/create-comment.component.html
+++ b/src/app/components/shared/_dialogs/create-comment/create-comment.component.html
@@ -125,10 +125,7 @@
         {{ 'comment-page.grammar-check' | translate}}
         <mat-icon *ngIf="grammarChecker.isSpellchecking"
                   class="spinner-container">
-          <app-mat-spinner-overlay diameter="20"
-                                   strokeWidth="2"
-                                   [useCustomCSSColor]="true">
-          </app-mat-spinner-overlay>
+          <app-mat-spinner-overlay diameter="20" strokeWidth="2" [color]="'on-primary'"></app-mat-spinner-overlay>
         </mat-icon>
       </button>
     </ars-col>
diff --git a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html
index 627a3b4fc074e4df20eccc12bbae1e46a25bcd5b..290fdaffbb54c2ace7939b1195e61c785becf998 100644
--- a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html
+++ b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.html
@@ -24,7 +24,7 @@
     </span>
     <ars-row class="list-container">
       <div fxLayout="row" fxLayoutAlign="center center" fxFill>
-        <app-mat-spinner-overlay *ngIf="isLoading" useCustomCSSColor="true"></app-mat-spinner-overlay>
+        <app-mat-spinner-overlay *ngIf="isLoading"></app-mat-spinner-overlay>
       </div>
       <mat-list dense class="keywords-list">
         <mat-list-item  *ngFor="let keyword of keywords; let odd = odd; let even = even; let i = index"
diff --git a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss
index 8777cc69a22994426afdb48325b7ad0d948e6379..29d07cae3203aad421599e3cf54125088ef00b0e 100644
--- a/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss
+++ b/src/app/components/shared/_dialogs/spacy-dialog/spacy-dialog.component.scss
@@ -138,7 +138,3 @@
 .mat-option {
   color: var(--on-surface);
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
index 5e2ad24517e187c1c83352feeb81ba6fb19861b7..222f911ca6e74c857377ccd66b5be3d498e777a8 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
+++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.html
@@ -1,6 +1,6 @@
 <mat-dialog-content>
   <div fxLayout="row" fxLayoutAlign="center center" fxFill>
-    <app-mat-spinner-overlay *ngIf="isLoading" [useCustomCSSColor]="true"></app-mat-spinner-overlay>
+    <app-mat-spinner-overlay *ngIf="isLoading"></app-mat-spinner-overlay>
   </div>
   <div *ngIf="!isLoading">
     <mat-accordion hideToggle>
diff --git a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss
index de118a9b851e3632354f6838a78da700b6a400e4..86c644ce629cd8a7704e986c99957c3071e622fb 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss
+++ b/src/app/components/shared/_dialogs/topic-cloud-administration/topic-cloud-administration.component.scss
@@ -181,7 +181,3 @@ mat-dialog-content {
   color: black;
   width: 100%;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.html b/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.html
index 5ef513b80807bb6edda44d9def652adf0395c0a5..f5e3f893c2d878a85eafe33baf9ad06610279ed7 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.html
+++ b/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.html
@@ -67,6 +67,7 @@
              autofocus
              autocomplete="off"
              type="text"
+             (keyup)="checkForEnter($event)"
              [(ngModel)]="question">
       <button *ngIf="question"
               matSuffix
diff --git a/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.ts b/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.ts
index 3e80e92eb51beb624a3a9f3acf9316140e37fcd6..769f5d25a10dbe4577d94428659968d12477551c 100644
--- a/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.ts
+++ b/src/app/components/shared/_dialogs/topic-cloud-filter/topic-cloud-filter.component.ts
@@ -143,9 +143,7 @@ export class TopicCloudFilterComponent implements OnInit {
           return;
       }
 
-      const params = CloudParameters.currentParameters;
-      params.question = this.question;
-      CloudParameters.currentParameters = params;
+      localStorage.setItem('tag-cloud-question', this.question);
 
       CommentFilter.currentFilter = filter;
 
@@ -153,6 +151,12 @@ export class TopicCloudFilterComponent implements OnInit {
     };
   }
 
+  checkForEnter(e: KeyboardEvent) {
+    if (e.key === 'Enter') {
+      this.confirmButtonActionCallback()();
+    }
+  }
+
   private isUpdatable(): boolean {
     if (this.comments.length < 3) {
       return false;
diff --git a/src/app/components/shared/comment-answer/comment-answer.component.html b/src/app/components/shared/comment-answer/comment-answer.component.html
index 96993bcf257750c76b43c49d50d2313b12442166..57c911f4287403b2c895640e6bb8d85afa9b6e5f 100644
--- a/src/app/components/shared/comment-answer/comment-answer.component.html
+++ b/src/app/components/shared/comment-answer/comment-answer.component.html
@@ -95,10 +95,7 @@
               {{ 'comment-page.grammar-check' | translate}}
               <mat-icon *ngIf="grammarChecker.isSpellchecking"
                         class="spinner-container">
-                <app-mat-spinner-overlay diameter="20"
-                                         strokeWidth="2"
-                                         [useCustomCSSColor]="true">
-                </app-mat-spinner-overlay>
+                <app-mat-spinner-overlay diameter="20" strokeWidth="2" [color]="'on-primary'"></app-mat-spinner-overlay>
               </mat-icon>
             </button>
           </ars-col>
diff --git a/src/app/components/shared/comment-list/comment-list.component.html b/src/app/components/shared/comment-list/comment-list.component.html
index 23286baa3333ed535aab5448decd1d2b8fec074a..53c769b51c4b1bf039183cbeb9f1c12faabfe4a7 100644
--- a/src/app/components/shared/comment-list/comment-list.component.html
+++ b/src/app/components/shared/comment-list/comment-list.component.html
@@ -250,10 +250,7 @@
   <mat-icon>add</mat-icon>
 </button>
 
-<app-mat-spinner-overlay *ngIf="isLoading"
-                         overlay="true"
-                         [useCustomCSSColor]="true">
-</app-mat-spinner-overlay>
+<app-mat-spinner-overlay *ngIf="isLoading" overlay="true"></app-mat-spinner-overlay>
 
 <div *ngIf="!isLoading">
   <app-comment *ngFor="let current of hideCommentsList ? filteredComments : commentsFilteredByTime"
diff --git a/src/app/components/shared/comment-list/comment-list.component.scss b/src/app/components/shared/comment-list/comment-list.component.scss
index 109b80571f4500c0ad2d2526997985b9b3d3668c..21d69eedf08719ea39897b7f03387e9397066408 100644
--- a/src/app/components/shared/comment-list/comment-list.component.scss
+++ b/src/app/components/shared/comment-list/comment-list.component.scss
@@ -258,7 +258,3 @@ h3 {
 h1 {
   color: red;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html
index 76a2bf7d8af64259d8e094dce9413ca84b4fd500..1d8f72a6ab3c06dc65b2df6431990c84828187ed 100644
--- a/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html
+++ b/src/app/components/shared/dialog/dialog-action-buttons/dialog-action-buttons.component.html
@@ -19,10 +19,7 @@
                   style="margin-right: 5px;">{{buttonIcon}}</mat-icon>
         {{ buttonsLabelSection + '.' + confirmButtonLabel | translate}}
         <mat-icon *ngIf="showLoadingCycle" class="spinner-container">
-          <app-mat-spinner-overlay diameter="20"
-                                   strokeWidth="2"
-                                   [useCustomCSSColor]="true">
-          </app-mat-spinner-overlay>
+          <app-mat-spinner-overlay diameter="20" strokeWidth="2" [color]="'on-primary'"></app-mat-spinner-overlay>
         </mat-icon>
       </button>
       <button
diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html
index 161e84155fbeb0c4f317bdf15c7251140bf3549c..33aa502fc768480606f36896c5ad111def2bff13 100644
--- a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html
+++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.html
@@ -1,5 +1,5 @@
 <ng-container *ngIf="overlay;else progressSpinner">
-  <div class="overlay">
+  <div class="overlay {{color}}">
     <div class="center">
       <ng-template [ngTemplateOutlet]="progressSpinner"></ng-template>
     </div>
@@ -9,9 +9,9 @@
   <mat-progress-spinner
     #containerRef
     [ngClass]="{'inline-spinner': !overlay}"
+    class="{{color}}"
     [diameter]="diameter"
     [mode]="mode"
-    [color]="color"
     [strokeWidth]="strokeWidth"
     [value]="value">
   </mat-progress-spinner>
diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss
index 0437c8816aa2b083a50fe8073ce233808740a075..a96b55fcf08f20caff61f685f749e67876eb150b 100644
--- a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss
+++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.scss
@@ -13,15 +13,39 @@ mat-progress-spinner {
 .overlay {
   height: 100vh;
   width: 100%;
-  background-color: rgba(0, 0, 0, 0.286);
+  opacity: 0.2;
   z-index: 10;
   top: 0;
   left: 0;
   position: fixed;
 }
 
+.overlay.primary {
+  background-color: var(--primary);
+}
+
+.overlay.secondary {
+  background-color: var(--secondary);
+}
+
 mat-progress-spinner.inline-spinner {
   display: inline;
   margin-left: 0.25em;
   top: 0.115em;
 }
+
+mat-progress-spinner.primary, mat-progress-spinner.on-primary {
+  color: var(--on-primary);
+}
+
+mat-progress-spinner.primary.inline-spinner {
+  color: var(--primary);
+}
+
+mat-progress-spinner.secondary,  mat-progress-spinner.on-secondary {
+  color: var(--on-secondary);
+}
+
+mat-progress-spinner.secondary.inline-spinner {
+  color: var(--secondary);
+}
diff --git a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts
index fccc0f9a21360fd8e1df0bbb3c82931f3d46de3a..e04fcd09496f6749345fcb3ee28f6dee66f53a37 100644
--- a/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts
+++ b/src/app/components/shared/mat-spinner-overlay/mat-spinner-overlay.component.ts
@@ -9,7 +9,8 @@ import {
   ViewChild
 } from '@angular/core';
 import { ProgressSpinnerMode } from '@angular/material/progress-spinner';
-import { ThemePalette } from '@angular/material/core';
+
+export type SpinnerTheme = 'primary' | 'on-primary' | 'secondary' | 'on-secondary';
 
 @Component({
   selector: 'app-mat-spinner-overlay',
@@ -24,12 +25,11 @@ export class MatSpinnerOverlayComponent implements OnInit, AfterViewInit {
   @Input() mode: ProgressSpinnerMode = 'indeterminate';
   @Input() strokeWidth = 10;
   @Input() overlay = false;
-  @Input() color: ThemePalette = 'primary';
   /**
    * Overrides diameter and strokeWidth settings, only possible if overlay is false
    */
   @Input() parentFontContainer: HTMLElement = null;
-  @Input() useCustomCSSColor = false;
+  @Input() color: SpinnerTheme = 'primary';
 
   constructor(private element: ElementRef<HTMLElement>,
               private renderer2: Renderer2) {
@@ -53,7 +53,7 @@ export class MatSpinnerOverlayComponent implements OnInit, AfterViewInit {
       return;
     }
     this.renderer2.setStyle(svg[0], 'position', 'static');
-    if (this.useCustomCSSColor && svg[0].firstElementChild) {
+    if (svg[0].firstElementChild) {
       this.renderer2.setStyle(svg[0].firstElementChild, 'stroke', 'currentColor', RendererStyleFlags2.Important);
     }
   }
diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.html b/src/app/components/shared/questionwall/question-wall/question-wall.component.html
index 5c780b45a7b9995f3d6a341a47136f7f26c9f767..6161296e31747039d2026a4d252ea2f5908d3377 100644
--- a/src/app/components/shared/questionwall/question-wall/question-wall.component.html
+++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.html
@@ -1,7 +1,4 @@
-<app-mat-spinner-overlay *ngIf="isLoading"
-                         [overlay]="true"
-                         [useCustomCSSColor]="true">
-</app-mat-spinner-overlay>
+<app-mat-spinner-overlay *ngIf="isLoading" [overlay]="true"></app-mat-spinner-overlay>
 <ars-screen ars-flex-box class="questionwall-screen">
   <ars-row [height]="50" class="questionwall-header">
     <ars-style-btn-material *ngIf="room" style="width:100%;height:100%;" ars-flex-box>
diff --git a/src/app/components/shared/questionwall/question-wall/question-wall.component.scss b/src/app/components/shared/questionwall/question-wall/question-wall.component.scss
index e435ea8944df7595c087572a043ef6b71af23a9c..58dac5ddeb9628f3b4711f21fac53c92e5686cc1 100644
--- a/src/app/components/shared/questionwall/question-wall/question-wall.component.scss
+++ b/src/app/components/shared/questionwall/question-wall/question-wall.component.scss
@@ -309,7 +309,3 @@ h2 {
   font-weight: normal !important;
   padding-top: 10px !important;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/quiz-now/quiz-now.component.html b/src/app/components/shared/quiz-now/quiz-now.component.html
index 0b24598d6eeb81b767bfc5e3ad1501b19cf2c194..ecbb031e7aa4e1dc0c2924af2380dac708ea7872 100644
--- a/src/app/components/shared/quiz-now/quiz-now.component.html
+++ b/src/app/components/shared/quiz-now/quiz-now.component.html
@@ -1,7 +1,4 @@
-<app-mat-spinner-overlay *ngIf="isLoading"
-                         overlay="true"
-                         useCustomCSSColor="true">
-</app-mat-spinner-overlay>
+<app-mat-spinner-overlay *ngIf="isLoading" overlay="true"></app-mat-spinner-overlay>
 <div class="container">
   <iframe class="responsive-iframe" [src]="urlSafe"
           (load)="isLoading = false"
diff --git a/src/app/components/shared/quiz-now/quiz-now.component.scss b/src/app/components/shared/quiz-now/quiz-now.component.scss
index 7c334602eeae117754d9201661d8c9f3bdff6e7d..c4785b36853df6e11b794b3f6b9a944a4163e941 100644
--- a/src/app/components/shared/quiz-now/quiz-now.component.scss
+++ b/src/app/components/shared/quiz-now/quiz-now.component.scss
@@ -16,7 +16,3 @@ iframe {
   width: 100%;
   height: 100%;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/room-list/room-list.component.html b/src/app/components/shared/room-list/room-list.component.html
index 9740726c01f3e91fc35b44374086ae2e2fc2144a..cb1e4025c63f67922518909b9055829a50e24da6 100644
--- a/src/app/components/shared/room-list/room-list.component.html
+++ b/src/app/components/shared/room-list/room-list.component.html
@@ -1,7 +1,6 @@
 <div *ngIf="isLoading" fxLayout="column" fxLayoutAlign="center" fxFill>
   <div fxLayout="row" fxLayoutAlign="center">
-    <app-mat-spinner-overlay [useCustomCSSColor]="true" diameter="80" strokeWidth="8">
-    </app-mat-spinner-overlay>
+    <app-mat-spinner-overlay diameter="80" strokeWidth="8"></app-mat-spinner-overlay>
   </div>
 </div>
 
diff --git a/src/app/components/shared/room-list/room-list.component.scss b/src/app/components/shared/room-list/room-list.component.scss
index 2d9123091ea75f58036953316fcf7971c1f0cb5f..a5c5f7d854e7b690113e9f2c21e5154f02c27306 100644
--- a/src/app/components/shared/room-list/room-list.component.scss
+++ b/src/app/components/shared/room-list/room-list.component.scss
@@ -100,7 +100,3 @@ th, tr {
 .warn {
   color: var(--red) !important;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/tag-cloud/tag-cloud.component.html b/src/app/components/shared/tag-cloud/tag-cloud.component.html
index 5d61d5aba8ecef9d1c41f3e52b674d05b93a4d01..d9c02c754ef0e66571e3fe232902d212454864a1 100644
--- a/src/app/components/shared/tag-cloud/tag-cloud.component.html
+++ b/src/app/components/shared/tag-cloud/tag-cloud.component.html
@@ -3,20 +3,17 @@
   href="https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Dancing+Script&family=Indie+Flower&family=Permanent+Marker&display=swap"
   rel="stylesheet">
 <ars-screen ars-flex-box>
-  <h1 *ngIf="user && user.role > 0 && question" class="tag-cloud-brainstorming-question mat-display-1">
-    {{question}}
-  </h1>
-  <mat-drawer-container class="spacyTagCloudContainer">
-    <mat-drawer [(opened)]="configurationOpen" position="end" mode="over">
-      <app-cloud-configuration [parent]="this"></app-cloud-configuration>
+  <mat-drawer-container class="spacyTagCloudContainer" [hasBackdrop]="true">
+    <mat-drawer position="end" mode="over" (closed)="cloudComponent.closePanel()" (opened)="cloudComponent.openPanel()">
+      <app-cloud-configuration #cloudComponent [parent]="this"></app-cloud-configuration>
     </mat-drawer>
     <mat-drawer-content>
+      <h1 *ngIf="user && user.role > 0 && question" class="tag-cloud-brainstorming-question mat-display-1">
+        {{question}}
+      </h1>
       <ars-fill ars-flex-box>
         <app-tag-cloud-pop-up></app-tag-cloud-pop-up>
-        <app-mat-spinner-overlay *ngIf="isLoading"
-                                 overlay="true"
-                                 [useCustomCSSColor]="true">
-        </app-mat-spinner-overlay>
+        <app-mat-spinner-overlay *ngIf="isLoading" overlay="true"></app-mat-spinner-overlay>
         <angular-tag-cloud
           id="tagCloudComponent"
           class="spacyTagCloud"
@@ -33,15 +30,15 @@
         </angular-tag-cloud>
         <app-active-user [room]="this.room" [top]="120"></app-active-user>
       </ars-fill>
+      <button *ngIf="((user && user.role > 0) || (room && !room.questionsBlocked)) && drawer && !drawer.opened"
+              mat-fab
+              mat-icon-button
+              aria-labelledby="add"
+              class="fab_add_comment"
+              (click)="createCommentWrapper.openCreateDialog(this.user)"
+              matTooltip="{{ 'comment-list.add-comment' | translate }}">
+        <mat-icon>add</mat-icon>
+      </button>
     </mat-drawer-content>
   </mat-drawer-container>
 </ars-screen>
-<button *ngIf="((user && user.role > 0) || (room && !room.questionsBlocked)) && !configurationOpen"
-        mat-fab
-        mat-icon-button
-        aria-labelledby="add"
-        class="fab_add_comment"
-        (click)="createCommentWrapper.openCreateDialog(this.user)"
-        matTooltip="{{ 'comment-list.add-comment' | translate }}">
-  <mat-icon>add</mat-icon>
-</button>
diff --git a/src/app/components/shared/tag-cloud/tag-cloud.component.scss b/src/app/components/shared/tag-cloud/tag-cloud.component.scss
index 342b41d255963ec864477525ca77729ee0118cab..e277c89c4e79591d037bb07a1d02498f6a39b206 100644
--- a/src/app/components/shared/tag-cloud/tag-cloud.component.scss
+++ b/src/app/components/shared/tag-cloud/tag-cloud.component.scss
@@ -69,7 +69,3 @@ app-tag-cloud-pop-up {
   font-family: var(--tag-cloud-font-family, 'Dancing Script');
   font-size: 50px;
 }
-
-app-mat-spinner-overlay {
-  color: var(--primary);
-}
diff --git a/src/app/components/shared/tag-cloud/tag-cloud.component.ts b/src/app/components/shared/tag-cloud/tag-cloud.component.ts
index f87a6424c3aa73aefb5e9db0c5fa23a8fbe33aa5..b182d018b15ea06560919ccb1d7cb5f8705fc5f6 100644
--- a/src/app/components/shared/tag-cloud/tag-cloud.component.ts
+++ b/src/app/components/shared/tag-cloud/tag-cloud.component.ts
@@ -1,4 +1,4 @@
-import { AfterContentInit, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
+import { AfterContentInit, AfterViewInit, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';
 
 import {
   CloudData,
@@ -30,6 +30,7 @@ import { WsRoomService } from '../../../services/websockets/ws-room.service';
 import { CloudParameters, CloudTextStyle } from '../../../utils/cloud-parameters';
 import { SmartDebounce } from '../../../utils/smart-debounce';
 import { Theme } from '../../../../theme/Theme';
+import { MatDrawer } from '@angular/material/sidenav';
 
 class CustomPosition implements Position {
   left: number;
@@ -74,6 +75,8 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit {
 
   @ViewChild(TCloudComponent, { static: false }) child: TCloudComponent;
   @ViewChild(TagCloudPopUpComponent) popup: TagCloudPopUpComponent;
+  @ViewChild(MatDrawer) drawer: MatDrawer;
+
   @Input() user: User;
   @Input() roomId: string;
   room: Room;
@@ -93,7 +96,6 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit {
   };
   userRole: UserRole;
   data: TagComment[] = [];
-  configurationOpen = false;
   isLoading = true;
   headerInterface = null;
   themeSubscription = null;
@@ -105,7 +107,7 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit {
   private _calcCanvas: HTMLCanvasElement = null;
   private _calcRenderContext: CanvasRenderingContext2D = null;
   private _calcFont: string = null;
-  private readonly _smartDebounce = new SmartDebounce(1, 1_000);
+  private readonly _smartDebounce = new SmartDebounce(50, 1_000);
   private _currentTheme: Theme;
 
   constructor(private commentService: CommentService,
@@ -128,7 +130,7 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit {
       this.translateService.use(lang);
     });
     this._currentSettings = TagCloudComponent.getCurrentCloudParameters();
-    this.question = this._currentSettings.question;
+    this.question = localStorage.getItem('tag-cloud-question');
     this._calcCanvas = document.createElement('canvas');
     this._calcRenderContext = this._calcCanvas.getContext('2d');
   }
@@ -150,7 +152,11 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit {
       if (e === 'createQuestion') {
         this.createCommentWrapper.openCreateDialog(this.user);
       } else if (e === 'topicCloudConfig') {
-        this.configurationOpen = !this.configurationOpen;
+        if (this.drawer.opened) {
+          this.drawer.close();
+        } else {
+          this.drawer.open();
+        }
       } else if (e === 'topicCloudAdministration') {
         this.dialog.open(TopicCloudAdministrationComponent, {
           minWidth: '50%',
@@ -267,7 +273,8 @@ export class TagCloudComponent implements OnInit, OnDestroy, AfterContentInit {
   resetColorsToTheme() {
     const param = new CloudParameters();
     param.resetToDefault(this._currentTheme.isDark);
-    this.setCloudParameters(param, true);
+    this.setCloudParameters(param, false);
+    CloudParameters.removeParameters();
   }
 
   onResize(event: UIEvent): any {
diff --git a/src/app/models/rescale.ts b/src/app/models/rescale.ts
index dfeeb693f5d8b186ddf2e2a0036179c850fe8552..26c79a97bb87c3f91ab4b4c87059615bd690eee4 100644
--- a/src/app/models/rescale.ts
+++ b/src/app/models/rescale.ts
@@ -1,4 +1,3 @@
-
 export class Rescale {
 
   private static isFullscreen: boolean;
@@ -12,14 +11,20 @@ export class Rescale {
   private state = 0;
 
   public static requestFullscreen() {
-    if (Rescale.isFullscreen) {return; }
+    if (Rescale.isFullscreen) {
+      return;
+    }
     Rescale.isFullscreen = true;
     document.body.requestFullscreen();
   }
 
   public static exitFullscreen() {
-    if (!Rescale.isFullscreen) {return; }
-    if (Rescale.isRescaleFullscreen) {return; }
+    if (!Rescale.isFullscreen) {
+      return;
+    }
+    if (Rescale.isRescaleFullscreen) {
+      return;
+    }
     Rescale.isFullscreen = false;
     document.exitFullscreen();
   }
@@ -52,6 +57,10 @@ export class Rescale {
     this.setScale(this.defaultScale);
   }
 
+  public getInitialScale() {
+    return this.cachedScale;
+  }
+
   public setScale(scale: number) {
     this.scale = scale;
     if (this.scale < 0.1) {
@@ -89,7 +98,7 @@ export class Rescale {
           this.toggleHeader(true);
           this.toggleFooter(true);
         }, 600);
-      break;
+        break;
       case 1:
         Rescale.requestFullscreenByRescale();
         setTimeout(() => {
@@ -99,8 +108,10 @@ export class Rescale {
         setTimeout(() => {
           this.toggleRescaler(true);
         }, 600);
-      break;
-      default: console.error('updateState, this should not happen.'); break;
+        break;
+      default:
+        console.error('updateState, this should not happen.');
+        break;
     }
   }
 
diff --git a/src/app/utils/cloud-parameters.ts b/src/app/utils/cloud-parameters.ts
index 74d7a02efc87cd6347736816c1a0be5a67d7735c..751bd0b2eef276658caf730bca3f1cd8303fffbb 100644
--- a/src/app/utils/cloud-parameters.ts
+++ b/src/app/utils/cloud-parameters.ts
@@ -51,6 +51,10 @@ export class CloudParameters {
     localStorage.setItem('tagCloudConfiguration', JSON.stringify(parameters));
   }
 
+  static removeParameters() {
+    localStorage.removeItem('tagCloudConfiguration');
+  }
+
   fontFamily: string;
   fontStyle: string;
   fontWeight: string;
@@ -65,7 +69,6 @@ export class CloudParameters {
   delayWord: number;
   randomAngles: boolean;
   sortAlphabetically: boolean;
-  question: string;
   textTransform: CloudTextStyle;
   cloudWeightSettings: CloudWeightSettings;
 
@@ -85,7 +88,6 @@ export class CloudParameters {
       this.delayWord = obj.delayWord;
       this.randomAngles = obj.randomAngles;
       this.sortAlphabetically = obj.sortAlphabetically;
-      this.question = obj.question;
       this.textTransform = obj.textTransform;
       this.cloudWeightSettings = [
         { ...obj.cloudWeightSettings[0] },
@@ -149,7 +151,6 @@ export class CloudParameters {
     this.delayWord = 100;
     this.randomAngles = false;
     this.sortAlphabetically = false;
-    this.question = '';
     this.textTransform = CloudTextStyle.capitalized;
     this.cloudWeightSettings = [
       {