diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme
index 832a981bddbc601b34846f3a0ac3659ef2fbfc31..1211ebbd1681c099cc91a7d9ca1cd35d71bc615d 100644
--- a/share/qtcreator/themes/dark.creatortheme
+++ b/share/qtcreator/themes/dark.creatortheme
@@ -49,6 +49,7 @@ FancyToolButtonHoverColor=hoverBackground
 FancyToolButtonSelectedColor=selectedBackground
 FutureProgressBackgroundColor=shadowBackground
 IconsBaseColor=ffdcdcdc
+IconsDisabledColor=textDisabled
 IconsInfoColor=ff43aced
 IconsWarningColor=fff9ce1f
 IconsErrorColor=ffe8555a
@@ -57,6 +58,15 @@ IconsStopColor=ffe7353b
 IconsDebugColor=ffb8c6ff
 IconsInterruptColor=ff7488db
 IconsNavigationArrowsColor=ffebc322
+IconsBuildHammerHandleColor=ffdd7710
+IconsBuildHammerHeadColor=ff989898
+IconsModeWelcomeActiveColor=ff80c342
+IconsModeEditActiveColor=ff99aaef
+IconsModeDesignActiveColor=ffbb6000
+IconsModeDebugActiveColor=ff99aaef
+IconsModeProjetcsActiveColor=ff80c342
+IconsModeAnalyzeActiveColor=ff43adee
+IconsModeHelpActiveColor=fff4be04
 InfoBarBackground=ff505000
 InfoBarText=text
 MenuBarEmptyAreaBackgroundColor=shadowBackground
@@ -157,6 +167,7 @@ DrawProgressBarSunken=false
 DrawSearchResultWidgetFrame=false
 DrawTargetSelectorBottom=false
 ApplyThemePaletteGlobally=true
+FlatSideBarIcons=true
 
 [Gradients]
 DetailsWidgetHeaderGradient\1\color=0
diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme
index bc09f594bb548fb3147b23f69452a1800967f4e7..2346a5a13ea155e03434825a5e0ee68cefe0f701 100644
--- a/share/qtcreator/themes/default.creatortheme
+++ b/share/qtcreator/themes/default.creatortheme
@@ -3,8 +3,9 @@ ThemeName=default
 PreferredStyles=
 
 [Palette]
-brightText = ffffffff
-darkText   = ff000000
+brightText=ffffffff
+darkText=ff000000
+textDisabled=99a0a0a0
 
 [Colors]
 BackgroundColorAlternate=ff3d3d3d
@@ -35,14 +36,15 @@ DoubleTabWidget2ndTabBackgroundColor=ffff0000
 DoubleTabWidget2ndTabInactiveTextColor=ff000000
 EditorPlaceholderColor=ffe0dcd8
 FancyTabBarBackgroundColor=ffff0000
-FancyTabWidgetDisabledSelectedTextColor=ffffffff
-FancyTabWidgetDisabledUnselectedTextColor=78ffffff
+FancyTabWidgetDisabledSelectedTextColor=textDisabled
+FancyTabWidgetDisabledUnselectedTextColor=textDisabled
 FancyTabWidgetEnabledSelectedTextColor=ff3c3c3c
 FancyTabWidgetEnabledUnselectedTextColor=ffffffff
 FancyToolButtonHoverColor=28ffffff
 FancyToolButtonSelectedColor=32000000
 FutureProgressBackgroundColor=ffff0000
 IconsBaseColor=ffdcdcdc
+IconsDisabledColor=textDisabled
 IconsInfoColor=ff43aced
 IconsWarningColor=fff9ce1f
 IconsErrorColor=ffe8555a
@@ -51,6 +53,15 @@ IconsStopColor=ffe7353b
 IconsDebugColor=ffb8c6ff
 IconsInterruptColor=ff7488db
 IconsNavigationArrowsColor=ffebc322
+IconsBuildHammerHandleColor=ffdd7710
+IconsBuildHammerHeadColor=ff989898
+IconsModeWelcomeActiveColor=ff5caa15
+IconsModeEditActiveColor=ff6a6add
+IconsModeDesignActiveColor=ffbb6000
+IconsModeDebugActiveColor=ff6a6add
+IconsModeProjetcsActiveColor=ff5caa15
+IconsModeAnalyzeActiveColor=ff43adee
+IconsModeHelpActiveColor=fffaa836
 InfoBarBackground=ffffffe1
 InfoBarText=ff000000
 MenuBarEmptyAreaBackgroundColor=ffff0000
@@ -151,6 +162,7 @@ DrawProgressBarSunken=true
 DrawSearchResultWidgetFrame=true
 DrawTargetSelectorBottom=true
 ApplyThemePaletteGlobally=false
+FlatSideBarIcons=false
 
 [Gradients]
 DetailsWidgetHeaderGradient\1\color=ffffff
diff --git a/src/libs/utils/icon.cpp b/src/libs/utils/icon.cpp
index 402341a320257af725df808b8fe76a5b3e6c9921..8a2286698f9288c40aef8fc993b114d8193a8235 100644
--- a/src/libs/utils/icon.cpp
+++ b/src/libs/utils/icon.cpp
@@ -39,6 +39,7 @@
 #include <QMetaEnum>
 #include <QPainter>
 #include <QPaintEngine>
+#include <QWidget>
 
 namespace Utils {
 
@@ -211,11 +212,40 @@ QString Icon::imageFileName() const
     return first().first;
 }
 
-Icon& Icon::operator=(const Icon &other)
+QIcon Icon::sideBarIcon(const Icon &classic, const Icon &flat)
 {
-    QVector::operator =(other);
-    m_style = other.m_style;
-    return *this;
+    QIcon result;
+    if (creatorTheme()->flag(Theme::FlatSideBarIcons)) {
+        result = flat.icon();
+    } else {
+        const QPixmap pixmap = classic.pixmap();
+        result.addPixmap(pixmap);
+        // Ensure that the icon contains a disabled state of that size, since
+        // Since we have icons with mixed sizes (e.g. DEBUG_START), and want to
+        // avoid that QIcon creates scaled versions of missing QIcon::Disabled
+        // sizes.
+        result.addPixmap(StyleHelper::disabledSideBarIcon(pixmap), QIcon::Disabled);
+    }
+    return result;
+}
+
+QIcon Icon::modeIcon(const Icon &classic, const Icon &flat, const Icon &flatActive)
+{
+    QIcon result = sideBarIcon(classic, flat);
+    if (creatorTheme()->flag(Theme::FlatSideBarIcons))
+        result.addPixmap(flatActive.pixmap(), QIcon::Active);
+    return result;
+}
+
+QIcon Icon::combinedIcon(const QList<QIcon> &icons)
+{
+    QIcon result;
+    QWindow *window = QApplication::allWidgets().first()->windowHandle();
+    for (const QIcon &icon: icons)
+        for (const QIcon::Mode mode: {QIcon::Disabled, QIcon::Normal})
+            for (const QSize &size: icon.availableSizes(mode))
+                result.addPixmap(icon.pixmap(window, size, mode), mode);
+    return result;
 }
 
 } // namespace Utils
diff --git a/src/libs/utils/icon.h b/src/libs/utils/icon.h
index d1916aa0632f51f01747e2a44e5c9b00c44967b6..b8326ac90636db12e81a460b5ccd267177e49be1 100644
--- a/src/libs/utils/icon.h
+++ b/src/libs/utils/icon.h
@@ -60,6 +60,7 @@ public:
     Icon();
     Icon(std::initializer_list<IconMaskAndColor> args, Style style = Style::TintedWithShadow);
     Icon(const QString &imageFileName);
+    Icon(const Icon &other) = default;
 
     QIcon icon() const;
     // Same as icon() but without disabled state.
@@ -69,7 +70,14 @@ public:
     // where icons are still defined as filename.
     QString imageFileName() const;
 
-    Icon &operator=(const Icon &other);
+    // Returns either the classic or a themed icon depending on
+    // the current Theme::FlatModeIcons flag.
+    static QIcon sideBarIcon(const Icon &classic, const Icon &flat);
+    // Like sideBarIcon plus added action mode for the flat icon
+    static QIcon modeIcon(const Icon &classic, const Icon &flat, const Icon &flatActive);
+
+    // Combined icon pixmaps in Normal and Disabled states from several QIcons
+    static QIcon combinedIcon(const QList<QIcon> &icons);
 
 private:
     Style m_style = Style::Plain;
diff --git a/src/libs/utils/stylehelper.cpp b/src/libs/utils/stylehelper.cpp
index 90ef68fb3bd21eb1b7bcfe234c3e4d50f7309e6d..877ea793903d1d796130348d982f3fb8f6389f30 100644
--- a/src/libs/utils/stylehelper.cpp
+++ b/src/libs/utils/stylehelper.cpp
@@ -350,6 +350,21 @@ void StyleHelper::menuGradient(QPainter *painter, const QRect &spanRect, const Q
     }
 }
 
