diff --git a/app/views/api/openid_connect/user_applications/index.html.haml b/app/views/api/openid_connect/user_applications/index.html.haml
index 5fbec9219c843ca00c88f7b221e931c07fc4777c..a6ed67d698bea17ed8f286199483acbda02d4203 100644
--- a/app/views/api/openid_connect/user_applications/index.html.haml
+++ b/app/views/api/openid_connect/user_applications/index.html.haml
@@ -3,10 +3,9 @@
 
 .container-fluid.applications-page
   .row
-    .col-md-12
+    .col-md-3
       = render "shared/settings_nav"
-  .row
-    .col-md-12
+    .col-md-9
       %h3= t(".title")
       .row
         .col-md-12
diff --git a/app/views/profiles/edit.haml b/app/views/profiles/edit.haml
index c050065134e8dea378ae8c10e7d3a96842b43fa1..844af392b0d0ad49133f7396dbf2c6822e5e631c 100644
--- a/app/views/profiles/edit.haml
+++ b/app/views/profiles/edit.haml
@@ -4,11 +4,9 @@
 
 .container-fluid
   .row
-    .col-md-12
+    .col-md-3
       = render "shared/settings_nav"
-
-  .row
-    .col-md-12
+    .col-md-9
       - content_for :submit_block do
         = link_to t("cancel"), local_or_remote_person_path(current_user.person), class: "btn btn-default"
         = submit_tag t(".update_profile"), class: "btn btn-primary pull-right", id: "update_profile"
diff --git a/app/views/services/index.html.haml b/app/views/services/index.html.haml
index 0caff17fdcac0b19d9c4225e1af5b61ea48f0eb5..8afad2b83cef11a72b753a2155d6bdd8b186e471 100644
--- a/app/views/services/index.html.haml
+++ b/app/views/services/index.html.haml
@@ -7,16 +7,15 @@
 
 .container-fluid
   .row
-    .col-md-12
+    .col-md-3
       = render "shared/settings_nav"
-
-  .row
-    .col-md-12
+    .col-md-9
       %h3= t(".title")
-  .row
-    .col-md-7
-      = render "add_remove_services"
+      .row
+        .col-md-12
+          = render "add_remove_services"
 
-    .col-md-5
-      %p
-        = t(".services_explanation")
+      .row
+        .col-md-12
+          %p
+            = t(".services_explanation")
diff --git a/app/views/shared/_settings_nav.haml b/app/views/shared/_settings_nav.haml
index ceba4baa040cea0343b9c4056e7cff42bbc80fef..561a499207041f349e9cdb8396f69245b46118ab 100644
--- a/app/views/shared/_settings_nav.haml
+++ b/app/views/shared/_settings_nav.haml
@@ -1,10 +1,14 @@
 #section_header
   %h2
     = t("settings")
-  %ul.nav.nav-tabs#settings_nav
-    %li{class: current_page?(edit_profile_path) && "active"}= link_to t("profile"), edit_profile_path
-    %li{class: current_page?(edit_user_path) && "active"}= link_to t("account"), edit_user_path
-    %li{class: current_page?(privacy_settings_path) && "active"}= link_to t("privacy"), privacy_settings_path
-    %li{class: current_page?(services_path) && "active"}= link_to t("_services"), services_path
-    %li{class: current_page?(api_openid_connect_user_applications_path) && "active"}
-      = link_to t("_applications"), api_openid_connect_user_applications_path
+  .list-group#settings_nav
+    = link_to t("profile"), edit_profile_path,
+      class: current_page?(edit_profile_path) ? "list-group-item active" : "list-group-item"
+    = link_to t("account"), edit_user_path,
+      class: current_page?(edit_user_path) ? "list-group-item active" : "list-group-item"
+    = link_to t("privacy"), privacy_settings_path,
+      class: current_page?(privacy_settings_path) ? "list-group-item active" : "list-group-item"
+    = link_to t("_services"), services_path,
+      class: current_page?(services_path) ? "list-group-item active" : "list-group-item"
+    = link_to t("_applications"), api_openid_connect_user_applications_path,
+      class: current_page?(api_openid_connect_user_applications_path) ? "list-group-item active" : "list-group-item"
diff --git a/app/views/users/_edit.haml b/app/views/users/_edit.haml
index cde2620c5cf50a09fbfe8752396dae745542d4e9..6719cc6aa911d4d5d07b79716ae662036b286127 100644
--- a/app/views/users/_edit.haml
+++ b/app/views/users/_edit.haml
@@ -5,10 +5,6 @@
 - content_for :page_title do
   = t(".edit_account")
 
