diff --git a/src/octoprint/templates/dialogs.jinja2 b/src/octoprint/templates/dialogs.jinja2
deleted file mode 100644
index ad9adab9..00000000
--- a/src/octoprint/templates/dialogs.jinja2
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
- {% trans %}
- Please read the following, it is very important for your printer's health!
-
-
- OctoPrint by default now ships with Access Control enabled, meaning you won't be able to do anything with the
- printer unless you login first as a configured user. This is to prevent strangers - possibly with
- malicious intent - to gain access to your printer via the internet or another untrustworthy network
- and using it in such a way that it is damaged or worse (i.e. causes a fire).
-
-
- It looks like you haven't configured access control yet. Please set up an username and password for the
- initial administrator account who will have full access to both the printer and OctoPrint's settings, then click
- on "Keep Access Control Enabled":
-
{% endtrans %}
-
- {% trans %}
- Note: In case that your OctoPrint installation is only accessible from within a trustworthy network and you don't
- need Access Control for other reasons, you may alternatively disable Access Control. You should only
- do this if you are absolutely certain that only people you know and trust will be able to connect to it.
-
-
- Do NOT underestimate the risk of an unsecured access from the internet to your printer!
-
{% endtrans %}
-
-
-
\ No newline at end of file
diff --git a/src/octoprint/templates/dialogs/confirmation.jinja2 b/src/octoprint/templates/dialogs/confirmation.jinja2
new file mode 100644
index 00000000..63395d34
--- /dev/null
+++ b/src/octoprint/templates/dialogs/confirmation.jinja2
@@ -0,0 +1,14 @@
+
+
+
+ {% trans %}
+ Please read the following, it is very important for your printer's health!
+
+
+ OctoPrint by default now ships with Access Control enabled, meaning you won't be able to do anything with the
+ printer unless you login first as a configured user. This is to prevent strangers - possibly with
+ malicious intent - to gain access to your printer via the internet or another untrustworthy network
+ and using it in such a way that it is damaged or worse (i.e. causes a fire).
+
+
+ It looks like you haven't configured access control yet. Please set up an username and password for the
+ initial administrator account who will have full access to both the printer and OctoPrint's settings, then click
+ on "Keep Access Control Enabled":
+
{% endtrans %}
+
+ {% trans %}
+ Note: In case that your OctoPrint installation is only accessible from within a trustworthy network and you don't
+ need Access Control for other reasons, you may alternatively disable Access Control. You should only
+ do this if you are absolutely certain that only people you know and trust will be able to connect to it.
+
+
+ Do NOT underestimate the risk of an unsecured access from the internet to your printer!
+
{% endtrans %}
+
+
+
diff --git a/src/octoprint/templates/settings.jinja2 b/src/octoprint/templates/dialogs/settings.jinja2
similarity index 79%
rename from src/octoprint/templates/settings.jinja2
rename to src/octoprint/templates/dialogs/settings.jinja2
index 8388e4c1..be6bccaa 100644
--- a/src/octoprint/templates/settings.jinja2
+++ b/src/octoprint/templates/dialogs/settings.jinja2
@@ -31,17 +31,17 @@
- {% include 'settings/serialconnection.jinja2' %}
- {% include 'settings/printerprofiles.jinja2' %}
- {% include 'settings/temperatures.jinja2' %}
- {% include 'settings/terminalfilters.jinja2' %}
- {% include 'settings/features.jinja2' %}
- {% include 'settings/webcam.jinja2' %}
- {% include 'settings/accesscontrol.jinja2' %}
- {% include 'settings/api.jinja2' %}
- {% include 'settings/folders.jinja2' %}
- {% include 'settings/appearance.jinja2' %}
- {% include 'settings/logs.jinja2' %}
+ {% include 'dialogs/settings/serialconnection.jinja2' %}
+ {% include 'dialogs/settings/printerprofiles.jinja2' %}
+ {% include 'dialogs/settings/temperatures.jinja2' %}
+ {% include 'dialogs/settings/terminalfilters.jinja2' %}
+ {% include 'dialogs/settings/features.jinja2' %}
+ {% include 'dialogs/settings/webcam.jinja2' %}
+ {% include 'dialogs/settings/accesscontrol.jinja2' %}
+ {% include 'dialogs/settings/api.jinja2' %}
+ {% include 'dialogs/settings/folders.jinja2' %}
+ {% include 'dialogs/settings/appearance.jinja2' %}
+ {% include 'dialogs/settings/logs.jinja2' %}
{% for plugin_name, vars in settingsPlugins.items() %}
diff --git a/src/octoprint/templates/settings/accesscontrol.jinja2 b/src/octoprint/templates/dialogs/settings/accesscontrol.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/accesscontrol.jinja2
rename to src/octoprint/templates/dialogs/settings/accesscontrol.jinja2
diff --git a/src/octoprint/templates/settings/api.jinja2 b/src/octoprint/templates/dialogs/settings/api.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/api.jinja2
rename to src/octoprint/templates/dialogs/settings/api.jinja2
diff --git a/src/octoprint/templates/settings/appearance.jinja2 b/src/octoprint/templates/dialogs/settings/appearance.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/appearance.jinja2
rename to src/octoprint/templates/dialogs/settings/appearance.jinja2
diff --git a/src/octoprint/templates/settings/features.jinja2 b/src/octoprint/templates/dialogs/settings/features.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/features.jinja2
rename to src/octoprint/templates/dialogs/settings/features.jinja2
diff --git a/src/octoprint/templates/settings/folders.jinja2 b/src/octoprint/templates/dialogs/settings/folders.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/folders.jinja2
rename to src/octoprint/templates/dialogs/settings/folders.jinja2
diff --git a/src/octoprint/templates/settings/logs.jinja2 b/src/octoprint/templates/dialogs/settings/logs.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/logs.jinja2
rename to src/octoprint/templates/dialogs/settings/logs.jinja2
diff --git a/src/octoprint/templates/settings/printerprofiles.jinja2 b/src/octoprint/templates/dialogs/settings/printerprofiles.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/printerprofiles.jinja2
rename to src/octoprint/templates/dialogs/settings/printerprofiles.jinja2
diff --git a/src/octoprint/templates/settings/serialconnection.jinja2 b/src/octoprint/templates/dialogs/settings/serialconnection.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/serialconnection.jinja2
rename to src/octoprint/templates/dialogs/settings/serialconnection.jinja2
diff --git a/src/octoprint/templates/settings/temperatures.jinja2 b/src/octoprint/templates/dialogs/settings/temperatures.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/temperatures.jinja2
rename to src/octoprint/templates/dialogs/settings/temperatures.jinja2
diff --git a/src/octoprint/templates/settings/terminalfilters.jinja2 b/src/octoprint/templates/dialogs/settings/terminalfilters.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/terminalfilters.jinja2
rename to src/octoprint/templates/dialogs/settings/terminalfilters.jinja2
diff --git a/src/octoprint/templates/settings/webcam.jinja2 b/src/octoprint/templates/dialogs/settings/webcam.jinja2
similarity index 100%
rename from src/octoprint/templates/settings/webcam.jinja2
rename to src/octoprint/templates/dialogs/settings/webcam.jinja2
diff --git a/src/octoprint/templates/dialogs/slicing.jinja2 b/src/octoprint/templates/dialogs/slicing.jinja2
new file mode 100644
index 00000000..3b0ad040
--- /dev/null
+++ b/src/octoprint/templates/dialogs/slicing.jinja2
@@ -0,0 +1,48 @@
+
+
+
+
{{ _('Please configure which slicer and which slicing profile to use and name the GCode file to slice to below, or click "Cancel" if you do not wish to slice the file now.') }}
+
+
+
+
diff --git a/src/octoprint/templates/index.jinja2 b/src/octoprint/templates/index.jinja2
index c3754f4b..6630fd1d 100644
--- a/src/octoprint/templates/index.jinja2
+++ b/src/octoprint/templates/index.jinja2
@@ -73,7 +73,16 @@
- {% include 'navbar.jinja2' %}
+
+
OctoPrint
+
+
+ {% include 'navbar/settings.jinja2' %}
+ {% include 'navbar/systemmenu.jinja2' %}
+ {% include 'navbar/login.jinja2' %}
+
+
+
@@ -115,8 +124,17 @@
- {% include 'settings.jinja2' %}
- {% include 'dialogs.jinja2' %}
+
+ {% include 'dialogs/confirmation.jinja2' %}
+ {% include 'dialogs/firstrun.jinja2' %}
+ {% include 'dialogs/settings.jinja2' %}
+ {% include 'dialogs/slicing.jinja2' %}
+
+
+
+ {% include 'overlays/dragndrop.jinja2' %}
+ {% include 'overlays/offline.jinja2' %}
+
{% if templatePlugins %}
diff --git a/src/octoprint/templates/navbar.jinja2 b/src/octoprint/templates/navbar.jinja2
deleted file mode 100644
index 517ae5f5..00000000
--- a/src/octoprint/templates/navbar.jinja2
+++ /dev/null
@@ -1,45 +0,0 @@
-
diff --git a/src/octoprint/templates/overlays/dragndrop.jinja2 b/src/octoprint/templates/overlays/dragndrop.jinja2
new file mode 100644
index 00000000..9d07238e
--- /dev/null
+++ b/src/octoprint/templates/overlays/dragndrop.jinja2
@@ -0,0 +1,14 @@
+
+
+
+ {% if enableSdSupport %}
+
{{ _('Upload locally') }}
+
+
{{ _('Upload to SD') }}
({{ _('SD not initialized') }})
+
+ {% else %}
+
{{ _('Upload') }}
+
+ {% endif %}
+
+
diff --git a/src/octoprint/templates/overlays/offline.jinja2 b/src/octoprint/templates/overlays/offline.jinja2
new file mode 100644
index 00000000..31e981ad
--- /dev/null
+++ b/src/octoprint/templates/overlays/offline.jinja2
@@ -0,0 +1,14 @@
+