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.
- package/README.md +141 -177
- package/package.json +11 -9
- package/src/components/index.ts +12 -9
- package/src/components/lib/AnimatedGalaxy.astro +4 -2
- package/src/components/lib/Galaxy3D.astro +237 -185
- package/src/components/lib/LogoWithGalaxy.astro +2 -2
- package/src/components/lib/buttons/index.ts +4 -1
- package/src/components/lib/cards/index.ts +3 -0
- package/src/components/lib/charts/DonutChart.astro +1 -1
- package/src/components/lib/charts/index.ts +3 -0
- package/src/components/lib/data/index.ts +3 -0
- package/src/components/lib/feedback/index.ts +3 -0
- package/src/components/lib/forms/index.ts +3 -0
- package/src/components/lib/index.ts +17 -6
- package/src/components/lib/layout/BentoGrid3.astro +79 -9
- package/src/components/lib/layout/CenterFixedBox.astro +52 -2
- package/src/components/lib/layout/CenteredContainer.astro +44 -5
- package/src/components/lib/layout/ClusterHorizontal.astro +36 -2
- package/src/components/lib/layout/FeatureHero.astro +119 -50
- package/src/components/lib/layout/FooterCenteredMinimal.astro +57 -9
- package/src/components/lib/layout/FullBleedSection.astro +44 -2
- package/src/components/lib/layout/GalleryGrid4.astro +35 -3
- package/src/components/lib/layout/GlassCardGrid.astro +24 -2
- package/src/components/lib/layout/GlassSectionHeader.astro +72 -11
- package/src/components/lib/layout/LandingSectionSplit.astro +83 -8
- package/src/components/lib/layout/MasonryGrid.astro +42 -3
- package/src/components/lib/layout/MinimalFooterGrid.astro +83 -11
- package/src/components/lib/layout/ScrollSnapSection.astro +37 -3
- package/src/components/lib/layout/SectionDividerText.astro +44 -4
- package/src/components/lib/layout/SidebarLayoutWrapper.astro +62 -7
- package/src/components/lib/layout/SplitScreenLayout.astro +62 -6
- package/src/components/lib/layout/StepLayoutVertical.astro +83 -10
- package/src/components/lib/layout/StickySidebarWrapper.astro +69 -6
- package/src/components/lib/layout/VerticalStack.astro +35 -5
- package/src/components/lib/layout/index.ts +17 -14
- package/src/components/lib/navigation/index.ts +3 -0
- package/src/components/lib/overlays/index.ts +3 -0
- package/src/components/lib/sections/ContactGlassForm.astro +361 -0
- package/src/components/lib/sections/CtaAppDownload.astro +258 -0
- package/src/components/lib/sections/CtaGlowBanner.astro +267 -0
- package/src/components/lib/sections/FaqAccordionSection.astro +349 -0
- package/src/components/lib/sections/FeatureBentoGrid.astro +449 -0
- package/src/components/lib/sections/FeatureTimelineFlow.astro +254 -0
- package/src/components/lib/sections/PricingComparisonMatrix.astro +468 -0
- package/src/components/lib/sections/PricingTierCards.astro +256 -0
- package/src/components/lib/sections/StatsMetricShowcase.astro +332 -0
- package/src/components/lib/sections/TeamGridSection.astro +333 -0
- package/src/components/lib/sections/TestimonialWallGlass.astro +406 -0
- package/src/components/lib/sections/index.ts +22 -0
- package/src/components/lib/typography/index.ts +3 -0
- package/src/components/lib/AnimatedInput.astro +0 -82
- package/src/components/lib/Badge.astro +0 -52
- package/src/components/lib/GlassButton.astro +0 -87
- package/src/components/lib/GlassCard.astro +0 -72
- package/src/components/lib/GlassNavbar.astro +0 -67
- package/src/components/lib/GlowButton.astro +0 -60
- /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
|

|
|
8
|
-

|
|
9
9
|

|
|
10
10
|

|
|
11
11
|
|
|
@@ -13,12 +13,13 @@
|
|
|
13
13
|
|
|
14
14
|
## ✨ Features
|
|
15
15
|
|
|
16
|
-
- 🎨 **Premium design** — glassmorphism,
|
|
17
|
-
-
|
|
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** —
|
|
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 {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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 {
|
|
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 {
|
|
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-
|
|
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
|
-
**
|
|
108
|
+
**210+ components & full-page sections** across 11 categories:
|
|
89
109
|
|
|
90
110
|
| Category | Components | Description |
|
|
91
|
-
|
|
92
|
-
| **
|
|
93
|
-
| **
|
|
94
|
-
| **
|
|
95
|
-
| **
|
|
96
|
-
| **Forms** |
|
|
97
|
-
| **
|
|
98
|
-
| **
|
|
99
|
-
| **
|
|
100
|
-
| **
|
|
101
|
-
| **
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
<
|
|
187
|
-
<
|
|
188
|
-
|
|
189
|
-
|
|
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="
|
|
192
|
-
<
|
|
193
|
-
<Badge variant="info">This month</Badge>
|
|
209
|
+
<GlassCard title="Traffic Distribution">
|
|
210
|
+
<DonutChart />
|
|
194
211
|
</GlassCard>
|
|
195
|
-
</
|
|
212
|
+
</div>
|
|
196
213
|
|
|
197
|
-
<
|
|
198
|
-
<
|
|
199
|
-
|
|
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/ ←
|
|
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
|
-
│ │ │ ├──
|
|
265
|
-
│ │ │ ├──
|
|
266
|
-
│ │ │ ├──
|
|
267
|
-
│ │ │ ├──
|
|
268
|
-
│ │ │ ├──
|
|
269
|
-
│ │ │ ├──
|
|
270
|
-
│ │ │ ├── typography/ ←
|
|
271
|
-
│ │ │ └──
|
|
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
|
|
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 (`#
|
|
296
|
-
| **Spacing** | `--sp-1` (4px) to `--sp-
|
|
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>`, `<
|
|
309
|
-
- ✅ ARIA attributes and roles where appropriate
|
|
310
|
-
- ✅
|
|
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
|
|
328
|
-
| `
|
|
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-
|
|
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/
|
|
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.
|
|
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": "
|
|
41
|
-
"
|
|
42
|
-
"
|
|
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
|
-
"
|
|
91
|
+
"playwright": "^1.62.1",
|
|
92
|
+
"three": "^0.184.0",
|
|
93
|
+
"typescript": "^5.9.3"
|
|
92
94
|
}
|
|
93
95
|
}
|
package/src/components/index.ts
CHANGED
|
@@ -5,21 +5,20 @@
|
|
|
5
5
|
// import { GlowButton, GlassCard, GlassNavbar } from '@/components';
|
|
6
6
|
// ============================================================
|
|
7
7
|
|
|
8
|
-
// Root-level components
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
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/
|
|
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=
|
|
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%">
|