diff --git a/app/assets/javascripts/discourse/components/hamburger-category.js.es6 b/app/assets/javascripts/discourse/components/hamburger-category.js.es6
new file mode 100644
index 000000000..63b08fd70
--- /dev/null
+++ b/app/assets/javascripts/discourse/components/hamburger-category.js.es6
@@ -0,0 +1,13 @@
+import computed from 'ember-addons/ember-computed-decorators';
+
+export default Ember.Component.extend({
+  tagName: 'li',
+  classNames: ['category-link'],
+
+  @computed('category.unreadTopics', 'category.newTopics')
+  unreadTotal(unreadTopics, newTopics) {
+    return parseInt(unreadTopics, 10) + parseInt(newTopics, 10);
+  },
+
+  showTopicCount: Ember.computed.not('currentUser')
+});
diff --git a/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6
new file mode 100644
index 000000000..b4b2a33ad
--- /dev/null
+++ b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6
@@ -0,0 +1,77 @@
+import { default as computed, on } from 'ember-addons/ember-computed-decorators';
+
+export default Ember.Component.extend({
+  classNameBindings: ['visible::slideright'],
+  elementId: 'hamburger-menu',
+
+  @computed()
+  showKeyboardShortcuts() {
+    return !Discourse.Mobile.mobileView && !this.capabilities.touch;
+  },
+
+  @computed()
+  showMobileToggle() {
+    return Discourse.Mobile.mobileView || (this.siteSettings.enable_mobile_theme && this.capabilities.touch);
+  },
+
+  @computed()
+  mobileViewLinkTextKey() {
+    return Discourse.Mobile.mobileView ? "desktop_view" : "mobile_view";
+  },
+
+  @computed()
+  faqUrl() {
+    return this.siteSettings.faq_url ? this.siteSettings.faq_url : Discourse.getURL('/faq');
+  },
+
+  @on('didInsertElement')
+  _bindEvents() {
+    this.$().on('click.discourse-hamburger', 'a', () => {
+      this.set('visible', false);
+    });
+
+    $('body').on('keydown.discourse-hambuger', (e) => {
+      if (e.which === 27) {
+        this.set('visible', false);
+      }
+    });
+
+    if (this.capabilities.touch) {
+      $('body').on('swipeleft.discourse-hamburger', () => this.set('visible', true));
+      $('body').on('swiperight.discourse-hamburger', () => this.set('visible', false));
+    }
+  },
+
+  @on('willDestroyElement')
+  _removeEvents() {
+    this.$().off('click.discourse-hamburger');
+    $('body').off('keydown.discourse-hambuger');
+    $('body').off('swipeleft.discourse-hamburger');
+    $('body').off('swiperight.discourse-hamburger');
+  },
+
+  @computed()
+  categories() {
+    const hideUncategorized = !this.siteSettings.allow_uncategorized_topics;
+    const showSubcatList = this.siteSettings.show_subcategory_list;
+    const isStaff = Discourse.User.currentProp('staff');
+
+    return Discourse.Category.list().reject((c) => {
+      if (showSubcatList && c.get('parent_category_id')) { return true; }
+      if (hideUncategorized && c.get('isUncategorizedCategory') && !isStaff) { return true; }
+      return false;
+    });
+  },
+
+  actions: {
+    close() {
+      this.set('visible', false);
+    },
+    keyboardShortcuts() {
+      this.sendAction('showKeyboardAction');
+    },
+    toggleMobileView() {
+      Discourse.Mobile.toggleMobileView();
+    }
+  }
+});
diff --git a/app/assets/javascripts/discourse/controllers/application.js.es6 b/app/assets/javascripts/discourse/controllers/application.js.es6
index 2f0b4cec5..472bba315 100644
--- a/app/assets/javascripts/discourse/controllers/application.js.es6
+++ b/app/assets/javascripts/discourse/controllers/application.js.es6
@@ -1,16 +1,27 @@
+import computed from 'ember-addons/ember-computed-decorators';
+
 export default Ember.Controller.extend({
   showTop: true,
   showFooter: false,
   styleCategory: null,
+  hamburgerVisible: false,
 
-  canSignUp: function() {
+  @computed
+  canSignUp() {
     return !Discourse.SiteSettings.invite_only &&
            Discourse.SiteSettings.allow_new_registrations &&
            !Discourse.SiteSettings.enable_sso;
-  }.property(),
+  },
 
-  loginRequired: function() {
+  @computed
+  loginRequired() {
     return Discourse.SiteSettings.login_required && !Discourse.User.current();
-  }.property()
+  },
+
+  actions: {
+    toggleHamburgerMenu() {
+      this.toggleProperty('hamburgerVisible');
+    }
+  }
 
 });