-.row
-  .col-md-12
-    = render "shared/settings_nav"
-
 .row
   .col-md-12
     .row
@@ -173,42 +169,40 @@
     %hr
 
     .row
-      .col-md-12#account_data
-        .row
-          .col-md-6
-            %h3= t(".export_data")
-            .form-group
-              - if current_user.exporting
-                .export-in-progress= t(".export_in_progress")
-              - elsif current_user.export.present?
-                = link_to t(".request_export_update"), export_profile_user_path, method: :post,
-                  class: "btn btn-default btn-block"
-                .small-horizontal-spacer
-                = link_to t(".download_export"), download_profile_user_path,
-                  class: "btn btn-success btn-block"
-                .small-horizontal-spacer
-                %h6
-                  = t(".last_exported_at", timestamp: current_user.exported_at)
-              - else
-                = link_to t(".request_export"), export_profile_user_path, method: :post,
-                  class: "btn btn-default btn-block"
-
-            .form-group
-              - if current_user.exporting_photos
-                .export-in-progress= t(".export_photos_in_progress")
-              - elsif current_user.exported_photos_file.present?
-                = link_to t(".request_export_photos_update"), export_photos_user_path, method: :post,
-                  class: "btn btn-default btn-block"
-                .small-horizontal-spacer
-                = link_to t(".download_export_photos"), download_photos_user_path, class: "btn btn-success btn-block"
-                .small-horizontal-spacer
-                %h6
-                  = t(".last_exported_at", timestamp: current_user.exported_photos_at)
-              - else
-                = link_to t(".request_export_photos"), export_photos_user_path, method: :post,
-                  class: "btn btn-default btn-block"
+      .col-md-6#account_data
+        %h3= t(".export_data")
+        .form-group
+          - if current_user.exporting
+            .export-in-progress= t(".export_in_progress")
+          - elsif current_user.export.present?
+            = link_to t(".request_export_update"), export_profile_user_path, method: :post,
+              class: "btn btn-default"
+            .small-horizontal-spacer
+            = link_to t(".download_export"), download_profile_user_path,
+              class: "btn btn-success"
+            .small-horizontal-spacer
+            %h6
+              = t(".last_exported_at", timestamp: current_user.exported_at)
+          - else
+            = link_to t(".request_export"), export_profile_user_path, method: :post,
+              class: "btn btn-default"
 
-      .col-md-12
+        .form-group
+          - if current_user.exporting_photos
+            .export-in-progress= t(".export_photos_in_progress")
+          - elsif current_user.exported_photos_file.present?
+            = link_to t(".request_export_photos_update"), export_photos_user_path, method: :post,
+              class: "btn btn-default"
+            .small-horizontal-spacer
+            = link_to t(".download_export_photos"), download_photos_user_path, class: "btn btn-success"
+            .small-horizontal-spacer
+            %h6
+              = t(".last_exported_at", timestamp: current_user.exported_photos_at)
+          - else
+            = link_to t(".request_export_photos"), export_photos_user_path, method: :post,
+              class: "btn btn-default"
+
+      .col-md-6
         %h3
           = t(".close_account_text")
         .form-group
diff --git a/app/views/users/_privacy_settings.haml b/app/views/users/_privacy_settings.haml
index b80537224995f81688253725c638f238b426c35a..86038417b8ffa222d4aab9758b4cc744c537e175 100644
--- a/app/views/users/_privacy_settings.haml
+++ b/app/views/users/_privacy_settings.haml
@@ -1,34 +1,28 @@
 .row
   .col-md-12
