diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index cccc4cc..c624457 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -51,6 +51,11 @@
 const MARK_UPDATED = 2;
 
 /**
+ * Mark content as being unpublished.
+ */
+const MARK_UNPUBLISHED = 3;
+
+/**
  * A responsive table class; hide table cell on narrow devices.
  *
  * Indicates that a column has medium priority and thus can be hidden on narrow
@@ -1064,6 +1069,29 @@ function template_preprocess_tablesort_indicator(&$variables) {
 }
 
 /**
+ * Establishes an accessible marker for unpublished, new & updated content.
+ */
+function theme_mark($variables) {
+  $type = $variables['status'];
+
+  if (\Drupal::currentUser()->isAuthenticated()) {
+    if ($type == MARK_UNPUBLISHED) {
+      $mark_text = t('unpublished');
+    }
+    elseif ($type == MARK_NEW) {
+      $mark_text = t('new');
+    }
+    elseif ($type == MARK_UPDATED) {
+      $mark_text = t('updated');
+    }
+  }
+  if (!empty($mark_text)) {
+    return ' <span class="marker">' . $mark_text . '</span>';
+  }
+}
+
+
+/**
  * Prepares variables for item list templates.
  *
  * Default template: item-list.html.twig.
@@ -1857,7 +1885,7 @@ function drupal_common_theme() {
       'variables' => array('style' => NULL),
     ),
     'mark' => array(
-      'variables' => array('status' => MARK_NEW),
+      'variables' => array('status' => NULL),
     ),
     'item_list' => array(
       'variables' => array('items' => array(), 'title' => '', 'list_type' => 'ul', 'attributes' => array(), 'empty' => NULL),
diff --git a/core/modules/comment/css/comment.theme.css b/core/modules/comment/css/comment.theme.css
index c702161..fa788a5 100644
--- a/core/modules/comment/css/comment.theme.css
+++ b/core/modules/comment/css/comment.theme.css
@@ -14,3 +14,16 @@
   margin-left: 0;
   margin-right: 25px;
 }
+.comment-unpublished div.unpublished {
+  height: 0;
+  overflow: visible;
+  color: #d8d8d8;
+  font-size: 4em;
+  line-height: 1;
+  font-weight: bold;
+  text-transform: uppercase;
+  text-align: center;
+}
+.preview .comment div.unpublished {
+  display: none;
+}
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 124a060..5d600ed 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -218,6 +218,9 @@ function node_mark($nid, $timestamp) {
   if (\Drupal::currentUser()->isAnonymous() || !\Drupal::moduleHandler()->moduleExists('history')) {
     return MARK_READ;
   }
+  // if (!$node->isPublished()) {
+    return MARK_UNPUBLISHED;
+  // }
   if (!isset($cache[$nid])) {
     $cache[$nid] = history_read($nid);
   }
diff --git a/core/modules/system/css/system.theme.css b/core/modules/system/css/system.theme.css
index c35796a..665985e 100644
--- a/core/modules/system/css/system.theme.css
+++ b/core/modules/system/css/system.theme.css
@@ -8,6 +8,30 @@
  */
 .node--unpublished {
   background-color: #fff4f4;
+  box-shadow: 0 -8px 0 #d8d8d8;
+  z-index: 0;
+}
+.node-preview div.unpublished {
+  display: none;
+}
+.preview .comment div.unpublished {
+  display: none;
+}
+.marker {
+  color: #d8d8d8;
+  font-family: Impact,"Arial Narrow",Helvetica,sans-serif;
+  font-size: 75px;
+  font-weight: bold;
+  height: 0;
+  line-height: 1;
+  overflow: visible;
+  text-transform: uppercase;
+  word-wrap: break-word;
+  float: right;
+  position: relative;
+  left: -50%;
+  text-align: left;
+  z-index: -1;
 }
 
 /**
@@ -76,9 +100,6 @@ label.option {
 .form-type-checkbox .description {
   margin-left: 2.4em;
 }
-.marker {
-  color: #e00;
-}
 
 .form-required:after {
   content: '';
diff --git a/core/themes/bartik/bartik.theme b/core/themes/bartik/bartik.theme
index 145c15c..6a74ad3 100644
--- a/core/themes/bartik/bartik.theme
+++ b/core/themes/bartik/bartik.theme
@@ -63,6 +63,17 @@ function bartik_preprocess_page(&$variables) {
 }
 
 /**
+ * Implements hook_process_HOOK() for comment.html.twig.
+ *
+ * Override or insert variables into the comment template.
+ */
+function bartik_preprocess_comment(&$variables) {
+  if ($variables['status'] == 'unpublished') {
+    $variables['unpublished'] = _theme('mark', (array('type' => MARK_UNPUBLISHED)));
+  }
+}
+
+/**
  * Implements hook_preprocess_HOOK() for maintenance-page.html.twig.
  */
 function bartik_preprocess_maintenance_page(&$variables) {
@@ -90,6 +101,12 @@ function bartik_preprocess_node(&$variables) {
   if ($variables['teaser'] || !empty($variables['content']['comments']['comment_form'])) {
     unset($variables['content']['links']['comment']['#links']['comment-add']);
   }
+
+  $status = (isset($variables['status'])) ? $variables['status'] : 0;
+  // Add an unpublished mark to unpublished nodes.
+  if (!$status && !isset($variables['preview'])) {
+    $variables['unpublished'] = _theme('mark', (array('type' => MARK_UNPUBLISHED)));
+  }
 }
 
 /**
diff --git a/core/themes/bartik/css/components/content.css b/core/themes/bartik/css/components/content.css
index 1948af8..997b5a6 100644
--- a/core/themes/bartik/css/components/content.css
+++ b/core/themes/bartik/css/components/content.css
@@ -118,7 +118,8 @@ ul.links {
 }
 .node--unpublished,
 .unpublished {
-  padding: 20px 15px 0;
+  margin: -10px 0 0;
+  padding: 15px 0 0;
 }
 .node--unpublished .comment-text .comment-arrow,
 .unpublished .comment-text .comment-arrow {
diff --git a/core/themes/bartik/templates/node.html.twig b/core/themes/bartik/templates/node.html.twig
index b390681..fd6f19f 100644
--- a/core/themes/bartik/templates/node.html.twig
+++ b/core/themes/bartik/templates/node.html.twig
@@ -82,6 +82,7 @@
       </h2>
     {% endif %}
     {{ title_suffix }}
+    {{ unpublished }}
     {% if display_submitted %}
       <div class="node__meta">
         {{ author_picture }}
