astro-component-kit 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +4 -4
  2. package/package.json +11 -9
  3. package/src/components/index.ts +12 -9
  4. package/src/components/lib/AnimatedGalaxy.astro +4 -2
  5. package/src/components/lib/Galaxy3D.astro +237 -185
  6. package/src/components/lib/LogoWithGalaxy.astro +2 -2
  7. package/src/components/lib/buttons/index.ts +4 -1
  8. package/src/components/lib/cards/index.ts +3 -0
  9. package/src/components/lib/charts/DonutChart.astro +1 -1
  10. package/src/components/lib/charts/index.ts +3 -0
  11. package/src/components/lib/data/index.ts +3 -0
  12. package/src/components/lib/feedback/index.ts +3 -0
  13. package/src/components/lib/forms/index.ts +3 -0
  14. package/src/components/lib/index.ts +17 -6
  15. package/src/components/lib/layout/BentoGrid3.astro +79 -9
  16. package/src/components/lib/layout/CenterFixedBox.astro +52 -2
  17. package/src/components/lib/layout/CenteredContainer.astro +44 -5
  18. package/src/components/lib/layout/ClusterHorizontal.astro +36 -2
  19. package/src/components/lib/layout/FeatureHero.astro +119 -50
  20. package/src/components/lib/layout/FooterCenteredMinimal.astro +57 -9
  21. package/src/components/lib/layout/FullBleedSection.astro +44 -2
  22. package/src/components/lib/layout/GalleryGrid4.astro +35 -3
  23. package/src/components/lib/layout/GlassCardGrid.astro +24 -2
  24. package/src/components/lib/layout/GlassSectionHeader.astro +72 -11
  25. package/src/components/lib/layout/LandingSectionSplit.astro +83 -8
  26. package/src/components/lib/layout/MasonryGrid.astro +42 -3
  27. package/src/components/lib/layout/MinimalFooterGrid.astro +83 -11
  28. package/src/components/lib/layout/ScrollSnapSection.astro +37 -3
  29. package/src/components/lib/layout/SectionDividerText.astro +44 -4
  30. package/src/components/lib/layout/SidebarLayoutWrapper.astro +62 -7
  31. package/src/components/lib/layout/SplitScreenLayout.astro +62 -6
  32. package/src/components/lib/layout/StepLayoutVertical.astro +83 -10
  33. package/src/components/lib/layout/StickySidebarWrapper.astro +69 -6
  34. package/src/components/lib/layout/VerticalStack.astro +35 -5
  35. package/src/components/lib/layout/index.ts +17 -14
  36. package/src/components/lib/navigation/index.ts +3 -0
  37. package/src/components/lib/overlays/index.ts +3 -0
  38. package/src/components/lib/sections/ContactGlassForm.astro +361 -0
  39. package/src/components/lib/sections/CtaAppDownload.astro +258 -0
  40. package/src/components/lib/sections/CtaGlowBanner.astro +267 -0
  41. package/src/components/lib/sections/FaqAccordionSection.astro +349 -0
  42. package/src/components/lib/sections/FeatureBentoGrid.astro +449 -0
  43. package/src/components/lib/sections/FeatureTimelineFlow.astro +254 -0
  44. package/src/components/lib/sections/PricingComparisonMatrix.astro +468 -0
  45. package/src/components/lib/sections/PricingTierCards.astro +256 -0
  46. package/src/components/lib/sections/StatsMetricShowcase.astro +332 -0
  47. package/src/components/lib/sections/TeamGridSection.astro +333 -0
  48. package/src/components/lib/sections/TestimonialWallGlass.astro +406 -0
  49. package/src/components/lib/sections/index.ts +22 -0
  50. package/src/components/lib/typography/index.ts +3 -0
  51. package/src/components/lib/AnimatedInput.astro +0 -82
  52. package/src/components/lib/Badge.astro +0 -52
  53. package/src/components/lib/GlassButton.astro +0 -87
  54. package/src/components/lib/GlassCard.astro +0 -72
  55. package/src/components/lib/GlassNavbar.astro +0 -67
  56. package/src/components/lib/GlowButton.astro +0 -60
  57. /package/src/components/lib/buttons/{3dPushButton.astro → ThreeDPushButton.astro} +0 -0