-    = render "shared/settings_nav"
+    %h3
+      = t(".title")
 
-.row
-  .col-md-12
-    .row
-      .col-md-12
-        %h3
-          = t(".title")
-
-        = form_for current_user, url: user_path, html: {method: :put} do |f|
-          = f.error_messages
+    = form_for current_user, url: user_path, html: {method: :put} do |f|
+      = f.error_messages
 
-          = f.fields_for :stream_preferences do
-            .checkbox#stream_prefs
-              = f.label :strip_exif do
-                = f.check_box :strip_exif
-                = t(".strip_exif")
-              = f.submit t("users.edit.change"), class: "btn btn-primary pull-right"
-    %hr
+      = f.fields_for :stream_preferences do
+        .checkbox#stream_prefs
+          = f.label :strip_exif do
+            = f.check_box :strip_exif
+            = t(".strip_exif")
+          = f.submit t("users.edit.change"), class: "btn btn-primary pull-right"
+%hr
 
-    .row
-      .col-md-12
-        %h3
-          = t(".ignored_users")
+.row
+  .col-md-12
+    %h3
+      = t(".ignored_users")
 
-        - if @blocks.length.zero?
-          %p
-            = t(".no_user_ignored_message")
-        - else
-          #blocked_people
-            - @blocks.each do |block|
-              = render partial: "blocked_person", locals: {block: block, person: block.person}
+    - if @blocks.length.zero?
+      %p
+        = t(".no_user_ignored_message")
+    - else
+      #blocked_people
+        - @blocks.each do |block|
+          = render partial: "blocked_person", locals: {block: block, person: block.person}
diff --git a/app/views/users/edit.html.haml b/app/views/users/edit.html.haml
index 57479c61915894e6868cd3e2f5846142b9d4cca7..3c56ff7c883333763f39aa6b2bb9fb19722e0002 100644
--- a/app/views/users/edit.html.haml
+++ b/app/views/users/edit.html.haml
@@ -1,2 +1,6 @@
 .container-fluid
-  = render "edit"
+  .row
+    .col-md-3
+      = render "shared/settings_nav"
+    .col-md-9
+      = render "edit"
diff --git a/app/views/users/edit.mobile.haml b/app/views/users/edit.mobile.haml
index d72d13931b7729d832a8e86ab24fe84112c9de2c..77f9bb52d27c592a9e6293725304023d273e5a56 100644
--- a/app/views/users/edit.mobile.haml
+++ b/app/views/users/edit.mobile.haml
@@ -1,2 +1,8 @@
 .settings_container.container-fluid
-  = render "edit"
+  .row
+    .col-md-12
+      = render "shared/settings_nav"
+
+  .row
+    .col-md-12
+      = render "edit"
diff --git a/app/views/users/privacy_settings.html.haml b/app/views/users/privacy_settings.html.haml
index 16db316be43314bca215ca25368485a209a2cfc0..ef4f865a42778e9a6bb8b8e07a8e3cea14eada6e 100644
--- a/app/views/users/privacy_settings.html.haml
+++ b/app/views/users/privacy_settings.html.haml
@@ -6,4 +6,8 @@
   = t('.title')
 
 .container-fluid
-  = render "privacy_settings"
+  .row
+    .col-md-3
+      = render "shared/settings_nav"
+    .col-md-9
+      = render "privacy_settings"
diff --git a/app/views/users/privacy_settings.mobile.haml b/app/views/users/privacy_settings.mobile.haml
index 31e2feaee9d03ddb955d71ddc3626418fd2e2fc2..231f164dc5d9fa4d254dd410b8d397f1097880d6 100644
--- a/app/views/users/privacy_settings.mobile.haml
+++ b/app/views/users/privacy_settings.mobile.haml
@@ -6,4 +6,10 @@
   = t(".title")
 
 .settings_container.container-fluid
-  = render "privacy_settings"
+  .row
+    .col-md-12
+      = render "shared/settings_nav"
+
+  .row
+    .col-md-12
+      = render "privacy_settings"