+QPixmap StyleHelper::disabledSideBarIcon(const QPixmap &enabledicon)
+{
+    QImage im = enabledicon.toImage().convertToFormat(QImage::Format_ARGB32);
+    for (int y=0; y<im.height(); ++y) {
+        QRgb *scanLine = reinterpret_cast<QRgb*>(im.scanLine(y));
+        for (int x=0; x<im.width(); ++x) {
+            QRgb pixel = *scanLine;
+            char intensity = char(qGray(pixel));
+            *scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel));
+            ++scanLine;
+        }
+    }
+    return QPixmap::fromImage(im);
+}
+
 // Draws a cached pixmap with shadow
 void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
                                      QPainter *p, QIcon::Mode iconMode, int dipRadius, const QColor &color, const QPoint &dipOffset)
@@ -363,7 +378,8 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
         // return a high-dpi pixmap, which will in that case have a devicePixelRatio
         // different than 1. The shadow drawing caluculations are done in device
         // pixels.
-        QPixmap px = icon.pixmap(rect.size());
+        QWindow *window = QApplication::allWidgets().first()->windowHandle();
+        QPixmap px = icon.pixmap(window, rect.size(), iconMode);
         int devicePixelRatio = qCeil(px.devicePixelRatio());
         int radius = dipRadius * devicePixelRatio;
         QPoint offset = dipOffset * devicePixelRatio;
@@ -372,51 +388,43 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
 
         QPainter cachePainter(&cache);
         if (iconMode == QIcon::Disabled) {
-            QImage im = px.toImage().convertToFormat(QImage::Format_ARGB32);
-            for (int y=0; y<im.height(); ++y) {
-                QRgb *scanLine = (QRgb*)im.scanLine(y);
-                for (int x=0; x<im.width(); ++x) {
-                    QRgb pixel = *scanLine;
-                    char intensity = qGray(pixel);
-                    *scanLine = qRgba(intensity, intensity, intensity, qAlpha(pixel));
-                    ++scanLine;
-                }
-            }
-            px = QPixmap::fromImage(im);
+            const bool hasDisabledState = icon.availableSizes(QIcon::Disabled).contains(px.size());
+            if (!hasDisabledState)
+                px = disabledSideBarIcon(icon.pixmap(window, rect.size()));
+        } else {
+            // Draw shadow
+            QImage tmp(px.size() + QSize(radius * 2, radius * 2 + 1), QImage::Format_ARGB32_Premultiplied);
+            tmp.fill(Qt::transparent);
+
+            QPainter tmpPainter(&tmp);
+            tmpPainter.setCompositionMode(QPainter::CompositionMode_Source);
+            tmpPainter.drawPixmap(QRect(radius, radius, px.width(), px.height()), px);
+            tmpPainter.end();
+
+            // blur the alpha channel
+            QImage blurred(tmp.size(), QImage::Format_ARGB32_Premultiplied);
+            blurred.fill(Qt::transparent);
+            QPainter blurPainter(&blurred);
+            qt_blurImage(&blurPainter, tmp, radius, false, true);
+            blurPainter.end();
+
+            tmp = blurred;
+
+            // blacken the image...
+            tmpPainter.begin(&tmp);
+            tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
+            tmpPainter.fillRect(tmp.rect(), color);
+            tmpPainter.end();
+
+            tmpPainter.begin(&tmp);
+            tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
+            tmpPainter.fillRect(tmp.rect(), color);
+            tmpPainter.end();
+
+            // draw the blurred drop shadow...
+            cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp);
         }
 
-        // Draw shadow
-        QImage tmp(px.size() + QSize(radius * 2, radius * 2 + 1), QImage::Format_ARGB32_Premultiplied);
-        tmp.fill(Qt::transparent);
-
-        QPainter tmpPainter(&tmp);
-        tmpPainter.setCompositionMode(QPainter::CompositionMode_Source);
-        tmpPainter.drawPixmap(QRect(radius, radius, px.width(), px.height()), px);
-        tmpPainter.end();
-
-        // blur the alpha channel
-        QImage blurred(tmp.size(), QImage::Format_ARGB32_Premultiplied);
-        blurred.fill(Qt::transparent);
-        QPainter blurPainter(&blurred);
-        qt_blurImage(&blurPainter, tmp, radius, false, true);
-        blurPainter.end();
-
-        tmp = blurred;
-
-        // blacken the image...
-        tmpPainter.begin(&tmp);
-        tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
-        tmpPainter.fillRect(tmp.rect(), color);
-        tmpPainter.end();
-
-        tmpPainter.begin(&tmp);
-        tmpPainter.setCompositionMode(QPainter::CompositionMode_SourceIn);
-        tmpPainter.fillRect(tmp.rect(), color);
-        tmpPainter.end();
-
-        // draw the blurred drop shadow...
-        cachePainter.drawImage(QRect(0, 0, cache.rect().width(), cache.rect().height()), tmp);
-
         // Draw the actual pixmap...
         cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px);
         cache.setDevicePixelRatio(devicePixelRatio);
diff --git a/src/libs/utils/stylehelper.h b/src/libs/utils/stylehelper.h
index 4e4295f5307eb06a8f9cc88913826d4e2293a310..8c2683335e09d3fdcaf1b5fcb163c75b81c8d782 100644
--- a/src/libs/utils/stylehelper.h
+++ b/src/libs/utils/stylehelper.h
@@ -85,6 +85,7 @@ public:
     static void menuGradient(QPainter *painter, const QRect &spanRect, const QRect &clipRect);
     static bool usePixmapCache() { return true; }
 
+    static QPixmap disabledSideBarIcon(const QPixmap &enabledicon);
     static void drawIconWithShadow(const QIcon &icon, const QRect &rect, QPainter *p, QIcon::Mode iconMode,
                                    int dipRadius = 3, const QColor &color = QColor(0, 0, 0, 130),
                                    const QPoint &dipOffset = QPoint(1, -2));
diff --git a/src/libs/utils/theme/theme.h b/src/libs/utils/theme/theme.h
index bd398847622c3228b20f6eb1c4c74ba26f2bd3b8..e8103a2105c4e9b0a5696af74ec960c1f020ac97 100644
--- a/src/libs/utils/theme/theme.h
+++ b/src/libs/utils/theme/theme.h
@@ -133,6 +133,7 @@ public:
         /* Icons */
 
         IconsBaseColor,
+        IconsDisabledColor,
         IconsInfoColor,
         IconsWarningColor,
         IconsErrorColor,
@@ -141,6 +142,15 @@ public:
         IconsInterruptColor,
         IconsDebugColor,
         IconsNavigationArrowsColor,
+        IconsBuildHammerHandleColor,
+        IconsBuildHammerHeadColor,
+        IconsModeWelcomeActiveColor,
+        IconsModeEditActiveColor,
+        IconsModeDesignActiveColor,
+        IconsModeDebugActiveColor,
+        IconsModeProjetcsActiveColor,
+        IconsModeAnalyzeActiveColor,
+        IconsModeHelpActiveColor,
 
         /* Output panes */
 
@@ -249,7 +259,8 @@ public:
         DrawIndicatorBranch,
         ComboBoxDrawTextShadow,
         DerivePaletteFromTheme,
-        ApplyThemePaletteGlobally
+        ApplyThemePaletteGlobally,
+        FlatSideBarIcons
     };
 
     enum WidgetStyle {
diff --git a/src/plugins/analyzerbase/analyzerbase.qrc b/src/plugins/analyzerbase/analyzerbase.qrc
index b6c5662d1fbcc6037997584e30e0afb67475495f..10c518cfb2092a5f69d4537684afaa6b4d653565 100644
--- a/src/plugins/analyzerbase/analyzerbase.qrc
+++ b/src/plugins/analyzerbase/analyzerbase.qrc
@@ -2,6 +2,8 @@
     <qresource prefix="/">
         <file>images/mode_analyze.png</file>
         <file>images/mode_analyze@2x.png</file>
+        <file>images/mode_analyze_mask.png</file>
+        <file>images/mode_analyze_mask@2x.png</file>
         <file>images/analyzer_category.png</file>
         <file>images/analyzer_overlay_small.png</file>
         <file>images/analyzer_overlay_small@2x.png</file>
diff --git a/src/plugins/analyzerbase/analyzericons.h b/src/plugins/analyzerbase/analyzericons.h
index cf6c5065e4aec618744b84126721306029c64cb4..4bde750f3ac61b67d929a71d92e0e1cfbfe5de0e 100644
--- a/src/plugins/analyzerbase/analyzericons.h
+++ b/src/plugins/analyzerbase/analyzericons.h
@@ -39,6 +39,12 @@ namespace Icons {
 const Utils::Icon ANALYZER_CONTROL_START({
         {QLatin1String(":/images/analyzer_overlay_small.png"), Utils::Theme::IconsBaseColor},
         {QLatin1String(":/core/images/run_overlay_small.png"), Utils::Theme::IconsRunColor}});
+const Utils::Icon MODE_ANALYZE_CLASSIC(
+        QLatin1String(":/images/mode_analyze.png"));
+const Utils::Icon MODE_ANALYZE_FLAT({
+        {QLatin1String(":/images/mode_analyze_mask.png"), Utils::Theme::IconsBaseColor}});
+const Utils::Icon MODE_ANALYZE_FLAT_ACTIVE({
+        {QLatin1String(":/images/mode_analyze_mask.png"), Utils::Theme::IconsModeAnalyzeActiveColor}});
 
 } // namespace Icons
 } // namespace Analyzer
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 34b02e437115b87bf9cec07f5bdec61a862f7eeb..db8d48dd5cc826a1a6f75d7e334ad8e018393ce5 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -36,7 +36,7 @@
 #include "analyzerstartparameters.h"
 #include "ianalyzertool.h"
 
