diff --git a/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java b/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
index 725825a31ffbfec5008730e1d3573feccc94b110..768786ea48295503bfe338f32cb04b24bff85c79 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/accounts/Account.java
@@ -146,7 +146,7 @@ public class Account implements ProvidesID, Iconizable
 	}
 
 	@Override
-	public String getFontColor()
+	public String getFontColor(boolean isDarkTheme)
 	{
 		final Icon icon = getIconReference();
 		if(icon == null)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
index 1757a93787fe010f0ce416c0e19ba796e7179b9a..97818717dbc197470cb0d390bbcd0bd569c5de7b 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/categories/Category.java
@@ -110,7 +110,7 @@ public class Category implements ProvidesID, Iconizable
 	}
 
 	@Override
-	public String getFontColor()
+	public String getFontColor(boolean isDarkTheme)
 	{
 		final Icon icon = getIconReference();
 		if(icon == null)
diff --git a/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java b/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
index defb1b34799376a54a788c83fd74e11b122b1c1f..e0daf1b24ce7e0104f890ed2c220942031ef87ab 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/icon/Iconizable.java
@@ -31,5 +31,5 @@ public interface Iconizable extends ProvidesID
 		this.setIconReference(icon);
 	}
 
-	String getFontColor();
+	String getFontColor(boolean isDarkTheme);
 }
diff --git a/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java b/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
index 3a12aacf800e49f59cded14a3eeac17f9f3aa9dd..07e532d7980eebd992d077d7c8469a65546901a9 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/templates/Template.java
@@ -18,6 +18,9 @@ import java.util.Objects;
 @Entity
 public class Template implements TransactionBase, Iconizable
 {
+	private static final String FONT_COLOR_LIGHT_THEME = "#212121";
+	private static final String FONT_COLOR_DARK_THEME = "#FFFFFF";
+
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	@Expose
@@ -213,23 +216,34 @@ public class Template implements TransactionBase, Iconizable
 	}
 
 	@Override
-	public String getFontColor()
+	public String getFontColor(boolean isDarkTheme)
 	{
 		final Icon icon = getIconReference();
 		if(icon == null)
 		{
-			return "#FFFFFF";
+			return getAppropriateTextColor(isDarkTheme);
 		}
 
 		final String fontColor = icon.getFontColor();
 		if(fontColor == null)
 		{
-			return "#FFFFFF";
+			return getAppropriateTextColor(isDarkTheme);
 		}
 
 		return fontColor;
 	}
 
