Update: Abschluss 29.07.2025

This commit is contained in:
Alexander-Stosic 2025-07-30 00:35:15 +02:00
parent 0db3bb9207
commit 4f1e5eddac
13 changed files with 698 additions and 760 deletions

View file

@ -1,180 +1,117 @@
{{ define "main" }}
<header id="mainHeader">
{{ with .Params.banner }}
{{ if .enable }}
<section
class="slider {{ if .bg_overlay }}overly{{ end }} gif-background"
style="height: 100vh; display: flex; align-items: center; justify-content: center; position: relative;"
>
<div class="my-container" style="position: relative; z-index: 2;">
<!-- Logo-Container mit 2 Frames (40% / 60%), 10% Rand links & rechts -->
<div class="logo-container">
<!-- Frame 1 -->
<div class="frame1">
<img
src="{{ .logo_image1 | relURL }}"
alt="Logo Frame 1"
class="banner-logo"
>
</div>
<!-- Frame 2 -->
<div class="frame2">
<img
src="{{ .logo_image2 | relURL }}"
alt="Logo Frame 2"
class="banner-logo"
>
</div>
</div>
{{ if .enable }}
<!-- HERO / SLIDER -->
<section class="slider {{ if .bg_overlay }}overly{{ end }} gif-background"
style="height: 100vh; display: flex; align-items: center; justify-content: center; position: relative;">
<div class="my-container" style="position: relative; z-index: 2;">
<!-- *Logo-Zeile mit zwei Frames* -->
<div class="logo-container">
<div class="frame1">
<img src="{{ .logo_image1 | relURL }}" alt="Logo Frame 1" class="banner-logo">
</div>
<div class="frame2">
<img src="{{ .logo_image2 | relURL }}" alt="Logo Frame 2" class="banner-logo">
</div>
</div>
<!-- *Haupttitel + Button* -->
<div class="block" style="display: flex; flex-direction: column; justify-content: flex-end; min-height: 10vh; padding: 1rem; box-sizing: border-box;">
{{ with .title }}
<h1 class="title-custom title-custom-margin fade-in-title">{{ . | markdownify }}</h1>
{{ end }}
<!-- Titel / Content / Button -->
<div class="block" style="display: flex; flex-direction: column; justify-content: flex-end; min-height: 10vh; padding: 1rem; box-sizing: border-box; overflow-wrap: break-word;">
{{ with .title }}
<h1 class="title-custom title-custom-margin fade-in-title">
{{ . | markdownify }}
</h1>
{{ end }}
{{ with .button }}
{{ if .enable }}
<div
class='scrolldown'
onclick="document.getElementById('service').scrollIntoView({ behavior: 'smooth' });"
style="--color: rgb(0, 0, 0); cursor: pointer;"
>
<div class="chevrons">
<div class='chevrondown'></div>
<div class='chevrondown'></div>
</div>
</div>
{{ end }}
{{ end }}
{{ with .button }}
{{ if .enable }}
<div class="scrolldown" onclick="document.getElementById('service').scrollIntoView({ behavior: 'smooth' });"
style="--color: rgb(0, 0, 0); cursor: pointer;">
<div class="chevrons">
<div class='chevrondown'></div>
<div class='chevrondown'></div>
</div>
</div>
</section>
{{ end }}
{{ end }}
{{ end }}
</div>
</div>
</section>
{{ end }}
{{ end }}
</header>
<!-- Scroll/Hide Header -->
<script>
document.addEventListener('DOMContentLoaded', function() {
document.addEventListener('DOMContentLoaded', function () {
var scrolldown = document.querySelector('.scrolldown');
scrolldown.addEventListener('click', function() {
scrolldown?.addEventListener('click', function () {
const serviceSection = document.getElementById('service');
const offset = 100; // Der Offset in Pixeln
// Berechne die Position, zu der gescrollt werden soll
const offset = 100;
const targetPosition = serviceSection.getBoundingClientRect().top + window.pageYOffset - offset;
window.scrollTo({
top: targetPosition,
behavior: 'smooth' // Sanftes Scrollen
});
window.scrollTo({ top: targetPosition, behavior: 'smooth' });
});
window.addEventListener("scroll", function() {
window.addEventListener("scroll", function () {
if (window.scrollY > 100) {
scrolldown.classList.add('hide');
scrolldown?.classList.add('hide');
} else {
scrolldown.classList.remove('hide');
scrolldown?.classList.remove('hide');
}
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var header = document.getElementById('mainHeader');
var lastScrollPosition = window.scrollY;
window.addEventListener('scroll', function() {
window.addEventListener('scroll', function () {
var currentScrollPosition = window.scrollY;
// Wenn der Benutzer nach unten scrollt, verstecke den Header
if (currentScrollPosition > lastScrollPosition) {
header.style.top = '-100vh'; // Passe diesen Wert an die Höhe deines Headers an
}
// Wenn der Benutzer nach oben scrollt, zeige den Header wieder an
else {
header.style.top = '0';
}
// Wenn der Benutzer ganz nach oben scrollt, zeige den Header an
if (currentScrollPosition === 0) {
header.style.top = '0';
}
header.style.top = (currentScrollPosition > lastScrollPosition) ? '-100vh' : '0';
if (currentScrollPosition === 0) header.style.top = '0';
lastScrollPosition = currentScrollPosition;
});
});
</script>
<div style="height: 200px;"></div>
<!-- whyamperion -->
{{ if .Params.whyamperion.enable }}
{{ partial "whyamperion.html" . }}
{{ end }}
<!-- /whyamperion -->
<!-- services -->
{{ with site.GetPage "/service" }}
<!-- WHY AMPERION (Kompakte Version) -->
{{ with site.GetPage "/whyamperion" }}
{{ with .Params.service }}
<section id="service" class="service">
<!-- container-fluid + my-container => um beides kombinieren zu können -->
<div class="container-fluid my-container">
<!-- Block mit Titel und Beschreibung -->
<div class="services-title">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
<section class="whyamperion section">
<div class="container my-container">
<div class="row">
<div class="section-title text-center">
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
</div>
</div>
<div class="services-description">
{{ with .description }}<h3>{{ . | markdownify }}</h3>{{ end }}
</div>
<!-- CSS-Grid/Flexbox-Bereich mit den Bildern -->
<div class="service-grid">
{{ range first 3 .service_item }} <!-- Hier nur die ersten 3 Elemente nehmen -->
<div class="service-item-fixed">
<div class="zoom-wrap">
<a href="{{ .link | relURL }}">
<img src="{{ .picture | relURL }}" alt="{{ .name }}">
<div class="overlay-text">
{{ .name }}
</div>
<div class="overlay"></div>
</a>
<div class="row">
{{ range .service_item }}
<div class="col-sm-6 col-md-3">
<div class="service-item text-center">
<i class="{{ .icon }}" aria-hidden="true" style="font-size: 2rem; margin-bottom: 0.5rem;"></i>
<h3>{{ .name | markdownify }}</h3>
<p>{{ .content | markdownify }}</p>
</div>
</div>
{{ end }}
</div><!-- /service-grid -->
</div><!-- /container-fluid.my-container -->
</div>
</div>
</section>
{{ end }}
{{ end }}
<!-- /services -->
<!-- focustopics -->
{{ with site.GetPage "/focustopic" }} <!-- Hier den Pfad zur service2.md anpassen -->
<!-- SERVICES -->
{{ with site.GetPage "/service" }}
{{ with .Params.service }}
<section id="service" class="service">
<div class="container-fluid my-container">
<div class="services-title">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
</div>
<div class="services-description">
{{ with .description }}<h3>{{ . | markdownify }}</h3>{{ end }}
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
</div>
<div class="service-grid">
{{ range first 3 .service_item }}
@ -182,9 +119,7 @@
<div class="zoom-wrap">
<a href="{{ .link | relURL }}">
<img src="{{ .picture | relURL }}" alt="{{ .name }}">
<div class="overlay-text">
{{ .name }}
</div>
<div class="overlay-text">{{ .name }}</div>
<div class="overlay"></div>
</a>
</div>
@ -195,41 +130,104 @@
</section>
{{ end }}
{{ end }}
<!-- /focustopics -->
<div style="height: 100px;"></div>
<!-- why amperion -->
{{ with site.GetPage "/why-amperion" }}
<section class="services-section">
<h2 class="services-title">{{ .Params.service.title | default "OUR SERVICES" }}</h2>
<h3 class="services-description">{{ .Params.service.description | default "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts." | markdownify }}</h3>
<div class="services-grid">
{{ range first 6 .Params.featured_service.service_item }}
<div class="service-card">
<img src="{{ .image | relURL }}" alt="{{ .name }}" class="service-icon">
<h3 class="service-card-title">{{ .name }}</h3>
<p class="service-card-description"><strong>{{ .content1 | markdownify }}</strong> {{ .content | markdownify }}</p>
<!-- FOCUSTOPICS -->
{{ with site.GetPage "/focustopic" }}
{{ with .Params.service }}
<section id="focustopic" class="service">
<div class="container-fluid my-container">
<div class="services-title">
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
</div>
<div class="services-description">
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
</div>
<div class="service-grid">
{{ range first 3 .service_item }}
<div class="service-item-fixed">
<div class="zoom-wrap">
<a href="{{ .link | relURL }}">
<img src="{{ .picture | relURL }}" alt="{{ .name }}">
<div class="overlay-text">{{ .name }}</div>
<div class="overlay"></div>
</a>
</div>
</div>
{{ end }}
</div>
{{ end }}
</div>
</section>
{{ end }}
<!-- /why amperion -->
<div style="height: 100px;"></div>
{{ if .Params.contact.enable }}
{{ partial "cta.html" . }}
{{ end }}
<!-- WHY AMPERION kompakt & detailliert (Hardcoded Version) -->
<section class="whyamperion section" style="background-color:#f3f3f3">
<div class="container my-container">
<!-- Titelblock eigener Wrapper statt .section-title -->
<div class="row">
<div class="why-title text-center">
<h1>Darum AMPERION</h1>
<h2 class="why-sub"><em>Kompetenz, auf die Sie bauen können von der Idee bis zur Inbetriebnahme.</em></h2>
</div>
</div>
<!-- Karten -->
<div class="why-grid mt-5">
<article class="service-card text-center">
<img src="icons/file-badge.svg" alt="Technische Planungskompetenz Icon" class="service-icon mb-3">
<h2 class="service-card-title">Technische Planungskompetenz</h2>
<p class="service-card-description">
<strong>Langjährige Erfahrung mit komplexer Energieplanung </strong> normgerecht, effizient &amp; zukunftssicher.
</p>
</article>
<article class="service-card text-center">
<img src="icons/plug-zap.svg" alt="Intelligente Energiesysteme Icon" class="service-icon mb-3">
<h2 class="service-card-title">Intelligente Energiesysteme</h2>
<p class="service-card-description">
<strong>Von PV bis Speicher und Lastmanagement </strong> für maximale Eigenversorgung und Netzverträglichkeit.
</p>
</article>
<article class="service-card text-center">
<img src="icons/headset.svg" alt="Persönliche Betreuung Icon" class="service-icon mb-3">
<h2 class="service-card-title">Persönliche Betreuung</h2>
<p class="service-card-description">
<strong>Kurze Wege, schnelle Antworten </strong> direkte Ansprechpartner, auch nach Projektabschluss.
</p>
</article>
<article class="service-card text-center">
<img src="icons/hard-hat.svg" alt="Reibungslose Projektabwicklung Icon" class="service-icon mb-3">
<h2 class="service-card-title">Reibungslose Projektabwicklung</h2>
<p class="service-card-description">
<strong>Wir übernehmen die technische Koordination </strong> von Einreichung bis Ausschreibung.
</p>
</article>
<article class="service-card text-center">
<img src="icons/network.svg" alt="Vernetzte Energiezukunft Icon" class="service-icon mb-3">
<h2 class="service-card-title">Vernetzte Energiezukunft</h2>
<p class="service-card-description">
<strong>Wir denken Energie ganzheitlich </strong> modular, digital und wachstumsfähig geplant.
</p>
</article>
<article class="service-card text-center">
<img src="icons/circuit-board.svg" alt="Präzise Systemplanung Icon" class="service-icon mb-3">
<h2 class="service-card-title">Präzise Systemplanung</h2>
<p class="service-card-description">
<strong>Alle Komponenten exakt abgestimmt </strong> wirtschaftlich und regelkonform.
</p>
</article>
</div>
</div>
</section>
<!-- about -->
<!-- ABOUT (unverändert) -->
{{ with .Params.about }}
{{ if .enable }}
<section id="about" class="about section">
@ -237,21 +235,20 @@
<div class="row">
<div class="col-12 text-center">
<div class="services-title">
{{ with .title }}<h2>{{ . | markdownify }}</h2>{{ end }}
{{ with .title }}<h1>{{ . | markdownify }}</h1>{{ end }}
</div>
<div class="services-description">
{{ with .description }}<h3>{{ . | markdownify }}</h3>{{ end }}
{{ with .description }}<h2><em>{{ . | markdownify }}</em></h2>{{ end }}
</div>
</div>
</div>
<div class="row">
<div class="col-md-9 col-sm-12">
<div class="text-left">
{{ with .content }}{{ . | markdownify }}{{ end }}</div>
<div class="hover-link">
{{ with .link_text }}
<a href="{{ "/about/" | relURL }}">{{ . }}</a>
{{ end }}
{{ with .content }}{{ . | markdownify }}{{ end }}
</div>
<div class="hover-link">
{{ with .link_text }}<a href="{{ "/about/" | relURL }}">{{ . }}</a>{{ end }}
</div>
</div>
<div class="col-md-3 col-sm-12">
@ -264,17 +261,13 @@
</section>
{{ end }}
{{ end }}
<!-- /about -->
<div style="height: 100px;"></div>
<!-- call to action -->
<!-- CALL TO ACTION -->
{{ if .Params.cta.enable }}
{{ partial "cta.html" . }}
{{ end }}
<!-- /call to action -->
<div style="height: 100px;"></div>
<!-- facts -->
<!-- FACTS -->
{{ with .Params.facts }}
{{ if .enable }}
<section class="facts">
@ -293,59 +286,4 @@
{{ end }}
{{ end }}
<style>
.testimonial-item .images-container {
display: flex;
justify-content: center;
gap: 10px; /* Abstand zwischen den Bildern */
}
.testimonial-item .testimonial-image {
width: 10px; /* Anpassen der Breite nach Bedarf */
height: auto;
}
</style>
<div style="height: 100px;"></div>
<script>
document.addEventListener('DOMContentLoaded', function() {
var scrollDownButton = document.querySelector('.scroll-down-button');
scrollDownButton.addEventListener('click', function() {
document.querySelector('#about').scrollIntoView({
behavior: 'smooth'
});
});
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var scrolled = false;
var initialScrollListener = function() {
if (!scrolled) {
window.removeEventListener('scroll', initialScrollListener);
document.getElementById('welcome').scrollIntoView({ behavior: 'smooth' });
scrolled = true;
}
};
window.addEventListener('scroll', initialScrollListener);
});
document.addEventListener("scroll", function() {
var scrolldown = document.querySelector('.scrolldown');
if (window.scrollY > 100) { // Adjust this value based on when you want to hide the icon
scrolldown.classList.add('hide');
} else {
scrolldown.classList.remove('hide');
}
});
</script>
{{ end }}