diff --git a/gr-checks/gr-checks-chip-view.html b/gr-checks/gr-checks-chip-view.html
index eb67227..e4358b5 100644
--- a/gr-checks/gr-checks-chip-view.html
+++ b/gr-checks/gr-checks-chip-view.html
@@ -21,7 +21,7 @@
     <template is="dom-if" if="[[_hasChecks]]">
       Checks:
       <span class$="[[_chipClasses]]">
-        <gr-checks-status status="[[_status]]"></gr-checks-status>
+        <gr-checks-status status="[[_status]]" downgrade-failure-to-warning="[[_downgradeFailureToWarning]]"></gr-checks-status>
         [[_statusString]]
       </span>
     </template>
diff --git a/gr-checks/gr-checks-chip-view.js b/gr-checks/gr-checks-chip-view.js
index 8e069e2..3ed66e1 100644
--- a/gr-checks/gr-checks-chip-view.js
+++ b/gr-checks/gr-checks-chip-view.js
@@ -45,6 +45,22 @@
     }, {total: checks.length});
   }
 
+  function downgradeFailureToWarning(checks) {
+    const hasFailedCheck = checks.some(
+      (check) => {
+        return check.state == Statuses.FAILED;
+      }
+    )
+    if (!hasFailedCheck) return false;
+    const hasRequiredFailedCheck = checks.some(
+      (check) => {
+        return check.state == Statuses.FAILED && check.blocking && check.blocking.length > 0;
+      }
+    )
+    return !hasRequiredFailedCheck;
+  }
+
+
   Polymer({
     is: 'gr-checks-chip-view',
     _legacyUndefinedCheck: true,
@@ -62,6 +78,10 @@
         computed: '_computeStatusString(_status, _checkStatuses)',
       },
       _chipClasses: {type: String, computed: '_computeChipClass(_status)'},
+      _downgradeFailureToWarning: {
+        type: Boolean,
+        value: false
+      }
     },
 
     observers: [
@@ -97,6 +117,7 @@
         if (checks.length > 0) {
           this.set(
               '_checkStatuses', computeCheckStatuses(checks));
+          this.set('_downgradeFailureToWarning', downgradeFailureToWarning(checks));
         }
       });
     },
diff --git a/gr-checks/gr-checks-item.html b/gr-checks/gr-checks-item.html
index 18d85bb..64a061b 100644
--- a/gr-checks/gr-checks-item.html
+++ b/gr-checks/gr-checks-item.html
@@ -23,7 +23,7 @@
     <td>[[check.checker_name]]</td>
     <td>[[_requiredForMerge]]</td>
     <td>
-      <gr-checks-status show-text status="[[check.state]]"></gr-checks-status>
+      <gr-checks-status show-text status="[[check.state]]" downgrade-failure-to-warning="[[false]]"></gr-checks-status>
     </td>
     <td><!--Check System--></td>
     <td>[[_startTime]]</td>
diff --git a/gr-checks/gr-checks-status.html b/gr-checks/gr-checks-status.html
index ba5eef0..a1072bd 100644
--- a/gr-checks/gr-checks-status.html
+++ b/gr-checks/gr-checks-status.html
@@ -14,22 +14,19 @@
           text-align: center;
           width: 16px;
         }