@@ -0,0 +1,333 @@
1
+ ---
2
+ /**
3
+ * TeamGridSection — Full-page team & leadership section with glass profile cards, social links, and open positions banner.
4
+ *
5
+ * @param {string} badge - Eyebrow badge text.
6
+ * @param {string} title - Section main heading.
7
+ * @param {string} subtitle - Description text.
8
+ */
9
+ interface Props {
10
+ badge?: string;
11
+ title?: string;
12
+ subtitle?: string;
13
+ className?: string;
14
+ }
15
+
16
+ const {
17
+ badge = "Our Team",
18
+ title = "Built by Engineers, Designers & Open Source Believers",
19
+ subtitle = "Meet the passionate team behind the Astro Components Kit, crafting tools to elevate modern web interfaces.",
20
+ className = ""
21
+ } = Astro.props;
22
+
23
+ const members = [
24
+ {
25
+ name: "Alexandre Moreau",
26
+ role: "Lead Architect & Founder",
27
+ bio: "Passionate about zero-runtime systems and developer experience.",
28
+ initials: "AM",
29
+ avatarColor: "linear-gradient(135deg, #6366f1, #a855f7)",
30
+ github: "https://github.com",
31
+ twitter: "https://x.com"
32
+ },
33
+ {
34
+ name: "Elena Rostova",
35
+ role: "Head of Design & UI/UX",
36
+ bio: "Design systems veteran specializing in dark-mode glassmorphism and WCAG compliance.",
37
+ initials: "ER",
38
+ avatarColor: "linear-gradient(135deg, #eab308, #d97706)",
39
+ github: "https://github.com",
40
+ twitter: "https://x.com"
41
+ },
42
+ {
43
+ name: "Liam Chen",
44
+ role: "Senior 3D & Graphics Engineer",
45
+ bio: "Creator of the WebGL and Three.js shader particle background engines.",
46
+ initials: "LC",
47
+ avatarColor: "linear-gradient(135deg, #06b6d4, #3b82f6)",
48
+ github: "https://github.com",
49
+ twitter: "https://x.com"
50
+ },
51
+ {
52
+ name: "Sophia Martinez",
53
+ role: "Core Maintainer & DX Lead",
54
+ bio: "Obsessed with strict TypeScript typings, automated testing, and bundling performance.",
55
+ initials: "SM",
56
+ avatarColor: "linear-gradient(135deg, #10b981, #059669)",
57
+ github: "https://github.com",
58
+ twitter: "https://x.com"
59
+ }
60
+ ];
61
+ ---
62
+
63
+ <section class={`team-section ${className}`} aria-labelledby="team-title">
64
+ <div class="team-bg" aria-hidden="true">
65
+ <div class="team-glow"></div>
66
+ </div>
67
+
68
+ <div class="container">
69
+ <!-- Header -->
70
+ <div class="section-header">
71
+ {badge && <span class="section-badge">{badge}</span>}
72
+ <h2 id="team-title" class="section-title">{title}</h2>
73
+ <p class="section-subtitle">{subtitle}</p>
74
+ </div>
75
+
76
+ <!-- Team Grid -->
77
+ <div class="team-grid">
78
+ {members.map((member) => (
79
+ <article class="member-card">
80
+ <div class="member-avatar" style={`background: ${member.avatarColor};`}>
81
+ <span>{member.initials}</span>
82
+ </div>
83
+ <h3 class="member-name">{member.name}</h3>
84
+ <span class="member-role">{member.role}</span>
85
+ <p class="member-bio">{member.bio}</p>
86
+ <div class="member-socials">
87
+ <a href={member.github} target="_blank" rel="noopener" aria-label={`${member.name} on GitHub`} class="social-icon">
88
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"/><path d="M9 18c-4.51 2-5-2-7-2"/></svg>
89
+ </a>
90
+ <a href={member.twitter} target="_blank" rel="noopener" aria-label={`${member.name} on Twitter`} class="social-icon">
91
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z"/></svg>
92
+ </a>
93
+ </div>
94
+ </article>
95
+ ))}
96
+ </div>
97
+
98
+ <!-- Hiring Banner -->
99
+ <div class="hiring-banner">
100
+ <div class="hiring-info">
101
+ <span class="hiring-tag">WE ARE HIRING</span>
102
+ <h4>Want to help shape the future of Astro components?</h4>
103
+ <p>We are looking for frontend wizards, designers, and open-source contributors.</p>
104
+ </div>
105
+ <a href="#careers" class="hiring-btn">View Open Roles →</a>
106
+ </div>
107
+ </div>
108
+ </section>
109
+
110
+ <style>
111
+ .team-section {
112
+ position: relative;
113
+ padding: var(--sp-20, 5rem) var(--sp-6, 1.5rem);
114
+ background: var(--c-bg-primary, #030712);
115
+ overflow: hidden;
116
+ }
117
+
118
+ .team-bg {
119
+ position: absolute;
120
+ inset: 0;
121
+ pointer-events: none;
122
+ z-index: 0;
123
+ }
124
+
125
+ .team-glow {
126
+ position: absolute;
127
+ top: 40%;
128
+ left: 50%;
129
+ transform: translate(-50%, -50%);
130
+ width: 650px;
131
+ height: 450px;
132
+ background: radial-gradient(circle, rgba(168, 85, 247, 0.08), transparent 70%);
133
+ filter: blur(120px);
134
+ }
135
+
136
+ .container {
137
+ position: relative;
138
+ z-index: 1;
139
+ max-width: 1200px;
140
+ margin: 0 auto;
141
+ }
142
+
143
+ .section-header {
144
+ text-align: center;
145
+ max-width: 780px;
146
+ margin: 0 auto 3.5rem;
147
+ }
148
+
149
+ .section-badge {
150
+ display: inline-flex;
151
+ padding: 0.35rem 0.9rem;
152
+ border-radius: 9999px;
153
+ font-size: 0.78rem;
154
+ font-weight: 700;
155
+ letter-spacing: 0.06em;
156
+ text-transform: uppercase;
157
+ background: rgba(168, 85, 247, 0.12);
158
+ color: #c084fc;
159
+ border: 1px solid rgba(168, 85, 247, 0.25);
160
+ margin-bottom: var(--sp-4, 1rem);
161
+ }
162
+
163
+ .section-title {
164
+ font-size: clamp(2rem, 4vw, 3rem);
165
+ font-weight: 900;
166
+ color: #fff;
167
+ line-height: 1.15;
168
+ letter-spacing: -0.02em;
169
+ margin: 0 0 var(--sp-4, 1rem);
170
+ }
171
+
172
+ .section-subtitle {
173
+ font-size: 1.1rem;
174
+ color: #94a3b8;
175
+ line-height: 1.6;
176
+ margin: 0;
177
+ }
178
+
179
+ .team-grid {
180
+ display: grid;
181
+ grid-template-columns: repeat(4, 1fr);
182
+ gap: 1.5rem;
183
+ margin-bottom: 3.5rem;
184
+ }
185
+
186
+ .member-card {
187
+ background: rgba(15, 23, 42, 0.55);
188
+ backdrop-filter: blur(20px);
189
+ border: 1px solid rgba(255, 255, 255, 0.08);
190
+ border-radius: var(--r-xl, 20px);
191
+ padding: 2rem 1.5rem;
192
+ text-align: center;
193
+ display: flex;
194
+ flex-direction: column;
195
+ align-items: center;
196
+ transition: transform 0.3s ease, border-color 0.3s ease;
197
+ }
198
+
199
+ .member-card:hover {
200
+ transform: translateY(-4px);
201
+ border-color: rgba(255, 255, 255, 0.2);
202
+ }
203
+
204
+ .member-avatar {
205
+ width: 72px;
206
+ height: 72px;
207
+ border-radius: 50%;
208
+ display: grid;
209
+ place-items: center;
210
+ font-size: 1.3rem;
211
+ font-weight: 800;
212
+ color: #fff;
213
+ margin-bottom: 1.25rem;
214
+ border: 2px solid rgba(255, 255, 255, 0.2);
215
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
216
+ }
217
+
218
+ .member-name {
219
+ font-size: 1.15rem;
220
+ font-weight: 800;
221
+ color: #fff;
222
+ margin: 0 0 0.25rem;
223
+ }
224
+
225
+ .member-role {
226
+ font-size: 0.8rem;
227
+ font-weight: 600;
228
+ color: #eab308;
229
+ margin-bottom: 0.85rem;
230
+ }
231
+
232
+ .member-bio {
233
+ font-size: 0.85rem;
234
+ color: #94a3b8;
235
+ line-height: 1.5;
236
+ margin: 0 0 1.25rem;
237
+ flex: 1;
238
+ }
239
+
240
+ .member-socials {
241
+ display: flex;
242
+ gap: 0.75rem;
243
+ }
244
+
245
+ .social-icon {
246
+ width: 34px;
247
+ height: 34px;
248
+ border-radius: 8px;
249
+ background: rgba(255, 255, 255, 0.05);
250
+ border: 1px solid rgba(255, 255, 255, 0.08);
251
+ display: flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ color: #94a3b8;
255
+ text-decoration: none;
256
+ transition: all 0.2s ease;
257
+ }
258
+
259
+ .social-icon:hover {
260
+ color: #fff;
261
+ background: rgba(255, 255, 255, 0.12);
262
+ border-color: rgba(255, 255, 255, 0.2);
263
+ }
264
+
265
+ /* Hiring Banner */
266
+ .hiring-banner {
267
+ display: flex;
268
+ align-items: center;
269
+ justify-content: space-between;
270
+ gap: 2rem;
271
+ padding: 2rem 2.5rem;
272
+ background: linear-gradient(135deg, rgba(25, 30, 60, 0.8), rgba(15, 20, 40, 0.9));
273
+ border: 1px solid rgba(168, 85, 247, 0.3);
274
+ border-radius: 20px;
275
+ flex-wrap: wrap;
276
+ }
277
+
278
+ .hiring-tag {
279
+ display: inline-block;
280
+ font-size: 0.72rem;
281
+ font-weight: 800;
282
+ letter-spacing: 0.08em;
283
+ color: #c084fc;
284
+ margin-bottom: 0.25rem;
285
+ }
286
+
287
+ .hiring-info h4 {
288
+ font-size: 1.25rem;
289
+ font-weight: 800;
290
+ color: #fff;
291
+ margin: 0 0 0.25rem;
292
+ }
293
+
294
+ .hiring-info p {
295
+ font-size: 0.9rem;
296
+ color: #94a3b8;
297
+ margin: 0;
298
+ }
299
+
300
+ .hiring-btn {
301
+ padding: 0.8rem 1.6rem;
302
+ background: #a855f7;
303
+ border-radius: 10px;
304
+ color: #fff;
305
+ font-size: 0.92rem;
306
+ font-weight: 700;
307
+ text-decoration: none;
308
+ transition: all 0.25s ease;
309
+ box-shadow: 0 4px 15px rgba(168, 85, 247, 0.3);
310
+ }
311
+
312
+ .hiring-btn:hover {
313
+ background: #9333ea;
314
+ box-shadow: 0 6px 20px rgba(168, 85, 247, 0.45);
315
+ }
316
+
317
+ @media (max-width: 1024px) {
318
+ .team-grid {
319
+ grid-template-columns: repeat(2, 1fr);
320
+ }
321
+ }
322
+
323
+ @media (max-width: 640px) {
324
+ .team-grid {
325
+ grid-template-columns: 1fr;
326
+ }
327
+ .hiring-banner {
328
+ flex-direction: column;
329
+ align-items: flex-start;
330
+ gap: 1.25rem;
331
+ }
332
+ }
333
+ </style>