diff --git a/Makefile b/Makefile
index 46f1f62c959751a404550dc57379b2a3a8d2dae4..584c21a4fa28dae5c01c093ed5038f1495613a08 100644
--- a/Makefile
+++ b/Makefile
@@ -77,19 +77,20 @@ test-unit: $(CODECEPT)
 
 catalogs: npm $(CATALOGS)
 
-# black = #000000
-# blue = #28497c
-# green = #00962d
-# grey = #6e6e6e
-# red = #cb1800
-# white = #ffffff
-# yellow = #ffad00
-icons:
-	declare -A colorMap=(["black"]="#000000" ["green"]="#00962d" ["grey"]="#6e6e6e" ["red"]="#cb1800" ["white"]="#ffffff" ["yellow"]="#ffad00")
+clean-icons:
+	find public/assets/images/icons -type f -not -path '*blue*' -delete
 
 optimize-icons: npm
 	find public/assets/images/icons -type f | xargs -P0 npx svgo -q --config=config/svgo.config.js
 
+icons: optimize-icons
+	find public/assets/images/icons/blue -type f -print0 | xargs -0 -n1 -I{} echo 'sed "s/#28497c/#000000/" {} > {}' | sed 's#icons/blue#icons/black#2' | sh
+	find public/assets/images/icons/blue -type f -print0 | xargs -0 -n1 -I{} echo 'sed "s/#28497c/#00962d/" {} > {}' | sed 's#icons/blue#icons/green#2' | sh
+	find public/assets/images/icons/blue -type f -print0 | xargs -0 -n1 -I{} echo 'sed "s/#28497c/#6e6e6e/" {} > {}' | sed 's#icons/blue#icons/grey#2' | sh
+	find public/assets/images/icons/blue -type f -print0 | xargs -0 -n1 -I{} echo 'sed "s/#28497c/#cb1800/" {} > {}' | sed 's#icons/blue#icons/red#2' | sh
+	find public/assets/images/icons/blue -type f -print0 | xargs -0 -n1 -I{} echo 'sed "s/#28497c/#ffffff/" {} > {}' | sed 's#icons/blue#icons/white#2' | sh
+	find public/assets/images/icons/blue -type f -print0 | xargs -0 -n1 -I{} echo 'sed "s/#28497c/#ffad00/" {} > {}' | sed 's#icons/blue#icons/yellow#2' | sh
+
 # default rules for gettext handling
 js-%.pot: $(VUE_SOURCES)
 	npx gettext-extract --attribute v-translate --output $@ $(VUE_SOURCES)