diff --git a/core/themes/classy/templates/navigation/menu.html.twig b/core/themes/classy/templates/navigation/menu.html.twig
index e482ef4..48ce9a1 100644
--- a/core/themes/classy/templates/navigation/menu.html.twig
+++ b/core/themes/classy/templates/navigation/menu.html.twig
@@ -24,32 +24,39 @@
   We call a macro which calls itself to render the full tree.
   @see http://twig.sensiolabs.org/doc/tags/macro.html
 #}
-{{ menus.menu_links(items, attributes, 0) }}
+{{ menus.menu_links(items, attributes) }}
 
-{% macro menu_links(items, attributes, menu_level) %}
+{% macro menu_links(items, attributes, base_class, modifier_class, menu_level) %}
   {% import _self as menus %}
-  {% if items %}
-    {% if menu_level == 0 %}
-      <ul{{ attributes.addClass('menu') }}>
-    {% else %}
-      <ul class="menu">
-    {% endif %}
-    {% for item in items %}
-      {%
-        set classes = [
-          'menu-item',
-          item.is_expanded ? 'menu-item--expanded',
-          item.is_collapsed ? 'menu-item--collapsed',
-          item.in_active_trail ? 'menu-item--active-trail',
-        ]
-      %}
-      <li{{ item.attributes.addClass(classes) }}>
-        {{ link(item.title, item.url) }}
-        {% if item.below %}
-          {{ menus.menu_links(item.below, attributes, menu_level + 1) }}
+  {% set base_class = base_class|default('menu') %}
+  {% set menu_level = menu_level|default(1) %}
+
+  {% for item in items %}
+    {% if loop.first %}
+      <ul
+        {% if menu_level === 1 %}
+          {{ attributes.addClass([base_class, modifier_class]) }}
+        {% else %}
+          class="{{ base_class }}__list"
         {% endif %}
-      </li>
-    {% endfor %}
-    </ul>
-  {% endif %}
+      >
+    {% endif %}
+    {%
+      set classes = [
+        base_class ~ '__item',
+        item.is_expanded ? 'is-expanded',
+        item.is_collapsed ? 'is-collapsed',
+        item.in_active_trail ? 'is-active-trail',
+      ]
+    %}
+    <li{{ item.attributes.addClass(classes) }}>
+      {{ link(item.title, item.url, {class: base_class ~ '__link'}) }}
+      {% if item.below|length > 0 %}
+        {{ menus.menu_links(item.below, attributes, base_class, modifier_class, menu_level + 1) }}
+      {% endif %}
+    </li>
+    {% if loop.last %}
+      </ul>
+    {% endif %}
+  {% endfor %}
 {% endmacro %}