-#include <coreplugin/coreconstants.h>
+#include <coreplugin/coreicons.h>
 #include <coreplugin/findplaceholder.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/imode.h>
@@ -106,7 +106,8 @@ public:
     {
         setContext(Context(C_ANALYZEMODE, C_NAVIGATION_PANE));
         setDisplayName(AnalyzerManager::tr("Analyze"));
-        setIcon(QIcon(QLatin1String(":/images/mode_analyze.png")));
+        setIcon(Utils::Icon::modeIcon(Icons::MODE_ANALYZE_CLASSIC,
+                                      Icons::MODE_ANALYZE_FLAT, Icons::MODE_ANALYZE_FLAT_ACTIVE));
         setPriority(P_MODE_ANALYZE);
         setId(MODE_ANALYZE);
     }
diff --git a/src/plugins/analyzerbase/images/mode_analyze_mask.png b/src/plugins/analyzerbase/images/mode_analyze_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..a898c27eb6e4a42e4f4fa8a42763ca2aaaddd62c
Binary files /dev/null and b/src/plugins/analyzerbase/images/mode_analyze_mask.png differ
diff --git a/src/plugins/analyzerbase/images/mode_analyze_mask@2x.png b/src/plugins/analyzerbase/images/mode_analyze_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..160b6513a10419bd8880cd9e8d2e76a39b79be7d
Binary files /dev/null and b/src/plugins/analyzerbase/images/mode_analyze_mask@2x.png differ
diff --git a/src/plugins/coreplugin/coreicons.h b/src/plugins/coreplugin/coreicons.h
index 917fc6930e365e8133e4537057f1ec7aea8db359..46233ece145c80719eb7e4755ef4f95d059c1448 100644
--- a/src/plugins/coreplugin/coreicons.h
+++ b/src/plugins/coreplugin/coreicons.h
@@ -148,6 +148,19 @@ const Utils::Icon ZOOM({
 const Utils::Icon TOOLBAR_EXTENSION({
         {QLatin1String(":/core/images/extension.png"), Utils::Theme::IconsBaseColor}});
 
+const Utils::Icon MODE_EDIT_CLASSIC(
+        QLatin1String(":/fancyactionbar/images/mode_Edit.png"));
+const Utils::Icon MODE_EDIT_FLAT({
+        {QLatin1String(":/fancyactionbar/images/mode_edit_mask.png"), Utils::Theme::IconsBaseColor}});
+const Utils::Icon MODE_EDIT_FLAT_ACTIVE({
+        {QLatin1String(":/fancyactionbar/images/mode_edit_mask.png"), Utils::Theme::IconsModeEditActiveColor}});
+const Utils::Icon MODE_DESIGN_CLASSIC(
+        QLatin1String(":/fancyactionbar/images/mode_Design.png"));
+const Utils::Icon MODE_DESIGN_FLAT({
+        {QLatin1String(":/fancyactionbar/images/mode_design_mask.png"), Utils::Theme::IconsBaseColor}});
+const Utils::Icon MODE_DESIGN_FLAT_ACTIVE({
+        {QLatin1String(":/fancyactionbar/images/mode_design_mask.png"), Utils::Theme::IconsModeDesignActiveColor}});
+
 } // namespace Icons
 } // namespace Core
 
diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp
index d935ae814373b204afbb09c3b4e2acddff70b573..9485c81933344f6e4bfcf038be694e64ebd994b7 100644
--- a/src/plugins/coreplugin/designmode.cpp
+++ b/src/plugins/coreplugin/designmode.cpp
@@ -35,6 +35,8 @@
 #include <coreplugin/modemanager.h>
 #include <coreplugin/editormanager/editormanager.h>
 #include <coreplugin/coreconstants.h>
+#include <coreplugin/coreicons.h>
+
 #include <coreplugin/editormanager/ieditor.h>
 
 #include <QPointer>
@@ -90,7 +92,8 @@ DesignMode::DesignMode()
     setContext(Context(Constants::C_DESIGN_MODE));
     setWidget(d->m_stackWidget);
     setDisplayName(tr("Design"));
-    setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Design.png")));
+    setIcon(Utils::Icon::modeIcon(Icons::MODE_DESIGN_CLASSIC,
+                                  Icons::MODE_DESIGN_FLAT, Icons::MODE_DESIGN_FLAT_ACTIVE));
     setPriority(Constants::P_MODE_DESIGN);
     setId(Constants::MODE_DESIGN);
 
diff --git a/src/plugins/coreplugin/editmode.cpp b/src/plugins/coreplugin/editmode.cpp
index 33733c4bb5e9a274b0d856c6091d59b0a62acc58..5d55c36b051ecafffe213a25e062d279fed6709a 100644
--- a/src/plugins/coreplugin/editmode.cpp
+++ b/src/plugins/coreplugin/editmode.cpp
@@ -29,6 +29,7 @@
 ****************************************************************************/
 
 #include "coreconstants.h"
+#include "coreicons.h"
 #include "editmode.h"
 #include "icore.h"
 #include "modemanager.h"
@@ -53,7 +54,8 @@ EditMode::EditMode() :
 {
     setObjectName(QLatin1String("EditMode"));
     setDisplayName(tr("Edit"));
-    setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Edit.png")));
+    setIcon(Utils::Icon::modeIcon(Icons::MODE_EDIT_CLASSIC,
+                                  Icons::MODE_EDIT_FLAT, Icons::MODE_EDIT_FLAT_ACTIVE));
     setPriority(Constants::P_MODE_EDIT);
     setId(Constants::MODE_EDIT);
 
diff --git a/src/plugins/coreplugin/fancyactionbar.cpp b/src/plugins/coreplugin/fancyactionbar.cpp
index 5d89a184a281b21133523b034f82d55814e0524a..ffb69bf594c6787e7c2e2c5578da68750875909b 100644
--- a/src/plugins/coreplugin/fancyactionbar.cpp
+++ b/src/plugins/coreplugin/fancyactionbar.cpp
@@ -182,6 +182,8 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
         painter.restore();
     }
 
+    const QIcon::Mode iconMode = isEnabled() ? ((isDown() || isChecked()) ? QIcon::Active : QIcon::Normal)
+                                             : QIcon::Disabled;
     QRect iconRect(0, 0, Constants::TARGET_ICON_SIZE, Constants::TARGET_ICON_SIZE);
     // draw popup texts
     if (isTitledAction) {
@@ -203,7 +205,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
         centerRect.adjust(0, 0, 0, -lineHeight*2 - 4);
 
         iconRect.moveCenter(centerRect.center());
-        StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, isEnabled() ? QIcon::Normal : QIcon::Disabled);
+        StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, iconMode);
         painter.setFont(normalFont);
 
         QPoint textOffset = centerRect.center() - QPoint(iconRect.width()/2, iconRect.height()/2);
@@ -264,7 +266,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
         }
     } else {
         iconRect.moveCenter(rect().center());
-        StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, isEnabled() ? QIcon::Normal : QIcon::Disabled);
+        StyleHelper::drawIconWithShadow(icon(), iconRect, &painter, iconMode);
     }
 }
 
diff --git a/src/plugins/coreplugin/fancyactionbar.qrc b/src/plugins/coreplugin/fancyactionbar.qrc
index 63e33279a0d3bfb0e01794b44feebd9e8dbb3b50..75e7599657d39a7d9321b4b25bff9021bef0af2e 100644
--- a/src/plugins/coreplugin/fancyactionbar.qrc
+++ b/src/plugins/coreplugin/fancyactionbar.qrc
@@ -4,5 +4,9 @@
         <file>images/mode_Edit@2x.png</file>
         <file>images/mode_Design.png</file>
         <file>images/mode_Design@2x.png</file>
+        <file>images/mode_edit_mask.png</file>
+        <file>images/mode_edit_mask@2x.png</file>
+        <file>images/mode_design_mask.png</file>
+        <file>images/mode_design_mask@2x.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp
index f4352bf62eea629ad6427efd7f20ab441ee1ef6e..5d76861b9a7610bc27022ff92717c02d02c9130f 100644
--- a/src/plugins/coreplugin/fancytabwidget.cpp
+++ b/src/plugins/coreplugin/fancytabwidget.cpp
@@ -342,7 +342,9 @@ void FancyTabBar::paintTab(QPainter *painter, int tabIndex) const
     if (drawIcon) {
         int textHeight = painter->fontMetrics().boundingRect(QRect(0, 0, width(), height()), Qt::TextWordWrap, tabText).height();
         tabIconRect.adjust(0, 4, 0, -textHeight);
-        StyleHelper::drawIconWithShadow(tabIcon(tabIndex), tabIconRect, painter, enabled ? QIcon::Normal : QIcon::Disabled);
+        const QIcon::Mode iconMode = enabled ? (selected ? QIcon::Active : QIcon::Normal)
+                                             : QIcon::Disabled;
+        StyleHelper::drawIconWithShadow(tabIcon(tabIndex), tabIconRect, painter, iconMode);
     }
 
     painter->setOpacity(1.0); //FIXME: was 0.7 before?
