diff --git a/CHANGELOG b/CHANGELOG
index 83e1f82e963b7be29d91176a1c4e5c22c659d93c..e26cfcf2cda0d8bbb7aecdca955655239d0b0615 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -21,6 +21,7 @@ v 8.13.0 (unreleased)
   - Add missing values to linter !6276 (Katarzyna Kobierska Ula Budziszewska)
   - Fix Long commit messages overflow viewport in file tree
   - Revert avoid touching file system on Build#artifacts?
+  - Add broadcast messages and alerts below sub-nav
   - Update ruby-prof to 0.16.2. !6026 (Elan Ruusamäe)
   - Fix unnecessary escaping of reserved HTML characters in milestone title. !6533
   - Add organization field to user profile
diff --git a/app/assets/stylesheets/framework/flash.scss b/app/assets/stylesheets/framework/flash.scss
index 7ae309ba1031f878731460155cb2859d3bb48c5c..3ac1678dd05da9f597f34dfb9b8bbf0a2ae8442b 100644
--- a/app/assets/stylesheets/framework/flash.scss
+++ b/app/assets/stylesheets/framework/flash.scss
@@ -3,6 +3,8 @@
   margin: 0;
   margin-bottom: $gl-padding;
   font-size: 14px;
+  position: relative;
+  z-index: 1;
 
   .flash-notice {
     @extend .alert;
@@ -33,6 +35,12 @@
   }
 }
 
