astro-component-kit 0.2.2 → 0.3.1

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 +141 -177
  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
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
1
  # ⬇ Astro Component Kit
2
2
 
3
- > A premium, open-source accessible UI component library built for [Astro](https://astro.build).
3
+ > A premium, open-source accessible UI component library built for [Astro 5.x](https://astro.build).
4
4
  > **🌐 Browse & copy components** at [astrocomponents.dev](https://astrocomponents.dev)
5
5
  > **📦 Install via npm** or **copy-paste** — your choice!
6
6
 
7
7
  ![License: MIT](https://img.shields.io/badge/License-MIT-6366f1.svg)
8
- ![Astro](https://img.shields.io/badge/Astro-6.x-c084fc.svg)
8
+ ![Astro](https://img.shields.io/badge/Astro-5.x-c084fc.svg)
9
9
  ![npm](https://img.shields.io/npm/v/astro-component-kit.svg)
10
10
  ![PRs Welcome](https://img.shields.io/badge/PRs-welcome-34d399.svg)
11
11
 
@@ -13,12 +13,13 @@
13
13
 
14
14
  ## ✨ Features
15
15
 
16
- - 🎨 **Premium design** — glassmorphism, gradients and micro-animations
17
- - ♿ **Accessible** — semantic HTML and ARIA attributes included
16
+ - 🎨 **Premium design** — dark mode first, glassmorphism, fluid typography, and subtle micro-animations
17
+ - ⚡ **Full-page sections** — 14 production-ready landing sections (Heroes, Bento Grids, Pricing Matrices, Testimonials, CTAs, FAQs, Teams)
18
+ - ♿ **Accessible** — strictly WCAG 2.1 AA compliant with ARIA roles and keyboard navigation
18
19
  - 📋 **Copy & paste** — browse [astrocomponents.dev](https://astrocomponents.dev) and copy components directly
19
20
  - 📦 **npm installable** — `npm install astro-component-kit` for direct imports
20
- - ♻️ **Zero dependencies** — pure `.astro` components + Vanilla CSS
21
- - 🌑 **Dark mode first** — designed for dark interfaces out of the box
21
+ - ♻️ **Zero runtime dependencies** — pure `.astro` components + Vanilla CSS
22
+ - 🌑 **Dark mode first** — crafted for modern, dark-themed developer interfaces
22
23
  - 🔓 **Open Source** — MIT license, contributions welcome
23
24
 
24
25
  ---
@@ -35,23 +36,42 @@ Then import and use components in your Astro pages:
35
36
 
36
37
  ```astro
37
38
  ---
38
- // Root import — all components
39
- import { GlassButton, GlassCard, GlassNavbar } from 'astro-component-kit';
40
-
41
- // Or import by category (recommended for tree-shaking)
42
- import { GlassButton, GlowButton } from 'astro-component-kit/buttons';
39
+ // Root import — all components and sections
40
+ import {
41
+ GlassButton,
42
+ GlassCard,
43
+ FeatureBentoGrid,
44
+ PricingComparisonMatrix,
45
+ CtaGlowBanner
46
+ } from 'astro-component-kit';
47
+
48
+ // Or import by category (recommended for modularity)
49
+ import { GlassButton, GlowButton, ThreeDPushButton } from 'astro-component-kit/buttons';
43
50
  import { GlassCard, ProfileCard, PricingCard } from 'astro-component-kit/cards';
44
- import { GlassAlert, Badge } from 'astro-component-kit/feedback';
45
- import { GlassNavbar, BreadcrumbsMinimal } from 'astro-component-kit/navigation';
46
- import { GlassModal, OverlayModal } from 'astro-component-kit/overlays';
47
- import { AnimatedInput, OTPInput } from 'astro-component-kit/forms';
48
- import { MasonryGrid, BentoGrid3 } from 'astro-component-kit/layout';
49
- import { GradientHeading, GlassBlockQuote } from 'astro-component-kit/typography';
50
- import { FadeInWrapper, VisuallyHidden } from 'astro-component-kit/utilities';
51
+ import { GlassAlert, Badge, ConfettiFeedback } from 'astro-component-kit/feedback';
52
+ import { GlassNavbar, MegaMenuGlass, BreadcrumbsMinimal } from 'astro-component-kit/navigation';
53
+ import { OverlayModal, CommandDialog, BottomSheetMobile } from 'astro-component-kit/overlays';
54
+ import { AnimatedInput, OTPInput, GlassSlider } from 'astro-component-kit/forms';
55
+ import { GlassCardGrid, SplitScreenLayout, MasonryGrid, BentoGrid3 } from 'astro-component-kit/layout';
56
+ import { GradientHeading, GlassBlockQuote, CyberpunkGlitchText } from 'astro-component-kit/typography';
57
+ import { AreaChart, DonutChart, BarChart } from 'astro-component-kit/charts';
58
+ import {
59
+ FeatureBentoGrid,
60
+ PricingComparisonMatrix,
61
+ TestimonialWallGlass,
62
+ CtaGlowBanner,
63
+ FaqAccordionSection,
64
+ StatsMetricShowcase,
65
+ TeamGridSection,
66
+ ContactGlassForm
67
+ } from 'astro-component-kit/sections';
51
68
  ---
52
69
 
53
70
  <GlassButton variant="primary">Click me</GlassButton>
54
71
  <GlassCard title="Welcome">Content here</GlassCard>
72
+
73
+ <!-- Drop-in full section -->
74
+ <FeatureBentoGrid />
55
75
  ```
56
76
 
57
77
  **Import global design tokens** (optional but recommended):
@@ -74,7 +94,7 @@ import 'astro-component-kit/global.css';
74
94
 
75
95
  ```bash
76
96
  git clone https://github.com/konstantinwdk/astro-components.git
77
- cd astro-component-kit
97
+ cd astro-components
78
98
  npm install
79
99
  npm run dev
80
100
  ```
@@ -83,92 +103,85 @@ Open [http://localhost:4321](http://localhost:4321) to browse components locally
83
103
 
84
104
  ---
85
105
 
86
- ## 📚 Component Library
106
+ ## 📚 Component & Section Library
87
107
 
88
- **200+ components** across 10 categories:
108
+ **210+ components & full-page sections** across 11 categories:
89
109
 
90
110
  | Category | Components | Description |
91
- |----------|------------|-------------|
92
- | **Buttons** | 19 | Glass, glow, neumorphic, animated, and more |
93
- | **Cards** | 19 | Product, profile, pricing, weather, and more |
94
- | **Data** | 20 | Tables, timelines, charts, trees |
95
- | **Feedback** | 20 | Alerts, modals, toasts, spinners, tooltips |
96
- | **Forms** | 20 | Inputs, selects, sliders, OTP, ratings |
97
- | **Layout** | 20 | Grids, sections, sidebars, footers |
98
- | **Navigation** | 20 | Navbars, breadcrumbs, tabs, pagination |
99
- | **Overlays** | 20 | Modals, drawers, lightboxes, popovers |
100
- | **Typography** | 20 | Headings, links, quotes, glitch text |
101
- | **Utilities** | 20 | Patterns, masks, reveals, accessibility |
111
+ |----------|:----------:|-------------|
112
+ | **Sections** | 14 | Full landing sections: Heroes, Bento Grids, Pricing Matrices, Testimonials, CTAs, FAQs, Teams, Contact |
113
+ | **Buttons** | 19 | Glass, glow, neumorphic, 3D push, magnetic, cyberpunk, and animated |
114
+ | **Cards** | 19 | Ecommerce, profile, pricing, weather, tilt, portfolio, kanban |
115
+ | **Layout** | 19 | Bento grids, masonry, split screens, sticky sidebars, card grids, full-bleed sections |
116
+ | **Forms** | 18 | Floating inputs, OTP, currency, tags, custom select, color picker, rating stars |
117
+ | **Navigation** | 17 | Glass navbars, mega menus, breadcrumbs, vertical tabs, command palettes |
118
+ | **Overlays** | 20 | Modals, drawers, lightboxes, popovers, bottom sheets, age verifications |
119
+ | **Feedback** | 17 | Alerts, modal dialogs, toasts, spinners, progress bars, confetti |
120
+ | **Data Display** | 19 | Tables, vertical/horizontal timelines, stats grids, sparklines, tree views |
121
+ | **Typography** | 19 | Gradient headings, glitch text, typewriter, 3D text layers, drop caps |
122
+ | **Charts** | 3 | Area, bar, and donut charts with ApexCharts integration |
102
123
 
103
124
  ---
104
125
 
105
126
  ## 📖 Usage Examples
106
127
 
107
- ### Building a Landing Page
128
+ ### Building a Complete Landing Page in Minutes
108
129
 
109
130
  ```astro
110
131
  ---
111
- import { GlassNavbar } from 'astro-component-kit/navigation';
112
- import { FeatureHero, SplitScreenLayout, BentoGrid3 } from 'astro-component-kit/layout';
113
- import { GlassButton, GlowButton, ShimmerButton } from 'astro-component-kit/buttons';
114
- import { GlassCard, PricingCard, ProfileCard } from 'astro-component-kit/cards';
115
- import { GlassAlert } from 'astro-component-kit/feedback';
116
- import { GradientHeading } from 'astro-component-kit/typography';
117
- import { FadeInWrapper } from 'astro-component-kit/utilities';
118
132
  import 'astro-component-kit/global.css';
133
+ import { GlassNavbar } from 'astro-component-kit/navigation';
134
+ import {
135
+ HeroGradient,
136
+ FeatureBentoGrid,
137
+ PricingComparisonMatrix,
138
+ TestimonialWallGlass,
139
+ FaqAccordionSection,
140
+ CtaGlowBanner
141
+ } from 'astro-component-kit/sections';
142
+ import { MinimalFooterGrid } from 'astro-component-kit/layout';
119
143
  ---
120
144
 
121
- <FadeInWrapper>
122
- <GlassNavbar brand="MyProject" brandHref="/">
123
- <div slot="links">
124
- <a href="#">Features</a>
125
- <a href="#">Pricing</a>
126
- </div>
127
- <div slot="actions">
128
- <GlassButton size="sm">Get Started</GlassButton>
129
- </div>
130
- </GlassNavbar>
131
-
132
- <FeatureHero>
133
- <h1 slot="title">Build Beautiful Interfaces</h1>
134
- <p slot="subtitle">Accessible, premium components for Astro.</p>
135
- <GlowButton slot="cta">Explore Components</GlowButton>
136
- </FeatureHero>
137
-
138
- <BentoGrid3>
139
- <div slot="1">
140
- <GlassCard title="Feature A" padding="lg">
141
- <p>Content for the first feature block.</p>
142
- </GlassCard>
143
- </div>
144
- <div slot="2">
145
- <GlassCard title="Feature B" padding="lg">
146
- <p>Second feature description.</p>
147
- </GlassCard>
148
- </div>
149
- <div slot="3">
150
- <GlassCard title="Feature C" padding="lg">
151
- <p>Third feature details.</p>
152
- </GlassCard>
153
- </div>
154
- <div slot="4">
155
- <GlassCard title="Stats" padding="lg">
156
- <p>200+ components available.</p>
157
- </GlassCard>
158
- </div>
159
- </BentoGrid3>
160
- </FadeInWrapper>
145
+ <!-- 1. Navigation -->
146
+ <GlassNavbar brand="AstroApp" brandHref="/" />
147
+
148
+ <!-- 2. Hero Header -->
149
+ <HeroGradient
150
+ badge="New Release v0.3.0"
151
+ title="Build Production Websites at Lightning Speed"
152
+ subtitle="Zero client JavaScript runtime, accessible UI, and modern dark glassmorphism."
153
+ />
154
+
155
+ <!-- 3. Feature Showcase -->
156
+ <FeatureBentoGrid />
157
+
158
+ <!-- 4. Pricing Matrix with Interactive Billing Toggle -->
159
+ <PricingComparisonMatrix />
160
+
161
+ <!-- 5. Social Proof & Testimonials -->
162
+ <TestimonialWallGlass />
163
+
164
+ <!-- 6. FAQ Accordion with Category Filters -->
165
+ <FaqAccordionSection />
166
+
167
+ <!-- 7. High-Converting CTA Banner -->
168
+ <CtaGlowBanner />
169
+
170
+ <!-- 8. Footer -->
171
+ <MinimalFooterGrid />
161
172
  ```
162
173
 
163
- ### Building a Dashboard
174
+ ### Building a Dashboard Layout
164
175
 
165
176
  ```astro
166
177
  ---
167
- import { GlassNavbar } from 'astro-component-kit/navigation';
168
- import { SidebarLayoutWrapper, StatsGridDashboard, GlassTable } from 'astro-component-kit/layout';
169
- import { GlassCard } from 'astro-component-kit/cards';
170
- import { Badge, GlassProgress } from 'astro-component-kit/feedback';
171
178
  import 'astro-component-kit/global.css';
179
+ import { GlassNavbar } from 'astro-component-kit/navigation';
180
+ import { SidebarLayoutWrapper, GlassCardGrid } from 'astro-component-kit/layout';
181
+ import { GlassCard, StatCard } from 'astro-component-kit/cards';
182
+ import { AreaChart, DonutChart } from 'astro-component-kit/charts';
183
+ import { GlassTable } from 'astro-component-kit/data';
184
+ import { Badge } from 'astro-component-kit/feedback';
172
185
  ---
173
186
 
174
187
  <SidebarLayoutWrapper>
@@ -183,73 +196,30 @@ import 'astro-component-kit/global.css';
183
196
  <div slot="main">
184
197
  <GlassNavbar brand="Dashboard" />
185
198
 
186
- <StatsGridDashboard>
187
- <GlassCard title="Users" padding="md">
188
- <p class="stat-value">12,458</p>
189
- <Badge variant="success">+12%</Badge>
199
+ <GlassCardGrid columns={3}>
200
+ <StatCard label="Total Revenue" value="$84,290" icon="📈" />
201
+ <StatCard label="Active Users" value="14,210" icon="👥" />
202
+ <StatCard label="Conversion Rate" value="4.8%" icon="⚡" />
203
+ </GlassCardGrid>
204
+
205
+ <div style="display: grid; grid-template-columns: 2fr 1fr; gap: 1.5rem; margin-top: 1.5rem;">
206
+ <GlassCard title="Traffic Overview">
207
+ <AreaChart />
190
208
  </GlassCard>
191
- <GlassCard title="Revenue" padding="md">
192
- <p class="stat-value">$48,290</p>
193
- <Badge variant="info">This month</Badge>
209
+ <GlassCard title="Traffic Distribution">
210
+ <DonutChart />
194
211
  </GlassCard>
195
- </StatsGridDashboard>
212
+ </div>
196
213
 
197
- <GlassCard title="Recent Activity" padding="md">
198
- <GlassProgress value={75} />
199
- </GlassCard>
214
+ <div style="margin-top: 1.5rem;">
215
+ <GlassCard title="Recent Transactions">
216
+ <GlassTable />
217
+ </GlassCard>
218
+ </div>
200
219
  </div>
201
220
  </SidebarLayoutWrapper>
202
221
  ```
203
222
 
204
- ### Building a Form Page
205
-
206
- ```astro
207
- ---
208
- import { AnimatedInput, OTPInput, GlassSlider, NeumorphicSwitch } from 'astro-component-kit/forms';
209
- import { GlassButton } from 'astro-component-kit/buttons';
210
- import { GlassAlert } from 'astro-component-kit/feedback';
211
- import { GlassCard } from 'astro-component-kit/cards';
212
- import 'astro-component-kit/global.css';
213
- ---
214
-
215
- <form>
216
- <GlassCard title="Account Settings" padding="lg">
217
- <AnimatedInput id="email" name="email" label="Email" type="email" />
218
- <AnimatedInput id="name" name="name" label="Full Name" />
219
-
220
- <NeumorphicSwitch id="notifications" label="Enable notifications" />
221
-
222
- <GlassSlider id="volume" min="0" max="100" value="50" label="Volume" />
223
-
224
- <div style="display: flex; gap: 1rem; margin-top: 1.5rem;">
225
- <GlassButton variant="primary" type="submit">Save Changes</GlassButton>
226
- <GlassButton variant="ghost">Cancel</GlassButton>
227
- </div>
228
- </GlassCard>
229
- </form>
230
- ```
231
-
232
- ### Using Overlays and Feedback
233
-
234
- ```astro
235
- ---
236
- import { OverlayModal } from 'astro-component-kit/overlays';
237
- import { GlassAlert, ToastNotif, Badge } from 'astro-component-kit/feedback';
238
- import { GlassButton } from 'astro-component-kit/buttons';
239
- import 'astro-component-kit/global.css';
240
- ---
241
-
242
- <GlassAlert type="success" title="Success!">
243
- Your changes have been saved.
244
- </GlassAlert>
245
-
246
- <GlassAlert type="warning" title="Warning">
247
- Please review your settings before continuing.
248
- </GlassAlert>
249
-
250
- <ToastNotif />
251
- ```
252
-
253
223
  ---
254
224
 
255
225
  ## 🗂️ Project Structure
@@ -258,21 +228,22 @@ import 'astro-component-kit/global.css';
258
228
  astro-component-kit/
259
229
  ├── src/
260
230
  │ ├── components/
261
- │ │ ├── lib/ ← 200+ component source files
231
+ │ │ ├── lib/ ← 210+ component source files
232
+ │ │ │ ├── sections/ ← 14 full-page landing sections
262
233
  │ │ │ ├── buttons/ ← 19 button components
263
234
  │ │ │ ├── cards/ ← 19 card components
264
- │ │ │ ├── data/ ← 20 data display components
265
- │ │ │ ├── feedback/ ← 20 feedback components
266
- │ │ │ ├── forms/ ← 20 form components
267
- │ │ │ ├── layout/ ← 20 layout components
268
- │ │ │ ├── navigation/ ← 20 navigation components
269
- │ │ │ ├── overlays/ ← 20 overlay components
270
- │ │ │ ├── typography/ ← 20 typography components
271
- │ │ │ └── utilities/ ← 20 utility components
235
+ │ │ │ ├── layout/ ← 19 layout & grid components
236
+ │ │ │ ├── forms/ ← 18 form controls & inputs
237
+ │ │ │ ├── navigation/ ← 17 navbar & menu components
238
+ │ │ │ ├── overlays/ ← 20 overlay & modal components
239
+ │ │ │ ├── feedback/ ← 17 alert & feedback components
240
+ │ │ │ ├── data/ ← 19 data visualization & tables
241
+ │ │ │ ├── typography/ ← 19 typography components
242
+ │ │ │ └── charts/ ← 3 interactive data charts
272
243
  │ │ └── index.ts ← Main barrel export
273
244
  │ └── types.d.ts ← TypeScript declarations
274
245
  ├── src/styles/
275
- │ └── global.css ← Design tokens & global styles
246
+ │ └── global.css ← Design tokens & global CSS
276
247
  └── package.json
277
248
  ```
278
249
 
@@ -292,12 +263,12 @@ import 'astro-component-kit/global.css';
292
263
 
293
264
  | Token | Values |
294
265
  |-------|--------|
295
- | **Colors** | Dark palette with gold primary (`#b8860b`), accent highlights |
296
- | **Spacing** | `--sp-1` (4px) to `--sp-16` (64px) |
266
+ | **Colors** | Dark palette with amber/gold primary (`#eab308`), cyan, emerald, purple accents |
267
+ | **Spacing** | `--sp-1` (4px) to `--sp-20` (80px) |
297
268
  | **Typography** | `--font-sans` (Inter), `--font-mono` (JetBrains Mono) |
298
- | **Radii** | `--r-sm` (8px), `--r-md` (12px), `--r-lg` (20px), `--r-xl` (28px) |
299
- | **Shadows** | Predefined elevation system for cards and overlays |
300
- | **Transitions** | Smooth animation timings for all interactions |
269
+ | **Radii** | `--r-sm` (8px), `--r-md` (12px), `--r-lg` (20px), `--r-xl` (28px), `--r-full` (9999px) |
270
+ | **Shadows** | Predefined elevation system for cards, buttons, and overlays |
271
+ | **Transitions** | Smooth cubic-bezier animation timings for all interactions |
301
272
 
302
273
  ---
303
274
 
@@ -305,12 +276,12 @@ import 'astro-component-kit/global.css';
305
276
 
306
277
  Every component is built with accessibility as a first-class concern:
307
278
 
308
- - ✅ Semantic HTML (`<button>`, `<nav>`, `<main>`, `<article>`, etc.)
309
- - ✅ ARIA attributes and roles where appropriate
310
- - ✅ Keyboard navigation support (Tab, Enter, Escape, Arrow keys)
279
+ - ✅ Semantic HTML (`<section>`, `<article>`, `<button>`, `<nav>`, `<main>`, `<dialog>`, etc.)
280
+ - ✅ ARIA attributes and roles where appropriate (`role="switch"`, `aria-label`, `aria-checked`)
281
+ - ✅ Full keyboard navigation support (Tab, Enter, Space, Escape, Arrow keys)
311
282
  - ✅ Visible focus indicators on all interactive elements
312
283
  - ✅ Screen reader utilities (`.sr-only` class in global.css)
313
- - ✅ Color contrast meeting WCAG AA standards
284
+ - ✅ Color contrast meeting WCAG AA standards (≥ 4.5:1)
314
285
  - ✅ Reduced motion media queries for animations
315
286
 
316
287
  ---
@@ -321,18 +292,11 @@ Every component is built with accessibility as a first-class concern:
321
292
 
322
293
  | Command | Description |
323
294
  |---------|-------------|
324
- | `npm run dev` | Start the docs site dev server |
325
- | `npm run build` | Build the docs site for production |
295
+ | `npm run dev` | Start the docs site dev server (`http://localhost:4321`) |
296
+ | `npm run build` | Build the docs site for production (`dist/` static output) |
326
297
  | `npm run preview` | Preview the built docs site locally |
327
- | `npm run deploy:ftp` | Deploy docs to astrocomponents.dev via FTP |
328
- | `npm run typecheck` | Run TypeScript type checking |
329
-
330
- ### Adding a New Component
331
-
332
- 1. Create your component in `src/components/lib/{category}/ComponentName.astro`
333
- 2. Add metadata to `src/data/registry/{category}.ts`
334
- 3. Add barrel export in `src/components/lib/{category}/index.ts`
335
- 4. Add to main export in `src/components/index.ts`
298
+ | `npm run typecheck` | Run Astro & TypeScript validation across all files |
299
+ | `node scripts/audit-components-playwright.mjs` | Automated headless browser audit across all 197+ pages |
336
300
 
337
301
  ---
338
302
 
@@ -341,7 +305,7 @@ Every component is built with accessibility as a first-class concern:
341
305
  Contributions are warmly welcomed!
342
306
 
343
307
  1. Fork the repository
344
- 2. Create a branch: `git checkout -b feat/my-component`
308
+ 2. Create a branch: `git checkout -b feat/my-new-section`
345
309
  3. Add your component to `src/components/lib/{category}/`
346
310
  4. Update the registry in `src/data/registry/{category}.ts`
347
311
  5. Add barrel exports to the category `index.ts`
@@ -358,4 +322,4 @@ MIT © [konstantinwdk](https://github.com/konstantinwdk)
358
322
  - **Documentation**: [astrocomponents.dev](https://astrocomponents.dev)
359
323
  - **npm Package**: [npmjs.com/package/astro-component-kit](https://www.npmjs.com/package/astro-component-kit)
360
324
  - **GitHub**: [github.com/konstantinwdk/astro-components](https://github.com/konstantinwdk/astro-components)
361
- - **Issues**: [GitHub Issues](https://github.com/konstantinWDK/astro-components/issues)
325
+ - **Issues**: [GitHub Issues](https://github.com/konstantinwdk/astro-components/issues)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro-component-kit",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "A premium, open-source accessible UI component library for Astro",
5
5
  "type": "module",
6
6
  "main": "./src/components/index.ts",
@@ -17,7 +17,6 @@
17
17
  "./navigation": "./src/components/lib/navigation/index.ts",
18
18
  "./overlays": "./src/components/lib/overlays/index.ts",
19
19
  "./typography": "./src/components/lib/typography/index.ts",
20
- "./utilities": "./src/components/lib/utilities/index.ts",
21
20
  "./sections": "./src/components/lib/sections/index.ts",
22
21
  "./charts": "./src/components/lib/charts/index.ts",
23
22
  "./global.css": "./src/styles/global.css"
@@ -34,12 +33,11 @@
34
33
  "scripts": {
35
34
  "dev": "astro dev",
36
35
  "build": "astro build",
37
- "build:lib": "node scripts/build-lib.mjs",
38
36
  "preview": "astro preview",
39
37
  "astro": "astro",
40
- "typecheck": "tsc --noEmit",
41
- "prepublishOnly": "npm run build:lib",
42
- "deploy:ftp": "node scripts/deploy-ftp.mjs"
38
+ "typecheck": "astro check",
39
+ "registry:generate": "node scripts/generate-registry.mjs",
40
+ "prepublishOnly": "astro check"
43
41
  },
44
42
  "keywords": [
45
43
  "astro",
@@ -81,13 +79,17 @@
81
79
  "engines": {
82
80
  "node": ">=22.12.0"
83
81
  },
84
- "dependencies": {},
82
+ "dependencies": {
83
+ "@astrojs/sitemap": "^3.7.2"
84
+ },
85
85
  "devDependencies": {
86
+ "@astrojs/check": "^0.9.10",
86
87
  "@types/three": "^0.184.0",
87
88
  "apexcharts": "^3.45.1",
88
89
  "astro": ">=5.0.0",
89
- "basic-ftp": "^5.3.0",
90
90
  "fs-extra": "^11.3.4",
91
- "three": "^0.184.0"
91
+ "playwright": "^1.62.1",
92
+ "three": "^0.184.0",
93
+ "typescript": "^5.9.3"
92
94
  }
93
95
  }
@@ -5,21 +5,20 @@
5
5
  // import { GlowButton, GlassCard, GlassNavbar } from '@/components';
6
6
  // ============================================================
7
7
 
8
- // Root-level components
9
- export { default as AnimatedInput } from './lib/AnimatedInput.astro';
10
- export { default as Badge } from './lib/Badge.astro';
11
- export { default as GlassButton } from './lib/GlassButton.astro';
12
- export { default as GlassCard } from './lib/GlassCard.astro';
13
- export { default as GlassNavbar } from './lib/GlassNavbar.astro';
14
- export { default as GlowButton } from './lib/GlowButton.astro';
8
+ // Root-level unique components
9
+ export { default as AnimatedGalaxy } from './lib/AnimatedGalaxy.astro';
10
+ export { default as Galaxy3D } from './lib/Galaxy3D.astro';
11
+ export { default as LogoWithGalaxy } from './lib/LogoWithGalaxy.astro';
15
12
 
16
13
  // Buttons
17
- export { default as ThreeDPushButton } from './lib/buttons/3dPushButton.astro';
14
+ export { default as ThreeDPushButton } from './lib/buttons/ThreeDPushButton.astro';
18
15
  export { default as AnimatedIconButton } from './lib/buttons/AnimatedIconButton.astro';
19
16
  export { default as BorderDrawButton } from './lib/buttons/BorderDrawButton.astro';
20
17
  export { default as CyberpunkButton } from './lib/buttons/CyberpunkButton.astro';
21
18
  export { default as DoubleBorderButton } from './lib/buttons/DoubleBorderButton.astro';
22
19
  export { default as GhostOutlineButton } from './lib/buttons/GhostOutlineButton.astro';
20
+ export { default as GlassButton } from './lib/buttons/GlassButton.astro';
21
+ export { default as GlowButton } from './lib/buttons/GlowButton.astro';
23
22
  export { default as LiquidButton } from './lib/buttons/LiquidButton.astro';
24
23
  export { default as LoadingButton } from './lib/buttons/LoadingButton.astro';
25
24
  export { default as MagneticButton } from './lib/buttons/MagneticButton.astro';
@@ -36,6 +35,7 @@ export { default as TiltGlowButton } from './lib/buttons/TiltGlowButton.astro';
36
35
  export { default as BlogHorizontalCard } from './lib/cards/BlogHorizontalCard.astro';
37
36
  export { default as CyberFeatureCard } from './lib/cards/CyberFeatureCard.astro';
38
37
  export { default as EcommerceProductCard } from './lib/cards/EcommerceProductCard.astro';
38
+ export { default as GlassCard } from './lib/cards/GlassCard.astro';
39
39
  export { default as GlassEventCard } from './lib/cards/GlassEventCard.astro';
40
40
  export { default as GlowPortfolioCard } from './lib/cards/GlowPortfolioCard.astro';
41
41
  export { default as InteractiveTiltCard } from './lib/cards/InteractiveTiltCard.astro';
@@ -76,6 +76,7 @@ export { default as VerticalTimeline } from './lib/data/VerticalTimeline.astro';
76
76
 
77
77
  // Feedback
78
78
  export { default as AnimatedCheckmark } from './lib/feedback/AnimatedCheckmark.astro';
79
+ export { default as Badge } from './lib/feedback/Badge.astro';
79
80
  export { default as CircleProgress } from './lib/feedback/CircleProgress.astro';
80
81
  export { default as ConfettiFeedback } from './lib/feedback/ConfettiFeedback.astro';
81
82
  export { default as CyberGlitchAlert } from './lib/feedback/CyberGlitchAlert.astro';
@@ -96,6 +97,7 @@ export { default as ToastNotif } from './lib/feedback/ToastNotif.astro';
96
97
  export { default as TypingIndicator } from './lib/feedback/TypingIndicator.astro';
97
98
 
98
99
  // Forms
100
+ export { default as AnimatedInput } from './lib/forms/AnimatedInput.astro';
99
101
  export { default as ChipInput } from './lib/forms/ChipInput.astro';
100
102
  export { default as ColorPickerInput } from './lib/forms/ColorPickerInput.astro';
101
103
  export { default as CurrencyInput } from './lib/forms/CurrencyInput.astro';
@@ -118,8 +120,8 @@ export { default as StepperInput } from './lib/forms/StepperInput.astro';
118
120
 
119
121
  // Layout
120
122
  export { default as BentoGrid3 } from './lib/layout/BentoGrid3.astro';
121
- export { default as CenteredContainer } from './lib/layout/CenteredContainer.astro';
122
123
  export { default as CenterFixedBox } from './lib/layout/CenterFixedBox.astro';
124
+ export { default as CenteredContainer } from './lib/layout/CenteredContainer.astro';
123
125
  export { default as ClusterHorizontal } from './lib/layout/ClusterHorizontal.astro';
124
126
  export { default as FeatureHero } from './lib/layout/FeatureHero.astro';
125
127
  export { default as FooterCenteredMinimal } from './lib/layout/FooterCenteredMinimal.astro';
@@ -146,6 +148,7 @@ export { default as BurgerMorphIcon } from './lib/navigation/BurgerMorphIcon.ast
146
148
  export { default as CommandPaletteUI } from './lib/navigation/CommandPaletteUI.astro';
147
149
  export { default as DotNavigationSlider } from './lib/navigation/DotNavigationSlider.astro';
148
150
  export { default as FloatingTabBar } from './lib/navigation/FloatingTabBar.astro';
151
+ export { default as GlassNavbar } from './lib/navigation/GlassNavbar.astro';
149
152
  export { default as LangSwitcherPill } from './lib/navigation/LangSwitcherPill.astro';
150
153
  export { default as MegaMenuGlass } from './lib/navigation/MegaMenuGlass.astro';
151
154
  export { default as MinimalSidebar } from './lib/navigation/MinimalSidebar.astro';
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  interface Props {
3
3
  className?: string;
4
+ class?: string;
5
+ style?: string;
4
6
  }
5
7
 
6
- const { className = '' } = Astro.props;
8
+ const { className = '', class: classProp = '', style = '' } = Astro.props;
7
9
  ---
8
10
 
9
- <svg class="animated-galaxy-svg {className}" viewBox="0 0 800 500" aria-hidden="true" preserveAspectRatio="xMidYMid slice">
11
+ <svg class={`animated-galaxy-svg ${className} ${classProp}`.trim()} style={style} viewBox="0 0 800 500" aria-hidden="true" preserveAspectRatio="xMidYMid slice">
10
12
  <defs>
11
13
  <!-- Very subtle core glow -->
12
14
  <radialGradient id="galaxyCoreGlow" cx="50%" cy="50%" r="50%">