diff --git a/docs/release-notes-editor.md b/docs/release-notes-editor.md
index 46471f5ce1a5fe6dfd57ce5a38bfc4a958b8d90b..6244b7e559176a859eadac0e31dc4479f2263283 100644
--- a/docs/release-notes-editor.md
+++ b/docs/release-notes-editor.md
@@ -1,5 +1,9 @@
 Editor
 ======
+## 1.35.1
+
+### Verbesserungen
+- Das Aussehen von Formelelementen kann im Eigenschaftsfenster geändert werden   
 
 ## 1.35.0
 
diff --git a/docs/release-notes-player.md b/docs/release-notes-player.md
index f51e751119757bff5bfbcfd1e3b0a9d9a66cc994..f65f32d96af5e11e8d1a18116473aef9048bd6ce 100644
--- a/docs/release-notes-player.md
+++ b/docs/release-notes-player.md
@@ -1,5 +1,14 @@
 Player
 ======
+## 1.28.1
+### Verbesserungen
+- Darstellung und Verhalten der Warnmeldung von Formelelementen
+  verhalten sich analog zu anderen Elementen
+
+### Fehlerbehebungen
+- Behebt das versehentliche Löschen von Text beim Entfernen von 
+  Markierungen aus Textelementen (im Firefox-Browser)  
+
 
 ## 1.28.0
 