+.content-wrapper {
+  .flash-notice .container-fluid {
+    background-color: transparent;
+  }
+}
+
 @media (max-width: $screen-md-min) {
   ul.notes {
     .flash-container.timeline-content {
diff --git a/app/views/admin/background_jobs/_head.html.haml b/app/views/admin/background_jobs/_head.html.haml
index 107fc25244aa33158886a33e27de43cd832ba908..b3530915068f18ea7c65cd744910d1123e0fad77 100644
--- a/app/views/admin/background_jobs/_head.html.haml
+++ b/app/views/admin/background_jobs/_head.html.haml
@@ -1,24 +1,25 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
-      = nav_link(controller: :system_info) do
-        = link_to admin_system_info_path, title: 'System Info' do
-          %span
-            System Info
-      = nav_link(controller: :background_jobs) do
-        = link_to admin_background_jobs_path, title: 'Background Jobs' do
-          %span
-            Background Jobs
-      = nav_link(controller: :logs) do
-        = link_to admin_logs_path, title: 'Logs' do
-          %span
-            Logs
-      = nav_link(controller: :health_check) do
-        = link_to admin_health_check_path, title: 'Health Check' do
-          %span
-            Health Check
-      = nav_link(controller: :requests_profiles) do
-        = link_to admin_requests_profiles_path, title: 'Requests Profiles' do
-          %span
-            Requests Profiles
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
+        = nav_link(controller: :system_info) do
+          = link_to admin_system_info_path, title: 'System Info' do
+            %span
+              System Info
+        = nav_link(controller: :background_jobs) do
+          = link_to admin_background_jobs_path, title: 'Background Jobs' do
+            %span
+              Background Jobs
+        = nav_link(controller: :logs) do
+          = link_to admin_logs_path, title: 'Logs' do
+            %span
+              Logs
+        = nav_link(controller: :health_check) do
+          = link_to admin_health_check_path, title: 'Health Check' do
+            %span
+              Health Check
+        = nav_link(controller: :requests_profiles) do
+          = link_to admin_requests_profiles_path, title: 'Requests Profiles' do
+            %span
+              Requests Profiles
diff --git a/app/views/admin/dashboard/_head.html.haml b/app/views/admin/dashboard/_head.html.haml
index c91ab4cb946ac70c3e9d28d5fc8074183b5bca0d..ec40391a3e3a83d2afce1940fdbe65e0672bd840 100644
--- a/app/views/admin/dashboard/_head.html.haml
+++ b/app/views/admin/dashboard/_head.html.haml
@@ -1,28 +1,29 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
-      = nav_link(controller: :dashboard, html_options: {class: 'home'}) do
-        = link_to admin_root_path, title: 'Overview' do
-          %span
-            Overview
-      = nav_link(controller: [:admin, :projects]) do
-        = link_to admin_namespaces_projects_path, title: 'Projects' do
-          %span
-            Projects
-      = nav_link(controller: :users) do
-        = link_to admin_users_path, title: 'Users' do
-          %span
-            Users
-      = nav_link(controller: :groups) do
-        = link_to admin_groups_path, title: 'Groups' do
-          %span
-            Groups
-      = nav_link path: 'builds#index' do
-        = link_to admin_builds_path, title: 'Builds' do
-          %span
-            Builds
-      = nav_link path: ['runners#index', 'runners#show'] do
-        = link_to admin_runners_path, title: 'Runners' do
-          %span
-            Runners
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
+        = nav_link(controller: :dashboard, html_options: {class: 'home'}) do
+          = link_to admin_root_path, title: 'Overview' do
+            %span
+              Overview
+        = nav_link(controller: [:admin, :projects]) do
+          = link_to admin_namespaces_projects_path, title: 'Projects' do
+            %span
+              Projects
+        = nav_link(controller: :users) do
+          = link_to admin_users_path, title: 'Users' do
+            %span
+              Users
+        = nav_link(controller: :groups) do
+          = link_to admin_groups_path, title: 'Groups' do
+            %span
+              Groups
+        = nav_link path: 'builds#index' do
+          = link_to admin_builds_path, title: 'Builds' do
+            %span
+              Builds
+        = nav_link path: ['runners#index', 'runners#show'] do
+          = link_to admin_runners_path, title: 'Runners' do
+            %span
+              Runners
diff --git a/app/views/layouts/_flash.html.haml b/app/views/layouts/_flash.html.haml
index 3612f1ce5c693d67df409294db63e50478f2457b..baa8036de10f1be1e86e606f03ca10b7484d7e76 100644
--- a/app/views/layouts/_flash.html.haml
+++ b/app/views/layouts/_flash.html.haml
@@ -1,8 +1,10 @@
 .flash-container.flash-container-page
   - if alert
     .flash-alert
-      = alert
+      %div{ class: (container_class) }
+        %span= alert
 
   - elsif notice
     .flash-notice
-      = notice
+      %div{ class: (container_class) }
+        %span= notice
diff --git a/app/views/layouts/_page.html.haml b/app/views/layouts/_page.html.haml
index 4f7839a881f0ef0f29a172ea9c62bb0c5b5cdd01..3950b4f53e7007a86fb6ec8081bae69e30fb350a 100644
--- a/app/views/layouts/_page.html.haml
+++ b/app/views/layouts/_page.html.haml
@@ -20,6 +20,7 @@
       .container-fluid
         = render "layouts/nav/#{nav}"
   .content-wrapper{ class: "#{layout_nav_class}" }
+    = yield :sub_nav
     = render "layouts/broadcast"
     = render "layouts/flash"
     = yield :flash_message
diff --git a/app/views/projects/_activity.html.haml b/app/views/projects/_activity.html.haml
index ac50ce83f6afcf9eb012ab1a2f1930901854d64f..d011e51e6968c7f6162e7ecbbf79d05caeb53e71 100644
--- a/app/views/projects/_activity.html.haml
+++ b/app/views/projects/_activity.html.haml
@@ -1,13 +1,16 @@
-.nav-block.activity-filter-block
-  - if current_user
-    .controls
-      = link_to namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), title: "Feed", class: 'btn rss-btn' do
-        %i.fa.fa-rss
+- @no_container = true
 
-  = render 'shared/event_filter'
+%div{ class: container_class }
+  .nav-block.activity-filter-block
+    - if current_user
+      .controls
+        = link_to namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), title: "Feed", class: 'btn rss-btn' do
+          = icon('rss')
 
-.content_list.project-activity{:"data-href" => activity_project_path(@project)}
-= spinner
+    = render 'shared/event_filter'
+
+  .content_list.project-activity{:"data-href" => activity_project_path(@project)}
+  = spinner
 
 :javascript
   var activity = new Activities();
diff --git a/app/views/projects/_last_push.html.haml b/app/views/projects/_last_push.html.haml
index 3c6b931f41aea6092b305fb4922304270cf97fa9..1c3bccccb5cb20e41db584589337e34ae544c103 100644
--- a/app/views/projects/_last_push.html.haml
+++ b/app/views/projects/_last_push.html.haml
@@ -1,6 +1,6 @@
 - if event = last_push_event
   - if show_last_push_widget?(event)
-    .row-content-block.top-block.clear-block.hidden-xs
+    .row-content-block.top-block.hidden-xs.white
       %div{ class: container_class }
         .event-last-push
           .event-last-push-text
diff --git a/app/views/projects/commits/_head.html.haml b/app/views/projects/commits/_head.html.haml
index 4d1ee1c53187c2d10be0e935a4c3fcb0d92ca377..80763ce67caafa1b6422b1c23e3219b59e8fc8f7 100644
--- a/app/views/projects/commits/_head.html.haml
+++ b/app/views/projects/commits/_head.html.haml
@@ -1,27 +1,28 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
-      = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file)) do
-        = link_to project_files_path(@project) do
-          Files
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
+        = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file)) do
+          = link_to project_files_path(@project) do
+            Files
 
