Alexander1337 commited on
Commit
22872b5
·
verified ·
1 Parent(s): 81e5c53

<!DOCTYPE html>

Browse files

<html lang="sv">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Alexander Adolfsson Coaching</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
html { scroll-behavior: smooth; }
body { margin:0; font-family:sans-serif; background:#f9f9f9; color:#111; }

/* HEADER */
header {
position:sticky;
top:0;
z-index:50;
display:flex;
justify-content:space-between;
align-items:center;
background:white;
padding:1rem 2rem;
box-shadow:0 2px 8px rgba(0,0,0,0.1);
}
header nav a {
margin:0 1rem;
text-decoration:none;
font-weight:bold;
color:#111;
}
header nav a:hover { color:#10b981; }

/* HERO VIDEO */
.hero-video {
position: relative;
width: 100%;
height: 100vh;
overflow: hidden;
}
.hero-video video {
position:absolute;
top:50%;
left:50%;
width:auto;
height:100%;
min-width:100%;
min-height:100%;
transform: translate(-50%, -50%);
object-fit:cover;
z-index:0;
}
.hero-overlay {
position:absolute;
top:0; left:0;
width:100%; height:100%;
background: rgba(0,0,0,0.35);
z-index:1;
}
.hero-content {
position:absolute;
top:50%;
left:50%;
transform: translate(-50%, -50%);
z-index:2;
text-align:center;
color:white;
}
.hero-content h1 { font-size:3rem; margin-bottom:1rem; text-shadow:2px2px8px rgba(0,0,0,0.7);}
.hero-content a {
display:inline-block;
background:#10b981;
color:black;
font-weight:bold;
padding:1rem 2rem;
border-radius:9999px;
font-size:1.5rem;
transition: all 0.3s;
}
.hero-content a:hover { background:#059669; transform:scale(1.05); }

/* OM MIG */
.about {
max-width:900px;
margin:3rem auto;
text-align:center;
padding:0 1rem;
}
.about img { max-width:300px; width:100%; border-radius:12px; margin-top:2rem; }

/* TJÄNSTER */
.services {
background:#f0f0f0;
padding:3rem 1rem;
text-align:center;
}
.services-grid {
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:2rem;
margin-top:2rem;
}
.service-card {
background:white;
padding:1.5rem;
border-radius:12px;
box-shadow:0 2px 8px rgba(0,0,0,0.1);
}
.service-card h3 { margin-bottom:1rem; font-size:1.25rem; }
.service-card p { font-size:1rem; margin-bottom:1rem; }
.service-card a {
display:inline-block;
background:#10b981;
color:black;
font-weight:bold;
padding:0.75rem 1.5rem;
border-radius:9999px;
transition: all 0.3s;
}
.service-card a:hover { background:#059669; transform:scale(1.05); }

/* PRISER */
.pricing { padding:3rem 1rem; text-align:center; }
.pricing-grid {
display:grid;
grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
gap:2rem;
margin-top:2rem;
}
.price-card {
background:white;
padding:2rem;
border-radius:12px;
box-shadow:0 2px 8px rgba(0,0,0,0.1);
text-align:left;
}
.price-card h3 { font-size:1.5rem; margin-bottom:0.5rem; }
.price-card .price { font-size:1.25rem; font-weight:bold; margin-bottom:1rem; }
.price-card ul { margin-bottom:1rem; list-style:none; padding-left:0; }
.price-card ul li::before { content:"✔ "; color:#10b981; }
.price-card a {
display:inline-block;
background:#10b981;
color:black;
font-weight:bold;
padding:0.75rem 1.5rem;
border-radius:9999px;
transition: all 0.3s;
text-align:center;
}
.price-card a:hover { background:#059669; transform:scale(1.05); }

/* FOOTER */
footer {
background:#111;
color:white;
text-align:center;
padding:2rem 1rem;
}
.social-links a {
margin:0 0.5rem;
font-size:2rem;
display:inline-block;
transition: all 0.3s;
}
.social-links a:hover { transform:scale(1.2); color:#10b981; }

@media (max-width:768px){
.hero-content h1 { font-size:2rem; }
.hero-content a { font-size:1rem; padding:0.75rem 1.5rem; }
}
</style>
</head>
<body>

<header>
<div><strong>Alexander Adolfsson Coaching</strong></div>
<nav>
<a href="#home">Hem</a>
<a href="#about">Om mig</a>
<a href="#services">Tjänster</a>
<a href="#pricing">Priser</a>
<a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank">Boka gratis konsultation</a>
</nav>
</header>

<!-- HERO VIDEO -->
<section id="home" class="hero-video">
<video autoplay muted loop playsinline>
<source src="https://res.cloudinary.com/dttivz1il/video/upload/v1770166272/00733_njitjk.ts" type="video/mp4">
Din webbläsare stöder inte videon.
</video>
<div class="hero-overlay"></div>
<div class="hero-content">
<h1>Boka din PT-session idag!</h1>
<a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank">Boka nu</a>
</div>
</section>

<!-- OM MIG -->
<section id="about" class="about">
<h2>Om mig</h2>
<p>Träning är inte bara något jag gör – det är en livsstil. Jag har byggt upp min kunskap genom år av egen erfarenhet i gymmet, där jag testat, lärt mig och finslipat vad som verkligen fungerar.</p>
<p>Min passion är att inspirera andra till att må bättre, bli starkare och känna sig mer självsäkra – både fysiskt och mentalt. Mitt mål är att hjälpa dig göra just det.</p>
<p>Oavsett om du vill bygga muskler, gå ner i vikt eller ta din träning till nästa nivå – finns jag här för att guida dig.</p>
<img src="https://res.cloudinary.com/dttivz1il/image/upload/v1770071792/116793853_1720734278103001_2838411385229802706_n_1_amarng.jpg" alt="Alexander Adolfsson PT">
<div style="margin-top:1rem;">
<a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank" class="hero-content a">Börja din resa idag</a>
</div>
</section>

<!-- TJÄNSTER -->
<section id="services" class="services">
<h2>Tjänster</h2>
<div class="services-grid">
<div class="service-card">
<h3>Personlig träning</h3>
<p>Individuellt anpassad träning – nybörjare eller erfaren.</p>
<a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank">Börja nu →</a>
</div>
<div class="service-card">
<h3>Kostrådgivning</h3>
<p>Struktur, tydlighet och resultat – utan extrema dieter.</p>
<a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank">Börja nu →</a>
</div>
<div class="service-card">
<h3>Online coaching</h3>
<p>Komplett upplägg med träning, kost och uppföljning.</p>
<a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank">Börja nu →</a>
</div>
</div>
</section>

<!-- PRISER -->
<section id="pricing" class="pricing">
<h2>Prispaket</h2>
<div class="pricing-grid">
<div class="price-card">
<h3>Online Coaching Bas</h3>
<p class="price">1 495 kr / mån</p>
<ul>
<li>Struktur & planering</li>
<li>Träningsprogram</li>
<li>Veckovis uppföljning</li>
</ul>
<a href="https://buy.stripe.com/3cI5kF0fk5ew9Ry7Bx7EQ03" target="_blank">Betala / Boka</a>
</div>
<div class="price-card">
<h3>Online Coaching Standard</h3>
<p class="price">2 495 kr / mån</p>
<ul>
<li>Träningsprogram</li>
<li>Personligt kostupplägg</li>
<li>Direktkontakt & justeringar</li>
<li>Veckovis uppföljning</li>
</ul>
<a href="https://buy.stripe.com/3cI5kF0fk5ew9Ry7Bx7EQ03" target="_blank">Betala / Boka</a>
</div>
<div class="price-card">
<h3>Online Coaching Premium</h3>
<p class="price">3 495 kr / mån</p>
<ul>
<li>Allt i Standard</li>
<li>Tätare uppföljning</li>
<li>Prioriterad support</li>
<li>Regelbundna videosamtal</li>
</ul>
<a href="https://buy.stripe.com/3cI5kF0fk5ew9Ry7Bx7EQ03" target="_blank">Betala / Boka</a>
</div>
</div>
</section>

<!-- FOOTER -->
<footer>
<p>Borås, Sverige | alexander.pt.adolfsson@gmail.com | 073-640 50 08</p>
<div class="social-links">
<a href="https://www.instagram.com/ptalexadolfsson/" target="_blank">📸</a>
<a href="https://www.tiktok.com/@ptalexanderadolfsson?lang=sv-SE" target="_blank">🎵</a>
<a href="https://www.facebook.com/profile.php?id=61583938018630" target="_blank">📘</a>
<a href="https://www.youtube.com/@alexanderadolfsson9295" target="_blank">▶️</a>
</div>
<p>© 2026 Alexander Adolfsson Coaching. Alla rättigheter reserverade.</p>
</footer>

</body>
</html>

Files changed (4) hide show
  1. components/header.js +73 -1
  2. index.html +2 -0
  3. script.js +9 -14
  4. style.css +1 -26
components/header.js CHANGED
@@ -1 +1,73 @@
1
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomHeader extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ :host {
7
+ display: block;
8
+ position: sticky;
9
+ top: 0;
10
+ z-index: 50;
11
+ background: white;
12
+ padding: 1rem 2rem;
13
+ box-shadow: 0 2px 8px rgba(0,0,0,0.1);
14
+ }
15
+ .container {
16
+ display: flex;
17
+ justify-content: space-between;
18
+ align-items: center;
19
+ max-width: 1200px;
20
+ margin: 0 auto;
21
+ }
22
+ .logo {
23
+ font-weight: bold;
24
+ color: #111;
25
+ }
26
+ nav {
27
+ display: flex;
28
+ gap: 1rem;
29
+ }
30
+ nav a {
31
+ text-decoration: none;
32
+ font-weight: bold;
33
+ color: #111;
34
+ transition: color 0.3s;
35
+ }
36
+ nav a:hover {
37
+ color: #10b981;
38
+ }
39
+ .cta-btn {
40
+ background: #10b981;
41
+ color: black;
42
+ font-weight: bold;
43
+ padding: 0.5rem 1rem;
44
+ border-radius: 9999px;
45
+ transition: all 0.3s;
46
+ }
47
+ .cta-btn:hover {
48
+ background: #059669;
49
+ transform: scale(1.05);
50
+ }
51
+ @media (max-width: 768px) {
52
+ :host {
53
+ padding: 1rem;
54
+ }
55
+ nav {
56
+ display: none;
57
+ }
58
+ }
59
+ </style>
60
+ <div class="container">
61
+ <div class="logo">Alexander Adolfsson Coaching</div>
62
+ <nav>
63
+ <a href="#home">Hem</a>
64
+ <a href="#about">Om mig</a>
65
+ <a href="#services">Tjänster</a>
66
+ <a href="#pricing">Priser</a>
67
+ <a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" target="_blank" class="cta-btn">Boka gratis konsultation</a>
68
+ </nav>
69
+ </div>
70
+ `;
71
+ }
72
+ }
73
+ customElements.define('custom-header', CustomHeader);
index.html CHANGED
@@ -208,6 +208,8 @@ Osäker? <a href="https://calendly.com/alexander-pt-adolfsson/new-meeting" targe
208
  <script src="components/footer.js"></script>
209
  <script src="script.js"></script>
210
  <script src="components/navbar.js"></script>
 
 
211
  </body>
212
  </html>
213
  https://res.cloudinary.com/dttivz1il/image/upload/v1770071721/11062b_f11d2809bac34baaadb2950e9d15f8a3_mv2_o2ltbl.avif$0
 
208
  <script src="components/footer.js"></script>
209
  <script src="script.js"></script>
210
  <script src="components/navbar.js"></script>
211
+ <script src="components/header.js"></script>
212
+ <script src="components/footer.js"></script>
213
  </body>
214
  </html>
215
  https://res.cloudinary.com/dttivz1il/image/upload/v1770071721/11062b_f11d2809bac34baaadb2950e9d15f8a3_mv2_o2ltbl.avif$0
script.js CHANGED
@@ -1,16 +1,17 @@
1
 
2
  // Smooth scroll for anchor links
3
- document.querySelectorAll('a[href^="#"]').forEach(anchor => {
4
- anchor.addEventListener('click', function (e) {
5
  e.preventDefault();
6
- document.querySelector(this.getAttribute('href')).scrollIntoView({
7
- behavior: 'smooth'
8
- });
9
- });
 
10
  });
 
11
  // Add fade-in animation to sections when they come into view
12
  const sections = document.querySelectorAll('section');
13
-
14
  const observer = new IntersectionObserver((entries) => {
15
  entries.forEach(entry => {
16
  if (entry.isIntersecting) {
@@ -19,10 +20,4 @@ const observer = new IntersectionObserver((entries) => {
19
  });
20
  }, { threshold: 0.1 });
21
 
22
- sections.forEach(section => {
23
- observer.observe(section);
24
- });
25
-
26
-
27
-
28
-
 
1
 
2
  // Smooth scroll for anchor links
3
+ document.addEventListener('click', function(e) {
4
+ if (e.target.matches('a[href^="#"]')) {
5
  e.preventDefault();
6
+ const target = document.querySelector(e.target.getAttribute('href'));
7
+ if (target) {
8
+ target.scrollIntoView({ behavior: 'smooth' });
9
+ }
10
+ }
11
  });
12
+
13
  // Add fade-in animation to sections when they come into view
14
  const sections = document.querySelectorAll('section');
 
15
  const observer = new IntersectionObserver((entries) => {
16
  entries.forEach(entry => {
17
  if (entry.isIntersecting) {
 
20
  });
21
  }, { threshold: 0.1 });
22
 
23
+ sections.forEach(section => observer.observe(section));
 
 
 
 
 
 
style.css CHANGED
@@ -1,30 +1,5 @@
1
 
2
- /* Navbar styles for non-component pages */
3
- header {
4
- background: #111827;
5
- padding: 1rem 1.5rem;
6
- position: sticky;
7
- top: 0;
8
- z-index: 50;
9
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
10
- }
11
-
12
- header nav {
13
- display: flex;
14
- gap: 1.5rem;
15
- }
16
-
17
- header nav a {
18
- color: white;
19
- text-decoration: none;
20
- font-weight: 500;
21
- transition: color 0.3s ease;
22
- }
23
-
24
- header nav a:hover {
25
- color: #34d399;
26
- }
27
-
28
  /* Hero Section */
29
  #home {
30
  height: 100vh;
 
1
 
2
+ /* Header styles moved to web component */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  /* Hero Section */
4
  #home {
5
  height: 100vh;