diff --git a/src/plugins/coreplugin/images/mode_design_mask.png b/src/plugins/coreplugin/images/mode_design_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2955133508babfa41c53a17f0266441f1946bfb
Binary files /dev/null and b/src/plugins/coreplugin/images/mode_design_mask.png differ
diff --git a/src/plugins/coreplugin/images/mode_design_mask@2x.png b/src/plugins/coreplugin/images/mode_design_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..99d95b7a4d09359f1c147a31bad4f3e34c3cd8ac
Binary files /dev/null and b/src/plugins/coreplugin/images/mode_design_mask@2x.png differ
diff --git a/src/plugins/coreplugin/images/mode_edit_mask.png b/src/plugins/coreplugin/images/mode_edit_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..954f3abe79033fed77e9d41ea6c409444e8778df
Binary files /dev/null and b/src/plugins/coreplugin/images/mode_edit_mask.png differ
diff --git a/src/plugins/coreplugin/images/mode_edit_mask@2x.png b/src/plugins/coreplugin/images/mode_edit_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b70cbcb71b42b25aa036eda0446df65406a848f9
Binary files /dev/null and b/src/plugins/coreplugin/images/mode_edit_mask@2x.png differ
diff --git a/src/plugins/debugger/debugger.qrc b/src/plugins/debugger/debugger.qrc
index a61acc6d8bb006af8dc1756f32a3348740b70973..00d902ea0d969446407ee91b207da5d31985af6b 100644
--- a/src/plugins/debugger/debugger.qrc
+++ b/src/plugins/debugger/debugger.qrc
@@ -3,8 +3,14 @@
         <file>images/category_debug.png</file>
         <file>images/debugger_breakpoints.png</file>
         <file>images/debugger_continue.png</file>
+        <file>images/debugger_continue@2x.png</file>
+        <file>images/debugger_continue_mask.png</file>
+        <file>images/debugger_continue_mask@2x.png</file>
         <file>images/debugger_empty_14.png</file>
         <file>images/debugger_interrupt.png</file>
+        <file>images/debugger_interrupt@2x.png</file>
+        <file>images/debugger_interrupt_mask.png</file>
+        <file>images/debugger_interrupt_mask@2x.png</file>
         <file>images/debugger_reversemode_16.png</file>
         <file>images/debugger_singleinstructionmode.png</file>
         <file>images/debugger_singleinstructionmode@2x.png</file>
@@ -30,6 +36,8 @@
         <file>images/location_24.png</file>
         <file>images/mode_debug.png</file>
         <file>images/mode_debug@2x.png</file>
+        <file>images/mode_debug_mask.png</file>
+        <file>images/mode_debug_mask@2x.png</file>
         <file>images/pin.xpm</file>
         <file>images/qml/select.png</file>
         <file>images/qml/app-on-top.png</file>
diff --git a/src/plugins/debugger/debuggericons.h b/src/plugins/debugger/debuggericons.h
index 2fc4e69577da1fdcaf4beeba7b3933aaf7968a99..602aa1283cdefa4a845bb564a1c5fcb66052d1af 100644
--- a/src/plugins/debugger/debuggericons.h
+++ b/src/plugins/debugger/debuggericons.h
@@ -50,8 +50,14 @@ const Utils::Icon TRACEPOINT(
         QLatin1String(":/debugger/images/tracepoint.png"));
 const Utils::Icon CONTINUE(
         QLatin1String(":/debugger/images/debugger_continue.png"));
+const Utils::Icon CONTINUE_FLAT({
+        {QLatin1String(":/projectexplorer/images/debugger_beetle_mask.png"), Utils::Theme::IconsDebugColor},
+        {QLatin1String(":/debugger/images/debugger_continue_mask.png"), Utils::Theme::IconsRunColor}});
 const Utils::Icon INTERRUPT(
         QLatin1String(":/debugger/images/debugger_interrupt.png"));
+const Utils::Icon INTERRUPT_FLAT({
+        {QLatin1String(":/projectexplorer/images/debugger_beetle_mask.png"), Utils::Theme::IconsDebugColor},
+        {QLatin1String(":/debugger/images/debugger_interrupt_mask.png"), Utils::Theme::IconsInterruptColor}});
 const Utils::Icon LOCATION(
         QLatin1String(":/debugger/images/location_16.png"));
 const Utils::Icon SNAPSHOT(
@@ -80,6 +86,13 @@ const Utils::Icon RESTART({
 const Utils::Icon SINGLE_INSTRUCTION_MODE({
         {QLatin1String(":/debugger/images/debugger_singleinstructionmode.png"), Utils::Theme::IconsBaseColor}});
 
+const Utils::Icon MODE_DEBUGGER_CLASSIC(
+        QLatin1String(":/debugger/images/mode_debug.png"));
+const Utils::Icon MODE_DEBUGGER_FLAT({
+        {QLatin1String(":/debugger/images/mode_debug_mask.png"), Utils::Theme::IconsBaseColor}});
+const Utils::Icon MODE_DEBUGGER_FLAT_ACTIVE({
+        {QLatin1String(":/debugger/images/mode_debug_mask.png"), Utils::Theme::IconsModeDebugActiveColor}});
+
 } // namespace Icons
 } // namespace Debugger
 
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index f3065e77d0e57f01ba2a0c0448b4801b9e38e22f..3a3da49d19d76caabb40a00b28182a860a8718b1 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -496,7 +496,8 @@ public:
         setObjectName(QLatin1String("DebugMode"));
         setContext(Context(C_DEBUGMODE, CC::C_NAVIGATION_PANE));
         setDisplayName(DebuggerPlugin::tr("Debug"));
-        setIcon(QIcon(QLatin1String(":/debugger/images/mode_debug.png")));
+        setIcon(Utils::Icon::modeIcon(Icons::MODE_DEBUGGER_CLASSIC,
+                                      Icons::MODE_DEBUGGER_FLAT, Icons::MODE_DEBUGGER_FLAT_ACTIVE));
         setPriority(85);
         setId(MODE_DEBUG);
     }
@@ -2349,10 +2350,12 @@ void DebuggerPluginPrivate::extensionsInitialized()
 
     m_startIcon = Core::Icons::DEBUG_START_SMALL.icon();
     m_exitIcon = Core::Icons::DEBUG_EXIT_SMALL.icon();
-    m_continueIcon = Core::Icons::DEBUG_CONTINUE_SMALL.icon();
-    m_continueIcon.addPixmap(Icons::CONTINUE.pixmap());
-    m_interruptIcon = Core::Icons::DEBUG_INTERRUPT_SMALL.icon();
-    m_interruptIcon.addPixmap(Icons::INTERRUPT.pixmap());
+    const QIcon continueSideBarIcon =
+            Icon::sideBarIcon(Icons::CONTINUE, Icons::CONTINUE_FLAT);
+    m_continueIcon = Icon::combinedIcon({Core::Icons::DEBUG_CONTINUE_SMALL.icon(), continueSideBarIcon});
+    const QIcon interruptSideBarIcon =
+            Icon::sideBarIcon(Icons::INTERRUPT, Icons::INTERRUPT_FLAT);
+    m_interruptIcon = Icon::combinedIcon({Core::Icons::DEBUG_INTERRUPT_SMALL.icon(), interruptSideBarIcon});
     m_locationMarkIcon = Icons::LOCATION.icon();
     m_resetIcon = Icons::RESTART.icon();
 
@@ -2536,8 +2539,9 @@ void DebuggerPluginPrivate::extensionsInitialized()
 
     // The main "Start Debugging" action.
     act = m_startAction = new QAction(this);
-    QIcon debuggerIcon(Core::Icons::DEBUG_START_SMALL.icon());
-    debuggerIcon.addPixmap(ProjectExplorer::Icons::DEBUG_START.pixmap());
+    const QIcon sideBarIcon =
+            Icon::sideBarIcon(ProjectExplorer::Icons::DEBUG_START, ProjectExplorer::Icons::DEBUG_START_FLAT);
+    const QIcon debuggerIcon = Icon::combinedIcon({Core::Icons::DEBUG_START_SMALL.icon(), sideBarIcon});
     act->setIcon(debuggerIcon);
     act->setText(tr("Start Debugging"));
     connect(act, &QAction::triggered, [] { ProjectExplorerPlugin::runStartupProject(ProjectExplorer::Constants::DEBUG_RUN_MODE); });