-      = nav_link(controller: [:commit, :commits]) do
-        = link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do
-          Commits
+        = nav_link(controller: [:commit, :commits]) do
+          = link_to namespace_project_commits_path(@project.namespace, @project, current_ref) do
+            Commits
 
-      = nav_link(controller: %w(network)) do
-        = link_to namespace_project_network_path(@project.namespace, @project, current_ref) do
-          Network
+        = nav_link(controller: %w(network)) do
+          = link_to namespace_project_network_path(@project.namespace, @project, current_ref) do
+            Network
 
-      = nav_link(controller: :compare) do
-        = link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: current_ref) do
-          Compare
+        = nav_link(controller: :compare) do
+          = link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: current_ref) do
+            Compare
 
-      = nav_link(html_options: {class: branches_tab_class}) do
-        = link_to namespace_project_branches_path(@project.namespace, @project) do
-          Branches
+        = nav_link(html_options: {class: branches_tab_class}) do
+          = link_to namespace_project_branches_path(@project.namespace, @project) do
+            Branches
 
-      = nav_link(controller: [:tags, :releases]) do
-        = link_to namespace_project_tags_path(@project.namespace, @project) do
-          Tags
+        = nav_link(controller: [:tags, :releases]) do
+          = link_to namespace_project_tags_path(@project.namespace, @project) do
+            Tags
diff --git a/app/views/projects/commits/show.html.haml b/app/views/projects/commits/show.html.haml
index 9a44ba94970cbba016f37bbbd064c9ec9a4ef1ec..876c80026277f1d58cb03d68ce28c0a1d1e33f6f 100644
--- a/app/views/projects/commits/show.html.haml
+++ b/app/views/projects/commits/show.html.haml
@@ -5,7 +5,8 @@
   - if current_user
     = auto_discovery_link_tag(:atom, namespace_project_commits_url(@project.namespace, @project, @ref, format: :atom, private_token: current_user.private_token), title: "#{@project.name}:#{@ref} commits")
 
-= render "head"
+= content_for :sub_nav do
+  = render "head"
 
 %div{ class: container_class }
   .row-content-block.second-block.content-component-block
diff --git a/app/views/projects/graphs/_head.html.haml b/app/views/projects/graphs/_head.html.haml
index 082e2cb4d8cddaa5e641ccee523fd095bd01a2b5..1a62a6a809c952caf49abcfc00a6e6830b7e9e19 100644
--- a/app/views/projects/graphs/_head.html.haml
+++ b/app/views/projects/graphs/_head.html.haml
@@ -1,18 +1,19 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
 
