diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 266f2d1..9975b38 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -2108,6 +2108,33 @@ function theme_item_list($variables) {
 }
 
 /**
+ * Preprocess variable for theme('item_list').
+ */
+function template_preprocess_item_list($variables) {
+  $items = $variables['items'];
+  if ($items) {
+    foreach ($items as $key => $item) {
+      if (is_array($item)) {
+        $value = '';
+        if (isset($item['data'])) {
+          $value .= $item['data'];
+        }
+        // Convert non-Children to Attributes.
+        $attributes = array_diff_key($item, array('data' => 0, 'children' => 0));
+        if (!empty($attributes)) {
+          foreach ($attributes as $k => $v) {
+            $variables['attributes'][$k] = new Attribute($v);
+          }
+        }
+      }
+      else {
+        $value = $item;
+      }
+    }
+  }
+}
+
+/**
  * Returns HTML for a "more help" link.
  *
  * @param $variables
diff --git a/core/themes/stark/templates/system/item-list.twig b/core/themes/stark/templates/system/item-list.twig
new file mode 100644
index 0000000..823369b
--- /dev/null
+++ b/core/themes/stark/templates/system/item-list.twig
@@ -0,0 +1,47 @@
+{#
+/**
+ * @file
+ * Returns HTML for a list or nested list of items.
+ *
+ * Available variables:
+ *
+ * - items: A list of items to render. String values are rendered as is.
+ *   Each item can also be an associative array containing:
+ *   - data: The string content of the list item.
+ *   - children: A list of nested child items to render that behave
+ *     identically to 'items', but any non-numeric string keys are treated as
+ *     HTML attributes for the child list that wraps 'children'.
+ *   Any other key/value pairs are used as HTML attributes for the list item
+ *   in 'data'.
+ * - title: The title of the list.
+ * - type: The type of list to return (e.g. "ul", "ol").
+ * - attributes: The attributes applied to the list element.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_item_list()
+ *
+ * @ingroup themable
+ */
+#}
+<div class="item-list">
+  {% if title %}
+    <h3>{{ title }}</h3>
+  {% endif %}
+    {% if items %}
+    <{{ type }} class="{{ attributes.class }}" {{ attributes }}>
+    {% for item in items %}
+      <li class="{{- item.attributes.class -}} {{ cycle(['even', 'odd'], loop.index) -}} {{ loop.first ? ' first' : '' -}} {{ loop.last ? ' last' : '' }}" {{ item.attributes -}}>
+        {{- item -}}
+        {% if item.children %}
+          {% include "core/themes/stark/templates/system/item-list.twig" with {
+            'items': item.children,
+            'title': item.title ? item.title : '',
+            'type': item.type ? item.type : type,
+            'attributes': item.attributes ? item.attributes : ''
+          } %}
+        {% endif %}
+      </li>
+    {% endfor %}
+    </{{type}}>
+  {% endif %}
+</div>
