diff --git a/frontend/src/components/loader-section.njk b/frontend/src/components/loader-section.njk
new file mode 100644
index 0000000..8eff3c0
--- /dev/null
+++ b/frontend/src/components/loader-section.njk
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+{% includeOnce 'components/loader.njk' %}
diff --git a/frontend/src/components/loader-section.ts b/frontend/src/components/loader-section.ts
new file mode 100644
index 0000000..41cf46d
--- /dev/null
+++ b/frontend/src/components/loader-section.ts
@@ -0,0 +1,23 @@
+import {TesoftComponent} from "../scripts/main.ts";
+
+export class TesoftLoaderSection extends TesoftComponent {
+ constructor() {
+ super();
+
+ const template = document.getElementById("tesoft-loader-section-template") as HTMLTemplateElement;
+ const templateContent = template.content;
+
+ const shadowRoot = this.attachShadow({mode: "open"});
+ shadowRoot.appendChild(templateContent.cloneNode(true));
+ }
+
+ reset() {
+ this.removeAttribute("loaded");
+ }
+
+ finish() {
+ this.setAttribute("loaded", "");
+ }
+}
+
+customElements.define("tesoft-loader-section", TesoftLoaderSection);