-      - content_for :page_specific_javascripts do
-        = page_specific_javascript_tag('lib/chart.js')
-        = page_specific_javascript_tag('graphs/graphs_bundle.js')
-      = nav_link(action: :show) do
-        = link_to 'Contributors', namespace_project_graph_path
-      = nav_link(action: :commits) do
-        = link_to 'Commits', commits_namespace_project_graph_path
-      = nav_link(action: :languages) do
-        = link_to 'Languages', languages_namespace_project_graph_path
-      - if @project.feature_available?(:builds, current_user)
-        = nav_link(action: :ci) do
-          = link_to ci_namespace_project_graph_path do
-            Continuous Integration
+        - content_for :page_specific_javascripts do
+          = page_specific_javascript_tag('lib/chart.js')
+          = page_specific_javascript_tag('graphs/graphs_bundle.js')
+        = nav_link(action: :show) do
+          = link_to 'Contributors', namespace_project_graph_path
+        = nav_link(action: :commits) do
+          = link_to 'Commits', commits_namespace_project_graph_path
+        = nav_link(action: :languages) do
+          = link_to 'Languages', languages_namespace_project_graph_path
+        - if @project.feature_available?(:builds, current_user)
+          = nav_link(action: :ci) do
+            = link_to ci_namespace_project_graph_path do
+              Continuous Integration
diff --git a/app/views/projects/issues/_head.html.haml b/app/views/projects/issues/_head.html.haml
index f88b33018d0cd7329d2450513e49f0e1bf4cb0a7..509b01c548a8c1b525b450ac581d081768ccf2b9 100644
--- a/app/views/projects/issues/_head.html.haml
+++ b/app/views/projects/issues/_head.html.haml
@@ -1,32 +1,33 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
-      - if project_nav_tab?(:issues) && !current_controller?(:merge_requests)
-        = nav_link(controller: :issues) do
-          = link_to namespace_project_issues_path(@project.namespace, @project), title: 'Issues' do
-            %span
-              Issues
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
+        - if project_nav_tab?(:issues) && !current_controller?(:merge_requests)
+          = nav_link(controller: :issues) do
+            = link_to namespace_project_issues_path(@project.namespace, @project), title: 'Issues' do
+              %span
+                Issues
 
-        = nav_link(controller: :boards) do
-          = link_to namespace_project_board_path(@project.namespace, @project), title: 'Board' do
-            %span
-              Board
+          = nav_link(controller: :boards) do
+            = link_to namespace_project_board_path(@project.namespace, @project), title: 'Board' do
+              %span
+                Board
 
-      - if project_nav_tab?(:merge_requests) && current_controller?(:merge_requests)
-        = nav_link(controller: :merge_requests) do
-          = link_to namespace_project_merge_requests_path(@project.namespace, @project), title: 'Merge Requests' do
-            %span
-              Merge Requests
+        - if project_nav_tab?(:merge_requests) && current_controller?(:merge_requests)
+          = nav_link(controller: :merge_requests) do
+            = link_to namespace_project_merge_requests_path(@project.namespace, @project), title: 'Merge Requests' do
+              %span
+                Merge Requests
 
-      - if project_nav_tab? :labels
-        = nav_link(controller: :labels) do
-          = link_to namespace_project_labels_path(@project.namespace, @project), title: 'Labels' do
-            %span
-              Labels
+        - if project_nav_tab? :labels
+          = nav_link(controller: :labels) do
+            = link_to namespace_project_labels_path(@project.namespace, @project), title: 'Labels' do
+              %span
+                Labels
 
-      - if project_nav_tab? :milestones
-        = nav_link(controller: :milestones) do
-          = link_to namespace_project_milestones_path(@project.namespace, @project), title: 'Milestones' do
-            %span
-              Milestones
\ No newline at end of file
+        - if project_nav_tab? :milestones
+          = nav_link(controller: :milestones) do
+            = link_to namespace_project_milestones_path(@project.namespace, @project), title: 'Milestones' do
+              %span
+                Milestones
diff --git a/app/views/projects/issues/index.html.haml b/app/views/projects/issues/index.html.haml
index 8da9f2100e954afb3832249c0edfe2ed7f40707c..cc57cfdb342340cfc9bdadf4d5d26f01b9a8b17a 100644
--- a/app/views/projects/issues/index.html.haml
+++ b/app/views/projects/issues/index.html.haml
@@ -3,7 +3,8 @@
 
 - page_title "Issues"
 - new_issue_email = @project.new_issue_address(current_user)
-= render "projects/issues/head"
+= content_for :sub_nav do
+  = render "projects/issues/head"
 
 = content_for :meta_tags do
   - if current_user
diff --git a/app/views/projects/pipelines/_head.html.haml b/app/views/projects/pipelines/_head.html.haml
index 5f571499e8025a94623b587d9f84007bb4277e73..7d421c0e7409ef95535b663cb28ccef46b976dd1 100644
--- a/app/views/projects/pipelines/_head.html.haml
+++ b/app/views/projects/pipelines/_head.html.haml
@@ -1,27 +1,28 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
-      - if project_nav_tab? :pipelines
-        = nav_link(controller: :pipelines) do
-          = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
-            %span
-              Pipelines
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
+        - if project_nav_tab? :pipelines
+          = nav_link(controller: :pipelines) do
+            = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
+              %span
+                Pipelines
 