diff --git a/src/plugins/debugger/images/debugger_continue@2x.png b/src/plugins/debugger/images/debugger_continue@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..69552eb9808c0a55d6fa42e0a3e1b1770c094818
Binary files /dev/null and b/src/plugins/debugger/images/debugger_continue@2x.png differ
diff --git a/src/plugins/debugger/images/debugger_continue_32.png b/src/plugins/debugger/images/debugger_continue_32.png
deleted file mode 100644
index 1208cbf0cc28156abe60179407af1781fbf522a0..0000000000000000000000000000000000000000
Binary files a/src/plugins/debugger/images/debugger_continue_32.png and /dev/null differ
diff --git a/src/plugins/debugger/images/debugger_continue_mask.png b/src/plugins/debugger/images/debugger_continue_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..3784ea035b417e7999a774b6cdce35dcfb98ce22
Binary files /dev/null and b/src/plugins/debugger/images/debugger_continue_mask.png differ
diff --git a/src/plugins/debugger/images/debugger_continue_mask@2x.png b/src/plugins/debugger/images/debugger_continue_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b883affe2236520c55440f55c3ade8433919f6ba
Binary files /dev/null and b/src/plugins/debugger/images/debugger_continue_mask@2x.png differ
diff --git a/src/plugins/debugger/images/debugger_interrupt@2x.png b/src/plugins/debugger/images/debugger_interrupt@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..6c99c073db4dcb9ece8e35a8d65b64e803a8bc84
Binary files /dev/null and b/src/plugins/debugger/images/debugger_interrupt@2x.png differ
diff --git a/src/plugins/debugger/images/debugger_interrupt_32.png b/src/plugins/debugger/images/debugger_interrupt_32.png
deleted file mode 100644
index 7b74a586ab933a6d0314b7c50d00b205215191d1..0000000000000000000000000000000000000000
Binary files a/src/plugins/debugger/images/debugger_interrupt_32.png and /dev/null differ
diff --git a/src/plugins/debugger/images/debugger_interrupt_mask.png b/src/plugins/debugger/images/debugger_interrupt_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2081ca1360ba43fb4ef8becdd5499b993b28716
Binary files /dev/null and b/src/plugins/debugger/images/debugger_interrupt_mask.png differ
diff --git a/src/plugins/debugger/images/debugger_interrupt_mask@2x.png b/src/plugins/debugger/images/debugger_interrupt_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..43aec6f9cc294378666b861df7108c9a8f6a29e1
Binary files /dev/null and b/src/plugins/debugger/images/debugger_interrupt_mask@2x.png differ
diff --git a/src/plugins/debugger/images/mode_debug_mask.png b/src/plugins/debugger/images/mode_debug_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..ea9b364994f403842095d9bf8a5191204b595678
Binary files /dev/null and b/src/plugins/debugger/images/mode_debug_mask.png differ
diff --git a/src/plugins/debugger/images/mode_debug_mask@2x.png b/src/plugins/debugger/images/mode_debug_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..63e2fe5f99c75d894a71f2dd05b896794afd05c7
Binary files /dev/null and b/src/plugins/debugger/images/mode_debug_mask@2x.png differ
diff --git a/src/plugins/help/help.qrc b/src/plugins/help/help.qrc
index f38a578e14cad758660dfcdfd01973fdd41333f2..a0b727d945b63f938ba70b18fdd721a32909e657 100644
--- a/src/plugins/help/help.qrc
+++ b/src/plugins/help/help.qrc
@@ -7,6 +7,8 @@
         <file>images/category_help.png</file>
         <file>images/mode_help.png</file>
         <file>images/mode_help@2x.png</file>
+        <file>images/mode_help_mask.png</file>
+        <file>images/mode_help_mask@2x.png</file>
     </qresource>
     <qresource prefix="/trolltech/assistant" >
         <file>images/mac/addtab.png</file>
diff --git a/src/plugins/help/helpmode.cpp b/src/plugins/help/helpmode.cpp
index 98042ce8d8fea75088e405508abc00f7ecc2932f..ab53166bc590f74d52577b76948af260a1ef9f6f 100644
--- a/src/plugins/help/helpmode.cpp
+++ b/src/plugins/help/helpmode.cpp
@@ -30,6 +30,7 @@
 
 #include "helpmode.h"
 #include "helpconstants.h"
+#include "helpicons.h"
 
 #include <QCoreApplication>
 
