astro-component-kit 0.3.1 → 0.4.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.
- package/README.md +33 -14
- package/package.json +2 -2
- package/src/components/index.ts +16 -202
- package/src/components/lib/buttons/NeonBorderButton.astro +162 -0
- package/src/components/lib/buttons/RippleButton.astro +199 -0
- package/src/components/lib/buttons/SlideRevealButton.astro +159 -0
- package/src/components/lib/buttons/index.ts +4 -0
- package/src/components/lib/cards/GithubRepoCard.astro +176 -0
- package/src/components/lib/cards/PricingCompareMiniCard.astro +196 -0
- package/src/components/lib/cards/StatsTrendCard.astro +149 -0
- package/src/components/lib/cards/index.ts +3 -0
- package/src/components/lib/charts/ActivityRings.astro +105 -0
- package/src/components/lib/charts/BoxPlotChart.astro +109 -0
- package/src/components/lib/charts/BubbleChart.astro +101 -0
- package/src/components/lib/charts/BulletChart.astro +160 -0
- package/src/components/lib/charts/BumpChart.astro +92 -0
- package/src/components/lib/charts/CandlestickChart.astro +105 -0
- package/src/components/lib/charts/ChartFrame.astro +373 -0
- package/src/components/lib/charts/DivergingBarChart.astro +98 -0
- package/src/components/lib/charts/DumbbellChart.astro +92 -0
- package/src/components/lib/charts/ForecastLineChart.astro +125 -0
- package/src/components/lib/charts/FunnelChart.astro +122 -0
- package/src/components/lib/charts/GaugeChart.astro +111 -0
- package/src/components/lib/charts/GoalProgressChart.astro +97 -0
- package/src/components/lib/charts/GroupedBarChart.astro +125 -0
- package/src/components/lib/charts/HeatmapChart.astro +131 -0
- package/src/components/lib/charts/HistogramChart.astro +111 -0
- package/src/components/lib/charts/HorizontalBarChart.astro +155 -0
- package/src/components/lib/charts/KpiStatTile.astro +116 -0
- package/src/components/lib/charts/KpiTrendGrid.astro +60 -0
- package/src/components/lib/charts/LineChart.astro +160 -0
- package/src/components/lib/charts/LinearProgressGauge.astro +136 -0
- package/src/components/lib/charts/LollipopChart.astro +100 -0
- package/src/components/lib/charts/MeterGauge.astro +122 -0
- package/src/components/lib/charts/MetricDeltaTable.astro +125 -0
- package/src/components/lib/charts/PieChart.astro +135 -0
- package/src/components/lib/charts/PolarAreaChart.astro +85 -0
- package/src/components/lib/charts/PopulationPyramid.astro +122 -0
- package/src/components/lib/charts/PunchCardChart.astro +89 -0
- package/src/components/lib/charts/RadarChart.astro +94 -0
- package/src/components/lib/charts/RadarMetricChart.astro +168 -0
- package/src/components/lib/charts/RadialBarChart.astro +124 -0
- package/src/components/lib/charts/RangeAreaChart.astro +113 -0
- package/src/components/lib/charts/RetentionCohortTable.astro +126 -0
- package/src/components/lib/charts/SankeyChart.astro +128 -0
- package/src/components/lib/charts/ScatterPlot.astro +139 -0
- package/src/components/lib/charts/SegmentedBarChart.astro +119 -0
- package/src/components/lib/charts/SlopeChart.astro +105 -0
- package/src/components/lib/charts/SparklineChart.astro +87 -0
- package/src/components/lib/charts/StackedAreaChart.astro +130 -0
- package/src/components/lib/charts/StackedBarChart.astro +136 -0
- package/src/components/lib/charts/SunburstChart.astro +103 -0
- package/src/components/lib/charts/TreemapChart.astro +94 -0
- package/src/components/lib/charts/WaffleChart.astro +121 -0
- package/src/components/lib/charts/WaterfallChart.astro +118 -0
- package/src/components/lib/charts/chart-tooltip.ts +75 -0
- package/src/components/lib/charts/chart-utils.ts +271 -0
- package/src/components/lib/charts/index.ts +46 -0
- package/src/components/lib/data/ActivityHeatmapGrid.astro +157 -0
- package/src/components/lib/data/MetricComparisonRow.astro +109 -0
- package/src/components/lib/data/StatusTimelineFeed.astro +168 -0
- package/src/components/lib/data/index.ts +3 -0
- package/src/components/lib/feedback/ProgressRingCounter.astro +118 -0
- package/src/components/lib/feedback/ToastNotificationGroup.astro +173 -0
- package/src/components/lib/feedback/index.ts +2 -0
- package/src/components/lib/forms/GlassInlineToggleGroup.astro +161 -0
- package/src/components/lib/forms/PasswordStrengthInput.astro +242 -0
- package/src/components/lib/forms/PhoneCountryInput.astro +145 -0
- package/src/components/lib/forms/TagsAutocompleteInput.astro +249 -0
- package/src/components/lib/forms/index.ts +5 -0
- package/src/components/lib/layout/DiagonalSectionDivider.astro +69 -0
- package/src/components/lib/layout/HolyGrailGrid.astro +125 -0
- package/src/components/lib/layout/index.ts +3 -1
- package/src/components/lib/navigation/QuickJumpDock.astro +125 -0
- package/src/components/lib/navigation/StepBreadcrumbBar.astro +151 -0
- package/src/components/lib/navigation/SubNavbarPills.astro +102 -0
- package/src/components/lib/navigation/index.ts +3 -0
- package/src/components/lib/overlays/CookiePreferencesDrawer.astro +226 -0
- package/src/components/lib/overlays/FloatingFeedbackWidget.astro +203 -0
- package/src/components/lib/overlays/ImageCompareSlider.astro +172 -0
- package/src/components/lib/overlays/index.ts +3 -0
- package/src/components/lib/sections/BlogGridSection.astro +131 -0
- package/src/components/lib/sections/CareersOpenings.astro +139 -0
- package/src/components/lib/sections/ChangelogSection.astro +144 -0
- package/src/components/lib/sections/ContactSplitMap.astro +139 -0
- package/src/components/lib/sections/CtaNewsletterSection.astro +163 -0
- package/src/components/lib/sections/CtaSplitImage.astro +147 -0
- package/src/components/lib/sections/FaqTwoColumn.astro +119 -0
- package/src/components/lib/sections/FeatureAlternatingRows.astro +190 -0
- package/src/components/lib/sections/FeatureIconGrid.astro +155 -0
- package/src/components/lib/sections/FeatureTabsShowcase.astro +180 -0
- package/src/components/lib/sections/FooterMegaSection.astro +155 -0
- package/src/components/lib/sections/HeroDashboardPreview.astro +180 -0
- package/src/components/lib/sections/HeroMinimalCentered.astro +175 -0
- package/src/components/lib/sections/HeroShowcaseSplit.astro +304 -0
- package/src/components/lib/sections/HeroTerminal.astro +251 -0
- package/src/components/lib/sections/HeroWaitlist.astro +229 -0
- package/src/components/lib/sections/HowItWorksSteps.astro +178 -0
- package/src/components/lib/sections/IntegrationsGrid.astro +167 -0
- package/src/components/lib/sections/LogoCloudSection.astro +96 -0
- package/src/components/lib/sections/LogoWallGrid.astro +91 -0
- package/src/components/lib/sections/PricingSinglePlan.astro +157 -0
- package/src/components/lib/sections/PricingToggleCards.astro +171 -0
- package/src/components/lib/sections/StatsCounterBand.astro +122 -0
- package/src/components/lib/sections/StatsDashboardSection.astro +83 -0
- package/src/components/lib/sections/TestimonialCarousel.astro +165 -0
- package/src/components/lib/sections/TestimonialFeatured.astro +120 -0
- package/src/components/lib/sections/TestimonialGridSection.astro +188 -0
- package/src/components/lib/sections/index.ts +29 -0
- package/src/components/lib/typography/AnimatedCounterText.astro +102 -0
- package/src/components/lib/typography/CurvedPathHeading.astro +86 -0
- package/src/components/lib/typography/GradientTextMarquee.astro +105 -0
- package/src/components/lib/typography/HackerDecodeText.astro +85 -0
- package/src/components/lib/typography/index.ts +4 -0
- package/src/styles/global.css +18 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ⬇ Astro Component Kit
|
|
2
2
|
|
|
3
|
-
> A
|
|
3
|
+
> A free, 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
|
|
|
@@ -105,21 +105,40 @@ Open [http://localhost:4321](http://localhost:4321) to browse components locally
|
|
|
105
105
|
|
|
106
106
|
## 📚 Component & Section Library
|
|
107
107
|
|
|
108
|
-
**
|
|
108
|
+
**290+ components & full-page sections** across 11 categories:
|
|
109
109
|
|
|
110
110
|
| Category | Components | Description |
|
|
111
111
|
|----------|:----------:|-------------|
|
|
112
|
-
| **
|
|
113
|
-
| **
|
|
114
|
-
| **
|
|
115
|
-
| **
|
|
116
|
-
| **
|
|
117
|
-
| **
|
|
118
|
-
| **
|
|
119
|
-
| **
|
|
120
|
-
| **
|
|
121
|
-
| **
|
|
122
|
-
| **
|
|
112
|
+
| **Charts & Stats** | 47 | 41 zero-dependency SVG charts rendered at build time (line, area, bars, waterfall, pie, gauge, treemap, sankey, radar, heatmap, candlestick, KPI tiles…) plus 3 ApexCharts wrappers |
|
|
113
|
+
| **Sections** | 41 | Heroes, features, pricing, testimonials, CTAs, stats dashboards, careers, FAQs, contact, logo walls, blog, changelog, footers |
|
|
114
|
+
| **Buttons** | 22 | Glass, glow, neumorphic, 3D push, magnetic, cyberpunk, and animated |
|
|
115
|
+
| **Cards** | 22 | Ecommerce, profile, pricing, weather, tilt, portfolio, kanban |
|
|
116
|
+
| **Layout** | 22 | Bento grids, masonry, split screens, sticky sidebars, card grids, full-bleed sections |
|
|
117
|
+
| **Forms** | 24 | Floating inputs, OTP, currency, tags, custom select, color picker, rating stars |
|
|
118
|
+
| **Navigation** | 23 | Glass navbars, mega menus, breadcrumbs, vertical tabs, command palettes |
|
|
119
|
+
| **Overlays** | 23 | Modals, drawers, lightboxes, popovers, bottom sheets, age verifications |
|
|
120
|
+
| **Feedback** | 22 | Alerts, modal dialogs, toasts, spinners, progress bars, confetti |
|
|
121
|
+
| **Data Display** | 23 | Tables, vertical/horizontal timelines, stats grids, sparklines, tree views |
|
|
122
|
+
| **Typography** | 24 | Gradient headings, glitch text, typewriter, 3D text layers, drop caps |
|
|
123
|
+
|
|
124
|
+
### SVG charts — zero dependencies
|
|
125
|
+
|
|
126
|
+
```astro
|
|
127
|
+
---
|
|
128
|
+
import 'astro-component-kit/global.css';
|
|
129
|
+
import { LineChart, PieChart, KpiStatTile } from 'astro-component-kit/charts';
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
<KpiStatTile label="Revenue" value="$48.2k" change={24} period="vs last month" />
|
|
133
|
+
<LineChart
|
|
134
|
+
title="Monthly active users"
|
|
135
|
+
categories={['Jan', 'Feb', 'Mar', 'Apr']}
|
|
136
|
+
series={[{ name: 'Web', data: [120, 180, 160, 240] }]}
|
|
137
|
+
/>
|
|
138
|
+
<PieChart />
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Every chart ships with a legend, keyboard-focusable marks with tooltips and a "View data" table fallback for screen readers. Colors come from the `--chart-1…8` tokens in `global.css`.
|
|
123
142
|
|
|
124
143
|
---
|
|
125
144
|
|
|
@@ -228,7 +247,7 @@ import { Badge } from 'astro-component-kit/feedback';
|
|
|
228
247
|
astro-component-kit/
|
|
229
248
|
├── src/
|
|
230
249
|
│ ├── components/
|
|
231
|
-
│ │ ├── lib/ ←
|
|
250
|
+
│ │ ├── lib/ ← 290+ component source files
|
|
232
251
|
│ │ │ ├── sections/ ← 14 full-page landing sections
|
|
233
252
|
│ │ │ ├── buttons/ ← 19 button components
|
|
234
253
|
│ │ │ ├── cards/ ← 19 card components
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "astro-component-kit",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "A free, open-source accessible UI component library for Astro",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./src/components/index.ts",
|
|
7
7
|
"module": "./src/components/index.ts",
|
package/src/components/index.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
// ============================================================
|
|
2
2
|
// Astro Components Library - Main Barrel Export
|
|
3
3
|
// ============================================================
|
|
4
|
-
// Import any component from a single entry point:
|
|
5
|
-
// import { GlowButton, GlassCard,
|
|
4
|
+
// Import any component from a single root entry point:
|
|
5
|
+
// import { GlowButton, GlassCard, StatsMetricShowcase } from 'astro-component-kit';
|
|
6
|
+
// Or from category subpaths:
|
|
7
|
+
// import { GlowButton } from 'astro-component-kit/buttons';
|
|
8
|
+
// import { StatsMetricShowcase } from 'astro-component-kit/sections';
|
|
6
9
|
// ============================================================
|
|
7
10
|
|
|
8
11
|
// Root-level unique components
|
|
@@ -10,204 +13,15 @@ export { default as AnimatedGalaxy } from './lib/AnimatedGalaxy.astro';
|
|
|
10
13
|
export { default as Galaxy3D } from './lib/Galaxy3D.astro';
|
|
11
14
|
export { default as LogoWithGalaxy } from './lib/LogoWithGalaxy.astro';
|
|
12
15
|
|
|
13
|
-
//
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export { default as BorderDrawButton } from './lib/buttons/BorderDrawButton.astro';
|
|
17
|
-
export { default as CyberpunkButton } from './lib/buttons/CyberpunkButton.astro';
|
|
18
|
-
export { default as DoubleBorderButton } from './lib/buttons/DoubleBorderButton.astro';
|
|
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';
|
|
22
|
-
export { default as LiquidButton } from './lib/buttons/LiquidButton.astro';
|
|
23
|
-
export { default as LoadingButton } from './lib/buttons/LoadingButton.astro';
|
|
24
|
-
export { default as MagneticButton } from './lib/buttons/MagneticButton.astro';
|
|
25
|
-
export { default as MinimalPillButton } from './lib/buttons/MinimalPillButton.astro';
|
|
26
|
-
export { default as NeumorphicButton } from './lib/buttons/NeumorphicButton.astro';
|
|
27
|
-
export { default as PulseButton } from './lib/buttons/PulseButton.astro';
|
|
28
|
-
export { default as RetroArcadeButton } from './lib/buttons/RetroArcadeButton.astro';
|
|
29
|
-
export { default as RetroShadowButton } from './lib/buttons/RetroShadowButton.astro';
|
|
30
|
-
export { default as ShimmerButton } from './lib/buttons/ShimmerButton.astro';
|
|
31
|
-
export { default as ShinyButton } from './lib/buttons/ShinyButton.astro';
|
|
32
|
-
export { default as TiltGlowButton } from './lib/buttons/TiltGlowButton.astro';
|
|
33
|
-
|
|
34
|
-
// Cards
|
|
35
|
-
export { default as BlogHorizontalCard } from './lib/cards/BlogHorizontalCard.astro';
|
|
36
|
-
export { default as CyberFeatureCard } from './lib/cards/CyberFeatureCard.astro';
|
|
37
|
-
export { default as EcommerceProductCard } from './lib/cards/EcommerceProductCard.astro';
|
|
38
|
-
export { default as GlassCard } from './lib/cards/GlassCard.astro';
|
|
39
|
-
export { default as GlassEventCard } from './lib/cards/GlassEventCard.astro';
|
|
40
|
-
export { default as GlowPortfolioCard } from './lib/cards/GlowPortfolioCard.astro';
|
|
41
|
-
export { default as InteractiveTiltCard } from './lib/cards/InteractiveTiltCard.astro';
|
|
42
|
-
export { default as KanbanItemCard } from './lib/cards/KanbanItemCard.astro';
|
|
43
|
-
export { default as MinimalLinkCard } from './lib/cards/MinimalLinkCard.astro';
|
|
44
|
-
export { default as MusicPlayerMini } from './lib/cards/MusicPlayerMini.astro';
|
|
45
|
-
export { default as NeumorphicCard } from './lib/cards/NeumorphicCard.astro';
|
|
46
|
-
export { default as NotificationCard } from './lib/cards/NotificationCard.astro';
|
|
47
|
-
export { default as PricingCard } from './lib/cards/PricingCard.astro';
|
|
48
|
-
export { default as ProfileCard } from './lib/cards/ProfileCard.astro';
|
|
49
|
-
export { default as RetroGameCard } from './lib/cards/RetroGameCard.astro';
|
|
50
|
-
export { default as StatCard } from './lib/cards/StatCard.astro';
|
|
51
|
-
export { default as TaskKanbanCard } from './lib/cards/TaskKanbanCard.astro';
|
|
52
|
-
export { default as TestimonialCardClean } from './lib/cards/TestimonialCardClean.astro';
|
|
53
|
-
export { default as WeatherWidgetCard } from './lib/cards/WeatherWidgetCard.astro';
|
|
54
|
-
|
|
55
|
-
// Data
|
|
56
|
-
export { default as AccordionGroupGlass } from './lib/data/AccordionGroupGlass.astro';
|
|
57
|
-
export { default as AvatarGroupStack } from './lib/data/AvatarGroupStack.astro';
|
|
58
|
-
export { default as CalendarGridView } from './lib/data/CalendarGridView.astro';
|
|
59
|
-
export { default as DataChipsGroup } from './lib/data/DataChipsGroup.astro';
|
|
60
|
-
export { default as DescriptionListHoriz } from './lib/data/DescriptionListHoriz.astro';
|
|
61
|
-
export { default as FileTreeView } from './lib/data/FileTreeView.astro';
|
|
62
|
-
export { default as GanttChartMinimal } from './lib/data/GanttChartMinimal.astro';
|
|
63
|
-
export { default as GlassTable } from './lib/data/GlassTable.astro';
|
|
64
|
-
export { default as KeyValuePillGroup } from './lib/data/KeyValuePillGroup.astro';
|
|
65
|
-
export { default as PriceCompareTable } from './lib/data/PriceCompareTable.astro';
|
|
66
|
-
export { default as ProgressListSmall } from './lib/data/ProgressListSmall.astro';
|
|
67
|
-
export { default as RatingBreakdownBar } from './lib/data/RatingBreakdownBar.astro';
|
|
68
|
-
export { default as SparklineStatCard } from './lib/data/SparklineStatCard.astro';
|
|
69
|
-
export { default as StatsGridDashboard } from './lib/data/StatsGridDashboard.astro';
|
|
70
|
-
export { default as StepperDataVertical } from './lib/data/StepperDataVertical.astro';
|
|
71
|
-
export { default as TagCloudData } from './lib/data/TagCloudData.astro';
|
|
72
|
-
export { default as TimelineHorizSteps } from './lib/data/TimelineHorizSteps.astro';
|
|
73
|
-
export { default as TreeItemInteractive } from './lib/data/TreeItemInteractive.astro';
|
|
74
|
-
export { default as UserDirectoryItem } from './lib/data/UserDirectoryItem.astro';
|
|
75
|
-
export { default as VerticalTimeline } from './lib/data/VerticalTimeline.astro';
|
|
76
|
-
|
|
77
|
-
// Feedback
|
|
78
|
-
export { default as AnimatedCheckmark } from './lib/feedback/AnimatedCheckmark.astro';
|
|
79
|
-
export { default as Badge } from './lib/feedback/Badge.astro';
|
|
80
|
-
export { default as CircleProgress } from './lib/feedback/CircleProgress.astro';
|
|
81
|
-
export { default as ConfettiFeedback } from './lib/feedback/ConfettiFeedback.astro';
|
|
82
|
-
export { default as CyberGlitchAlert } from './lib/feedback/CyberGlitchAlert.astro';
|
|
83
|
-
export { default as EmptyStateCard } from './lib/feedback/EmptyStateCard.astro';
|
|
84
|
-
export { default as GlassAlert } from './lib/feedback/GlassAlert.astro';
|
|
85
|
-
export { default as GlassModal } from './lib/feedback/GlassModal.astro';
|
|
86
|
-
export { default as GlassProgress } from './lib/feedback/GlassProgress.astro';
|
|
87
|
-
export { default as IndicatorBadgeMinimal } from './lib/feedback/IndicatorBadgeMinimal.astro';
|
|
88
|
-
export { default as NeonSpinner } from './lib/feedback/NeonSpinner.astro';
|
|
89
|
-
export { default as PulseDot } from './lib/feedback/PulseDot.astro';
|
|
90
|
-
export { default as RatingPill } from './lib/feedback/RatingPill.astro';
|
|
91
|
-
export { default as ShakeErrorGroup } from './lib/feedback/ShakeErrorGroup.astro';
|
|
92
|
-
export { default as SimpleTooltip } from './lib/feedback/SimpleTooltip.astro';
|
|
93
|
-
export { default as SkeletonList } from './lib/feedback/SkeletonList.astro';
|
|
94
|
-
export { default as Spotlight } from './lib/feedback/Spotlight.astro';
|
|
95
|
-
export { default as StepProgress } from './lib/feedback/StepProgress.astro';
|
|
96
|
-
export { default as ToastNotif } from './lib/feedback/ToastNotif.astro';
|
|
97
|
-
export { default as TypingIndicator } from './lib/feedback/TypingIndicator.astro';
|
|
98
|
-
|
|
99
|
-
// Forms
|
|
100
|
-
export { default as AnimatedInput } from './lib/forms/AnimatedInput.astro';
|
|
101
|
-
export { default as ChipInput } from './lib/forms/ChipInput.astro';
|
|
102
|
-
export { default as ColorPickerInput } from './lib/forms/ColorPickerInput.astro';
|
|
103
|
-
export { default as CurrencyInput } from './lib/forms/CurrencyInput.astro';
|
|
104
|
-
export { default as CustomRadioGroup } from './lib/forms/CustomRadioGroup.astro';
|
|
105
|
-
export { default as CyberpunkCheckbox } from './lib/forms/CyberpunkCheckbox.astro';
|
|
106
|
-
export { default as DragDropUpload } from './lib/forms/DragDropUpload.astro';
|
|
107
|
-
export { default as ErrorInput } from './lib/forms/ErrorInput.astro';
|
|
108
|
-
export { default as FloatingPassword } from './lib/forms/FloatingPassword.astro';
|
|
109
|
-
export { default as FormGroupVertical } from './lib/forms/FormGroupVertical.astro';
|
|
110
|
-
export { default as GlassSlider } from './lib/forms/GlassSlider.astro';
|
|
111
|
-
export { default as GlassTextarea } from './lib/forms/GlassTextarea.astro';
|
|
112
|
-
export { default as ModernSelect } from './lib/forms/ModernSelect.astro';
|
|
113
|
-
export { default as NeumorphicSwitch } from './lib/forms/NeumorphicSwitch.astro';
|
|
114
|
-
export { default as OTPInput } from './lib/forms/OTPInput.astro';
|
|
115
|
-
export { default as RatingStars } from './lib/forms/RatingStars.astro';
|
|
116
|
-
export { default as SearchReveal } from './lib/forms/SearchReveal.astro';
|
|
117
|
-
export { default as SegmentedControl } from './lib/forms/SegmentedControl.astro';
|
|
118
|
-
export { default as SimpleFileInput } from './lib/forms/SimpleFileInput.astro';
|
|
119
|
-
export { default as StepperInput } from './lib/forms/StepperInput.astro';
|
|
120
|
-
|
|
121
|
-
// Layout
|
|
122
|
-
export { default as BentoGrid3 } from './lib/layout/BentoGrid3.astro';
|
|
123
|
-
export { default as CenterFixedBox } from './lib/layout/CenterFixedBox.astro';
|
|
124
|
-
export { default as CenteredContainer } from './lib/layout/CenteredContainer.astro';
|
|
125
|
-
export { default as ClusterHorizontal } from './lib/layout/ClusterHorizontal.astro';
|
|
126
|
-
export { default as FeatureHero } from './lib/layout/FeatureHero.astro';
|
|
127
|
-
export { default as FooterCenteredMinimal } from './lib/layout/FooterCenteredMinimal.astro';
|
|
128
|
-
export { default as FullBleedSection } from './lib/layout/FullBleedSection.astro';
|
|
129
|
-
export { default as GalleryGrid4 } from './lib/layout/GalleryGrid4.astro';
|
|
130
|
-
export { default as GlassCardGrid } from './lib/layout/GlassCardGrid.astro';
|
|
131
|
-
export { default as GlassSectionHeader } from './lib/layout/GlassSectionHeader.astro';
|
|
132
|
-
export { default as LandingSectionSplit } from './lib/layout/LandingSectionSplit.astro';
|
|
133
|
-
export { default as MasonryGrid } from './lib/layout/MasonryGrid.astro';
|
|
134
|
-
export { default as MinimalFooterGrid } from './lib/layout/MinimalFooterGrid.astro';
|
|
135
|
-
export { default as ScrollSnapSection } from './lib/layout/ScrollSnapSection.astro';
|
|
136
|
-
export { default as SectionDividerText } from './lib/layout/SectionDividerText.astro';
|
|
137
|
-
export { default as SidebarLayoutWrapper } from './lib/layout/SidebarLayoutWrapper.astro';
|
|
138
|
-
export { default as SplitScreenLayout } from './lib/layout/SplitScreenLayout.astro';
|
|
139
|
-
export { default as StepLayoutVertical } from './lib/layout/StepLayoutVertical.astro';
|
|
140
|
-
export { default as StickySidebarWrapper } from './lib/layout/StickySidebarWrapper.astro';
|
|
141
|
-
export { default as VerticalStack } from './lib/layout/VerticalStack.astro';
|
|
142
|
-
|
|
143
|
-
// Navigation
|
|
144
|
-
export { default as AnchorSideNav } from './lib/navigation/AnchorSideNav.astro';
|
|
145
|
-
export { default as BottomNavMobile } from './lib/navigation/BottomNavMobile.astro';
|
|
146
|
-
export { default as BreadcrumbsMinimal } from './lib/navigation/BreadcrumbsMinimal.astro';
|
|
147
|
-
export { default as BurgerMorphIcon } from './lib/navigation/BurgerMorphIcon.astro';
|
|
148
|
-
export { default as CommandPaletteUI } from './lib/navigation/CommandPaletteUI.astro';
|
|
149
|
-
export { default as DotNavigationSlider } from './lib/navigation/DotNavigationSlider.astro';
|
|
150
|
-
export { default as FloatingTabBar } from './lib/navigation/FloatingTabBar.astro';
|
|
151
|
-
export { default as GlassNavbar } from './lib/navigation/GlassNavbar.astro';
|
|
152
|
-
export { default as LangSwitcherPill } from './lib/navigation/LangSwitcherPill.astro';
|
|
153
|
-
export { default as MegaMenuGlass } from './lib/navigation/MegaMenuGlass.astro';
|
|
154
|
-
export { default as MinimalSidebar } from './lib/navigation/MinimalSidebar.astro';
|
|
155
|
-
export { default as PaginationGlass } from './lib/navigation/PaginationGlass.astro';
|
|
156
|
-
export { default as PaginationInfiniteUI } from './lib/navigation/PaginationInfiniteUI.astro';
|
|
157
|
-
export { default as RadialIconMenu } from './lib/navigation/RadialIconMenu.astro';
|
|
158
|
-
export { default as RetroArcadeMenu } from './lib/navigation/RetroArcadeMenu.astro';
|
|
159
|
-
export { default as ScrollProgressTop } from './lib/navigation/ScrollProgressTop.astro';
|
|
160
|
-
export { default as SimpleFooterGlass } from './lib/navigation/SimpleFooterGlass.astro';
|
|
161
|
-
export { default as TabUnderline } from './lib/navigation/TabUnderline.astro';
|
|
162
|
-
export { default as UserProfileNav } from './lib/navigation/UserProfileNav.astro';
|
|
163
|
-
export { default as VerticalTabs } from './lib/navigation/VerticalTabs.astro';
|
|
164
|
-
|
|
165
|
-
// Overlays
|
|
166
|
-
export { default as AgeVerificationOverlay } from './lib/overlays/AgeVerificationOverlay.astro';
|
|
167
|
-
export { default as BackdropBlurMask } from './lib/overlays/BackdropBlurMask.astro';
|
|
168
|
-
export { default as BottomSheetMobile } from './lib/overlays/BottomSheetMobile.astro';
|
|
169
|
-
export { default as CommandDialog } from './lib/overlays/CommandDialog.astro';
|
|
170
|
-
export { default as ContextMenuOverlay } from './lib/overlays/ContextMenuOverlay.astro';
|
|
171
|
-
export { default as CookieBannerGlass } from './lib/overlays/CookieBannerGlass.astro';
|
|
172
|
-
export { default as ExitIntentOverlay } from './lib/overlays/ExitIntentOverlay.astro';
|
|
173
|
-
export { default as FloatingTrayActions } from './lib/overlays/FloatingTrayActions.astro';
|
|
174
|
-
export { default as HelpBubbleOverlay } from './lib/overlays/HelpBubbleOverlay.astro';
|
|
175
|
-
export { default as LightboxOverlay } from './lib/overlays/LightboxOverlay.astro';
|
|
176
|
-
export { default as LoadingOverlayFull } from './lib/overlays/LoadingOverlayFull.astro';
|
|
177
|
-
export { default as MobileNavOverlay } from './lib/overlays/MobileNavOverlay.astro';
|
|
178
|
-
export { default as OverlayModal } from './lib/overlays/OverlayModal.astro';
|
|
179
|
-
export { default as PopoverMenuGlass } from './lib/overlays/PopoverMenuGlass.astro';
|
|
180
|
-
export { default as SearchOverlayFullscreen } from './lib/overlays/SearchOverlayFullscreen.astro';
|
|
181
|
-
export { default as SideDrawerRight } from './lib/overlays/SideDrawerRight.astro';
|
|
182
|
-
export { default as SplashIntroOverlay } from './lib/overlays/SplashIntroOverlay.astro';
|
|
183
|
-
export { default as SpotlightIndicator } from './lib/overlays/SpotlightIndicator.astro';
|
|
184
|
-
export { default as ToastStackOverlay } from './lib/overlays/ToastStackOverlay.astro';
|
|
185
|
-
export { default as TooltipActionTray } from './lib/overlays/TooltipActionTray.astro';
|
|
186
|
-
|
|
187
|
-
// Typography
|
|
188
|
-
export { default as AnimatedUnderlineLink } from './lib/typography/AnimatedUnderlineLink.astro';
|
|
189
|
-
export { default as BackgroundClipMask } from './lib/typography/BackgroundClipMask.astro';
|
|
190
|
-
export { default as CodeInlineGlass } from './lib/typography/CodeInlineGlass.astro';
|
|
191
|
-
export { default as CyberpunkGlitchText } from './lib/typography/CyberpunkGlitchText.astro';
|
|
192
|
-
export { default as DropCapParagraph } from './lib/typography/DropCapParagraph.astro';
|
|
193
|
-
export { default as FadedVerticalText } from './lib/typography/FadedVerticalText.astro';
|
|
194
|
-
export { default as FloatingTextLabel } from './lib/typography/FloatingTextLabel.astro';
|
|
195
|
-
export { default as GlassBlockQuote } from './lib/typography/GlassBlockQuote.astro';
|
|
196
|
-
export { default as GlassTextReveal } from './lib/typography/GlassTextReveal.astro';
|
|
197
|
-
export { default as GradientHeading } from './lib/typography/GradientHeading.astro';
|
|
198
|
-
export { default as GradientUnderlineLink } from './lib/typography/GradientUnderlineLink.astro';
|
|
199
|
-
export { default as KbdIndicator } from './lib/typography/KbdIndicator.astro';
|
|
200
|
-
export { default as LetterSpacingWide } from './lib/typography/LetterSpacingWide.astro';
|
|
201
|
-
export { default as MinimalListMarkers } from './lib/typography/MinimalListMarkers.astro';
|
|
202
|
-
export { default as MonospaceStatLine } from './lib/typography/MonospaceStatLine.astro';
|
|
203
|
-
export { default as NeonTextHighlight } from './lib/typography/NeonTextHighlight.astro';
|
|
204
|
-
export { default as ShadowRevealText } from './lib/typography/ShadowRevealText.astro';
|
|
205
|
-
export { default as StrokeHeadingOutline } from './lib/typography/StrokeHeadingOutline.astro';
|
|
206
|
-
export { default as Text3DLayer } from './lib/typography/Text3DLayer.astro';
|
|
207
|
-
export { default as TypewriterText } from './lib/typography/TypewriterText.astro';
|
|
208
|
-
|
|
209
|
-
// Sections
|
|
210
|
-
export * from './lib/sections';
|
|
211
|
-
|
|
212
|
-
// Charts
|
|
16
|
+
// Re-export all categories completely
|
|
17
|
+
export * from './lib/buttons';
|
|
18
|
+
export * from './lib/cards';
|
|
213
19
|
export * from './lib/charts';
|
|
20
|
+
export * from './lib/data';
|
|
21
|
+
export * from './lib/feedback';
|
|
22
|
+
export * from './lib/forms';
|
|
23
|
+
export * from './lib/layout';
|
|
24
|
+
export * from './lib/navigation';
|
|
25
|
+
export * from './lib/overlays';
|
|
26
|
+
export * from './lib/sections';
|
|
27
|
+
export * from './lib/typography';
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* NeonBorderButton — Futuristic button wrapped in an animated rotating neon conic-gradient border.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} color - Primary neon hue (e.g. '#fbbf24', '#38bdf8', '#a855f7'). Default is '#d4a017'.
|
|
6
|
+
* @param {'sm' | 'md' | 'lg'} size - Button size variant. Default is 'md'.
|
|
7
|
+
* @param {string} href - Optional link destination.
|
|
8
|
+
* @param {boolean} disabled - Whether the button is disabled.
|
|
9
|
+
* @param {string} className - Additional CSS class names.
|
|
10
|
+
*/
|
|
11
|
+
interface Props {
|
|
12
|
+
color?: string;
|
|
13
|
+
size?: 'sm' | 'md' | 'lg';
|
|
14
|
+
href?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const {
|
|
20
|
+
color = '#d4a017',
|
|
21
|
+
size = 'md',
|
|
22
|
+
href,
|
|
23
|
+
disabled = false,
|
|
24
|
+
className = '',
|
|
25
|
+
} = Astro.props;
|
|
26
|
+
|
|
27
|
+
const Tag = href ? 'a' : 'button';
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
<Tag
|
|
31
|
+
href={href}
|
|
32
|
+
disabled={!href && disabled ? true : undefined}
|
|
33
|
+
aria-disabled={disabled ? 'true' : undefined}
|
|
34
|
+
class:list={['neon-border-btn', `neon-border-btn--${size}`, className]}
|
|
35
|
+
style={`--neon-accent: ${color};`}
|
|
36
|
+
>
|
|
37
|
+
<span class="neon-border-btn__glow" aria-hidden="true"></span>
|
|
38
|
+
<span class="neon-border-btn__border" aria-hidden="true"></span>
|
|
39
|
+
<span class="neon-border-btn__content">
|
|
40
|
+
<slot />
|
|
41
|
+
</span>
|
|
42
|
+
</Tag>
|
|
43
|
+
|
|
44
|
+
<style>
|
|
45
|
+
.neon-border-btn {
|
|
46
|
+
--neon-speed: 4s;
|
|
47
|
+
position: relative;
|
|
48
|
+
display: inline-flex;
|
|
49
|
+
align-items: center;
|
|
50
|
+
justify-content: center;
|
|
51
|
+
text-decoration: none;
|
|
52
|
+
border: none;
|
|
53
|
+
background: transparent;
|
|
54
|
+
border-radius: var(--r-md, 12px);
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
user-select: none;
|
|
57
|
+
transition: transform 0.25s ease;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.neon-border-btn:hover {
|
|
61
|
+
transform: translateY(-2px);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.neon-border-btn:focus-visible {
|
|
65
|
+
outline: 2px solid var(--neon-accent);
|
|
66
|
+
outline-offset: 4px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.neon-border-btn[disabled],
|
|
70
|
+
.neon-border-btn[aria-disabled="true"] {
|
|
71
|
+
opacity: 0.45;
|
|
72
|
+
cursor: not-allowed;
|
|
73
|
+
pointer-events: none;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Sizes */
|
|
77
|
+
.neon-border-btn--sm .neon-border-btn__content {
|
|
78
|
+
padding: 0.45rem 1rem;
|
|
79
|
+
font-size: 0.8rem;
|
|
80
|
+
}
|
|
81
|
+
.neon-border-btn--md .neon-border-btn__content {
|
|
82
|
+
padding: 0.75rem 1.6rem;
|
|
83
|
+
font-size: 0.92rem;
|
|
84
|
+
}
|
|
85
|
+
.neon-border-btn--lg .neon-border-btn__content {
|
|
86
|
+
padding: 1rem 2.2rem;
|
|
87
|
+
font-size: 1.05rem;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Border track & animated beam */
|
|
91
|
+
.neon-border-btn__border {
|
|
92
|
+
position: absolute;
|
|
93
|
+
inset: 0;
|
|
94
|
+
border-radius: inherit;
|
|
95
|
+
padding: 1.5px;
|
|
96
|
+
background: conic-gradient(
|
|
97
|
+
from 0deg,
|
|
98
|
+
transparent 0deg,
|
|
99
|
+
transparent 90deg,
|
|
100
|
+
var(--neon-accent) 180deg,
|
|
101
|
+
transparent 270deg,
|
|
102
|
+
transparent 360deg
|
|
103
|
+
);
|
|
104
|
+
mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
105
|
+
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
|
|
106
|
+
mask-composite: exclude;
|
|
107
|
+
-webkit-mask-composite: xor;
|
|
108
|
+
animation: neon-spin var(--neon-speed) linear infinite;
|
|
109
|
+
pointer-events: none;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.neon-border-btn__glow {
|
|
113
|
+
position: absolute;
|
|
114
|
+
inset: -3px;
|
|
115
|
+
border-radius: inherit;
|
|
116
|
+
background: radial-gradient(circle, var(--neon-accent), transparent 70%);
|
|
117
|
+
opacity: 0;
|
|
118
|
+
filter: blur(14px);
|
|
119
|
+
transition: opacity 0.3s ease;
|
|
120
|
+
pointer-events: none;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.neon-border-btn:hover .neon-border-btn__glow {
|
|
124
|
+
opacity: 0.5;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.neon-border-btn__content {
|
|
128
|
+
position: relative;
|
|
129
|
+
z-index: 2;
|
|
130
|
+
display: inline-flex;
|
|
131
|
+
align-items: center;
|
|
132
|
+
gap: var(--sp-2, 0.5rem);
|
|
133
|
+
width: 100%;
|
|
134
|
+
height: 100%;
|
|
135
|
+
background: rgba(10, 10, 12, 0.95);
|
|
136
|
+
border-radius: inherit;
|
|
137
|
+
color: var(--c-text-1, #ffffff);
|
|
138
|
+
font-family: var(--font-sans, system-ui, sans-serif);
|
|
139
|
+
font-weight: 700;
|
|
140
|
+
letter-spacing: 0.03em;
|
|
141
|
+
backdrop-filter: blur(16px);
|
|
142
|
+
transition: background 0.2s ease, color 0.2s ease;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.neon-border-btn:hover .neon-border-btn__content {
|
|
146
|
+
background: rgba(16, 16, 20, 0.98);
|
|
147
|
+
color: var(--neon-accent);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@keyframes neon-spin {
|
|
151
|
+
to {
|
|
152
|
+
transform: rotate(360deg);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
@media (prefers-reduced-motion: reduce) {
|
|
157
|
+
.neon-border-btn__border {
|
|
158
|
+
animation: none;
|
|
159
|
+
background: var(--neon-accent);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
</style>
|