-      - if project_nav_tab? :builds
-        = nav_link(controller: %w(builds)) do
-          = link_to project_builds_path(@project), title: 'Builds', class: 'shortcuts-builds' do
-            %span
-              Builds
+        - if project_nav_tab? :builds
+          = nav_link(controller: %w(builds)) do
+            = link_to project_builds_path(@project), title: 'Builds', class: 'shortcuts-builds' do
+              %span
+                Builds
 
-      - if project_nav_tab? :environments
-        = nav_link(controller: %w(environments)) do
-          = link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
-            %span
-              Environments
+        - if project_nav_tab? :environments
+          = nav_link(controller: %w(environments)) do
+            = link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
+              %span
+                Environments
 
-      - if can?(current_user, :read_cycle_analytics, @project)
-        = nav_link(controller: %w(cycle_analytics)) do
-          = link_to project_cycle_analytics_path(@project), title: 'Cycle Analytics' do
-            %span
-              Cycle Analytics
+        - if can?(current_user, :read_cycle_analytics, @project)
+          = nav_link(controller: %w(cycle_analytics)) do
+            = link_to project_cycle_analytics_path(@project), title: 'Cycle Analytics' do
+              %span
+                Cycle Analytics
diff --git a/app/views/projects/tree/show.html.haml b/app/views/projects/tree/show.html.haml
index 37d341212af1ce77f454d362f4e424f2a42913da..9864be3562a8b1e8ab686a79bd9e109cb0322ded 100644
--- a/app/views/projects/tree/show.html.haml
+++ b/app/views/projects/tree/show.html.haml
@@ -4,8 +4,8 @@
 = content_for :meta_tags do
   - if current_user
     = auto_discovery_link_tag(:atom, namespace_project_commits_url(@project.namespace, @project, @ref, format: :atom, private_token: current_user.private_token), title: "#{@project.name}:#{@ref} commits")
-= render 'projects/last_push'
 = render "projects/commits/head"
+= render 'projects/last_push'
 
 %div{ class: container_class }
   .tree-controls
diff --git a/app/views/projects/wikis/_nav.html.haml b/app/views/projects/wikis/_nav.html.haml
index 551a20c1044be2d367fa46eb8f6e633f8fc20848..09c4411d67e35e63ed3191761d7acb2870715264 100644
--- a/app/views/projects/wikis/_nav.html.haml
+++ b/app/views/projects/wikis/_nav.html.haml
@@ -1,15 +1,16 @@
-.scrolling-tabs-container.sub-nav-scroll
-  = render 'shared/nav_scroll'
-  .nav-links.sub-nav.scrolling-tabs
-    %ul{ class: (container_class) }
-      = nav_link(html_options: {class: params[:id] == 'home' ? 'active' : '' }) do
-        = link_to 'Home', namespace_project_wiki_path(@project.namespace, @project, :home)
+= content_for :sub_nav do
+  .scrolling-tabs-container.sub-nav-scroll
+    = render 'shared/nav_scroll'
+    .nav-links.sub-nav.scrolling-tabs
+      %ul{ class: (container_class) }
+        = nav_link(html_options: {class: params[:id] == 'home' ? 'active' : '' }) do
+          = link_to 'Home', namespace_project_wiki_path(@project.namespace, @project, :home)
 
-      = nav_link(path: 'wikis#pages') do
-        = link_to 'Pages', namespace_project_wiki_pages_path(@project.namespace, @project)
+        = nav_link(path: 'wikis#pages') do
+          = link_to 'Pages', namespace_project_wiki_pages_path(@project.namespace, @project)
 
-      = nav_link(path: 'wikis#git_access') do
-        = link_to namespace_project_wikis_git_access_path(@project.namespace, @project) do
-          Git Access
+        = nav_link(path: 'wikis#git_access') do
+          = link_to namespace_project_wikis_git_access_path(@project.namespace, @project) do
+            Git Access
 
-    = render 'projects/wikis/new'
+      = render 'projects/wikis/new'