File size: 2,814 Bytes
974c87c
 
 
 
 
 
 
a866b8e
 
 
974c87c
 
 
 
a866b8e
 
 
 
 
 
 
974c87c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a866b8e
974c87c
a866b8e
974c87c
a866b8e
974c87c
 
a866b8e
974c87c
 
a866b8e
974c87c
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
class CustomHero extends HTMLElement {
  connectedCallback() {
    this.attachShadow({ mode: 'open' });
    this.shadowRoot.innerHTML = `
      <style>
        :host {
          display: block;
          background: linear-gradient(135deg, #ff6b6b 0%, #4ecdc4 50%, #45b7d1 100%);
          background-size: 200% 200%;
          animation: gradient-shift 3s ease infinite;
          color: white;
          padding: 6rem 2rem;
          text-align: center;
        }
        
        @keyframes gradient-shift {
          0% { background-position: 0% 50%; }
          50% { background-position: 100% 50%; }
          100% { background-position: 0% 50%; }
        }
.hero-container {
          max-width: 1280px;
          margin: 0 auto;
          display: flex;
          flex-direction: column;
          align-items: center;
          gap: 2rem;
        }
        h1 {
          font-size: 4rem;
          font-weight: 800;
          line-height: 1;
          margin-bottom: 1rem;
        }
        .subtitle {
          font-size: 1.25rem;
          max-width: 600px;
          margin-bottom: 2rem;
          opacity: 0.9;
        }
        .typewriter {
          color: #fbbf24;
          font-weight: 700;
        }
        .buttons {
          display: flex;
          gap: 1rem;
          margin-top: 2rem;
        }
        .primary-button {
          background-color: white;
          color: #6366f1;
          padding: 0.75rem 2rem;
          border-radius: 0.5rem;
          font-weight: 600;
          transition: all 0.2s;
        }
        .primary-button:hover {
          transform: translateY(-2px);
          box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
        }
        .secondary-button {
          background-color: transparent;
          color: white;
          padding: 0.75rem 2rem;
          border-radius: 0.5rem;
          font-weight: 600;
          border: 2px solid rgba(255, 255, 255, 0.3);
          transition: all 0.2s;
        }
        .secondary-button:hover {
          background-color: rgba(255, 255, 255, 0.1);
          transform: translateY(-2px);
        }
        @media (max-width: 768px) {
          h1 {
            font-size: 3rem;
          }
        }
      </style>
      <div class="hero-container">
        <h1>
          <span class="gradient-text">CodeVibes</span> - Where Devs Groove
        </h1>
        <p class="subtitle">
          Drop the beat, code the heat. Where every line of code is a verse and every commit is a chorus. 🎶
        </p>
<div class="buttons">
          <a href="#" class="primary-button">
            🎵 Start Vibe Coding
          </a>
          <a href="#" class="secondary-button">
            🎸 Jam Session Demo
          </a>
        </div>
</div>
    `;
  }
}
customElements.define('custom-hero', CustomHero);