diff --git a/app/assets/javascripts/discourse/controllers/site-map-category.js.es6 b/app/assets/javascripts/discourse/controllers/site-map-category.js.es6
deleted file mode 100644
index 0fcce87f9..000000000
--- a/app/assets/javascripts/discourse/controllers/site-map-category.js.es6
+++ /dev/null
@@ -1,10 +0,0 @@
-export default Ember.Controller.extend({
-  needs: ['site-map'],
-
-  unreadTotal: function() {
-    return parseInt(this.get('model.unreadTopics'), 10) +
-           parseInt(this.get('model.newTopics'), 10);
-  }.property('model.unreadTopics', 'model.newTopics'),
-
-  showTopicCount: Em.computed.not('currentUser')
-});
diff --git a/app/assets/javascripts/discourse/controllers/site-map.js.es6 b/app/assets/javascripts/discourse/controllers/site-map.js.es6
deleted file mode 100644
index 61192eb57..000000000
--- a/app/assets/javascripts/discourse/controllers/site-map.js.es6
+++ /dev/null
@@ -1,46 +0,0 @@
-import { url } from 'discourse/lib/computed';
-
-export default Ember.ArrayController.extend({
-  needs: ['application', 'header'],
-
-  showBadgesLink: function(){return Discourse.SiteSettings.enable_badges;}.property(),
-  showAdminLinks: Em.computed.alias('currentUser.staff'),
-
-  faqUrl: function() {
-    return Discourse.SiteSettings.faq_url ? Discourse.SiteSettings.faq_url : Discourse.getURL('/faq');
-  }.property(),
-
-  badgesUrl: url('/badges'),
-
-  showKeyboardShortcuts: function(){
-    return !Discourse.Mobile.mobileView && !this.capabilities.touch;
-  }.property(),
-
-  showMobileToggle: function(){
-    return Discourse.Mobile.mobileView || (Discourse.SiteSettings.enable_mobile_theme && this.capabilities.touch);
-  }.property(),
-
-  mobileViewLinkTextKey: function() {
-    return Discourse.Mobile.mobileView ? "desktop_view" : "mobile_view";
-  }.property(),
-
-  categories: function() {
-    var hideUncategorized = !this.siteSettings.allow_uncategorized_topics,
-        showSubcatList = this.siteSettings.show_subcategory_list,
-        isStaff = Discourse.User.currentProp('staff');
-    return Discourse.Category.list().reject(function(c) {
-      if (showSubcatList && c.get('parent_category_id')) { return true; }
-      if (hideUncategorized && c.get('isUncategorizedCategory') && !isStaff) { return true; }
-      return false;
-    });
-  }.property(),
-
-  actions: {
-    keyboardShortcuts: function(){
-      this.get('controllers.application').send('showKeyboardShortcutsHelp');
-    },
-    toggleMobileView: function() {
-      Discourse.Mobile.toggleMobileView();
-    }
-  }
-});
diff --git a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6
index 2075a57ce..d611ca530 100644
--- a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6
+++ b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6
@@ -45,7 +45,7 @@ const PATH_BINDINGS = {
       'k': 'selectUp',
       'u': 'goBack',
       '/': 'showSearch',
-      '=': 'showSiteMap',                                                       // open site map menu
+      '=': 'toggleHamburgerMenu',
       'p': 'showCurrentUser',                                                   // open current user menu
       'ctrl+f': 'showBuiltinSearch',
       'command+f': 'showBuiltinSearch',
@@ -172,9 +172,8 @@ export default {
     return false;
   },
 
-  showSiteMap() {
-    $('#site-map').click();
-    $('#site-map-dropdown a:first').focus();
+  toggleHamburgerMenu() {
+    this.container.lookup('controller:application').send('toggleHamburgerMenu');
   },
 
   showCurrentUser() {
diff --git a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6
index 90a722de9..c68349805 100644
--- a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6
+++ b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6
@@ -28,5 +28,6 @@ export default {
     application.register('capabilities:main', caps, { instantiate: false });
     application.inject('view', 'capabilities', 'capabilities:main');
     application.inject('controller', 'capabilities', 'capabilities:main');
+    application.inject('component', 'capabilities', 'capabilities:main');
   }
 };
diff --git a/app/assets/javascripts/discourse/routes/application.js.es6 b/app/assets/javascripts/discourse/routes/application.js.es6
index a923dd179..a8ede9129 100644
--- a/app/assets/javascripts/discourse/routes/application.js.es6
+++ b/app/assets/javascripts/discourse/routes/application.js.es6
@@ -13,7 +13,6 @@ function unlessReadOnly(method) {
 }
 
 const ApplicationRoute = Discourse.Route.extend(OpenComposer, {
-
   siteTitle: setting('title'),
 
   actions: {
@@ -134,12 +133,12 @@ const ApplicationRoute = Discourse.Route.extend(OpenComposer, {
       });
     },
 
-    deleteSpammer: function (user) {
+    deleteSpammer(user) {
       this.send('closeModal');
       user.deleteAsSpammer(function() { window.location.reload(); });
     },
 
-    checkEmail: function (user) {
+    checkEmail(user) {
       user.checkEmail();
     },
 
@@ -150,7 +149,7 @@ const ApplicationRoute = Discourse.Route.extend(OpenComposer, {
       this.render(w, {into: 'modal/topic-bulk-actions', outlet: 'bulkOutlet', controller: factory ? controllerName : 'topic-bulk-actions'});
     },
 
-    createNewTopicViaParams: function(title, body, category_id, category) {
+    createNewTopicViaParams(title, body, category_id, category) {
       this.openComposerWithParams(this.controllerFor('discovery/topics'), title, body, category_id, category);
     }
   },
diff --git a/app/assets/javascripts/discourse/templates/application.hbs b/app/assets/javascripts/discourse/templates/application.hbs
index 9d92d2063..3a3eb1955 100644
--- a/app/assets/javascripts/discourse/templates/application.hbs
+++ b/app/assets/javascripts/discourse/templates/application.hbs
@@ -18,3 +18,5 @@
 {{render "modal"}}
 {{render "topic-entrance"}}
 {{render "composer"}}
+
+{{hamburger-menu visible=hamburgerVisible showKeyboardAction="showKeyboardShortcutsHelp"}}
diff --git a/app/assets/javascripts/discourse/templates/components/hamburger-category.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-category.hbs
new file mode 100644
index 000000000..9204b3d42
--- /dev/null
+++ b/app/assets/javascripts/discourse/templates/components/hamburger-category.hbs
@@ -0,0 +1,9 @@
+{{category-link category allowUncategorized="true"}}
+
+{{#if unreadTotal}}
+  <a href={{category.url}} class='badge badge-notification'>{{unreadTotal}}</a>
+{{/if}}
+
+{{#if showTopicCount}}
+  <b class="topics-count">{{category.topic_count}}</b>
+{{/if}}
diff --git a/app/assets/javascripts/discourse/templates/site-map.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs
similarity index 55%
rename from app/assets/javascripts/discourse/templates/site-map.hbs
rename to app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs
index 99af0489c..58e2b1150 100644
--- a/app/assets/javascripts/discourse/templates/site-map.hbs
+++ b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs
@@ -1,16 +1,17 @@
-<section class="d-dropdown" id="site-map-dropdown">
+{{#if visible}}
+  <a href {{action "close"}} class='close-hamburger'>{{fa-icon 'times'}}</a>
   <ul class="location-links">
-    {{#if showAdminLinks}}
+    {{#if currentUser.staff}}
       <li>
         {{#link-to "admin" class="admin-link"}}
-          <i class='fa fa-wrench'></i> {{i18n 'admin_title'}}
+          {{fa-icon "wrench"}} {{i18n 'admin_title'}}
         {{/link-to}}
       </li>
       <li>
         {{#link-to "adminFlags" class="flagged-posts-link"}}
           {{fa-icon "flag"}} {{i18n 'flags_title'}}
           {{#if currentUser.site_flagged_posts_count}}
-            <span title='{{i18n 'notifications.total_flagged'}}' class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</span>
+            <span title={{i18n 'notifications.total_flagged'}} class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</span>
           {{/if}}
         {{/link-to}}
       </li>
@@ -20,14 +21,14 @@
         {{i18n 'filters.latest.title.zero'}}
       {{/link-to}}
     </li>
-    {{#if showBadgesLink}}
+    {{#if siteSettings.enable_badges}}
       <li>
-        <a href="{{unbound badgesUrl}}" class="badge-link">{{i18n 'badges.title'}}</a>
+        {{#link-to 'badges' class="badge-link"}}{{i18n 'badges.title'}}{{/link-to}}
       </li>
     {{/if}}
 
     {{#if siteSettings.enable_user_directory}}
-      <li>{{#link-to 'users'}}{{i18n "directory.title"}}{{/link-to}}</li>
+      <li>{{#link-to 'users' class="user-directory-link"}}{{i18n "directory.title"}}{{/link-to}}</li>
     {{/if}}
 
     {{#if currentUser.show_queued_posts}}
@@ -47,10 +48,10 @@
       <li><a href {{action "keyboardShortcuts"}} class="keyboard-shortcuts-link">{{i18n 'keyboard_shortcuts_help.title'}}</a></li>
     {{/if}}
     <li>
-      <a href="{{unbound faqUrl}}" class="faq-link">{{i18n 'faq'}}</a>
+      <a href={{faqUrl}} class="faq-link">{{i18n 'faq'}}</a>
     </li>
     <li>
-      {{#link-to 'about'}}{{i18n 'about.simple_title'}}{{/link-to}}
+      {{#link-to 'about' class="about-link"}}{{i18n 'about.simple_title'}}{{/link-to}}
     </li>
     {{#if showMobileToggle}}
       <li><a href class="mobile-toggle-link" {{action "toggleMobileView"}}>{{boundI18n mobileViewLinkTextKey}}</a></li>
@@ -61,23 +62,15 @@
 
   {{#if categories}}
     <ul class="category-links">
-      <li class="heading" title="{{i18n 'filters.categories.help'}}">
-        {{#link-to "discovery.categories"}}{{i18n 'filters.categories.title'}}{{/link-to}}
+      <li class="heading" title={{i18n 'filters.categories.help'}}>
+        {{#link-to "discovery.categories" class="categories-link"}}{{i18n 'filters.categories.title'}}{{/link-to}}
       </li>
 
-      {{#each c in categories itemController='site-map-category'}}
-        <li class="category">
-          {{category-link c.model allowUncategorized="true"}}
-
-          {{#if c.unreadTotal}}
-            <a href={{unbound c.model.url}} class='badge badge-notification'>{{c.unreadTotal}}</a>
-          {{/if}}
-
-          {{#if c.showTopicCount}}
-            <b class="topics-count">{{unbound c.model.topic_count}}</b>
-          {{/if}}
-        </li>
+      {{#each categories as |c|}}
+        {{hamburger-category category=c}}
       {{/each}}
     </ul>
   {{/if}}
-</section>
+
+  <br>
+{{/if}}
diff --git a/app/assets/javascripts/discourse/templates/header.hbs b/app/assets/javascripts/discourse/templates/header.hbs
index 42b2323f6..a05d8930e 100644
--- a/app/assets/javascripts/discourse/templates/header.hbs
+++ b/app/assets/javascripts/discourse/templates/header.hbs
@@ -12,9 +12,9 @@
       {{/unless}}
       <ul class='icons clearfix' role='navigation'>
         {{#if currentUser}}
-        
+
           {{plugin-outlet "header-before-notifications"}}
-          
+
           <li class='notifications'>
             <a class='icon' href {{action "showNotifications" target="view"}} data-notifications="notifications-dropdown" id='user-notifications' title='{{i18n 'notifications.title'}}'>
               {{fa-icon "comment" label="notifications.title"}}
@@ -45,21 +45,18 @@
         <li class='categories dropdown'>
           {{#if loginRequired}}
             <a class='icon'
-               href="#"
+               href
                aria-hidden="true"
-               id="site-map"
+               id="toggle-hamburger-menu"
                {{action "showLogin"}}>
                {{fa-icon "bars"}}
             </a>
           {{else}}
-            <a class='icon'
-               data-dropdown="site-map-dropdown"
-               data-render="renderSiteMap"
-               href
-               title='{{i18n 'site_map'}}'
-               aria-label='{{i18n 'site_map'}}'
-               id="site-map">
-               {{fa-icon "bars" label="site_map"}}
+          <a {{action "toggleHamburgerMenu"}} class='icon' href
+               title={{i18n 'hamburger_menu'}}
+               aria-label={{i18n 'hamburger_menu'}}
+               id="toggle-hamburger-menu">
+               {{fa-icon "bars"}}
             </a>
           {{/if}}
           {{#if flaggedPostsCount}}
@@ -82,16 +79,9 @@
       </ul>
 
       {{#if view.renderDropdowns}}
-      
         {{plugin-outlet "header-before-dropdowns"}}
-        
         {{render "search"}}
         {{render "notifications" notifications}}
-
-        {{#if view.renderSiteMap}}
-          {{render "site-map"}}
-        {{/if}}
-
         {{render "user-dropdown"}}
       {{/if}}
     </div>
diff --git a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs
index 38167ba22..f07392a4b 100644
--- a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs
+++ b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs
@@ -25,7 +25,7 @@
       <ul>
         <li>{{{i18n 'keyboard_shortcuts_help.application.create'}}}</li>
         <li>{{{i18n 'keyboard_shortcuts_help.application.notifications'}}}</li>
-        <li>{{{i18n 'keyboard_shortcuts_help.application.site_map_menu'}}}</li>
+        <li>{{{i18n 'keyboard_shortcuts_help.application.hamburger_menu'}}}</li>
         <li>{{{i18n 'keyboard_shortcuts_help.application.user_profile_menu'}}}</li>
         <li>{{{i18n 'keyboard_shortcuts_help.application.show_incoming_updated_topics'}}}</li>
         <li>{{{i18n 'keyboard_shortcuts_help.application.search'}}}</li>
diff --git a/app/assets/javascripts/vendor.js b/app/assets/javascripts/vendor.js
index 5c0788f8c..eab84ef89 100644
--- a/app/assets/javascripts/vendor.js
+++ b/app/assets/javascripts/vendor.js
@@ -42,3 +42,4 @@
 //= require buffered-proxy
 //= require jquery.autoellipsis-1.0.10.min.js
 //= require_tree ./discourse/ember
+//= require jquery.detect_swipe.js
diff --git a/app/assets/stylesheets/common/base/hamburger.scss b/app/assets/stylesheets/common/base/hamburger.scss
new file mode 100644
index 000000000..ba078a5a3
--- /dev/null
+++ b/app/assets/stylesheets/common/base/hamburger.scss
@@ -0,0 +1,64 @@
+#hamburger-menu {
+  position: fixed;
+  right: 0;
+  top: 0;
+  background-color: $secondary;
+  z-index: 1002;
+  height: 100%;
+  overflow: auto;
+  transition: 0.3s ease-in-out;
+  transform: translateX(0);
+
+  box-shadow: 4px 0 4px 5px rgba(0,0,0, .25);
+  padding: 0.5em 0.5em 0.5em 0.5em;
+  width: 300px;
+
+  .close-hamburger {
+    float: right;
+    color: dark-light-choose(scale-color($header_primary, $lightness: 50%), $header_primary);
+    font-size: 1.5em;
+    margin-right: 0.1em;
+    margin-top: 0.1em;
+  }
+
+  ul {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+  }
+
+  ul.location-links li, li.heading {
+    a {
+      padding: 0.5em;
+      display: block;
+      &:hover {
+        background-color: dark-light-diff($highlight, $secondary, 50%, -55%);
+      }
+    }
+  }
+
+  li.category-link {
+    float: left;
+    background-color: transparent;
+    width: 45%;
+    margin: 5px 5px 0 8px;
+    .box {margin-top: 0;}
+    .badge-notification {
+      color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%));
+      background-color: transparent;
+      vertical-align: top;
+      padding: 5px 5px 2px 5px;
+    }
+  }
+
+  // note these topic counts only appear for anons in the category hamburger drop down
+  b.topics-count {
+    color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%));
+    font-weight: normal;
+    font-size: 11px;
+  }
+}
+
+#hamburger-menu.slideright {
+  transform: translateX(330px);
+}
diff --git a/app/assets/stylesheets/common/base/header.scss b/app/assets/stylesheets/common/base/header.scss
index 3eb301849..d7c33b2cd 100644
--- a/app/assets/stylesheets/common/base/header.scss
+++ b/app/assets/stylesheets/common/base/header.scss
@@ -148,12 +148,6 @@
 
     box-shadow: 0 2px 2px rgba(0,0,0, .4);
 
-  // note these topic counts only appear for anons in the category hamburger drop down
-  b.topics-count {
-    color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%));
-    font-weight: normal;
-    font-size: 11px;
-  }
 
   ul {
     margin: 0;
@@ -233,18 +227,6 @@
     @include unselectable;
   }
 
-  // Site map
-
-  &#site-map-dropdown {
-    .heading {
-      padding: 5px 5px 5px 0;
-      a {
-        display: block;
-        padding: 0 5px;
-      }
-    }
-  }
-
   // Search
 
   &#search-dropdown {
@@ -291,20 +273,6 @@
 
   // Categories
 
-  .category {
-    float: left;
-    background-color: transparent;
-    width: 45%;
-    margin: 5px 5px 0 5px;
-    .box {margin-top: 0;}
-    .badge-notification {
-      color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%));
-      background-color: transparent;
-      vertical-align: top;
-      padding: 5px 5px 2px 5px;
-    }
-  }
-
   &#user-dropdown {
     width: 118px;
   }
diff --git a/config/locales/client.ar.yml b/config/locales/client.ar.yml
index 9e2923cac..325525634 100644
--- a/config/locales/client.ar.yml
+++ b/config/locales/client.ar.yml
@@ -977,7 +977,7 @@ ar:
         category: "البحث في التصنيف \"{{category}}\""
         topic: "بحث في هذا الموضوع"
         private_messages: "البحث في الرسائل الخاصة"
-    site_map: "الذهاب إلى قائمة مواضيع أو تصنيف آخر"
+    hamburger_menu: "الذهاب إلى قائمة مواضيع أو تصنيف آخر"
     go_back: 'الرجوع'
     not_logged_in_user: 'صفحة المستخدم مع ملخص عن نشاطه و إعداداته'
     current_user: 'الذهاب إلى صفحتك الشخصية'
@@ -2690,7 +2690,7 @@ ar:
         title: 'التطبيقات'
         create: '<b>c</b> انشاء موضوع جديد'
         notifications: '<b>n</b> فتح الإشعارات'
-        site_map_menu: '<b>=</b> أفتح قائمة الموقع'
+        hamburger_menu: '<b>=</b> أفتح قائمة الموقع'
         user_profile_menu: '<b>p</b>أفتح قائمة المستخدم'
         show_incoming_updated_topics: '<b>.</b> عرض المواضيع المحدثة'
         search: '<b>/</b> البحث'
diff --git a/config/locales/client.bs_BA.yml b/config/locales/client.bs_BA.yml
index 794c45e6f..e6e600581 100644
--- a/config/locales/client.bs_BA.yml
+++ b/config/locales/client.bs_BA.yml
@@ -696,7 +696,7 @@ bs_BA:
         user: "Traži postove od @{{username}}"
         category: "Traži \"{{category}}\" kategoriju"
         topic: "Pretraži ovu temu"
-    site_map: "go to another topic list or category"
+    hamburger_menu: "go to another topic list or category"
     go_back: 'go back'
     not_logged_in_user: 'user page with summary of current activity and preferences'
     current_user: 'go to your user page'
@@ -1794,7 +1794,7 @@ bs_BA:
         title: 'Aplikacija'
         create: '<b>c</b> Započni novu temu'
         notifications: '<b>n</b> Otvori notifikacije'
-        site_map_menu: '<b>=</b> Otvori meni sajta'
+        hamburger_menu: '<b>=</b> Otvori meni sajta'
         user_profile_menu: '<b>p</b> Otvori meni korisnika'
         show_incoming_updated_topics: '<b>.</b> Pročitaj promjenje teme'
         search: '<b>/</b> Tragaj'
diff --git a/config/locales/client.cs.yml b/config/locales/client.cs.yml
index 7bd3814b7..598844f43 100644
--- a/config/locales/client.cs.yml
+++ b/config/locales/client.cs.yml
@@ -829,7 +829,7 @@ cs:
         category: "Vyhledat v kategorii „{{category}}“"
         topic: "Vyhledat v tomto tématu"
         private_messages: "Hledat ve zprávách"
-    site_map: "přejít na jiný seznam témat nebo kategorii"
+    hamburger_menu: "přejít na jiný seznam témat nebo kategorii"
     go_back: 'jít zpět'
     not_logged_in_user: 'stránka uživatele s přehledem o aktuální činnosti a nastavení'
     current_user: 'jít na vaši uživatelskou stránku'
@@ -2322,7 +2322,7 @@ cs:
         title: 'Application'
         create: '<b>c</b> Create a new topic'
         notifications: '<b>n</b> Open notifications'
-        site_map_menu: '<b>=</b> Otevře hlavní menu'
+        hamburger_menu: '<b>=</b> Otevře hlavní menu'
         user_profile_menu: '<b>p</b> Otevře uživatelské menu'
         show_incoming_updated_topics: '<b>.</b> Ukáže aktualizovaná témata'
         search: '<b>/</b> Search'
diff --git a/config/locales/client.da.yml b/config/locales/client.da.yml
index 7afc96078..639ec1c63 100644
--- a/config/locales/client.da.yml
+++ b/config/locales/client.da.yml
@@ -798,7 +798,7 @@ da:
         category: "Søg i kategorien \"{{category}}\""
         topic: "Søg i dette emne"
         private_messages: "Søg i beskeder"
-    site_map: "gå til en anden emneoversigt eller kategori"
+    hamburger_menu: "gå til en anden emneoversigt eller kategori"
     go_back: 'gå tilbage'
     not_logged_in_user: 'bruger side, med oversigt over aktivitet og indstillinger'
     current_user: 'gå til brugerside'
@@ -2285,7 +2285,7 @@ da:
         title: 'Applikation'
         create: '<b>c</b> Opret et nyt emne'
         notifications: '<b>n</b> Åbn notifikationer'
-        site_map_menu: '<b>=</b> Åben site menu'
+        hamburger_menu: '<b>=</b> Åben site menu'
         user_profile_menu: '<b>p</b> Åben bruger menu'
         show_incoming_updated_topics: '<b>.</b> Vis opdaterede emner'
         search: '<b>/</b> Søg'
diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml
index 37f86c0c4..510db6bf9 100644
--- a/config/locales/client.de.yml
+++ b/config/locales/client.de.yml
@@ -836,7 +836,7 @@ de:
         category: "Kategorie „{{category}}“ durchsuchen"
         topic: "Dieses Thema durchsuchen"
         private_messages: "Nachrichten durchsuchen"
-    site_map: "zu einer anderen Themenliste oder Kategorie wechseln"
+    hamburger_menu: "zu einer anderen Themenliste oder Kategorie wechseln"
     go_back: 'zurückgehen'
     not_logged_in_user: 'Benutzerseite mit einer Zusammenfassung der Benutzeraktivitäten und Einstellungen'
     current_user: 'zu deiner Benutzerseite gehen'
@@ -2332,7 +2332,7 @@ de:
         title: 'Anwendung'
         create: '<b>c</b> Neues Thema erstellen'
         notifications: '<b>n</b> Benachrichtigungen anzeigen'
-        site_map_menu: '<b>=</b> Seitenmenü öffnen'
+        hamburger_menu: '<b>=</b> Seitenmenü öffnen'
         user_profile_menu: '<b>p</b> Benutzermenü öffnen'
         show_incoming_updated_topics: '<b>.</b> Zeige aktualisierte Themen'
         search: '<b>/</b> Suchen'
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 86c437496..94fb4e0a9 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -930,7 +930,7 @@ en:
         topic: "Search this topic"
         private_messages: "Search messages"
 
-    site_map: "go to another topic list or category"
+    hamburger_menu: "go to another topic list or category"
     go_back: 'go back'
     not_logged_in_user: 'user page with summary of current activity and preferences'
     current_user: 'go to your user page'
@@ -2570,7 +2570,7 @@ en:
         title: 'Application'
         create: '<b>c</b> Create a new topic'
         notifications: '<b>n</b> Open notifications'
-        site_map_menu: '<b>=</b> Open site menu'
+        hamburger_menu: '<b>=</b> Open hamburger menu'
         user_profile_menu: '<b>p</b> Open user menu'
         show_incoming_updated_topics: '<b>.</b> Show updated topics'
         search: '<b>/</b> Search'
diff --git a/config/locales/client.es.yml b/config/locales/client.es.yml
index f3d3ff7e4..9b90c7e25 100644
--- a/config/locales/client.es.yml
+++ b/config/locales/client.es.yml
@@ -837,7 +837,7 @@ es:
         category: "Buscar en la categoría \"{{category}}\""
         topic: "Buscar en este tema"
         private_messages: "Buscar en mensajes"
-    site_map: "ir a otra lista de temas o categoría"
+    hamburger_menu: "ir a otra lista de temas o categoría"
     go_back: 'volver'
     not_logged_in_user: 'página con el resumen de actividad y preferencias'
     current_user: 'ir a tu página de usuario'
@@ -2357,7 +2357,7 @@ es:
         title: 'Aplicación'
         create: '<b>c</b> Crear un tema nuevo'
         notifications: '<b>n</b> Abrir notificaciones'
-        site_map_menu: '<b>=</b> Abrir menú del sitio'
+        hamburger_menu: '<b>=</b> Abrir menú del sitio'
         user_profile_menu: '<b>p</b> Abrir menú de usuario'
         show_incoming_updated_topics: '<b>.</b> Mostrar temas actualizados'
         search: '<b>/</b> Buscar'
diff --git a/config/locales/client.fa_IR.yml b/config/locales/client.fa_IR.yml
index fafee55b4..408c91e4a 100644
--- a/config/locales/client.fa_IR.yml
+++ b/config/locales/client.fa_IR.yml
@@ -765,7 +765,7 @@ fa_IR:
         category: "جستجوی دستهٔ «{{category}}»"
         topic: "جستجوی این موضوع"
         private_messages: "جستجوی پیام"
-    site_map: "به فهرست موضوع یا دسته‌ای دیگر بروید"
+    hamburger_menu: "به فهرست موضوع یا دسته‌ای دیگر بروید"
     go_back: 'برگردید'
     not_logged_in_user: 'صفحه کاربر با خلاصه ای از فعالیت های و تنظیمات'
     current_user: 'به نمایه‌تان بروید'
@@ -2197,7 +2197,7 @@ fa_IR:
         title: 'نرم‌افزار'
         create: '<b>c</b> ساختن یک موضوع جدید'
         notifications: '<b>n</b> باز کردن آگاه‌سازی‌ها'
-        site_map_menu: '<b>=</b> باز کردن منوی سایت'
+        hamburger_menu: '<b>=</b> باز کردن منوی سایت'
         user_profile_menu: '<b>p</b> باز کردن منوی کاربران'
         show_incoming_updated_topics: '<b>.</b> نمایش موضوعات بروز شده'
         search: '<b>/</b> جستجو'
diff --git a/config/locales/client.fi.yml b/config/locales/client.fi.yml
index 5e5d5db20..a0c9c341d 100644
--- a/config/locales/client.fi.yml
+++ b/config/locales/client.fi.yml
@@ -817,7 +817,7 @@ fi:
         category: "Etsi alueelta \"{{category}}\""
         topic: "Etsi tästä ketjusta"
         private_messages: "Etsi viesteistä"
-    site_map: "siirry toiseen ketjuun tai alueelle"
+    hamburger_menu: "siirry toiseen ketjuun tai alueelle"
     go_back: 'mene takaisin'
     not_logged_in_user: 'käyttäjäsivu, jossa on tiivistelmä käyttäjän viimeaikaisesta toiminnasta sekä käyttäjäasetukset'
     current_user: 'siirry omalle käyttäjäsivullesi'
@@ -2313,7 +2313,7 @@ fi:
         title: 'Ohjelmisto'
         create: '<b>c</b> Luo uusi ketju'
         notifications: '<b>n</b> Avaa ilmoitukset'
-        site_map_menu: '<b>=</b> Avaa palstan valikko'
+        hamburger_menu: '<b>=</b> Avaa palstan valikko'
         user_profile_menu: '<b>p</b> Avaa käyttäjätilin valikko'
         show_incoming_updated_topics: '<b>.</b> Näytä päivittyneet ketjut'
         search: '<b>/</b> Etsi'
diff --git a/config/locales/client.fr.yml b/config/locales/client.fr.yml
index 2565eb87a..fe13af25d 100644
--- a/config/locales/client.fr.yml
+++ b/config/locales/client.fr.yml
@@ -817,7 +817,7 @@ fr:
         category: "Rechercher dans la catégorie \"{{category}}\""
         topic: "Rechercher dans ce sujet"
         private_messages: "Rechercher des messages"
-    site_map: "aller à une autre liste de sujet ou catégorie"
+    hamburger_menu: "aller à une autre liste de sujet ou catégorie"
     go_back: 'retour'
     not_logged_in_user: 'page utilisateur avec un résumé de l''activité en cours et les préférences '
     current_user: 'voir la page de l''utilisateur'
@@ -2317,7 +2317,7 @@ fr:
         title: 'Application'
         create: '<b>c</b> Créer un nouveau sujet'
         notifications: '<b>n</b> Ouvrir les notifications'
-        site_map_menu: '<b>=</b> Ouvrir le menu principal'
+        hamburger_menu: '<b>=</b> Ouvrir le menu principal'
         user_profile_menu: '<b>p</b> Ouvrir le menu de votre profil'
         show_incoming_updated_topics: '<b>.</b> Afficher les sujets mis à jour'
         search: '<b>/</b> Rechercher'
diff --git a/config/locales/client.he.yml b/config/locales/client.he.yml
index 86bd74864..f72560231 100644
--- a/config/locales/client.he.yml
+++ b/config/locales/client.he.yml
@@ -837,7 +837,7 @@ he:
         category: "חיפוש בקטגוריה \"{{category}}\""
         topic: "חפשו בנושא זה"
         private_messages: "חיפוש הודעות"
-    site_map: "לך לרשימת נושאים או קטגוריה אחרת"
+    hamburger_menu: "לך לרשימת נושאים או קטגוריה אחרת"
     go_back: 'חזור אחורה'
     not_logged_in_user: 'עמוד משתמש עם סיכום פעילות נוכחית והעדפות'
     current_user: 'לך לעמוד המשתמש שלך'
@@ -2332,7 +2332,7 @@ he:
         title: 'יישום'
         create: '<b>c</b> צור נושא חדש'
         notifications: '<b>n</b> פתח התראות'
-        site_map_menu: '<b>=</b> פתיחת תפריט האתר'
+        hamburger_menu: '<b>=</b> פתיחת תפריט האתר'
         user_profile_menu: '<b>p</b>פתיחת תפריט משתמש/ת'
         show_incoming_updated_topics: '<b>.</b> הצגת נושאים שעודכנו'
         search: '<b>/</b> חיפוש'
diff --git a/config/locales/client.it.yml b/config/locales/client.it.yml
index 9eb2b0a83..a6535b87b 100644
--- a/config/locales/client.it.yml
+++ b/config/locales/client.it.yml
@@ -837,7 +837,7 @@ it:
         category: "Cerca nella categoria \"{{category}}\""
         topic: "Cerca in questo argomento"
         private_messages: "Cerca messaggi"
-    site_map: "vai a un altro elenco di argomenti o categoria"
+    hamburger_menu: "vai a un altro elenco di argomenti o categoria"
     go_back: 'indietro'
     not_logged_in_user: 'pagina utente con riassunto delle attività correnti e delle impostazioni'
     current_user: 'vai alla pagina utente'
@@ -2329,7 +2329,7 @@ it:
         title: 'Applicazione'
         create: '<b>c</b> Crea un nuovo argomento'
         notifications: '<b>n</b> Apri le notifiche'
-        site_map_menu: '<b>=</b> Apri il menu sito'
+        hamburger_menu: '<b>=</b> Apri il menu sito'
         user_profile_menu: '<b>p</b> Apri il menu del profilo utente'
         show_incoming_updated_topics: '<b>.</b> Mostra argomenti aggiornati'
         search: '<b>/</b> Cerca'
diff --git a/config/locales/client.ja.yml b/config/locales/client.ja.yml
index ca12ef4bd..fc552de3e 100644
--- a/config/locales/client.ja.yml
+++ b/config/locales/client.ja.yml
@@ -782,7 +782,7 @@ ja:
         category: "\"{{category}}\" カテゴリで検索する"
         topic: "このトピックを探す"
         private_messages: "メッセージ検索"
-    site_map: "別のトピックリストやカテゴリに移動"
+    hamburger_menu: "別のトピックリストやカテゴリに移動"
     go_back: '戻る'
     not_logged_in_user: 'ユーザアクティビティと設定ページ'
     current_user: 'ユーザページに移動'
@@ -2225,7 +2225,7 @@ ja:
         title: 'アプリケーション'
         create: '<b>c</b> 新しいトピックを作成'
         notifications: '<b>n</b> お知らせを開く'
-        site_map_menu: '<b>=</b> サイトメニュを開く'
+        hamburger_menu: '<b>=</b> サイトメニュを開く'
         user_profile_menu: '<b>p</b> ユーザメニュを開く'
         show_incoming_updated_topics: '<b>.</b> 更新されたトピックを表示する'
         search: '<b>/</b> 検索'
diff --git a/config/locales/client.ko.yml b/config/locales/client.ko.yml
index c2fcbe308..64f4d10f5 100644
--- a/config/locales/client.ko.yml
+++ b/config/locales/client.ko.yml
@@ -782,7 +782,7 @@ ko:
         category: "\"{{category}}\" 카테고리 검색"
         topic: "이 토픽을 검색"
         private_messages: "메시지 검색"
-    site_map: "다른 토픽이나 카테고리로 이동"
+    hamburger_menu: "다른 토픽이나 카테고리로 이동"
     go_back: '돌아가기'
     not_logged_in_user: 'user page with summary of current activity and preferences'
     current_user: '사용자 페이지로 이동'
@@ -2225,7 +2225,7 @@ ko:
         title: 'Application'
         create: '<b>c</b> 새 토픽을 만듭니다.'
         notifications: '<b>n</b> Open notifications'
-        site_map_menu: '<b>=</b> 사이트 메뉴 열기'
+        hamburger_menu: '<b>=</b> 사이트 메뉴 열기'
         user_profile_menu: '<b>p</b> 사용자 메뉴 열기'
         show_incoming_updated_topics: '<b>.</b> 갱신된 토픽 보기'
         search: '<b>/</b> Search'
diff --git a/config/locales/client.nb_NO.yml b/config/locales/client.nb_NO.yml
index b3cb1f7e5..deb438c7c 100644
--- a/config/locales/client.nb_NO.yml
+++ b/config/locales/client.nb_NO.yml
@@ -827,7 +827,7 @@ nb_NO:
         category: "Søk i kategorien \"{{category}}\""
         topic: "Søk i dette emnet"
         private_messages: "Søk i meldinger"
-    site_map: "gå til en annen emneliste eller kategori"
+    hamburger_menu: "gå til en annen emneliste eller kategori"
     go_back: 'gå tilbake'
     not_logged_in_user: 'brukerside med oppsummering av nylig aktivtet og preferanser.'
     current_user: 'go til din brukerside'
@@ -2318,7 +2318,7 @@ nb_NO:
         title: 'Applikasjon'
         create: '<b>c</b> Opprett nytt emne'
         notifications: '<b>n</b> Åpne varsler'
-        site_map_menu: '<b>=</b> Åpne nettstedsmenyen'
+        hamburger_menu: '<b>=</b> Åpne nettstedsmenyen'
         user_profile_menu: '<b>p</b> Åpne brukermenyen'
         show_incoming_updated_topics: '<b>.</b> Vis oppdaterte emner'
         search: '<b>/</b> Søk'
diff --git a/config/locales/client.nl.yml b/config/locales/client.nl.yml
index a60c09db8..72eb8f293 100644
--- a/config/locales/client.nl.yml
+++ b/config/locales/client.nl.yml
@@ -800,7 +800,7 @@ nl:
         category: "Doorzoek de \"{{category}}\" categorie"
         topic: "Zoek in deze topic"
         private_messages: "Zoek berichten"
-    site_map: "ga naar een andere topiclijst of categorie"
+    hamburger_menu: "ga naar een andere topiclijst of categorie"
     go_back: 'ga terug'
     not_logged_in_user: 'gebruikerspagina met samenvatting van huidige activiteit en voorkeuren'
     current_user: 'ga naar je gebruikerspagina'
@@ -2285,7 +2285,7 @@ nl:
         title: 'Applicatie'
         create: '<b>c</b> Maak nieuwe topic'
         notifications: '<b>n</b> Open notificaties'
-        site_map_menu: '<b>=</b> Open site menu'
+        hamburger_menu: '<b>=</b> Open site menu'
         user_profile_menu: '<b>p</b> Open gebruikersmenu'
         show_incoming_updated_topics: '<b>.</b> Toon gewijzigde topics'
         search: '<b>/</b> Zoek'
diff --git a/config/locales/client.pl_PL.yml b/config/locales/client.pl_PL.yml
index dc3153a88..64566e040 100644
--- a/config/locales/client.pl_PL.yml
+++ b/config/locales/client.pl_PL.yml
@@ -872,7 +872,7 @@ pl_PL:
         category: "Szukaj w kategorii \"{{category}}\""
         topic: "Szukaj w tym temacie"
         private_messages: "Wyszukiwanie wiadomości"
-    site_map: "przejdź do innej listy tematów lub kategorii"
+    hamburger_menu: "przejdź do innej listy tematów lub kategorii"
     go_back: 'wróć'
     not_logged_in_user: 'strona użytkownika z podsumowaniem bieżących działań i ustawień'
     current_user: 'idź do swojej strony użytkowanika'
@@ -2424,7 +2424,7 @@ pl_PL:
         title: 'Aplikacja'
         create: '<b>c</b> utwórz nowy temat'
         notifications: '<b>n</b> pokaż powiadomienia'
-        site_map_menu: '<b>=</b> menu strony'
+        hamburger_menu: '<b>=</b> menu strony'
         user_profile_menu: '<b>p</b> menu użytkownika'
         show_incoming_updated_topics: '<b>.</b> nowe zmiany w tematach'
         search: '<b>/</b> wyszukaj'
diff --git a/config/locales/client.pt.yml b/config/locales/client.pt.yml
index 1b7869e38..8e90cf103 100644
--- a/config/locales/client.pt.yml
+++ b/config/locales/client.pt.yml
@@ -837,7 +837,7 @@ pt:
         category: "Procurar na categoria \"{{category}}\""
         topic: "Pesquisar este tópico"
         private_messages: "Pesquisar mensagens"
-    site_map: "ir para outra lista de tópicos ou categorias"
+    hamburger_menu: "ir para outra lista de tópicos ou categorias"
     go_back: 'voltar atrás'
     not_logged_in_user: 'página de utilizador com resumo da atividade atual e preferências  '
     current_user: 'ir para a sua página de utilizador'
@@ -2367,7 +2367,7 @@ pt:
         title: 'Aplicação'
         create: '<b>c</b> Criar um novo tópico'
         notifications: '<b>n</b> Abrir notificações'
-        site_map_menu: '<b>=</b> Abrir menu do sítio'
+        hamburger_menu: '<b>=</b> Abrir menu do sítio'
         user_profile_menu: '<b>p</b> Abrir menu do utilizador'
         show_incoming_updated_topics: '<b>.</b> Mostrar tópicos atualizados'
         search: '<b>/</b> Pesquisar'
diff --git a/config/locales/client.pt_BR.yml b/config/locales/client.pt_BR.yml
index 82c3450dd..316a4bcd8 100644
--- a/config/locales/client.pt_BR.yml
+++ b/config/locales/client.pt_BR.yml
@@ -805,7 +805,7 @@ pt_BR:
         category: "Procurar a categoria \"{{category}}\""
         topic: "Procurar nesse tópico"
         private_messages: "Procurar mensagens"
-    site_map: "ir para outra lista de tópicos ou categorias"
+    hamburger_menu: "ir para outra lista de tópicos ou categorias"
     go_back: 'voltar'
     not_logged_in_user: 'página do usuário com resumo de atividades correntes e preferencias'
     current_user: 'ir para a sua página de usuário'
@@ -2284,7 +2284,7 @@ pt_BR:
         title: 'Aplicação'
         create: '<b>c</b> Criar um tópico novo'
         notifications: '<b>n</b> Abre notificações'
-        site_map_menu: '<b>=</b> Abrir menu do site'
+        hamburger_menu: '<b>=</b> Abrir menu do site'
         user_profile_menu: '<b>p</b> Abrir menu do usuário'
         show_incoming_updated_topics: '<b>.</b> Exibir tópicos atualizados'
         search: '<b>/</b> Pesquisa'
diff --git a/config/locales/client.ro.yml b/config/locales/client.ro.yml
index f8486b403..7f2c80803 100644
--- a/config/locales/client.ro.yml
+++ b/config/locales/client.ro.yml
@@ -796,7 +796,7 @@ ro:
         category: "Caută în categoria\"{{category}}\" "
         topic: "Caută în această discuție"
         private_messages: "Caută mesaje"
-    site_map: "mergi la o altă listă de discuții sau categorii"
+    hamburger_menu: "mergi la o altă listă de discuții sau categorii"
     go_back: 'înapoi'
     not_logged_in_user: 'pagina utilizatorului cu sumarul activităților și preferințelor'
     current_user: 'mergi la pagina proprie de utilizator'
@@ -2250,7 +2250,7 @@ ro:
         title: 'Applicația'
         create: '<b>c</b> Crează discuție nouă'
         notifications: '<b>n</b> Deschide notificare'
-        site_map_menu: '<b>=</b> Deschide meniu sit'
+        hamburger_menu: '<b>=</b> Deschide meniu sit'
         user_profile_menu: '<b>p</b> Deschide meniu utilizator'
         show_incoming_updated_topics: '<b>.</b> Arată discuţiile actualizate'
         search: '<b>/</b> Caută'
diff --git a/config/locales/client.ru.yml b/config/locales/client.ru.yml
index 2523549da..617f14863 100644
--- a/config/locales/client.ru.yml
+++ b/config/locales/client.ru.yml
@@ -862,7 +862,7 @@ ru:
         category: "Искать в разделе \"{{category}}\""
         topic: "Искать в этой теме"
         private_messages: "Поиск в сообщениях"
-    site_map: "перейти к другому списку тем или другому разделу"
+    hamburger_menu: "перейти к другому списку тем или другому разделу"
     go_back: 'вернуться'
     not_logged_in_user: 'страница пользователя с историей его последней активности и настроек'
     current_user: 'перейти на вашу страницу пользователя'
@@ -2430,7 +2430,7 @@ ru:
         title: 'Приложение'
         create: '<b>c</b> Создать новую тему'
         notifications: '<b>n</b> Открыть уведомления'
-        site_map_menu: '<b>=</b> Открыть меню сайта'
+        hamburger_menu: '<b>=</b> Открыть меню сайта'
         user_profile_menu: '<b>p</b> Открыть меню моего профиля'
         show_incoming_updated_topics: '<b>.</b> Показать обновленные темы'
         search: '<b>/</b> Поиск'
diff --git a/config/locales/client.sq.yml b/config/locales/client.sq.yml
index fd6cd73af..c8bd2016e 100644
--- a/config/locales/client.sq.yml
+++ b/config/locales/client.sq.yml
@@ -817,7 +817,7 @@ sq:
         category: "Kërko tek kategoria \"{{category}}\""
         topic: "Kërko tek kjo temë"
         private_messages: "Search messages"
-    site_map: "go to another topic list or category"
+    hamburger_menu: "go to another topic list or category"
     go_back: 'kthehu mbrapa'
     not_logged_in_user: 'user page with summary of current activity and preferences'
     current_user: 'go to your user page'
@@ -2312,7 +2312,7 @@ sq:
         title: 'Aplikacion'
         create: '<b>c</b> Filloni një diskutim të ri'
         notifications: '<b>n</b> Open notifications'
-        site_map_menu: '<b>=</b> Open site menu'
+        hamburger_menu: '<b>=</b> Open site menu'
         user_profile_menu: '<b>p</b> Open user menu'
         show_incoming_updated_topics: '<b>.</b> Show updated topics'
         search: '<b>/</b> Kërko'
diff --git a/config/locales/client.sv.yml b/config/locales/client.sv.yml
index c7d0f0ee6..0877858ec 100644
--- a/config/locales/client.sv.yml
+++ b/config/locales/client.sv.yml
@@ -783,7 +783,7 @@ sv:
         category: "Sök i kategorin \"{{category}}\""
         topic: "Sök i denna diskussion"
         private_messages: "Sök meddelanden"
-    site_map: "gå till en annan ämneslista eller kategori"
+    hamburger_menu: "gå till en annan ämneslista eller kategori"
     go_back: 'gå tillbaka'
     not_logged_in_user: 'användarsida med sammanställning av aktuell aktivitet och inställningar'
     current_user: 'gå till din användarsida'
@@ -2222,7 +2222,7 @@ sv:
       application:
         create: '<b>s</b> Skapa ett nytt ämne'
         notifications: '<b>n</b> Öppna notifikationer'
-        site_map_menu: '<b>=</b> Öppna webbplatsmeny'
+        hamburger_menu: '<b>=</b> Öppna webbplatsmeny'
         user_profile_menu: '<b>p</b> Öppna användarmeny'
         show_incoming_updated_topics: '<b>.</b> Visa uppdaterade ämnen'
         search: 'Sök'
diff --git a/config/locales/client.te.yml b/config/locales/client.te.yml
index fbcd93e90..c1177e1c9 100644
--- a/config/locales/client.te.yml
+++ b/config/locales/client.te.yml
@@ -686,7 +686,7 @@ te:
         user: "@{{username}} యొక్క విషయాలు వెతుకు"
         category: "\"{{category}}\" వర్గంలో వెతుకు"
         topic: "ఈ విషయంలో వెతుకు"
-    site_map: "మరో విషయాల జాబితాకు లేదా వర్గానికి వెళ్లు"
+    hamburger_menu: "మరో విషయాల జాబితాకు లేదా వర్గానికి వెళ్లు"
     go_back: 'వెనక్కు మరలు'
     not_logged_in_user: 'సభ్యుని ప్రస్తుత కలాపాల మరియు అభిరూపాల సారాంశ పుట'
     current_user: 'మీ సభ్యపుటకు వెళ్లు'
@@ -1961,7 +1961,7 @@ te:
         title: 'అనువర్తనం'
         create: '<b>c</b> కొత్త టపా సృష్టించు'
         notifications: '<b>n</b> తెరచిన ప్రకటనలు'
-        site_map_menu: '<b>=</b> సైట్ మెనూ తెరువు'
+        hamburger_menu: '<b>=</b> సైట్ మెనూ తెరువు'
         user_profile_menu: '<b>p</b> యూజర్ మెనూ తెరువు'
         show_incoming_updated_topics: '<b>.</b> నవీకరించిన విషయాలను చూపించండి'
         search: '<b>/</b> వెతుకు'
diff --git a/config/locales/client.tr_TR.yml b/config/locales/client.tr_TR.yml
index 8c88dd937..3c60a6885 100644
--- a/config/locales/client.tr_TR.yml
+++ b/config/locales/client.tr_TR.yml
@@ -763,7 +763,7 @@ tr_TR:
         category: "\"{{category}}\" kategorisinde ara"
         topic: "Bu konuda ara"
         private_messages: "Mesajlarda ara"
-    site_map: "başka bir konu listesine veya kategoriye git"
+    hamburger_menu: "başka bir konu listesine veya kategoriye git"
     go_back: 'geri dön'
     not_logged_in_user: 'güncel aktivitelerin ve ayarların özetinin bulunduğu kullanıcı sayfası'
     current_user: 'kendi kullanıcı sayfana git'
@@ -2195,7 +2195,7 @@ tr_TR:
         title: 'Uygulama'
         create: '<b>c</b> Yeni konu aç'
         notifications: '<b>n</b> Bildirileri aç'
-        site_map_menu: '<b>=</b> Site menüsünü aç'
+        hamburger_menu: '<b>=</b> Site menüsünü aç'
         user_profile_menu: '<b>p</b> Kullanıcı menüsünü aç'
         show_incoming_updated_topics: '<b>.</b> Güncellenmiş konuları göster'
         search: '<b>/</b> Arama'
diff --git a/config/locales/client.uk.yml b/config/locales/client.uk.yml
index 58f39f591..2aead58b6 100644
--- a/config/locales/client.uk.yml
+++ b/config/locales/client.uk.yml
@@ -593,7 +593,7 @@ uk:
       searching: "Пошук ..."
       context:
         topic: "Пошук в цій темі"
-    site_map: "перейти до іншого переліку або категорії тем"
+    hamburger_menu: "перейти до іншого переліку або категорії тем"
     go_back: 'повернутися назад'
     not_logged_in_user: 'сторінка користувача з підсумком поточної діяльності та налаштуваннями'
     current_user: 'перейти до Вашої сторінки користувача'
diff --git a/config/locales/client.zh_CN.yml b/config/locales/client.zh_CN.yml
index 0625eabc3..bb2376de8 100644
--- a/config/locales/client.zh_CN.yml
+++ b/config/locales/client.zh_CN.yml
@@ -782,7 +782,7 @@ zh_CN:
         category: "搜索“{{category}}”分类"
         topic: "只搜索本主题"
         private_messages: "搜索消息"
-    site_map: "去另一个主题列表或分类"
+    hamburger_menu: "去另一个主题列表或分类"
     go_back: '返回'
     not_logged_in_user: '显示当前活动和设置的用户页面'
     current_user: '去你的用户页面'
@@ -2230,7 +2230,7 @@ zh_CN:
         title: '应用'
         create: '<b>c</b> 创建一个新主题'
         notifications: '<b>n</b> 打开通知菜单'
-        site_map_menu: '<b>=</b> 打开站点菜单'
+        hamburger_menu: '<b>=</b> 打开站点菜单'
         user_profile_menu: '<b>p</b> 打开用户菜单'
         show_incoming_updated_topics: '<b>.</b> 显示更新过的主题'
         search: '<b>/</b> 搜索'
diff --git a/config/locales/client.zh_TW.yml b/config/locales/client.zh_TW.yml
index cac2a7fe2..71f078326 100644
--- a/config/locales/client.zh_TW.yml
+++ b/config/locales/client.zh_TW.yml
@@ -718,7 +718,7 @@ zh_TW:
         user: "搜尋 @{{username}} 的文章"
         category: "搜尋 \"{{category}}\" 分類"
         topic: "搜尋此討論話題"
-    site_map: "到另一個討論話題列表或分類"
+    hamburger_menu: "到另一個討論話題列表或分類"
     go_back: '返回'
     not_logged_in_user: '用戶頁面包含目前活動及喜好的總結'
     current_user: '到你的用戶頁面'
@@ -2057,7 +2057,7 @@ zh_TW:
         title: 'Application'
         create: '<b>c</b> 表示新討論話題'
         notifications: '<b>n</b> 開啟通知'
-        site_map_menu: '<b>=</b> 打開網站選單'
+        hamburger_menu: '<b>=</b> 打開網站選單'
         user_profile_menu: '<b>p</b> 打開使用者選單'
         show_incoming_updated_topics: '<b>.</b> 顯示有更新的討論話題'
         search: '<b>/</b> 搜尋'
diff --git a/test/javascripts/acceptance/hamburger-menu-staff-test.js.es6 b/test/javascripts/acceptance/hamburger-menu-staff-test.js.es6
new file mode 100644
index 000000000..21940146f
--- /dev/null
+++ b/test/javascripts/acceptance/hamburger-menu-staff-test.js.es6
@@ -0,0 +1,13 @@
+import { acceptance } from "helpers/qunit-helpers";
+
+acceptance("Hamburger Menu - Staff", { loggedIn: true });
+
+test("Menu Items", (assert) => {
+  visit("/");
+  click("#toggle-hamburger-menu");
+  andThen(() => {
+    assert.ok(exists("#hamburger-menu .admin-link"));
+    assert.ok(exists("#hamburger-menu .flagged-posts-link"));
+    assert.ok(exists("#hamburger-menu .flagged-posts.badge-notification"), "it displays flag notifications");
+  });
+});
diff --git a/test/javascripts/acceptance/hamburger-menu-test.js.es6 b/test/javascripts/acceptance/hamburger-menu-test.js.es6
new file mode 100644
index 000000000..0dc9d2ca3
--- /dev/null
+++ b/test/javascripts/acceptance/hamburger-menu-test.js.es6
@@ -0,0 +1,39 @@
+import { acceptance } from "helpers/qunit-helpers";
+
+acceptance("Hamburger Menu");
+
+test("Toggle Menu", (assert) => {
+  visit("/");
+  andThen(() => {
+    assert.ok(exists("#hamburger-menu.slideright"), "hidden by default");
+  });
+
+  click("#toggle-hamburger-menu");
+  andThen(() => {
+    assert.ok(!exists("#hamburger-menu.slideright"), "a click makes it appear");
+  });
+
+  click(".close-hamburger");
+  andThen(() => {
+    assert.ok(exists("#hamburger-menu.slideright"), "clicking the X hides it");
+  });
+});
+
+test("Menu Items", (assert) => {
+  visit("/");
+  click("#toggle-hamburger-menu");
+  andThen(() => {
+    assert.ok(!exists("#hamburger-menu .admin-link"));
+    assert.ok(!exists("#hamburger-menu .flagged-posts-link"));
+
+    assert.ok(exists("#hamburger-menu .latest-topics-link"));
+    assert.ok(exists("#hamburger-menu .badge-link"));
+    assert.ok(exists("#hamburger-menu .user-directory-link"));
+    assert.ok(exists("#hamburger-menu .keyboard-shortcuts-link"));
+    assert.ok(exists("#hamburger-menu .faq-link"));
+    assert.ok(exists("#hamburger-menu .about-link"));
+    assert.ok(exists("#hamburger-menu .categories-link"));
+
+    assert.ok(exists('#hamburger-menu .category-link'));
+  });
+});
diff --git a/test/javascripts/acceptance/header-anonymous-test.js.es6 b/test/javascripts/acceptance/header-anonymous-test.js.es6
index ae6ca34d7..6e642b729 100644
--- a/test/javascripts/acceptance/header-anonymous-test.js.es6
+++ b/test/javascripts/acceptance/header-anonymous-test.js.es6
@@ -7,7 +7,6 @@ test("header", () => {
     ok(exists("header"), "is rendered");
     ok(exists(".logo-big"), "it renders the large logo by default");
     not(exists("#notifications-dropdown li"), "no notifications at first");
-    not(exists('#site-map-dropdown'), "no site map by default");
     not(exists("#user-dropdown:visible"), "initially user dropdown is closed");
     not(exists("#search-dropdown:visible"), "initially search box is closed");
   });
@@ -21,14 +20,6 @@ test("header", () => {
     ok(exists(".logo-small"), "it shows the small logo when `showExtraInfo` is enabled");
   });
 
-  // Site Map
-  click("#site-map");
-  andThen(() => {
-    ok(exists('#site-map-dropdown'), "is rendered after user opens it");
-    ok(exists("#site-map-dropdown .faq-link"), "it shows the faq link");
-    ok(exists("#site-map-dropdown .category-links"), "has categories correctly bound");
-  });
-
   // Search
   click("#search-button");
   andThen(() => {
diff --git a/test/javascripts/acceptance/header-test-staff.js.es6 b/test/javascripts/acceptance/header-test-staff.js.es6
index fb3278ee8..5820eb327 100644
--- a/test/javascripts/acceptance/header-test-staff.js.es6
+++ b/test/javascripts/acceptance/header-test-staff.js.es6
@@ -13,13 +13,6 @@ test("header", () => {
     ok($items.first().hasClass("read"), "correctly binds items' 'read' class");
   });
 
-  // Site Map
-  click("#site-map");
-  andThen(() => {
-    ok(exists("#site-map-dropdown .admin-link"), "it has the admin link");
-    ok(exists("#site-map-dropdown .flagged-posts.badge-notification"), "it displays flag notifications");
-  });
-
   // User dropdown
   click("#current-user");
   andThen(() => {
diff --git a/test/javascripts/acceptance/login-required-test.js.es6 b/test/javascripts/acceptance/login-required-test.js.es6
index c3904b391..abdb2eea9 100644
--- a/test/javascripts/acceptance/login-required-test.js.es6
+++ b/test/javascripts/acceptance/login-required-test.js.es6
@@ -37,7 +37,7 @@ test("redirect", () => {
     ok(invisible('.login-modal'), "it closes the login modal");
   });
 
-  click('#site-map');
+  click('#toggle-hamburger-menu');
   andThen(() => {
     ok(exists('.login-modal'), "site map opens the login modal");
   });
diff --git a/test/javascripts/components/keyboard-shortcuts-test.js.es6 b/test/javascripts/components/keyboard-shortcuts-test.js.es6
index c21b8038c..745a8f3c2 100644
--- a/test/javascripts/components/keyboard-shortcuts-test.js.es6
+++ b/test/javascripts/components/keyboard-shortcuts-test.js.es6
@@ -55,7 +55,7 @@ module("lib:keyboard-shortcuts", {
       "<div class='alert alert-info clickable'></div>",
       "<button id='create-topic'></button>",
       "<div id='user-notifications'></div>",
-      "<div id='site-map'></div>",
+      "<div id='toggle-hamburger-menu'></div>",
       "<div id='search-button'></div>",
       "<div id='current-user'></div>",
       "<div id='keyboard-help'></div>"
diff --git a/test/javascripts/controllers/site-map-category-test.js.es6 b/test/javascripts/controllers/site-map-category-test.js.es6
deleted file mode 100644
index 77cdbf145..000000000
--- a/test/javascripts/controllers/site-map-category-test.js.es6
+++ /dev/null
@@ -1,26 +0,0 @@
-moduleFor("controller:site-map-category", 'controller:site-map-category', {
-  needs: ['controller:site-map']
-});
-
-test("showTopicCount anonymous", function() {
-  var controller = this.subject();
-  ok(controller.get("showTopicCount"), 'true when anonymous');
-});
-
-test("showTopicCount logged in", function() {
-  var controller = this.subject({ currentUser: Discourse.User.create() });
-  ok(!controller.get("showTopicCount"), 'false when logged in');
-});
-
-test("unreadTotal default", function() {
-  var controller = this.subject({ currentUser: Discourse.User.create() });
-  ok(!controller.get('unreadTotal'), "empty by default");
-});
-
-test("unreadTotal with values", function() {
-  var controller = this.subject({
-    currentUser: Discourse.User.create(),
-    model: { unreadTopics: 1, newTopics: 3 }
-  });
-  equal(controller.get('unreadTotal'), 4);
-});
diff --git a/test/javascripts/controllers/site-map-test.js.es6 b/test/javascripts/controllers/site-map-test.js.es6
deleted file mode 100644
index 419ed58cc..000000000
--- a/test/javascripts/controllers/site-map-test.js.es6
+++ /dev/null
@@ -1,77 +0,0 @@
-var oldMobileView;
-
-moduleFor("controller:site-map", "controller:site-map", {
-  needs: ['controller:application', 'controller:header'],
-
-  setup: function() {
-    oldMobileView = Discourse.Mobile.mobileView;
-  },
-
-  teardown: function() {
-    Discourse.Mobile.mobileView = oldMobileView;
-  }
-});
-
-test("showAdminLinks", function() {
-  const currentUser = Ember.Object.create({ staff: true });
-  const controller = this.subject({ currentUser });
-  equal(controller.get("showAdminLinks"), true, "is true when current user is a staff member");
-
-  currentUser.set("staff", false);
-  equal(controller.get("showAdminLinks"), false, "is false when current user is not a staff member");
-});
-
-test("faqUrl returns faq url configured in site settings if it is set", function() {
-  Discourse.SiteSettings.faq_url = "faq-url";
-  var controller = this.subject();
-  equal(controller.get("faqUrl"), "faq-url");
-});
-
-test("faqUrl returns default '/faq' url when there is no corresponding site setting set", function() {
-  Discourse.SiteSettings.faq_url = null;
-  var controller = this.subject();
-  equal(controller.get("faqUrl"), "/faq");
-});
-
-test("showMoblieToggle returns true when mobile theme is enabled in site settings", function() {
-  Discourse.SiteSettings.enable_mobile_theme = true;
-  Discourse.Mobile.isMobileDevice = true;
-  var controller = this.subject();
-  controller.capabilities = { touch: true };
-  equal(controller.get("showMobileToggle"), true);
-});
-
-test("showMoblieToggle returns false when mobile theme is disabled in site settings", function() {
-  Discourse.SiteSettings.enable_mobile_theme = false;
-  Discourse.Mobile.isMobileDevice = true;
-  var controller = this.subject();
-  equal(controller.get("showMobileToggle"), false);
-});
-
-test("mobileViewLinkTextKey returns translation key for a desktop view if the current view is mobile view", function() {
-  Discourse.Mobile.mobileView = true;
-  var controller = this.subject();
-  equal(controller.get("mobileViewLinkTextKey"), "desktop_view");
-});
-
-test("mobileViewLinkTextKey returns translation key for a mobile view if the current view is desktop view", function() {
-  Discourse.Mobile.mobileView = false;
-  var controller = this.subject();
-  equal(controller.get("mobileViewLinkTextKey"), "mobile_view");
-});
-
-test("categories", function() {
-  var categoryListStub = ["category1", "category2"];
-  sandbox.stub(Discourse.Category, "list").returns(categoryListStub);
-
-  var controller = this.subject({ siteSettings: Discourse.SiteSettings });
-  deepEqual(controller.get("categories"), categoryListStub, "returns the list of categories");
-});
-
-test("toggleMobleView", function() {
-  sandbox.stub(Discourse.Mobile, "toggleMobileView");
-
-  var controller = this.subject();
-  controller.send("toggleMobileView");
-  ok(Discourse.Mobile.toggleMobileView.calledOnce, "switches between desktop and mobile views");
-});
diff --git a/test/javascripts/fixtures/site_fixtures.js.es6 b/test/javascripts/fixtures/site-fixtures.js.es6
similarity index 100%
rename from test/javascripts/fixtures/site_fixtures.js.es6
rename to test/javascripts/fixtures/site-fixtures.js.es6
diff --git a/test/javascripts/helpers/qunit-helpers.js.es6 b/test/javascripts/helpers/qunit-helpers.js.es6
index 153bdb4b8..4b0207e54 100644
--- a/test/javascripts/helpers/qunit-helpers.js.es6
+++ b/test/javascripts/helpers/qunit-helpers.js.es6
@@ -1,7 +1,7 @@
 /* global asyncTest, fixtures */
 
 import sessionFixtures from 'fixtures/session-fixtures';
-import siteFixtures from 'fixtures/site_fixtures';
+import siteFixtures from 'fixtures/site-fixtures';
 import HeaderView from 'discourse/views/header';
 
 function currentUser() {
diff --git a/test/javascripts/helpers/site-settings.js b/test/javascripts/helpers/site-settings.js
index 6f43509e1..7782c2e4d 100644
--- a/test/javascripts/helpers/site-settings.js
+++ b/test/javascripts/helpers/site-settings.js
@@ -74,6 +74,7 @@ Discourse.SiteSettingsOriginal = {
   "polling_interval":3000,
   "anon_polling_interval":30000,
   "flush_timings_secs":5,
+  "enable_user_directory":true,
   "tos_url":"",
   "privacy_policy_url":"",
   "tos_accept_required":false,
diff --git a/test/javascripts/test_helper.js b/test/javascripts/test_helper.js
index 533f2286d..a7191147d 100644
--- a/test/javascripts/test_helper.js
+++ b/test/javascripts/test_helper.js
@@ -75,7 +75,7 @@ if (window.Logster) {
 
 var origDebounce = Ember.run.debounce,
     createPretendServer = require('helpers/create-pretender', null, null, false).default,
-    fixtures = require('fixtures/site_fixtures', null, null, false).default,
+    fixtures = require('fixtures/site-fixtures', null, null, false).default,
     flushMap = require('discourse/models/store', null, null, false).flushMap,
     ScrollingDOMMethods = require('discourse/mixins/scrolling', null, null, false).ScrollingDOMMethods,
     _DiscourseURL = require('discourse/lib/url', null, null, false).default,
diff --git a/vendor/assets/javascripts/jquery.detect_swipe.js b/vendor/assets/javascripts/jquery.detect_swipe.js
new file mode 100644
index 000000000..946515dcd
--- /dev/null
+++ b/vendor/assets/javascripts/jquery.detect_swipe.js
@@ -0,0 +1,72 @@
+/**
+ * jquery.detectSwipe v2.1.1
+ * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android
+ * http://github.com/marcandre/detect_swipe
+ * Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
+ */
+(function($) {
+
+  $.detectSwipe = {
+    version: '2.1.1',
+    enabled: 'ontouchstart' in document.documentElement,
+    preventDefault: true,
+    threshold: 20
+  };
+
+  var startX,
+    startY,
+    isMoving = false;
+
+  function onTouchEnd() {
+    this.removeEventListener('touchmove', onTouchMove);
+    this.removeEventListener('touchend', onTouchEnd);
+    isMoving = false;
+  }
+
+  function onTouchMove(e) {
+    if ($.detectSwipe.preventDefault) { e.preventDefault(); }
+    if(isMoving) {
+      var x = e.touches[0].pageX;
+      var y = e.touches[0].pageY;
+      var dx = startX - x;
+      var dy = startY - y;
+      var dir;
+      if(Math.abs(dx) >= $.detectSwipe.threshold) {
+        dir = dx > 0 ? 'left' : 'right'
+      }
+      else if(Math.abs(dy) >= $.detectSwipe.threshold) {
+        dir = dy > 0 ? 'down' : 'up'
+      }
+      if(dir) {
+        onTouchEnd.call(this);
+        $(this).trigger('swipe', dir).trigger('swipe' + dir);
+      }
+    }
+  }
+
+  function onTouchStart(e) {
+    if (e.touches.length === 1) {
+      startX = e.touches[0].pageX;
+      startY = e.touches[0].pageY;
+      isMoving = true;
+      this.addEventListener('touchmove', onTouchMove, false);
+      this.addEventListener('touchend', onTouchEnd, false);
+    }
+  }
+
+  function setup() {
+    this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);
+  }
+
+  function teardown() {
+    this.removeEventListener('touchstart', onTouchStart);
+  }
+
+  $.event.special.swipe = { setup: setup, teardown: teardown };
+
+  $.each(['left', 'up', 'down', 'right'], function () {
+    $.event.special['swipe' + this] = { setup: function() {
+      $(this).on('swipe', $.noop);
+    } };
+  });
+})(jQuery);