-        .successful > i {
-          background-color: #00C752;
-        }
-        .failed > i {
-          background-color: #DA4236;
-        }
-        .in-progress > i {
-          background-color: #ddd;
-        }
-        .unevaluated > i {
-          background-color: black;
+        svg {
+          display: inline-block;
+          vertical-align: middle;
         }
       </style>
     <span class$="[[_className]]">
       <template is="dom-if" if="[[_isUnevaluated(status)]]">
-        <i>&#x23F9;</i>
+        <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+          <g fill="none" fill-rule="evenodd">
+            <path d="M0 0h18v18H0z"/>
+            <path d="M9 11.8a2.8 2.8 0 1 1 0-5.6 2.8 2.8 0 0 1 0 5.6M9 2a7 7 0 1 0 0 14A7 7 0 0 0 9 2" fill="#9E9E9E"/>
+          </g>
+        </svg>
         <template is="dom-if" if="[[showText]]">
           <span>
             Unevaluated
@@ -37,7 +34,12 @@
         </template>
       </template>
       <template is="dom-if" if="[[_isInProgress(status)]]">
-        <i>…</i>
+        <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+          <g fill="none" fill-rule="evenodd">
+            <path d="M12.184 9.293c-.86 0-1.641-.39-2.15-.976L9.8 9.489l.82.78V13.2h-.78v-2.344l-.821-.781-.39 1.719-2.736-.547.157-.782 1.914.391.625-3.164-.703.273v1.328h-.782V7.457l2.032-.86c.117 0 .196-.039.313-.039.273 0 .508.157.664.391l.39.625c.313.547.939.938 1.68.938v.781zM10.034 4.8c.43 0 .782.352.782.782 0 .43-.352.781-.781.781a.783.783 0 0 1-.782-.781c0-.43.352-.782.782-.782zM9 2a7 7 0 1 0 .002 14.002A7 7 0 0 0 9 2z" fill="#9C27B0"/>
+            <path d="M0 0h18v18H0z"/>
+          </g>
+        </svg>
         <template is="dom-if" if="[[showText]]">
           <span>
             In progress
@@ -45,7 +47,12 @@
         </template>
       </template>
       <template is="dom-if" if="[[_isSuccessful(status)]]">
-        <i>✓</i>
+        <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+          <g fill="none" fill-rule="evenodd">
+            <path d="M9 2C5.136 2 2 5.136 2 9s3.136 7 7 7 7-3.136 7-7-3.136-7-7-7zM7.6 12.5L4.1 9l.987-.987L7.6 10.519l5.313-5.313.987.994-6.3 6.3z" fill="#00C752"/>
+            <path d="M0 0h18v18H0z"/>
+          </g>
+        </svg>
         <template is="dom-if" if="[[showText]]">
           <span>
             Successful
@@ -53,7 +60,28 @@
         </template>
       </template>
       <template is="dom-if" if="[[_isFailed(status)]]">
-        <i>!</i>
+        <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+          <g fill="none" fill-rule="evenodd">
+            <path d="M9 2a7 7 0 1 0 0 14A7 7 0 0 0 9 2zm-1 8V5h2v5H8zm0 3v-2h2v2H8z" fill="#DA4236"/>
+            <path d="M0 0h18v18H0z"/>
+          </g>
+        </svg>
+        <template is="dom-if" if="[[showText]]">
+          <span>
+            Failed
+          </span>
+        </template>
+      </template>
+      <template is="dom-if" if="[[_isWarning(status)]]">
+        <svg width="18" height="18" xmlns="http://www.w3.org/2000/svg">
+          <g fill="none" fill-rule="evenodd">
+            <g transform="translate(2 2)">
+              <circle fill="#F29900" cx="6.921" cy="6.921" r="6.921"/>
+              <path d="M6.92 1.3l4.686 8.2H2.235L6.92 1.3zm-.584 5.271h1.171V3.643H6.336V6.57zm0 2.258h1.171V7.657H6.336V8.83z" fill="#F8F9FA"/>
+            </g>
+            <path d="M0 0h18v18H0z"/>
+          </g>
+        </svg>
         <template is="dom-if" if="[[showText]]">
           <span>
             Failed
diff --git a/gr-checks/gr-checks-status.js b/gr-checks/gr-checks-status.js
index 721c3cf..0f18339 100644
--- a/gr-checks/gr-checks-status.js
+++ b/gr-checks/gr-checks-status.js
@@ -12,7 +12,7 @@
         reflectToAttribute: true,
       },
       status: String,
-      _className: {type: String, computed: '_computeClassName(status)'},
+      downgradeFailureToWarning: Boolean
     },
 
     _isUnevaluated(status) {
@@ -28,11 +28,12 @@
     },
 
     _isFailed(status) {
-      return window.Gerrit.Checks.isFailed(status);
+      return !this.downgradeFailureToWarning && window.Gerrit.Checks.isFailed(status);
     },
 
-    _computeClassName(status) {
-      return window.Gerrit.Checks.statusClass(status);
+    _isWarning(status) {
+      return this.downgradeFailureToWarning && window.Gerrit.Checks.isFailed(status);
     },
+
   });
 })();