+	private String getAppropriateTextColor(boolean isDarkTheme)
+	{
+		if(isDarkTheme)
+		{
+			return FONT_COLOR_DARK_THEME;
+		}
+
+		return FONT_COLOR_LIGHT_THEME;
+	}
+
+
 	public List<Tag> getTags()
 	{
 		return tags;
diff --git a/src/main/resources/templates/categories/categoriesFunctions.ftl b/src/main/resources/templates/categories/categoriesFunctions.ftl
index f112cda010041999326e5c0d49d10638a30a8b16..4211157076ce84bbf96bec79013cbdbf0ede86a4 100644
--- a/src/main/resources/templates/categories/categoriesFunctions.ftl
+++ b/src/main/resources/templates/categories/categoriesFunctions.ftl
@@ -23,7 +23,7 @@
     </#if>
 
     <div class="category-circle ${classes} <#if settings.getShowCategoriesAsCircles()?? && settings.getShowCategoriesAsCircles() == false>category-square</#if>" style="background-color: ${category.color}" <#if datasetValue>data-value="${category.getID()}"</#if>>
-        <span style="color: ${category.getFontColor()}">
+        <span style="color: ${category.getFontColor(settings.isUseDarkTheme())}">
             <@header.entityIcon entity=category classes="category-icon" fallbackName=categoryName/>
         </span>
     </div>
diff --git a/src/main/resources/templates/helpers/customSelectMacros.ftl b/src/main/resources/templates/helpers/customSelectMacros.ftl
index 9e9478618d6e2f9a619ce188338bcf97100ba9fe..c76bd77653ab3da3626a541c135c22eee3244c05 100644
--- a/src/main/resources/templates/helpers/customSelectMacros.ftl
+++ b/src/main/resources/templates/helpers/customSelectMacros.ftl
@@ -164,7 +164,7 @@
 
 <#macro accountIcon account accountName classes="" datasetValue="">
     <div class="category-circle ${classes} category-square <#if account.getIconReference()?? && account.getIconReference().isFallbackIcon()>account-square-border</#if>" <#if datasetValue?has_content>data-value="${account.getID()}"</#if>>
-        <span style="color: ${account.getFontColor()}">
+        <span style="color: ${account.getFontColor(settings.isUseDarkTheme())}">
             <@header.entityIcon entity=account classes="account-select-icon" fallbackName=accountName/>
         </span>
     </div>
diff --git a/src/main/resources/templates/helpers/fontColorPicker.ftl b/src/main/resources/templates/helpers/fontColorPicker.ftl
index c995ee4b1bcf8ee6da96c7bd87910224510783d4..73af8584bd0d8ec57542ad208289df99fdb0d87d 100644
--- a/src/main/resources/templates/helpers/fontColorPicker.ftl
+++ b/src/main/resources/templates/helpers/fontColorPicker.ftl
@@ -1,7 +1,7 @@
 <#import "../helpers/header.ftl" as header>
 
 <#macro fontColorPicker item>
-    <input type="hidden" name="fontColor" id="fontColor" value="${item.getFontColor()}">
+    <input type="hidden" name="fontColor" id="fontColor" value="${item.getFontColor(settings.isUseDarkTheme())}">
 
     <div class="row">
         <div class="input-field col s12 m12 l8 offset-l2">
@@ -12,7 +12,7 @@
                 <@header.buttonLink url='' icon='auto_fix_high' id='buttonFontColorAuto' localizationKey='account.new.icon.fontcolor.clear' noUrl=true/>
 
                 <div id="fontColorPickerContainer" class="valign-wrapper">
-                    <div id="fontColorPicker" style="background-color: ${item.getFontColor()}"></div>
+                    <div id="fontColorPicker" style="background-color: ${item.getFontColor(settings.isUseDarkTheme())}"></div>
                 </div>
             </div>
         </div>
diff --git a/src/main/resources/templates/helpers/iconSelect.ftl b/src/main/resources/templates/helpers/iconSelect.ftl
index f29f9dd2cec5290f2541f5dbbc0f259389f1b46b..db0caf5d670647315471f9d2ca8991b20293d273 100644
--- a/src/main/resources/templates/helpers/iconSelect.ftl
+++ b/src/main/resources/templates/helpers/iconSelect.ftl
@@ -12,7 +12,7 @@
 
             <div id="${id}" class="valign-wrapper item-icon">
                 <div class="item-icon-preview-container">
-                    <a id="item-icon-preview" style="color: <#if item.getFontColor()??>${item.getFontColor()}</#if>">
+                    <a id="item-icon-preview" style="color: <#if item.getFontColor(settings.isUseDarkTheme())??>${item.getFontColor(settings.isUseDarkTheme())}</#if>">
                         <script>iconSelectAdditionalBackgroundClasses = "${backgroundClasses}";</script>
                         <div id="item-icon-preview-background" class="category-circle category-circle-preview <#if settings.getShowCategoriesAsCircles()?? && settings.getShowCategoriesAsCircles() == false>category-square</#if> ${initialBackgroundClasses}" style="background-color: <#if showBackground>${item.getColor()}</#if>">
                             <i id="builtin-icon-preview-icon" class="<#if hasBuiltinIcon>${item.getIconReference().getBuiltinIdentifier()}<#else>hidden</#if>"></i>
diff --git a/src/main/resources/templates/templates/templateFunctions.ftl b/src/main/resources/templates/templates/templateFunctions.ftl
index ca147ab11e7ffb4cfa60a8105740c483684421d3..06b3b71f1eb1c834ce62401a9ea0896edebf2391 100644
--- a/src/main/resources/templates/templates/templateFunctions.ftl
+++ b/src/main/resources/templates/templates/templateFunctions.ftl
@@ -98,7 +98,7 @@
 
 
 <#macro templateHeader template>
-    <span style="color: ${template.getFontColor()}">
+    <span style="color: ${template.getFontColor(settings.isUseDarkTheme())}">
         <#if template.getIconReference()?? && (template.getIconReference().isImageIcon() || template.getIconReference().isBuiltinIcon())>
             <@header.entityIcon entity=template classes="template-icon"/>
         <#elseif template.getTransferAccount()??>