diff --git a/package.json b/package.json
index 5ac5a192607367c58e7e70e3fd024752953a0c5e..bc8b4b373844155e7db73b4e42abcdf398f5247d 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,8 @@
 {
   "name": "verona-modules-aspect",
   "config": {
-    "player_version": "1.28.0",
-    "editor_version": "1.35.0",
+    "player_version": "1.28.1",
+    "editor_version": "1.35.1",
     "unit_definition_version": "3.8.0"
   },
   "scripts": {
diff --git a/projects/common/components/input-elements/math-field.component.ts b/projects/common/components/input-elements/math-field.component.ts
index df1165464577428499d3442882b69a7e7e7ad08e..78a12560f22471c12c693e89e26c18b435a636b7 100644
--- a/projects/common/components/input-elements/math-field.component.ts
+++ b/projects/common/components/input-elements/math-field.component.ts
@@ -9,16 +9,27 @@ import { MathFieldElement } from 'common/models/elements/input-elements/math-fie
 @Component({
   selector: 'aspect-math-field',
   template: `
-    <label>{{elementModel.label}}</label><br>
-    <aspect-mathlive-math-field [value]="$any(elementModel.value) | getValue: elementFormControl.value : parentForm"
-                                [enableModeSwitch]="elementModel.enableModeSwitch"
-                                (input)="elementFormControl.setValue($any($event.target).value)"
-                                (focusout)="elementFormControl.markAsTouched()">
-    </aspect-mathlive-math-field>
-    <mat-error *ngIf="elementFormControl.errors">
-      {{elementFormControl.errors | errorTransform: elementModel}}
-    </mat-error>
-  `
+  <div [style.line-height.%]="elementModel.styling.lineHeight"
+       [style.color]="elementModel.styling.fontColor"
+       [style.font-family]="elementModel.styling.font"
+       [style.font-size.px]="elementModel.styling.fontSize"
+       [style.font-weight]="elementModel.styling.bold ? 'bold' : ''"
+       [style.font-style]="elementModel.styling.italic ? 'italic' : ''"
+       [style.text-decoration]="elementModel.styling.underline ? 'underline' : ''"
+       [style.backgroundColor]="elementModel.styling.backgroundColor">
+      <label>{{elementModel.label}}</label><br>
+      <aspect-mathlive-math-field [value]="$any(elementModel.value) | getValue: elementFormControl.value : parentForm"
+                                  [enableModeSwitch]="elementModel.enableModeSwitch"
+                                  (input)="elementFormControl.setValue($any($event.target).value)"
+                                  (focusout)="elementFormControl.markAsTouched()">
+      </aspect-mathlive-math-field>
+      <mat-error *ngIf="elementFormControl.errors && elementFormControl.touched"
+                 class="error-message">
+        {{elementFormControl.errors | errorTransform: elementModel}}
+      </mat-error>
+  </div>
+  `,
+  styles: ['.error-message {font-size: 75%; margin-top: 15px; margin-left: 10px;}']
 })
 export class MathFieldComponent extends FormElementComponent {
   @Input() elementModel!: MathFieldElement;
diff --git a/projects/common/models/elements/input-elements/math-field.ts b/projects/common/models/elements/input-elements/math-field.ts
index 487924ff782d3641a0fb81e54ef1fa06dac7bb86..e6a29bb6449d930850ff8123a3dd25faf1334ac3 100644
--- a/projects/common/models/elements/input-elements/math-field.ts
+++ b/projects/common/models/elements/input-elements/math-field.ts
@@ -1,5 +1,5 @@
 import {
-  AnswerScheme, InputElement, PositionProperties, UIElement
+  AnswerScheme, BasicStyles, InputElement, PositionProperties, UIElement
 } from 'common/models/elements/element';
 import { Type } from '@angular/core';
 import { ElementComponent } from 'common/directives/element-component.directive';
@@ -8,11 +8,21 @@ import { MathFieldComponent } from 'common/components/input-elements/math-field.
 export class MathFieldElement extends InputElement {
   enableModeSwitch: boolean = false;
   position: PositionProperties | undefined;
+  styling: BasicStyles & {
+    lineHeight: number;
+  };
 
   constructor(element: Partial<MathFieldElement>) {
     super(element);
     if (element.enableModeSwitch !== undefined) this.enableModeSwitch = element.enableModeSwitch;
     this.position = element.position ? UIElement.initPositionProps(element.position) : undefined;
+    this.styling = {
+      ...UIElement.initStylingProps({
+        backgroundColor: 'transparent',
+        lineHeight: 135,
+        ...element.styling
+      })
+    };
   }
 
   hasAnswerScheme(): boolean {
@@ -23,7 +33,7 @@ export class MathFieldElement extends InputElement {
     return {
       id: this.id,
       type: 'string',
-      format: '',
+      format: 'latex',
       multiple: false,
       nullable: !this.value && this.value !== '',
       values: [],
diff --git a/projects/player/src/app/services/text-marking.service.ts b/projects/player/src/app/services/text-marking.service.ts
index e1dd89d2a0ea3ea57859b8c0b6a0594c58ad9554..f1a66b781c6131d24e88690e9246628078fac18f 100644
--- a/projects/player/src/app/services/text-marking.service.ts
+++ b/projects/player/src/app/services/text-marking.service.ts
@@ -109,52 +109,43 @@ export class TextMarkingService {
   private static applyRange(
     range: Range, selection: Selection, clear: boolean, color: string
   ): void {
-    if (range.startContainer === range.endContainer) {
+    const nodes: Node[] = TextMarkingService.getSelectedNodes(range, selection);
+    if ((range.startContainer === range.endContainer) && range.startContainer.nodeType === Node.TEXT_NODE) {
       if (clear) {
-        TextMarkingService.clearMarkingFromNode(range);
+        if (range.startContainer.nodeType === Node.TEXT_NODE) {
+          TextMarkingService.clearMarkingFromNode(range);
+        } else {
+          TextMarkingService.clearNodes(nodes, range);
+        }
       } else {
         TextMarkingService.markNode(range, color);
       }
+    } else if (clear) {
+      TextMarkingService.clearNodes(nodes, range);
     } else {
-      const nodes: Node[] = TextMarkingService.getSelectedNodes(range, selection);
-      if (clear) {
-        TextMarkingService.clearNodes(nodes, range);
-      } else {
-        TextMarkingService.markNodes(nodes, range, color);
-      }
+      TextMarkingService.markNodes(nodes, range, color);
     }
   }
 
   private static getSelectedNodes = (range: Range, selection: Selection): Node[] => {
+    let startContainerNodes: Node[] = [];
+    const endContainerNodes: Node[] = [];
     const nodes: Node[] = TextMarkingService.findNodes(range.commonAncestorContainer.childNodes, selection);
-    // When the user finishes selecting between paragraphs and the selection happens from
-    // back to front, Firefox does not consider the start container as a selected child node.
-    // Therefore, it is added to the list of selected nodes at the beginning.
+    // The range is structured differently in FF and Chrome.
+    // With the same selection startcontainer and endcontainer differ.
+    // Under certain conditions, startcontainer and endcontainer are not present
+    // in the list of child nodes in FF and must therefore be added here
     if (!nodes.includes(range.startContainer)) {
-      nodes.unshift(range.startContainer);
-    }
-    // When the user finishes selecting between paragraphs the browser does not consider the end container
-    // as a selected child node. Therefore, it is added to the list of selected nodes at the end.
-    if (range.endOffset === 0) {
-      const endContainer = TextMarkingService.getEndContainer(range.endContainer);
-      if (endContainer && !nodes.includes(endContainer)) {
-        nodes.push(endContainer);
-      }
-    }
-    return nodes;
-  };
-
-  private static getEndContainer = (endContainer: Node): Node | null => {
-    if (endContainer.nodeType === Node.ELEMENT_NODE) {
-      if (endContainer.childNodes.length) {
-        return (endContainer.childNodes[0]);
+      if (range.startContainer.nodeType === Node.TEXT_NODE) {
+        startContainerNodes.push(range.startContainer);
+      } else {
+        startContainerNodes = TextMarkingService.findNodes(range.startContainer.childNodes, selection);
       }
-      return endContainer;
     }
-    if (endContainer.nodeType === Node.TEXT_NODE) {
-      return endContainer;
+    if (range.endOffset === 0 && !nodes.includes(range.endContainer) && !range.endContainer.childNodes.length) {
+      endContainerNodes.push(range.endContainer);
     }
-    return null;
+    return [...startContainerNodes, ...nodes, ...endContainerNodes];
   };
 
   private static clearMarkingFromNode(range: Range): void {