diff --git a/.changelog/10181.txt b/.changelog/10181.txt
new file mode 100644
index 000000000000..424320a50f5f
--- /dev/null
+++ b/.changelog/10181.txt
@@ -0,0 +1,3 @@
+```release-note:improvement
+ui: Improve loader centering with new side navigation
+```
diff --git a/ui/packages/consul-ui/app/components/app/index.scss b/ui/packages/consul-ui/app/components/app/index.scss
index eea9542d0c60..75a3c8808fd2 100644
--- a/ui/packages/consul-ui/app/components/app/index.scss
+++ b/ui/packages/consul-ui/app/components/app/index.scss
@@ -1,7 +1,3 @@
-.app {
- --chrome-width: 300px;
- --chrome-height: 64px;
-}
.app .skip-links {
@extend %skip-links;
}
@@ -44,7 +40,7 @@ main {
z-index: 10;
}
main {
- margin-top: var(--chrome-height);
+ margin-top: var(--chrome-height, 64px);
transition-property: margin-left;
}
@@ -54,11 +50,11 @@ main {
left: 0;
}
%main-nav-horizontal-toggle:checked + header > div > nav:first-of-type {
- left: calc(var(--chrome-width) * -1);
+ left: calc(var(--chrome-width, 300px) * -1);
}
%main-nav-horizontal-toggle ~ main,
%main-nav-horizontal-toggle ~ footer {
- margin-left: var(--chrome-width);
+ margin-left: var(--chrome-width, 300px);
}
%main-nav-horizontal-toggle:checked ~ main,
%main-nav-horizontal-toggle:checked ~ footer {
@@ -70,7 +66,7 @@ main {
left: 0;
}
%main-nav-horizontal-toggle + header > div > nav:first-of-type {
- left: calc(var(--chrome-width) * -1);
+ left: calc(var(--chrome-width, 300px) * -1);
}
%main-nav-horizontal-toggle ~ main,
%main-nav-horizontal-toggle ~ footer {
diff --git a/ui/packages/consul-ui/app/components/brand-loader/README.mdx b/ui/packages/consul-ui/app/components/brand-loader/README.mdx
new file mode 100644
index 000000000000..bc6f8677ada7
--- /dev/null
+++ b/ui/packages/consul-ui/app/components/brand-loader/README.mdx
@@ -0,0 +1,41 @@
+# BrandLoader
+
+Initial loader full brand logo as opposed to the brand submark logo.
+
+The component is a little strange in how you configure it (a CSS-like `@width`
+and `@color` properties and the subtitle as a further component), but this is due to use
+wanting to source this in a JS only environment (without Glimmer/Handlebars)
+during compilation of the static `index.html` file. For this reason the
+template sourcecode should use extremely minimal handlebars syntax.
+
+Also, we want the logo to appear as soon as possible, so before any CSS has
+loaded, so we define its color in attributes instead of CSS.
+
+```hbs preview-template
+
+
+
+
+```
+
+```hbs preview-template
+
+
+
+
+
+```
+
+## Arguments
+
+| Argument | Type | Default | Description |
+| --- | --- | --- | --- |
+| `width` | `Number` | | The width for the base SVG for the logo |
+| `color` | `String` | | A hexcode color value for the logo |
+| `subtitle` | `String` | | When used with JS you can pass extra DOM in here that will be yielded in the same position as the `{{yield}}`|
diff --git a/ui/packages/consul-ui/app/components/brand-loader/enterprise.hbs b/ui/packages/consul-ui/app/components/brand-loader/enterprise.hbs
new file mode 100644
index 000000000000..98caaba5ed59
--- /dev/null
+++ b/ui/packages/consul-ui/app/components/brand-loader/enterprise.hbs
@@ -0,0 +1,2 @@
+
+
diff --git a/ui/packages/consul-ui/app/components/brand-loader/index.hbs b/ui/packages/consul-ui/app/components/brand-loader/index.hbs
new file mode 100644
index 000000000000..e00f7dd309ac
--- /dev/null
+++ b/ui/packages/consul-ui/app/components/brand-loader/index.hbs
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/ui/packages/consul-ui/app/components/brand-loader/index.scss b/ui/packages/consul-ui/app/components/brand-loader/index.scss
new file mode 100644
index 000000000000..9c622820f6cc
--- /dev/null
+++ b/ui/packages/consul-ui/app/components/brand-loader/index.scss
@@ -0,0 +1,5 @@
+@import './skin';
+@import './layout';
+.brand-loader {
+ @extend %brand-loader;
+}
diff --git a/ui/packages/consul-ui/app/components/brand-loader/layout.scss b/ui/packages/consul-ui/app/components/brand-loader/layout.scss
new file mode 100644
index 000000000000..b77e439d6911
--- /dev/null
+++ b/ui/packages/consul-ui/app/components/brand-loader/layout.scss
@@ -0,0 +1,6 @@
+%brand-loader {
+ position: absolute;
+ top: 50%;
+ margin-top: -26px;
+ left: 50%;
+}
diff --git a/ui/packages/consul-ui/app/styles/components/brand-loader/skin.scss b/ui/packages/consul-ui/app/components/brand-loader/skin.scss
similarity index 100%
rename from ui/packages/consul-ui/app/styles/components/brand-loader/skin.scss
rename to ui/packages/consul-ui/app/components/brand-loader/skin.scss
diff --git a/ui/packages/consul-ui/app/components/consul/loader/README.mdx b/ui/packages/consul-ui/app/components/consul/loader/README.mdx
index 0c0611079e58..e8520a3a3cb7 100644
--- a/ui/packages/consul-ui/app/components/consul/loader/README.mdx
+++ b/ui/packages/consul-ui/app/components/consul/loader/README.mdx
@@ -1,12 +1,13 @@
# Consul::Loader
+Simple template-only component to show the circular animated Consul loader animation.
+
```hbs preview-template