@@ -41,7 +42,8 @@ HelpMode::HelpMode(QObject *parent)
 {
     setObjectName(QLatin1String("HelpMode"));
     setContext(Core::Context(Constants::C_MODE_HELP));
-    setIcon(QIcon(QLatin1String(":/help/images/mode_help.png")));
+    setIcon(Utils::Icon::modeIcon(Icons::MODE_HELP_CLASSIC,
+                                  Icons::MODE_HELP_FLAT, Icons::MODE_HELP_FLAT_ACTIVE));
     setDisplayName(QCoreApplication::translate("Help::Internal::HelpMode", "Help"));
     setPriority(Constants::P_MODE_HELP);
     setId(Constants::ID_MODE_HELP);
diff --git a/src/plugins/help/images/mode_help_mask.png b/src/plugins/help/images/mode_help_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..9924e734167578dc388c7d7d36238a6e3d52d6ea
Binary files /dev/null and b/src/plugins/help/images/mode_help_mask.png differ
diff --git a/src/plugins/help/images/mode_help_mask@2x.png b/src/plugins/help/images/mode_help_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..213bfc65aadcd8fb6529fb7e6fa0881ed6afc2c6
Binary files /dev/null and b/src/plugins/help/images/mode_help_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/images/build_hammerhandle_mask.png b/src/plugins/projectexplorer/images/build_hammerhandle_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..8759e4204fc9d26f1b37c6ede75787b35a310bbf
Binary files /dev/null and b/src/plugins/projectexplorer/images/build_hammerhandle_mask.png differ
diff --git a/src/plugins/projectexplorer/images/build_hammerhandle_mask@2x.png b/src/plugins/projectexplorer/images/build_hammerhandle_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..04304d35f82d66c779a4f7c987884a0b81422870
Binary files /dev/null and b/src/plugins/projectexplorer/images/build_hammerhandle_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/images/build_hammerhead_mask.png b/src/plugins/projectexplorer/images/build_hammerhead_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..31a174fd177bd1b48aaa14f4bb06157e7cf2d145
Binary files /dev/null and b/src/plugins/projectexplorer/images/build_hammerhead_mask.png differ
diff --git a/src/plugins/projectexplorer/images/build_hammerhead_mask@2x.png b/src/plugins/projectexplorer/images/build_hammerhead_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..4bc0b4b7fc8c074a5bd0c9336df2c9267d102c91
Binary files /dev/null and b/src/plugins/projectexplorer/images/build_hammerhead_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/images/debugger_beetle_mask.png b/src/plugins/projectexplorer/images/debugger_beetle_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..359b6cc425bdcf4bf466c39cfebe51acb0a89124
Binary files /dev/null and b/src/plugins/projectexplorer/images/debugger_beetle_mask.png differ
diff --git a/src/plugins/projectexplorer/images/debugger_beetle_mask@2x.png b/src/plugins/projectexplorer/images/debugger_beetle_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..24a5f3b7bc0477f9554855df4eb852414c642cab
Binary files /dev/null and b/src/plugins/projectexplorer/images/debugger_beetle_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/images/debugger_run_mask.png b/src/plugins/projectexplorer/images/debugger_run_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e3ab010d0aabc7407a7fdf8e5532a6589056ce2
Binary files /dev/null and b/src/plugins/projectexplorer/images/debugger_run_mask.png differ
diff --git a/src/plugins/projectexplorer/images/debugger_run_mask@2x.png b/src/plugins/projectexplorer/images/debugger_run_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..978d099a9c51654af8893b3feac4a5dfeb937f80
Binary files /dev/null and b/src/plugins/projectexplorer/images/debugger_run_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/images/mode_project_mask.png b/src/plugins/projectexplorer/images/mode_project_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3098ca6f89b6276fd0ed5561413c0baf43961e6
Binary files /dev/null and b/src/plugins/projectexplorer/images/mode_project_mask.png differ
diff --git a/src/plugins/projectexplorer/images/mode_project_mask@2x.png b/src/plugins/projectexplorer/images/mode_project_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..88e203caea5179b3a2faea08f82f1b2cd13cd35a
Binary files /dev/null and b/src/plugins/projectexplorer/images/mode_project_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/images/run_mask.png b/src/plugins/projectexplorer/images/run_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..aaaf05ce22d23ce271d836378787779924844c33
Binary files /dev/null and b/src/plugins/projectexplorer/images/run_mask.png differ
diff --git a/src/plugins/projectexplorer/images/run_mask@2x.png b/src/plugins/projectexplorer/images/run_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..38f6445c2528350fa07487e4f47d274bc9fc4f1d
Binary files /dev/null and b/src/plugins/projectexplorer/images/run_mask@2x.png differ
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index bd6aaa3af8f7abcb36b24a2a0367af53e075ddb6..4636fea507ce9d489df87b97d7f3d553160fdc63 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -396,7 +396,8 @@ public:
         setWidget(proWindow);
         setContext(Context(Constants::C_PROJECTEXPLORER));
         setDisplayName(QCoreApplication::translate("ProjectExplorer::ProjectsMode", "Projects"));
-        setIcon(QIcon(QLatin1String(":/projectexplorer/images/mode_project.png")));
+        setIcon(Utils::Icon::modeIcon(Icons::MODE_PROJECT_CLASSIC,
+                                      Icons::MODE_PROJECT_FLAT, Icons::MODE_PROJECT_FLAT_ACTIVE));
         setPriority(Constants::P_MODE_SESSION);
         setId(Constants::MODE_SESSION);
         setContextHelpId(QLatin1String("Managing Projects"));
@@ -704,7 +705,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
 
     ActionContainer *runMenu = ActionManager::createMenu(Constants::RUNMENUCONTEXTMENU);
     runMenu->setOnAllDisabledBehavior(ActionContainer::Hide);
-    QIcon runIcon = Icons::RUN.icon();
+    QIcon runIcon = Utils::Icon::sideBarIcon(Icons::RUN, Icons::RUN_FLAT);
     runIcon.addPixmap(Icons::RUN_SMALL.pixmap());
     runMenu->menu()->setIcon(runIcon);
     runMenu->menu()->setTitle(tr("Run"));
@@ -839,8 +840,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
     msessionContextMenu->addAction(cmd, Constants::G_SESSION_FILES);
 
     // build session action
-    QIcon buildIcon = Icons::BUILD.icon();
-    buildIcon.addPixmap(Icons::BUILD_SMALL.pixmap());
+    const QIcon sideBarIcon = Utils::Icon::sideBarIcon(Icons::BUILD, Icons::BUILD_FLAT);
+    const QIcon buildIcon = Utils::Icon::combinedIcon({Icons::BUILD_SMALL.icon(), sideBarIcon});
     dd->m_buildSessionAction = new QAction(buildIcon, tr("Build All"), this);
     cmd = ActionManager::registerAction(dd->m_buildSessionAction, Constants::BUILDSESSION);
     cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+B")));
diff --git a/src/plugins/projectexplorer/projectexplorer.qrc b/src/plugins/projectexplorer/projectexplorer.qrc
index 43524be6ba58dab061ca15634be0b7d5d0f85f43..6a730cb0d0e27b643b850ce82af9243677c375a9 100644
--- a/src/plugins/projectexplorer/projectexplorer.qrc
+++ b/src/plugins/projectexplorer/projectexplorer.qrc
@@ -7,13 +7,21 @@
         <file>images/closetab.png</file>
         <file>images/debugger_start.png</file>
         <file>images/debugger_start@2x.png</file>
+        <file>images/debugger_beetle_mask.png</file>
+        <file>images/debugger_beetle_mask@2x.png</file>
+        <file>images/debugger_run_mask.png</file>
+        <file>images/debugger_run_mask@2x.png</file>
         <file>images/mode_project.png</file>
         <file>images/mode_project@2x.png</file>
+        <file>images/mode_project_mask.png</file>
+        <file>images/mode_project_mask@2x.png</file>
         <file>images/projectexplorer.png</file>
         <file>images/rebuild.png</file>
         <file>images/rebuild_small.png</file>
         <file>images/run.png</file>
         <file>images/run@2x.png</file>
+        <file>images/run_mask.png</file>
+        <file>images/run_mask@2x.png</file>
         <file>images/run_small.png</file>
         <file>images/run_small@2x.png</file>
         <file>images/session.png</file>
@@ -35,6 +43,10 @@
         <file>images/DeviceReadyToUse.png</file>
         <file>images/build.png</file>
         <file>images/build@2x.png</file>
+        <file>images/build_hammerhandle_mask.png</file>
+        <file>images/build_hammerhandle_mask@2x.png</file>
+        <file>images/build_hammerhead_mask.png</file>
+        <file>images/build_hammerhead_mask@2x.png</file>
         <file>images/targetpanel_bottom.png</file>
         <file>images/targetpanel_gradient.png</file>
         <file>images/window.png</file>
diff --git a/src/plugins/projectexplorer/projectexplorericons.h b/src/plugins/projectexplorer/projectexplorericons.h
index 604bddd024ebf5e42e132bb8f0e52bdab695abf3..883d5436a1f2b52da09233fcc8a93608d452c6dc 100644
--- a/src/plugins/projectexplorer/projectexplorericons.h
+++ b/src/plugins/projectexplorer/projectexplorericons.h
@@ -38,6 +38,9 @@ namespace Icons {
 
 const Utils::Icon BUILD(
         QLatin1String(":/projectexplorer/images/build.png"));
+const Utils::Icon BUILD_FLAT({
+        {QLatin1String(":/projectexplorer/images/build_hammerhandle_mask.png"), Utils::Theme::IconsBuildHammerHandleColor},
+        {QLatin1String(":/projectexplorer/images/build_hammerhead_mask.png"), Utils::Theme::IconsBuildHammerHeadColor}});
 const Utils::Icon BUILD_SMALL(
         QLatin1String(":/projectexplorer/images/build_small.png"));
 const Utils::Icon CLEAN(
@@ -50,15 +53,26 @@ const Utils::Icon REBUILD_SMALL(
         QLatin1String(":/projectexplorer/images/rebuild_small.png"));
 const Utils::Icon RUN(
         QLatin1String(":/projectexplorer/images/run.png"));
+const Utils::Icon RUN_FLAT({
+        {QLatin1String(":/projectexplorer/images/run_mask.png"), Utils::Theme::IconsRunColor}});
 const Utils::Icon WINDOW(
         QLatin1String(":/projectexplorer/images/window.png"));
 const Utils::Icon DEBUG_START(
         QLatin1String(":/projectexplorer/images/debugger_start.png"));
 
+const Utils::Icon DEBUG_START_FLAT({
+        {QLatin1String(":/projectexplorer/images/debugger_beetle_mask.png"), Utils::Theme::IconsDebugColor},
+        {QLatin1String(":/projectexplorer/images/debugger_run_mask.png"), Utils::Theme::IconsRunColor}});
 const Utils::Icon RUN_SMALL({
         {QLatin1String(":/projectexplorer/images/run_small.png"), Utils::Theme::IconsRunColor}});
 const Utils::Icon STOP_SMALL({
         {QLatin1String(":/projectexplorer/images/stop_small.png"), Utils::Theme::IconsStopColor}});
+const Utils::Icon MODE_PROJECT_CLASSIC(
+        QLatin1String(":/projectexplorer/images/mode_project.png"));
+const Utils::Icon MODE_PROJECT_FLAT({
+        {QLatin1String(":/projectexplorer/images/mode_project_mask.png"), Utils::Theme::IconsBaseColor}});
+const Utils::Icon MODE_PROJECT_FLAT_ACTIVE({
+        {QLatin1String(":/projectexplorer/images/mode_project_mask.png"), Utils::Theme::IconsModeProjetcsActiveColor}});
 
 } // namespace Icons
 } // namespace ProjectExplorer
diff --git a/src/plugins/welcome/images/mode_edit_mask.png b/src/plugins/welcome/images/mode_edit_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..221f49151933146e4b2c14b3632e08e750ea46a3
Binary files /dev/null and b/src/plugins/welcome/images/mode_edit_mask.png differ
diff --git a/src/plugins/welcome/images/mode_welcome_mask.png b/src/plugins/welcome/images/mode_welcome_mask.png
new file mode 100644
index 0000000000000000000000000000000000000000..d0183d3e79f586155ade0716ae60a11526580fc7
Binary files /dev/null and b/src/plugins/welcome/images/mode_welcome_mask.png differ
diff --git a/src/plugins/welcome/images/mode_welcome_mask@2x.png b/src/plugins/welcome/images/mode_welcome_mask@2x.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9189b3efb40a68fe45a599453461512ff8975cd
Binary files /dev/null and b/src/plugins/welcome/images/mode_welcome_mask@2x.png differ
diff --git a/src/plugins/welcome/welcome.qrc b/src/plugins/welcome/welcome.qrc
index 05531f04b1df5f9a9e56d9872294bb97601f1b76..3d8bff335f2a8281876e9aacb28e813727e3d034 100644
--- a/src/plugins/welcome/welcome.qrc
+++ b/src/plugins/welcome/welcome.qrc
@@ -2,5 +2,7 @@
     <qresource prefix="/welcome">
         <file>images/mode_welcome.png</file>
         <file>images/mode_welcome@2x.png</file>
+        <file>images/mode_welcome_mask.png</file>
+        <file>images/mode_welcome_mask@2x.png</file>
     </qresource>
 </RCC>
diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp
index 7a64fde5beb8156b2cc388f73daa0d63db54f8f3..26b0aed55d5237a5a3819deec51183deeef5bb4c 100644
--- a/src/plugins/welcome/welcomeplugin.cpp
+++ b/src/plugins/welcome/welcomeplugin.cpp
@@ -40,6 +40,7 @@
 #include <coreplugin/modemanager.h>
 
 #include <utils/algorithm.h>
+#include <utils/icon.h>
 #include <utils/fileutils.h>
 #include <utils/hostosinfo.h>
 #include <utils/qtcassert.h>
@@ -130,7 +131,16 @@ WelcomeMode::WelcomeMode()
     : m_activePlugin(0)
 {
     setDisplayName(tr("Welcome"));
-    setIcon(QIcon(QLatin1String(":/welcome/images/mode_welcome.png")));
+
+    const Utils::Icon MODE_WELCOME_CLASSIC(
+            QLatin1String(":/welcome/images/mode_welcome.png"));
+    const Utils::Icon MODE_WELCOME_FLAT({
+            {QLatin1String(":/welcome/images/mode_welcome_mask.png"), Utils::Theme::IconsBaseColor}});
+    const Utils::Icon MODE_WELCOME_FLAT_ACTIVE({
+            {QLatin1String(":/welcome/images/mode_welcome_mask.png"), Utils::Theme::IconsModeWelcomeActiveColor}});
+
+    setIcon(Utils::Icon::modeIcon(MODE_WELCOME_CLASSIC,
+                                  MODE_WELCOME_FLAT, MODE_WELCOME_FLAT_ACTIVE));
     setPriority(Constants::P_MODE_WELCOME);
     setId(Constants::MODE_WELCOME);
     setContextHelpId(QLatin1String("Qt Creator Manual"));
diff --git a/src/shared/help/helpicons.h b/src/shared/help/helpicons.h
index 4cd72deb3364c746e985978d9c7c77a0ac594d9f..957d65bbd9ffa6e40eaef591a5a54c117454328f 100644
--- a/src/shared/help/helpicons.h
+++ b/src/shared/help/helpicons.h
@@ -40,6 +40,12 @@ const Utils::Icon BOOKMARK(
         QLatin1String(":/help/images/bookmark.png"));
 const Utils::Icon HOME(
         QLatin1String(":/help/images/home.png"));
+const Utils::Icon MODE_HELP_CLASSIC(
+        QLatin1String(":/help/images/mode_help.png"));
+const Utils::Icon MODE_HELP_FLAT({
+        {QLatin1String(":/help/images/mode_help_mask.png"), Utils::Theme::IconsBaseColor}});
+const Utils::Icon MODE_HELP_FLAT_ACTIVE({
+        {QLatin1String(":/help/images/mode_help_mask.png"), Utils::Theme::IconsModeHelpActiveColor}});
 
 } // namespace Icons
 } // namespace Help
diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg
index be39a7746d3a7d0b26a463bf889bb6618a94252d..f4bfbb5a06f0a044417e429402a3288781f9ad4b 100644
--- a/src/tools/icons/qtcreatoricons.svg
+++ b/src/tools/icons/qtcreatoricons.svg
@@ -3584,4 +3584,394 @@
          height="600" />
     </g>
   </g>
+  <g
+     inkscape:groupmode="layer"
+     id="g4718"
+     inkscape:label="Side Bar Icons">
+    <g
+       transform="translate(-34,308)"
+       style="display:inline"
+       id="src/plugins/welcome/images/mode_welcome_mask">
+      <rect
+         style="fill:#ffffff;fill-opacity:1"
+         x="34"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5694-0" />
+      <path
+         id="rect5692-9"
+         style="fill:#000000"
+         d="m 62,62 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m 12,-6 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m 12,-6 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z m -6,0 4,0 0,4 -4,0 z"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       transform="translate(-36,308)"
+       style="display:inline;fill:#000000"
+       id="src/plugins/coreplugin/images/mode_edit_mask">
+      <rect
+         style="display:inline;fill:#ffffff;fill-opacity:1"
+         x="84"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5706-3-8" />
+      <g
+         style="fill:#000000"
+         id="g5697-7">
+        <path
+           style="fill:#000000"
+           inkscape:connector-curvature="0"
+           d="m 100,50 0,16 16,0 0,-16 -16,0 z m 3,6 8,0 0,1 -8,0 0,-1 z m 8,5 -8,0 0,-1 8,0 0,1 z m 2,-2 -10,0 0,-1 10,0 0,1 z m 0,-4 -10,0 0,-1 10,0 0,1 z"
+           id="path5699-3" />
+      </g>
+    </g>
+    <g
+       transform="translate(-38,308)"
+       style="display:inline"
+       id="src/plugins/coreplugin/images/mode_design_mask">
+      <rect
+         style="fill:#ffffff;fill-opacity:1"
+         x="134"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5706-2" />
+      <rect
+         style="fill:#000000"
+         x="161.58099"
+         y="50.402"
+         transform="matrix(-0.707,0.7072,-0.7072,-0.707,315.6181,-25.4514)"
+         width="3"
+         height="4.5"
+         id="rect5702-4" />
+      <polygon
+         style="fill:#000000"
+         points="159.511,53.04 150.884,61.667 150,65.732 154.065,64.85 162.692,56.222 "
+         id="polygon5704-0" />
+    </g>
+    <g
+       transform="translate(-40,308)"
+       style="display:inline"
+       id="src/plugins/debugger/images/mode_debug_mask">
+      <rect
+         style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none"
+         x="184"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5706-4-6" />
+      <g
+         style="fill:#000000"
+         id="g5709-8"
+         transform="translate(0.5,0)">
+        <path
+           style="fill:#000000"
+           inkscape:connector-curvature="0"
+           d="m 208,50 c -1.016,0 -2.634,0.93 -3.106,2.18 l 3.106,1.746 3.105,-1.747 C 210.635,50.93 209.016,50 208,50 Z"
+           id="path5711-2" />
+        <path
+           style="fill:#000000"
+           inkscape:connector-curvature="0"
+           d="m 215.5,58.011 -1.125,0 -0.636,-2.543 1.407,-1.407 c 0.194,-0.194 0.194,-0.513 0,-0.707 -0.195,-0.194 -0.514,-0.194 -0.708,0 l -1.054,1.054 -1.629,-1.447 -3.256,1.832 0,2.458 0,7.749 1.75,-0.489 2.707,-1.806 0.963,0.963 c 0.193,0.193 0.512,0.193 0.707,0 0.193,-0.195 0.193,-0.514 0,-0.707 l -1.156,-1.156 0.873,-2.794 1.156,0 c 0.275,0 0.5,-0.226 0.5,-0.5 0,-0.274 -0.224,-0.5 -0.499,-0.5 z"
+           id="path5713-0" />
+        <path
+           style="fill:#000000"
+           inkscape:connector-curvature="0"
+           d="m 202.615,54.408 -1.055,-1.055 c -0.194,-0.194 -0.513,-0.194 -0.707,0 l 0,0 c -0.194,0.194 -0.194,0.513 0,0.707 l 1.407,1.407 -0.636,2.543 -1.124,0 c -0.275,0 -0.5,0.226 -0.5,0.5 0,0.274 0.225,0.5 0.5,0.5 l 1.156,0 0.873,2.794 -1.156,1.156 c -0.194,0.193 -0.194,0.512 0,0.707 0.194,0.193 0.513,0.193 0.707,0 l 0.962,-0.963 2.708,1.806 1.75,0.49 0,-7.75 0,-2.458 -3.256,-1.832 -1.629,1.448 z"
+           id="path5715-4" />
+      </g>
+    </g>
+    <g
+       transform="translate(-42,308)"
+       style="display:inline"
+       id="src/plugins/projectexplorer/images/mode_project_mask">
+      <rect
+         style="fill:#ffffff;fill-opacity:1"
+         x="234"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5722-4" />
+      <path
+         style="fill:#000000"
+         inkscape:connector-curvature="0"
+         d="m 264.652,57.667 c 1.247,-1.246 1.592,-3.038 1.069,-4.604 l -2.483,2.483 c -0.389,0.389 -1.025,0.389 -1.414,0 l -1.414,-1.415 c -0.389,-0.389 -0.389,-1.025 0,-1.414 l 2.482,-2.483 c -1.565,-0.521 -3.357,-0.177 -4.604,1.069 -1.318,1.318 -1.646,3.251 -0.988,4.876 l -6.79,6.791 c -0.681,0.681 -0.681,1.794 0,2.475 0.681,0.681 1.794,0.681 2.475,0 l 6.79,-6.791 c 1.627,0.66 3.559,0.331 4.877,-0.987 z"
+         id="path5720-8" />
+    </g>
+    <g
+       transform="translate(-44,308)"
+       style="display:inline"
+       id="src/plugins/analyzerbase/images/mode_analyze_mask">
+      <rect
+         style="display:inline;fill:#ffffff;fill-opacity:1"
+         x="284"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5706-6-2" />
+      <rect
+         style="fill:#000000"
+         x="300"
+         y="50"
+         width="1"
+         height="16"
+         id="rect5725-8" />
+      <rect
+         style="fill:#000000"
+         x="300"
+         y="65"
+         width="16"
+         height="1"
+         id="rect5727-6" />
+      <rect
+         style="fill:#000000"
+         x="303"
+         y="50"
+         width="13"
+         height="3"
+         id="rect5729-7" />
+      <rect
+         style="fill:#000000"
+         x="303"
+         y="55"
+         width="9"
+         height="3"
+         id="rect5731-4" />
+      <rect
+         style="fill:#000000"
+         x="303"
+         y="60"
+         width="5"
+         height="3"
+         id="rect5733-9" />
+    </g>
+    <g
+       transform="translate(-46,308)"
+       style="display:inline"
+       id="src/plugins/help/images/mode_help_mask">
+      <rect
+         style="display:inline;fill:#ffffff;fill-opacity:1"
+         x="334"
+         y="42"
+         width="48"
+         height="32"
+         id="rect5706-9-7" />
+      <path
+         d="m 358,50 c -4.418,0 -8,3.582 -8,8 0,4.418 3.582,8 8,8 4.418,0 8,-3.582 8,-8 0,-4.418 -3.582,-8 -8,-8 z m 0.91,12.846 c -0.22,0.215 -0.483,0.322 -0.791,0.322 -0.15,0 -0.292,-0.028 -0.428,-0.084 -0.135,-0.056 -0.254,-0.13 -0.356,-0.224 -0.103,-0.093 -0.185,-0.205 -0.245,-0.336 -0.061,-0.13 -0.091,-0.271 -0.091,-0.42 0,-0.299 0.109,-0.555 0.329,-0.77 0.219,-0.214 0.482,-0.322 0.791,-0.322 0.299,0 0.56,0.103 0.783,0.308 0.225,0.206 0.336,0.458 0.336,0.756 0,0.298 -0.109,0.555 -0.328,0.77 z m 2.192,-6.384 c -0.084,0.233 -0.197,0.448 -0.337,0.644 -0.14,0.196 -0.301,0.383 -0.483,0.56 -0.182,0.177 -0.375,0.364 -0.58,0.56 -0.131,0.121 -0.243,0.229 -0.336,0.322 -0.094,0.094 -0.171,0.189 -0.231,0.287 -0.06,0.098 -0.104,0.21 -0.133,0.336 -0.029,0.126 -0.042,0.278 -0.042,0.455 l 0,0.532 -1.68,0 0,-0.77 c 0,-0.206 0.012,-0.38 0.035,-0.525 0.022,-0.145 0.064,-0.275 0.125,-0.392 0.061,-0.117 0.141,-0.229 0.238,-0.336 0.098,-0.107 0.217,-0.235 0.357,-0.385 l 1.078,-1.092 c 0.232,-0.233 0.35,-0.537 0.35,-0.91 0,-0.364 -0.119,-0.66 -0.357,-0.889 -0.238,-0.229 -0.539,-0.343 -0.902,-0.343 -0.393,0 -0.715,0.133 -0.967,0.399 -0.252,0.266 -0.396,0.59 -0.434,0.973 l -1.792,-0.14 c 0.056,-0.448 0.173,-0.847 0.35,-1.197 0.177,-0.35 0.408,-0.646 0.693,-0.889 0.284,-0.243 0.614,-0.427 0.987,-0.553 0.373,-0.126 0.783,-0.189 1.232,-0.189 0.42,0 0.809,0.061 1.168,0.182 0.359,0.122 0.672,0.296 0.938,0.525 0.267,0.229 0.474,0.514 0.623,0.854 0.149,0.341 0.224,0.73 0.224,1.169 10e-4,0.308 -0.04,0.579 -0.124,0.812 z"
+         id="mode_x5F_help-2"
+         inkscape:connector-curvature="0"
+         style="fill:#000000"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+    </g>
+    <g
+       transform="translate(-262,305)"
+       style="display:inline"
+       inkscape:export-ydpi="90"
+       inkscape:export-xdpi="90"
+       id="src/plugins/projectexplorer/images/run_mask">
+      <rect
+         style="fill:#ffffff;fill-opacity:1"
+         x="600"
+         y="50"
+         width="24"
+         height="24"
+         id="rect5751-4" />
+      <polygon
+         style="fill:#000000"
+         points="621,61 603,72 603,50 "
+         id="polygon5749-6" />
+    </g>
+    <g
+       transform="translate(-388,305)"
+       style="display:inline"
+       inkscape:export-ydpi="90"
+       inkscape:export-xdpi="90"
+       inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+       id="src/plugins/projectexplorer/images/debugger_beetle_mask">
+      <rect
+         style="display:inline;fill:#ffffff;fill-opacity:1"
+         x="750"
+         y="50"
+         width="24"
+         height="24"
+         id="rect5759-4-1" />
+      <path
+         style="fill:#000000;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m 758.5,52 c -1.016,0 -2.635,0.93 -3.105,2.18 l 3.105,1.746 3.105,-1.747 C 761.135,52.93 759.516,52 758.5,52 Z"
+         id="path6121-0" />
+      <path
+         style="fill:#000000;fill-opacity:1"
+         inkscape:connector-curvature="0"
+         d="m 753.115,56.408 -1.055,-1.055 c -0.194,-0.194 -0.513,-0.194 -0.707,0 l 0,0 c -0.194,0.194 -0.194,0.513 0,0.707 l 1.407,1.407 -0.636,2.543 -1.124,0 c -0.275,0 -0.5,0.226 -0.5,0.5 0,0.274 0.225,0.5 0.5,0.5 l 1.156,0 0.873,2.794 -1.156,1.156 c -0.193,0.193 -0.193,0.512 0,0.707 0.195,0.193 0.514,0.193 0.707,0 l 0.963,-0.963 2.707,1.806 1.75,0.49 0,-7.75 0,-2.458 -3.256,-1.832 -1.629,1.448 z"
+         id="path6123-6" />
+      <use
+         x="0"
+         y="0"
+         xlink:href="#path6123-6"
+         id="use4775"
+         transform="matrix(-1,0,0,1,1516.9862,0)"
+         width="100%"
+         height="100%" />
+    </g>
+    <g
+       style="display:inline"
+       transform="translate(-364,305)"
+       inkscape:export-ydpi="90"
+       inkscape:export-xdpi="90"
+       inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+       id="src/plugins/projectexplorer/images/debugger_run_mask">
+      <rect
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         id="rect6723-8"
+         height="24"
+         width="24"
+         y="50"
+         x="750"
+         style="display:inline;fill:#ffffff;fill-opacity:1" />
+      <polygon
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         id="polygon6717-3"
+         points="763,74 774,67 763,60 "
+         style="fill:#000000;fill-opacity:1"
+         transform="translate(-1,-1)" />
+    </g>
+    <g
+       id="src/plugins/debugger/images/debugger_interrupt_mask"
+       inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90"
+       transform="translate(-340,305)"
+       style="display:inline">
+      <rect
+         style="display:inline;fill:#ffffff;fill-opacity:1"
+         x="750"
+         y="50"
+         width="24"
+         height="24"
+         id="rect4791"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90" />
+      <rect
+         style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect4608-0"
+         width="4"
+         height="12"
+         x="763"
+         y="61" />
+      <rect
+         style="display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="rect4610-6"
+         width="4"
+         height="12"
+         x="769"
+         y="61" />
+    </g>
+    <g
+       style="display:inline"
+       transform="translate(-316,305)"
+       inkscape:export-ydpi="90"
+       inkscape:export-xdpi="90"
+       inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+       id="src/plugins/debugger/images/debugger_continue_mask">
+      <rect
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         id="rect4797"
+         height="24"
+         width="24"
+         y="50"
+         x="750"
+         style="display:inline;fill:#ffffff;fill-opacity:1" />
+      <path
+         style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 758.5,73 6.5,-6 0,6 z"
+         id="path5681-4"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccc" />
+      <path
+         style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="path4867"
+         sodipodi:type="arc"
+         sodipodi:cx="766"
+         sodipodi:cy="66.99987"
+         sodipodi:rx="5.5"
+         sodipodi:ry="5.5"
+         sodipodi:start="2.1642083"
+         sodipodi:end="0"
+         sodipodi:open="true"
+         d="m 762.92444,71.559577 a 5.5,5.5 0 0 1 -1.99963,-6.679238 5.5,5.5 0 0 1 6.15603,-3.273221 5.5,5.5 0 0 1 4.41916,5.392752" />
+    </g>
+    <g
+       transform="translate(-392,305)"
+       style="display:inline"
+       inkscape:export-ydpi="90"
+       inkscape:export-xdpi="90"
+       inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+       id="src/plugins/projectexplorer/images/build_hammerhandle_mask">
+      <rect
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         style="fill:#ffffff;fill-opacity:1"
+         x="850"
+         y="50"
+         width="24"
+         height="24"
+         id="rect5759-5" />
+      <g
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         style="fill:#030303;fill-opacity:1"
+         id="build-5">
+        <rect
+           style="fill:#030303;fill-opacity:1"
+           x="856.98199"
+           y="53.081001"
+           transform="matrix(0.7071,0.7071,-0.7071,0.7071,296.0486,-588.562)"
+           width="3"
+           height="20"
+           id="rect5755-4" />
+      </g>
+    </g>
+    <g
+       transform="translate(-368,305)"
+       style="display:inline"
+       inkscape:export-ydpi="90"
+       inkscape:export-xdpi="90"
+       inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+       id="src/plugins/projectexplorer/images/build_hammerhead_mask">
+      <rect
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         style="fill:#ffffff;fill-opacity:1"
+         x="850"
+         y="50"
+         width="24"
+         height="24"
+         id="rect5759-5-9" />
+      <g
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         inkscape:export-filename="c:\Users\aportale\ownprojects\stuff\experiments\iconrecoloring\icon.png"
+         style="fill:#030303;fill-opacity:1"
+         id="build-5-2">
+        <polygon
+           style="fill:#030303;fill-opacity:1"
+           points="866.613,50 873.684,57.071 870.148,60.606 859.542,50 "
+           id="polygon5757-3-4" />
+      </g>
+    </g>
+  </g>
 </svg>