astro-component-kit 0.0.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 (445) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +262 -0
  3. package/dist/AnimatedInput.astro +82 -0
  4. package/dist/Badge.astro +52 -0
  5. package/dist/GlassButton.astro +87 -0
  6. package/dist/GlassCard.astro +72 -0
  7. package/dist/GlassNavbar.astro +65 -0
  8. package/dist/GlowButton.astro +60 -0
  9. package/dist/buttons/3dPushButton.astro +136 -0
  10. package/dist/buttons/AnimatedIconButton.astro +146 -0
  11. package/dist/buttons/BorderDrawButton.astro +112 -0
  12. package/dist/buttons/CyberpunkButton.astro +148 -0
  13. package/dist/buttons/DoubleBorderButton.astro +131 -0
  14. package/dist/buttons/GhostOutlineButton.astro +109 -0
  15. package/dist/buttons/GlassButton.astro +165 -0
  16. package/dist/buttons/GlowButton.astro +119 -0
  17. package/dist/buttons/LiquidButton.astro +167 -0
  18. package/dist/buttons/LoadingButton.astro +148 -0
  19. package/dist/buttons/MagneticButton.astro +134 -0
  20. package/dist/buttons/MinimalPillButton.astro +102 -0
  21. package/dist/buttons/NeumorphicButton.astro +158 -0
  22. package/dist/buttons/PulseButton.astro +111 -0
  23. package/dist/buttons/RetroArcadeButton.astro +105 -0
  24. package/dist/buttons/RetroShadowButton.astro +82 -0
  25. package/dist/buttons/ShimmerButton.astro +113 -0
  26. package/dist/buttons/ShinyButton.astro +121 -0
  27. package/dist/buttons/TiltGlowButton.astro +145 -0
  28. package/dist/buttons/index.mjs +19 -0
  29. package/dist/buttons/index.ts +19 -0
  30. package/dist/cards/BlogHorizontalCard.astro +18 -0
  31. package/dist/cards/CyberFeatureCard.astro +12 -0
  32. package/dist/cards/EcommerceProductCard.astro +24 -0
  33. package/dist/cards/GlassCard.astro +17 -0
  34. package/dist/cards/GlassEventCard.astro +19 -0
  35. package/dist/cards/GlowPortfolioCard.astro +16 -0
  36. package/dist/cards/InteractiveTiltCard.astro +25 -0
  37. package/dist/cards/KanbanItemCard.astro +15 -0
  38. package/dist/cards/MinimalLinkCard.astro +12 -0
  39. package/dist/cards/MusicPlayerMini.astro +21 -0
  40. package/dist/cards/NeumorphicCard.astro +6 -0
  41. package/dist/cards/NotificationCard.astro +15 -0
  42. package/dist/cards/PricingCard.astro +17 -0
  43. package/dist/cards/ProfileCard.astro +17 -0
  44. package/dist/cards/RetroGameCard.astro +15 -0
  45. package/dist/cards/StatCard.astro +15 -0
  46. package/dist/cards/TaskKanbanCard.astro +18 -0
  47. package/dist/cards/TestimonialCardClean.astro +20 -0
  48. package/dist/cards/WeatherWidgetCard.astro +17 -0
  49. package/dist/cards/index.mjs +19 -0
  50. package/dist/cards/index.ts +19 -0
  51. package/dist/data/AccordionGroupGlass.astro +21 -0
  52. package/dist/data/AvatarGroupStack.astro +15 -0
  53. package/dist/data/CalendarGridView.astro +18 -0
  54. package/dist/data/DataChipsGroup.astro +16 -0
  55. package/dist/data/DescriptionListHoriz.astro +14 -0
  56. package/dist/data/FileTreeView.astro +22 -0
  57. package/dist/data/GanttChartMinimal.astro +12 -0
  58. package/dist/data/GlassTable.astro +23 -0
  59. package/dist/data/KeyValuePillGroup.astro +12 -0
  60. package/dist/data/PriceCompareTable.astro +22 -0
  61. package/dist/data/ProgressListSmall.astro +17 -0
  62. package/dist/data/RatingBreakdownBar.astro +13 -0
  63. package/dist/data/SparklineStatCard.astro +16 -0
  64. package/dist/data/StatsGridDashboard.astro +16 -0
  65. package/dist/data/StepperDataVertical.astro +15 -0
  66. package/dist/data/TagCloudData.astro +14 -0
  67. package/dist/data/TimelineHorizSteps.astro +18 -0
  68. package/dist/data/TreeItemInteractive.astro +18 -0
  69. package/dist/data/UserDirectoryItem.astro +15 -0
  70. package/dist/data/VerticalTimeline.astro +21 -0
  71. package/dist/data/index.mjs +20 -0
  72. package/dist/data/index.ts +20 -0
  73. package/dist/feedback/AnimatedCheckmark.astro +13 -0
  74. package/dist/feedback/Badge.astro +19 -0
  75. package/dist/feedback/CircleProgress.astro +22 -0
  76. package/dist/feedback/ConfettiFeedback.astro +18 -0
  77. package/dist/feedback/CyberGlitchAlert.astro +11 -0
  78. package/dist/feedback/EmptyStateCard.astro +13 -0
  79. package/dist/feedback/GlassAlert.astro +20 -0
  80. package/dist/feedback/GlassModal.astro +19 -0
  81. package/dist/feedback/GlassProgress.astro +10 -0
  82. package/dist/feedback/IndicatorBadgeMinimal.astro +10 -0
  83. package/dist/feedback/NeonSpinner.astro +7 -0
  84. package/dist/feedback/PulseDot.astro +12 -0
  85. package/dist/feedback/RatingPill.astro +13 -0
  86. package/dist/feedback/ShakeErrorGroup.astro +7 -0
  87. package/dist/feedback/SimpleTooltip.astro +10 -0
  88. package/dist/feedback/SkeletonList.astro +20 -0
  89. package/dist/feedback/Spotlight.astro +9 -0
  90. package/dist/feedback/StepProgress.astro +14 -0
  91. package/dist/feedback/ToastNotif.astro +11 -0
  92. package/dist/feedback/TypingIndicator.astro +12 -0
  93. package/dist/feedback/index.mjs +20 -0
  94. package/dist/feedback/index.ts +20 -0
  95. package/dist/forms/AnimatedInput.astro +16 -0
  96. package/dist/forms/ChipInput.astro +13 -0
  97. package/dist/forms/ColorPickerInput.astro +13 -0
  98. package/dist/forms/CurrencyInput.astro +11 -0
  99. package/dist/forms/CustomRadioGroup.astro +13 -0
  100. package/dist/forms/CyberpunkCheckbox.astro +15 -0
  101. package/dist/forms/DragDropUpload.astro +12 -0
  102. package/dist/forms/ErrorInput.astro +11 -0
  103. package/dist/forms/FloatingPassword.astro +20 -0
  104. package/dist/forms/FormGroupVertical.astro +14 -0
  105. package/dist/forms/GlassSlider.astro +7 -0
  106. package/dist/forms/GlassTextarea.astro +14 -0
  107. package/dist/forms/ModernSelect.astro +16 -0
  108. package/dist/forms/NeumorphicSwitch.astro +55 -0
  109. package/dist/forms/OTPInput.astro +22 -0
  110. package/dist/forms/RatingStars.astro +15 -0
  111. package/dist/forms/SearchReveal.astro +13 -0
  112. package/dist/forms/SegmentedControl.astro +13 -0
  113. package/dist/forms/SimpleFileInput.astro +11 -0
  114. package/dist/forms/StepperInput.astro +14 -0
  115. package/dist/forms/index.mjs +20 -0
  116. package/dist/forms/index.ts +20 -0
  117. package/dist/index.js +1 -0
  118. package/dist/index.mjs +1 -0
  119. package/dist/layout/BentoGrid3.astro +14 -0
  120. package/dist/layout/CenterFixedBox.astro +6 -0
  121. package/dist/layout/CenteredContainer.astro +8 -0
  122. package/dist/layout/ClusterHorizontal.astro +6 -0
  123. package/dist/layout/FeatureHero.astro +17 -0
  124. package/dist/layout/FooterCenteredMinimal.astro +11 -0
  125. package/dist/layout/FullBleedSection.astro +6 -0
  126. package/dist/layout/GalleryGrid4.astro +7 -0
  127. package/dist/layout/GlassCardGrid.astro +6 -0
  128. package/dist/layout/GlassSectionHeader.astro +15 -0
  129. package/dist/layout/LandingSectionSplit.astro +13 -0
  130. package/dist/layout/MasonryGrid.astro +7 -0
  131. package/dist/layout/MinimalFooterGrid.astro +20 -0
  132. package/dist/layout/ScrollSnapSection.astro +7 -0
  133. package/dist/layout/SectionDividerText.astro +7 -0
  134. package/dist/layout/SidebarLayoutWrapper.astro +11 -0
  135. package/dist/layout/SplitScreenLayout.astro +11 -0
  136. package/dist/layout/StepLayoutVertical.astro +21 -0
  137. package/dist/layout/StickySidebarWrapper.astro +10 -0
  138. package/dist/layout/VerticalStack.astro +8 -0
  139. package/dist/layout/index.mjs +20 -0
  140. package/dist/layout/index.ts +20 -0
  141. package/dist/navigation/AnchorSideNav.astro +13 -0
  142. package/dist/navigation/BottomNavMobile.astro +13 -0
  143. package/dist/navigation/BreadcrumbsMinimal.astro +16 -0
  144. package/dist/navigation/BurgerMorphIcon.astro +12 -0
  145. package/dist/navigation/CommandPaletteUI.astro +17 -0
  146. package/dist/navigation/DotNavigationSlider.astro +13 -0
  147. package/dist/navigation/FloatingTabBar.astro +12 -0
  148. package/dist/navigation/GlassNavbar.astro +19 -0
  149. package/dist/navigation/LangSwitcherPill.astro +17 -0
  150. package/dist/navigation/MegaMenuGlass.astro +25 -0
  151. package/dist/navigation/MinimalSidebar.astro +18 -0
  152. package/dist/navigation/PaginationGlass.astro +20 -0
  153. package/dist/navigation/PaginationInfiniteUI.astro +11 -0
  154. package/dist/navigation/RadialIconMenu.astro +15 -0
  155. package/dist/navigation/RetroArcadeMenu.astro +12 -0
  156. package/dist/navigation/ScrollProgressTop.astro +15 -0
  157. package/dist/navigation/SimpleFooterGlass.astro +21 -0
  158. package/dist/navigation/TabUnderline.astro +14 -0
  159. package/dist/navigation/UserProfileNav.astro +21 -0
  160. package/dist/navigation/VerticalTabs.astro +14 -0
  161. package/dist/navigation/index.mjs +20 -0
  162. package/dist/navigation/index.ts +20 -0
  163. package/dist/overlays/AgeVerificationOverlay.astro +20 -0
  164. package/dist/overlays/BackdropBlurMask.astro +6 -0
  165. package/dist/overlays/BottomSheetMobile.astro +16 -0
  166. package/dist/overlays/CommandDialog.astro +19 -0
  167. package/dist/overlays/ContextMenuOverlay.astro +17 -0
  168. package/dist/overlays/CookieBannerGlass.astro +14 -0
  169. package/dist/overlays/ExitIntentOverlay.astro +19 -0
  170. package/dist/overlays/FloatingTrayActions.astro +13 -0
  171. package/dist/overlays/HelpBubbleOverlay.astro +11 -0
  172. package/dist/overlays/LightboxOverlay.astro +13 -0
  173. package/dist/overlays/LoadingOverlayFull.astro +10 -0
  174. package/dist/overlays/MobileNavOverlay.astro +18 -0
  175. package/dist/overlays/OverlayModal.astro +24 -0
  176. package/dist/overlays/PopoverMenuGlass.astro +17 -0
  177. package/dist/overlays/SearchOverlayFullscreen.astro +15 -0
  178. package/dist/overlays/SideDrawerRight.astro +16 -0
  179. package/dist/overlays/SplashIntroOverlay.astro +11 -0
  180. package/dist/overlays/SpotlightIndicator.astro +6 -0
  181. package/dist/overlays/ToastStackOverlay.astro +12 -0
  182. package/dist/overlays/TooltipActionTray.astro +14 -0
  183. package/dist/overlays/index.mjs +20 -0
  184. package/dist/overlays/index.ts +20 -0
  185. package/dist/styles/global.css +142 -0
  186. package/dist/typography/AnimatedUnderlineLink.astro +10 -0
  187. package/dist/typography/BackgroundClipMask.astro +7 -0
  188. package/dist/typography/CodeInlineGlass.astro +6 -0
  189. package/dist/typography/CyberpunkGlitchText.astro +20 -0
  190. package/dist/typography/DropCapParagraph.astro +7 -0
  191. package/dist/typography/FadedVerticalText.astro +6 -0
  192. package/dist/typography/FloatingTextLabel.astro +10 -0
  193. package/dist/typography/GlassBlockQuote.astro +13 -0
  194. package/dist/typography/GlassTextReveal.astro +7 -0
  195. package/dist/typography/GradientHeading.astro +9 -0
  196. package/dist/typography/GradientUnderlineLink.astro +7 -0
  197. package/dist/typography/KbdIndicator.astro +6 -0
  198. package/dist/typography/LetterSpacingWide.astro +6 -0
  199. package/dist/typography/MinimalListMarkers.astro +10 -0
  200. package/dist/typography/MonospaceStatLine.astro +6 -0
  201. package/dist/typography/NeonTextHighlight.astro +6 -0
  202. package/dist/typography/ShadowRevealText.astro +7 -0
  203. package/dist/typography/StrokeHeadingOutline.astro +8 -0
  204. package/dist/typography/Text3DLayer.astro +7 -0
  205. package/dist/typography/TypewriterText.astro +15 -0
  206. package/dist/typography/index.mjs +20 -0
  207. package/dist/typography/index.ts +20 -0
  208. package/dist/utilities/AspectRatioBox.astro +11 -0
  209. package/dist/utilities/BackgroundDotPattern.astro +6 -0
  210. package/dist/utilities/CircularMask.astro +7 -0
  211. package/dist/utilities/ClickRippleWrapper.astro +7 -0
  212. package/dist/utilities/FadeInWrapper.astro +11 -0
  213. package/dist/utilities/FixedRatioImage.astro +7 -0
  214. package/dist/utilities/GlassBlurLayer.astro +6 -0
  215. package/dist/utilities/GradientBorderMask.astro +7 -0
  216. package/dist/utilities/HoverLift.astro +7 -0
  217. package/dist/utilities/ResponsiveSpacer.astro +15 -0
  218. package/dist/utilities/ResponsiveVisToggle.astro +11 -0
  219. package/dist/utilities/ScrollLockParent.astro +11 -0
  220. package/dist/utilities/ScrollMarginTarget.astro +10 -0
  221. package/dist/utilities/SlideUpReveal.astro +7 -0
  222. package/dist/utilities/SmoothAnchorLink.astro +22 -0
  223. package/dist/utilities/StackLayering.astro +12 -0
  224. package/dist/utilities/StickyObserver.astro +8 -0
  225. package/dist/utilities/TextTruncate.astro +10 -0
  226. package/dist/utilities/TruncateSingleLine.astro +6 -0
  227. package/dist/utilities/VisuallyHidden.astro +6 -0
  228. package/dist/utilities/index.mjs +20 -0
  229. package/dist/utilities/index.ts +20 -0
  230. package/package.json +108 -0
  231. package/src/components/lib/AnimatedInput.astro +82 -0
  232. package/src/components/lib/Badge.astro +52 -0
  233. package/src/components/lib/GlassButton.astro +87 -0
  234. package/src/components/lib/GlassCard.astro +72 -0
  235. package/src/components/lib/GlassNavbar.astro +65 -0
  236. package/src/components/lib/GlowButton.astro +60 -0
  237. package/src/components/lib/buttons/3dPushButton.astro +136 -0
  238. package/src/components/lib/buttons/AnimatedIconButton.astro +146 -0
  239. package/src/components/lib/buttons/BorderDrawButton.astro +112 -0
  240. package/src/components/lib/buttons/CyberpunkButton.astro +148 -0
  241. package/src/components/lib/buttons/DoubleBorderButton.astro +131 -0
  242. package/src/components/lib/buttons/GhostOutlineButton.astro +109 -0
  243. package/src/components/lib/buttons/GlassButton.astro +165 -0
  244. package/src/components/lib/buttons/GlowButton.astro +119 -0
  245. package/src/components/lib/buttons/LiquidButton.astro +167 -0
  246. package/src/components/lib/buttons/LoadingButton.astro +148 -0
  247. package/src/components/lib/buttons/MagneticButton.astro +134 -0
  248. package/src/components/lib/buttons/MinimalPillButton.astro +102 -0
  249. package/src/components/lib/buttons/NeumorphicButton.astro +158 -0
  250. package/src/components/lib/buttons/PulseButton.astro +111 -0
  251. package/src/components/lib/buttons/RetroArcadeButton.astro +105 -0
  252. package/src/components/lib/buttons/RetroShadowButton.astro +82 -0
  253. package/src/components/lib/buttons/ShimmerButton.astro +113 -0
  254. package/src/components/lib/buttons/ShinyButton.astro +121 -0
  255. package/src/components/lib/buttons/TiltGlowButton.astro +145 -0
  256. package/src/components/lib/buttons/index.ts +19 -0
  257. package/src/components/lib/cards/BlogHorizontalCard.astro +18 -0
  258. package/src/components/lib/cards/CyberFeatureCard.astro +12 -0
  259. package/src/components/lib/cards/EcommerceProductCard.astro +24 -0
  260. package/src/components/lib/cards/GlassCard.astro +17 -0
  261. package/src/components/lib/cards/GlassEventCard.astro +19 -0
  262. package/src/components/lib/cards/GlowPortfolioCard.astro +16 -0
  263. package/src/components/lib/cards/InteractiveTiltCard.astro +25 -0
  264. package/src/components/lib/cards/KanbanItemCard.astro +15 -0
  265. package/src/components/lib/cards/MinimalLinkCard.astro +12 -0
  266. package/src/components/lib/cards/MusicPlayerMini.astro +21 -0
  267. package/src/components/lib/cards/NeumorphicCard.astro +6 -0
  268. package/src/components/lib/cards/NotificationCard.astro +15 -0
  269. package/src/components/lib/cards/PricingCard.astro +17 -0
  270. package/src/components/lib/cards/ProfileCard.astro +17 -0
  271. package/src/components/lib/cards/RetroGameCard.astro +15 -0
  272. package/src/components/lib/cards/StatCard.astro +15 -0
  273. package/src/components/lib/cards/TaskKanbanCard.astro +18 -0
  274. package/src/components/lib/cards/TestimonialCardClean.astro +20 -0
  275. package/src/components/lib/cards/WeatherWidgetCard.astro +17 -0
  276. package/src/components/lib/cards/index.ts +19 -0
  277. package/src/components/lib/data/AccordionGroupGlass.astro +21 -0
  278. package/src/components/lib/data/AvatarGroupStack.astro +15 -0
  279. package/src/components/lib/data/CalendarGridView.astro +18 -0
  280. package/src/components/lib/data/DataChipsGroup.astro +16 -0
  281. package/src/components/lib/data/DescriptionListHoriz.astro +14 -0
  282. package/src/components/lib/data/FileTreeView.astro +22 -0
  283. package/src/components/lib/data/GanttChartMinimal.astro +12 -0
  284. package/src/components/lib/data/GlassTable.astro +23 -0
  285. package/src/components/lib/data/KeyValuePillGroup.astro +12 -0
  286. package/src/components/lib/data/PriceCompareTable.astro +22 -0
  287. package/src/components/lib/data/ProgressListSmall.astro +17 -0
  288. package/src/components/lib/data/RatingBreakdownBar.astro +13 -0
  289. package/src/components/lib/data/SparklineStatCard.astro +16 -0
  290. package/src/components/lib/data/StatsGridDashboard.astro +16 -0
  291. package/src/components/lib/data/StepperDataVertical.astro +15 -0
  292. package/src/components/lib/data/TagCloudData.astro +14 -0
  293. package/src/components/lib/data/TimelineHorizSteps.astro +18 -0
  294. package/src/components/lib/data/TreeItemInteractive.astro +18 -0
  295. package/src/components/lib/data/UserDirectoryItem.astro +15 -0
  296. package/src/components/lib/data/VerticalTimeline.astro +21 -0
  297. package/src/components/lib/data/index.ts +20 -0
  298. package/src/components/lib/feedback/AnimatedCheckmark.astro +13 -0
  299. package/src/components/lib/feedback/Badge.astro +19 -0
  300. package/src/components/lib/feedback/CircleProgress.astro +22 -0
  301. package/src/components/lib/feedback/ConfettiFeedback.astro +18 -0
  302. package/src/components/lib/feedback/CyberGlitchAlert.astro +11 -0
  303. package/src/components/lib/feedback/EmptyStateCard.astro +13 -0
  304. package/src/components/lib/feedback/GlassAlert.astro +20 -0
  305. package/src/components/lib/feedback/GlassModal.astro +19 -0
  306. package/src/components/lib/feedback/GlassProgress.astro +10 -0
  307. package/src/components/lib/feedback/IndicatorBadgeMinimal.astro +10 -0
  308. package/src/components/lib/feedback/NeonSpinner.astro +7 -0
  309. package/src/components/lib/feedback/PulseDot.astro +12 -0
  310. package/src/components/lib/feedback/RatingPill.astro +13 -0
  311. package/src/components/lib/feedback/ShakeErrorGroup.astro +7 -0
  312. package/src/components/lib/feedback/SimpleTooltip.astro +10 -0
  313. package/src/components/lib/feedback/SkeletonList.astro +20 -0
  314. package/src/components/lib/feedback/Spotlight.astro +9 -0
  315. package/src/components/lib/feedback/StepProgress.astro +14 -0
  316. package/src/components/lib/feedback/ToastNotif.astro +11 -0
  317. package/src/components/lib/feedback/TypingIndicator.astro +12 -0
  318. package/src/components/lib/feedback/index.ts +20 -0
  319. package/src/components/lib/forms/AnimatedInput.astro +16 -0
  320. package/src/components/lib/forms/ChipInput.astro +13 -0
  321. package/src/components/lib/forms/ColorPickerInput.astro +13 -0
  322. package/src/components/lib/forms/CurrencyInput.astro +11 -0
  323. package/src/components/lib/forms/CustomRadioGroup.astro +13 -0
  324. package/src/components/lib/forms/CyberpunkCheckbox.astro +15 -0
  325. package/src/components/lib/forms/DragDropUpload.astro +12 -0
  326. package/src/components/lib/forms/ErrorInput.astro +11 -0
  327. package/src/components/lib/forms/FloatingPassword.astro +20 -0
  328. package/src/components/lib/forms/FormGroupVertical.astro +14 -0
  329. package/src/components/lib/forms/GlassSlider.astro +7 -0
  330. package/src/components/lib/forms/GlassTextarea.astro +14 -0
  331. package/src/components/lib/forms/ModernSelect.astro +16 -0
  332. package/src/components/lib/forms/NeumorphicSwitch.astro +55 -0
  333. package/src/components/lib/forms/OTPInput.astro +22 -0
  334. package/src/components/lib/forms/RatingStars.astro +15 -0
  335. package/src/components/lib/forms/SearchReveal.astro +13 -0
  336. package/src/components/lib/forms/SegmentedControl.astro +13 -0
  337. package/src/components/lib/forms/SimpleFileInput.astro +11 -0
  338. package/src/components/lib/forms/StepperInput.astro +14 -0
  339. package/src/components/lib/forms/index.ts +20 -0
  340. package/src/components/lib/index.ts +6 -0
  341. package/src/components/lib/layout/BentoGrid3.astro +14 -0
  342. package/src/components/lib/layout/CenterFixedBox.astro +6 -0
  343. package/src/components/lib/layout/CenteredContainer.astro +8 -0
  344. package/src/components/lib/layout/ClusterHorizontal.astro +6 -0
  345. package/src/components/lib/layout/FeatureHero.astro +17 -0
  346. package/src/components/lib/layout/FooterCenteredMinimal.astro +11 -0
  347. package/src/components/lib/layout/FullBleedSection.astro +6 -0
  348. package/src/components/lib/layout/GalleryGrid4.astro +7 -0
  349. package/src/components/lib/layout/GlassCardGrid.astro +6 -0
  350. package/src/components/lib/layout/GlassSectionHeader.astro +15 -0
  351. package/src/components/lib/layout/LandingSectionSplit.astro +13 -0
  352. package/src/components/lib/layout/MasonryGrid.astro +7 -0
  353. package/src/components/lib/layout/MinimalFooterGrid.astro +20 -0
  354. package/src/components/lib/layout/ScrollSnapSection.astro +7 -0
  355. package/src/components/lib/layout/SectionDividerText.astro +7 -0
  356. package/src/components/lib/layout/SidebarLayoutWrapper.astro +11 -0
  357. package/src/components/lib/layout/SplitScreenLayout.astro +11 -0
  358. package/src/components/lib/layout/StepLayoutVertical.astro +21 -0
  359. package/src/components/lib/layout/StickySidebarWrapper.astro +10 -0
  360. package/src/components/lib/layout/VerticalStack.astro +8 -0
  361. package/src/components/lib/layout/index.ts +20 -0
  362. package/src/components/lib/navigation/AnchorSideNav.astro +13 -0
  363. package/src/components/lib/navigation/BottomNavMobile.astro +13 -0
  364. package/src/components/lib/navigation/BreadcrumbsMinimal.astro +16 -0
  365. package/src/components/lib/navigation/BurgerMorphIcon.astro +12 -0
  366. package/src/components/lib/navigation/CommandPaletteUI.astro +17 -0
  367. package/src/components/lib/navigation/DotNavigationSlider.astro +13 -0
  368. package/src/components/lib/navigation/FloatingTabBar.astro +12 -0
  369. package/src/components/lib/navigation/GlassNavbar.astro +19 -0
  370. package/src/components/lib/navigation/LangSwitcherPill.astro +17 -0
  371. package/src/components/lib/navigation/MegaMenuGlass.astro +25 -0
  372. package/src/components/lib/navigation/MinimalSidebar.astro +18 -0
  373. package/src/components/lib/navigation/PaginationGlass.astro +20 -0
  374. package/src/components/lib/navigation/PaginationInfiniteUI.astro +11 -0
  375. package/src/components/lib/navigation/RadialIconMenu.astro +15 -0
  376. package/src/components/lib/navigation/RetroArcadeMenu.astro +12 -0
  377. package/src/components/lib/navigation/ScrollProgressTop.astro +15 -0
  378. package/src/components/lib/navigation/SimpleFooterGlass.astro +21 -0
  379. package/src/components/lib/navigation/TabUnderline.astro +14 -0
  380. package/src/components/lib/navigation/UserProfileNav.astro +21 -0
  381. package/src/components/lib/navigation/VerticalTabs.astro +14 -0
  382. package/src/components/lib/navigation/index.ts +20 -0
  383. package/src/components/lib/overlays/AgeVerificationOverlay.astro +20 -0
  384. package/src/components/lib/overlays/BackdropBlurMask.astro +6 -0
  385. package/src/components/lib/overlays/BottomSheetMobile.astro +16 -0
  386. package/src/components/lib/overlays/CommandDialog.astro +19 -0
  387. package/src/components/lib/overlays/ContextMenuOverlay.astro +17 -0
  388. package/src/components/lib/overlays/CookieBannerGlass.astro +14 -0
  389. package/src/components/lib/overlays/ExitIntentOverlay.astro +19 -0
  390. package/src/components/lib/overlays/FloatingTrayActions.astro +13 -0
  391. package/src/components/lib/overlays/HelpBubbleOverlay.astro +11 -0
  392. package/src/components/lib/overlays/LightboxOverlay.astro +13 -0
  393. package/src/components/lib/overlays/LoadingOverlayFull.astro +10 -0
  394. package/src/components/lib/overlays/MobileNavOverlay.astro +18 -0
  395. package/src/components/lib/overlays/OverlayModal.astro +24 -0
  396. package/src/components/lib/overlays/PopoverMenuGlass.astro +17 -0
  397. package/src/components/lib/overlays/SearchOverlayFullscreen.astro +15 -0
  398. package/src/components/lib/overlays/SideDrawerRight.astro +16 -0
  399. package/src/components/lib/overlays/SplashIntroOverlay.astro +11 -0
  400. package/src/components/lib/overlays/SpotlightIndicator.astro +6 -0
  401. package/src/components/lib/overlays/ToastStackOverlay.astro +12 -0
  402. package/src/components/lib/overlays/TooltipActionTray.astro +14 -0
  403. package/src/components/lib/overlays/index.ts +20 -0
  404. package/src/components/lib/typography/AnimatedUnderlineLink.astro +10 -0
  405. package/src/components/lib/typography/BackgroundClipMask.astro +7 -0
  406. package/src/components/lib/typography/CodeInlineGlass.astro +6 -0
  407. package/src/components/lib/typography/CyberpunkGlitchText.astro +20 -0
  408. package/src/components/lib/typography/DropCapParagraph.astro +7 -0
  409. package/src/components/lib/typography/FadedVerticalText.astro +6 -0
  410. package/src/components/lib/typography/FloatingTextLabel.astro +10 -0
  411. package/src/components/lib/typography/GlassBlockQuote.astro +13 -0
  412. package/src/components/lib/typography/GlassTextReveal.astro +7 -0
  413. package/src/components/lib/typography/GradientHeading.astro +9 -0
  414. package/src/components/lib/typography/GradientUnderlineLink.astro +7 -0
  415. package/src/components/lib/typography/KbdIndicator.astro +6 -0
  416. package/src/components/lib/typography/LetterSpacingWide.astro +6 -0
  417. package/src/components/lib/typography/MinimalListMarkers.astro +10 -0
  418. package/src/components/lib/typography/MonospaceStatLine.astro +6 -0
  419. package/src/components/lib/typography/NeonTextHighlight.astro +6 -0
  420. package/src/components/lib/typography/ShadowRevealText.astro +7 -0
  421. package/src/components/lib/typography/StrokeHeadingOutline.astro +8 -0
  422. package/src/components/lib/typography/Text3DLayer.astro +7 -0
  423. package/src/components/lib/typography/TypewriterText.astro +15 -0
  424. package/src/components/lib/typography/index.ts +20 -0
  425. package/src/components/lib/utilities/AspectRatioBox.astro +11 -0
  426. package/src/components/lib/utilities/BackgroundDotPattern.astro +6 -0
  427. package/src/components/lib/utilities/CircularMask.astro +7 -0
  428. package/src/components/lib/utilities/ClickRippleWrapper.astro +7 -0
  429. package/src/components/lib/utilities/FadeInWrapper.astro +11 -0
  430. package/src/components/lib/utilities/FixedRatioImage.astro +7 -0
  431. package/src/components/lib/utilities/GlassBlurLayer.astro +6 -0
  432. package/src/components/lib/utilities/GradientBorderMask.astro +7 -0
  433. package/src/components/lib/utilities/HoverLift.astro +7 -0
  434. package/src/components/lib/utilities/ResponsiveSpacer.astro +15 -0
  435. package/src/components/lib/utilities/ResponsiveVisToggle.astro +11 -0
  436. package/src/components/lib/utilities/ScrollLockParent.astro +11 -0
  437. package/src/components/lib/utilities/ScrollMarginTarget.astro +10 -0
  438. package/src/components/lib/utilities/SlideUpReveal.astro +7 -0
  439. package/src/components/lib/utilities/SmoothAnchorLink.astro +22 -0
  440. package/src/components/lib/utilities/StackLayering.astro +12 -0
  441. package/src/components/lib/utilities/StickyObserver.astro +8 -0
  442. package/src/components/lib/utilities/TextTruncate.astro +10 -0
  443. package/src/components/lib/utilities/TruncateSingleLine.astro +6 -0
  444. package/src/components/lib/utilities/VisuallyHidden.astro +6 -0
  445. package/src/components/lib/utilities/index.ts +20 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 konstantinwdk
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,262 @@
1
+ # ⬇ Astro Components
2
+
3
+ > A premium, open-source accessible UI component library built for [Astro](https://astro.build).
4
+ > **🌐 Browse & copy components** at [astro-component-kitomponents.dev](https://astro-component-kitomponents.dev)
5
+ > **📦 Install via npm** or **copy-paste** — your choice!
6
+
7
+ ![License: MIT](https://img.shields.io/badge/License-MIT-6366f1.svg)
8
+ ![Astro](https://img.shields.io/badge/Astro-6.x-c084fc.svg)
9
+ ![npm](https://img.shields.io/npm/v/astro-component-kit.svg)
10
+ ![PRs Welcome](https://img.shields.io/badge/PRs-welcome-34d399.svg)
11
+
12
+ ## ✨ Features
13
+
14
+ - 🎨 **Premium design** — glassmorphism, gradients and micro-animations
15
+ - ♿ **Accessible** — semantic HTML and ARIA attributes included
16
+ - 📋 **Copy & paste** — browse [astro-component-kitomponents.dev](https://astro-component-kitomponents.dev) and copy components directly
17
+ - 📦 **npm installable** — `npm install astro-component-kit` for direct imports
18
+ - ♻️ **Zero dependencies** — pure `.astro` components + Vanilla CSS
19
+ - 🌑 **Dark mode first** — designed for dark interfaces out of the box
20
+ - 🔓 **Open Source** — MIT license, contributions welcome
21
+
22
+ ---
23
+
24
+ ## 🚀 Quick Start
25
+
26
+ ### Option 1: Install via npm (Recommended)
27
+
28
+ ```bash
29
+ npm install astro-component-kit
30
+ ```
31
+
32
+ Then import components in your Astro files:
33
+
34
+ ```astro
35
+ ---
36
+ import { GlassButton, GlassCard } from 'astro-component-kit';
37
+ // Or by category:
38
+ import { GlassButton, GlowButton } from 'astro-component-kit/buttons';
39
+ ---
40
+
41
+ <GlassButton variant="primary">Click me</GlassButton>
42
+ <GlassCard>Content here</GlassCard>
43
+ ```
44
+
45
+ Import the global design tokens (optional):
46
+
47
+ ```astro
48
+ ---
49
+ import 'astro-component-kit/global.css';
50
+ ---
51
+ ```
52
+
53
+ ### Option 2: Copy & Paste from Docs
54
+
55
+ 1. Visit [astro-component-kitomponents.dev](https://astro-component-kitomponents.dev)
56
+ 2. Browse the component library
57
+ 3. Click **Copy** on the component code
58
+ 4. Paste into your `src/components/` directory
59
+ 5. Import and use in your Astro pages
60
+
61
+ ### Option 3: Clone & Run Locally
62
+
63
+ ```bash
64
+ # Clone the repo
65
+ git clone https://github.com/konstantinwdk/astro-component-kit.git
66
+ cd astro-component-kit
67
+
68
+ # Install dependencies
69
+ npm install
70
+
71
+ # Start the dev server (docs site)
72
+ npm run dev
73
+ ```
74
+
75
+ Open [http://localhost:4321](http://localhost:4321) to browse components locally 🎉
76
+
77
+ ---
78
+
79
+ ## 📚 Component Library
80
+
81
+ The library includes **200+ components** organized by category:
82
+
83
+ | Category | Components | Description |
84
+ |----------|------------|-------------|
85
+ | **Buttons** | 19 | Glass, glow, neumorphic, animated, and more |
86
+ | **Cards** | 19 | Product, profile, pricing, weather, and more |
87
+ | **Data** | 20 | Tables, timelines, charts, trees |
88
+ | **Feedback** | 20 | Alerts, modals, toasts, spinners, tooltips |
89
+ | **Forms** | 20 | Inputs, selects, sliders, OTP, ratings |
90
+ | **Layout** | 20 | Grids, sections, sidebars, footers |
91
+ | **Navigation** | 20 | Navbars, breadcrumbs, tabs, pagination |
92
+ | **Overlays** | 20 | Modals, drawers, lightboxes, popovers |
93
+ | **Typography** | 20 | Headings, links, quotes, glitch text |
94
+ | **Utilities** | 20 | Patterns, masks, reveals, accessibility |
95
+
96
+ ---
97
+
98
+ ## 🗂️ Project Structure
99
+
100
+ ```
101
+ astro-component-kit/
102
+ ├── src/
103
+ │ ├── components/
104
+ │ │ ├── lib/ ← Component source files
105
+ │ │ │ ├── buttons/ ← Button components
106
+ │ │ │ ├── cards/ ← Card components
107
+ │ │ │ ├── ... ← More categories
108
+ │ │ │ └── index.ts ← Main barrel export
109
+ │ │ └── types.d.ts ← TypeScript declarations
110
+ │ ├── data/
111
+ │ │ └── registry/ ← Component metadata for docs site
112
+ │ ├── pages/ ← Astro pages (docs site)
113
+ │ ├── layouts/ └── Layout components
114
+ │ └── styles/
115
+ │ └── global.css ← Design tokens & global styles
116
+ ├── dist/ ← Build output (npm package + site)
117
+ ├── scripts/
118
+ │ ├── build-lib.mjs ← Build script for npm package
119
+ │ └── deploy-ftp.mjs ← Deploy to astro-component-kitomponents.dev
120
+ └── package.json
121
+ ```
122
+
123
+ ---
124
+
125
+ ## 🛠️ Development
126
+
127
+ ### Available Scripts
128
+
129
+ | Command | Description |
130
+ |---------|-------------|
131
+ | `npm run dev` | Start the docs site dev server |
132
+ | `npm run build` | Build the docs site for production |
133
+ | `npm run preview` | Preview the built docs site locally |
134
+ | `npm run build:lib` | Build the component library for npm |
135
+ | `npm run deploy:ftp` | Build & deploy docs to astro-component-kitomponents.dev via FTP |
136
+ | `npm run typecheck` | Run TypeScript type checking |
137
+
138
+ ### Deploying to astro-component-kitomponents.dev
139
+
140
+ To deploy your docs site to the live server:
141
+
142
+ ```bash
143
+ npm run deploy:ftp
144
+ ```
145
+
146
+ This script will:
147
+ 1. Build the Astro site (`npm run build`)
148
+ 2. Connect to the FTP server (config in `.vscode/sftp.json`)
149
+ 3. **Clear the remote directory** (deletes old deployment)
150
+ 4. **Upload the new build** to `/httpdocs/`
151
+
152
+ The FTP credentials are stored in `.vscode/sftp.json` (not committed to git).
153
+
154
+ ### Publishing to npm
155
+
156
+ ```bash
157
+ # 1. Build the library
158
+ npm run build:lib
159
+
160
+ # 2. Login to npm (first time only)
161
+ npm login
162
+
163
+ # 3. Publish
164
+ npm publish --access public
165
+ ```
166
+
167
+ ---
168
+
169
+ ## ➕ Adding a New Component
170
+
171
+ ### For Copy-Paste Usage (Docs Site)
172
+
173
+ 1. Create your component in `src/components/lib/{category}/ComponentName.astro`
174
+ 2. Add metadata to `src/data/registry/{category}.ts`:
175
+
176
+ ```ts
177
+ {
178
+ slug: 'my-component',
179
+ name: 'My Component',
180
+ description: 'What it does.',
181
+ category: 'buttons',
182
+ tags: ['button', 'animated'],
183
+ featured: false,
184
+ code: `---
185
+ // MyComponent.astro
186
+ ---
187
+ <div class="my-component"><slot /></div>
188
+ <style>.my-component { /* ... */ }</style>`,
189
+ usage: `import MyComponent from '../components/MyComponent.astro';
190
+ <MyComponent>Hello!</MyComponent>`,
191
+ }
192
+ ```
193
+
194
+ 3. Add to the barrel export in `src/components/lib/{category}/index.ts`:
195
+ ```ts
196
+ export { default as MyComponent } from './MyComponent.astro';
197
+ ```
198
+
199
+ 4. Add to the main export in `src/components/index.ts`
200
+
201
+ The docs site will automatically pick up the new component.
202
+
203
+ ---
204
+
205
+ ## 🎨 Design Tokens
206
+
207
+ All components use the design token system in `src/styles/global.css`. Import it in your project:
208
+
209
+ ```astro
210
+ ---
211
+ import '../styles/global.css';
212
+ ---
213
+ ```
214
+
215
+ Tokens include:
216
+ - Color palette (dark mode optimized)
217
+ - Spacing scale
218
+ - Typography sizes
219
+ - Border radius values
220
+ - Shadow definitions
221
+ - Transition timings
222
+
223
+ ---
224
+
225
+ ## ♿ Accessibility
226
+
227
+ All components are built with accessibility in mind:
228
+
229
+ - ✅ Semantic HTML elements (`<button>`, `<nav>`, `<main>`, etc.)
230
+ - ✅ ARIA attributes where appropriate
231
+ - ✅ Keyboard navigation support
232
+ - ✅ Focus indicators visible by default
233
+ - ✅ Screen reader utilities (`.sr-only` class)
234
+ - ✅ Color contrast WCAG AA compliant
235
+
236
+ ---
237
+
238
+ ## 🤝 Contributing
239
+
240
+ Contributions are warmly welcomed!
241
+
242
+ 1. Fork the repository
243
+ 2. Create a branch: `git checkout -b feat/my-component`
244
+ 3. Add your component to `src/components/lib/{category}/`
245
+ 4. Update the registry in `src/data/registry/{category}.ts`
246
+ 5. Add barrel exports to the category `index.ts`
247
+ 6. Submit a Pull Request
248
+
249
+ Please follow the existing code style and include a clear description.
250
+
251
+ ---
252
+
253
+ ## 📄 License
254
+
255
+ MIT © [konstantinwdk](https://github.com/konstantinwdk)
256
+
257
+ ## 🌐 Links
258
+
259
+ - **Documentation**: [astro-component-kitomponents.dev](https://astro-component-kitomponents.dev)
260
+ - **npm Package**: [npmjs.com/package/astro-component-kit](https://www.npmjs.com/package/astro-component-kit)
261
+ - **GitHub**: [github.com/konstantinwdk/astro-component-kit](https://github.com/konstantinwdk/astro-component-kit)
262
+ - **Issues**: [GitHub Issues](https://github.com/konstantinwdk/astro-component-kit/issues)
@@ -0,0 +1,82 @@
1
+ ---
2
+ // src/components/lib/AnimatedInput.astro
3
+ interface Props {
4
+ label: string;
5
+ id: string;
6
+ type?: string;
7
+ placeholder?: string;
8
+ required?: boolean;
9
+ name?: string;
10
+ }
11
+
12
+ const {
13
+ label,
14
+ id,
15
+ type = 'text',
16
+ placeholder = ' ',
17
+ required = false,
18
+ name,
19
+ } = Astro.props;
20
+ ---
21
+
22
+ <div class="anim-input-wrap">
23
+ <input
24
+ {id}
25
+ {name}
26
+ {type}
27
+ {placeholder}
28
+ {required}
29
+ class="anim-input"
30
+ autocomplete="off"
31
+ />
32
+ <label for={id} class="anim-input-label">{label}</label>
33
+ </div>
34
+
35
+ <style>
36
+ .anim-input-wrap {
37
+ position: relative;
38
+ width: 100%;
39
+ }
40
+
41
+ .anim-input {
42
+ width: 100%;
43
+ padding: 1.1rem 1rem 0.5rem;
44
+ font-family: inherit;
45
+ font-size: 0.95rem;
46
+ color: #e2e8f0;
47
+ background: rgba(255, 255, 255, 0.04);
48
+ border: 1px solid rgba(255, 255, 255, 0.1);
49
+ border-radius: 12px;
50
+ outline: none;
51
+ box-sizing: border-box;
52
+ transition: border-color 0.25s ease, background 0.25s ease;
53
+ }
54
+
55
+ .anim-input::placeholder { color: transparent; }
56
+
57
+ .anim-input:focus {
58
+ background: rgba(99, 102, 241, 0.06);
59
+ border-color: rgba(99, 102, 241, 0.5);
60
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12);
61
+ }
62
+
63
+ .anim-input-label {
64
+ position: absolute;
65
+ top: 0.9rem;
66
+ left: 1rem;
67
+ font-size: 0.9rem;
68
+ color: #64748b;
69
+ pointer-events: none;
70
+ transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease;
71
+ }
72
+
73
+ .anim-input:focus ~ .anim-input-label,
74
+ .anim-input:not(:placeholder-shown) ~ .anim-input-label {
75
+ top: 0.28rem;
76
+ font-size: 0.68rem;
77
+ color: #818cf8;
78
+ font-weight: 600;
79
+ letter-spacing: 0.04em;
80
+ text-transform: uppercase;
81
+ }
82
+ </style>
@@ -0,0 +1,52 @@
1
+ ---
2
+ // src/components/lib/Badge.astro
3
+ interface Props {
4
+ variant?: 'default' | 'success' | 'warning' | 'danger' | 'info';
5
+ dot?: boolean;
6
+ pulse?: boolean;
7
+ }
8
+
9
+ const { variant = 'default', dot = false, pulse = false } = Astro.props;
10
+ ---
11
+
12
+ <span class:list={['badge', `badge--${variant}`]}>
13
+ {dot && <span class:list={['badge__dot', { 'badge__dot--pulse': pulse }]}></span>}
14
+ <slot />
15
+ </span>
16
+
17
+ <style>
18
+ .badge {
19
+ display: inline-flex;
20
+ align-items: center;
21
+ gap: 0.4rem;
22
+ padding: 0.25rem 0.7rem;
23
+ border-radius: 100px;
24
+ font-size: 0.72rem;
25
+ font-weight: 600;
26
+ letter-spacing: 0.05em;
27
+ text-transform: uppercase;
28
+ white-space: nowrap;
29
+ }
30
+
31
+ .badge--default { background: rgba(100,116,139,0.18); color: #94a3b8; border: 1px solid rgba(100,116,139,0.25); }
32
+ .badge--success { background: rgba(16,185,129,0.12); color: #34d399; border: 1px solid rgba(16,185,129,0.25); }
33
+ .badge--warning { background: rgba(245,158,11,0.12); color: #fbbf24; border: 1px solid rgba(245,158,11,0.25); }
34
+ .badge--danger { background: rgba(239,68,68,0.12); color: #f87171; border: 1px solid rgba(239,68,68,0.25); }
35
+ .badge--info { background: rgba(99,102,241,0.12); color: #818cf8; border: 1px solid rgba(99,102,241,0.25); }
36
+
37
+ .badge__dot {
38
+ width: 6px; height: 6px;
39
+ border-radius: 50%;
40
+ background: currentColor;
41
+ flex-shrink: 0;
42
+ }
43
+
44
+ .badge__dot--pulse {
45
+ animation: dot-pulse 1.8s ease-in-out infinite;
46
+ }
47
+
48
+ @keyframes dot-pulse {
49
+ 0%, 100% { opacity: 1; transform: scale(1); }
50
+ 50% { opacity: 0.4; transform: scale(0.7); }
51
+ }
52
+ </style>
@@ -0,0 +1,87 @@
1
+ ---
2
+ // src/components/lib/GlassButton.astro
3
+ interface Props {
4
+ href?: string;
5
+ variant?: 'primary' | 'secondary' | 'ghost';
6
+ size?: 'sm' | 'md' | 'lg';
7
+ disabled?: boolean;
8
+ }
9
+
10
+ const { href, variant = 'primary', size = 'md', disabled = false } = Astro.props;
11
+ const Tag = href ? 'a' : 'button';
12
+ ---
13
+
14
+ <Tag
15
+ href={href}
16
+ disabled={disabled}
17
+ class={`glass-btn glass-btn--${variant} glass-btn--${size}`}
18
+ >
19
+ <slot />
20
+ </Tag>
21
+
22
+ <style>
23
+ .glass-btn {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ gap: 0.5rem;
28
+ font-family: inherit;
29
+ font-weight: 600;
30
+ letter-spacing: 0.02em;
31
+ border-radius: 12px;
32
+ cursor: pointer;
33
+ text-decoration: none;
34
+ border: 1px solid transparent;
35
+ position: relative;
36
+ transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
37
+ overflow: hidden;
38
+ }
39
+
40
+ .glass-btn::before {
41
+ content: '';
42
+ position: absolute;
43
+ inset: -1px;
44
+ border-radius: inherit;
45
+ padding: 1px;
46
+ background: linear-gradient(135deg, rgba(255,255,255,0.3), rgba(255,255,255,0.05));
47
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
48
+ -webkit-mask-composite: xor;
49
+ mask-composite: exclude;
50
+ }
51
+
52
+ .glass-btn:hover:not(:disabled) {
53
+ transform: translateY(-2px);
54
+ box-shadow: 0 8px 32px rgba(99, 102, 241, 0.35);
55
+ }
56
+
57
+ .glass-btn:active:not(:disabled) { transform: translateY(0); }
58
+ .glass-btn:disabled { opacity: 0.4; cursor: not-allowed; }
59
+
60
+ .glass-btn--primary {
61
+ background: linear-gradient(135deg, #6366f1, #8b5cf6);
62
+ color: #fff;
63
+ box-shadow: 0 4px 20px rgba(99, 102, 241, 0.25);
64
+ }
65
+
66
+ .glass-btn--secondary {
67
+ background: rgba(255, 255, 255, 0.08);
68
+ backdrop-filter: blur(12px);
69
+ color: #e2e8f0;
70
+ border-color: rgba(255, 255, 255, 0.12);
71
+ }
72
+
73
+ .glass-btn--ghost {
74
+ background: transparent;
75
+ color: #a5b4fc;
76
+ border-color: rgba(99, 102, 241, 0.4);
77
+ }
78
+
79
+ .glass-btn--ghost:hover:not(:disabled) {
80
+ background: rgba(99, 102, 241, 0.12);
81
+ box-shadow: 0 8px 24px rgba(99, 102, 241, 0.2);
82
+ }
83
+
84
+ .glass-btn--sm { padding: 0.4rem 0.9rem; font-size: 0.8rem; }
85
+ .glass-btn--md { padding: 0.65rem 1.4rem; font-size: 0.9rem; }
86
+ .glass-btn--lg { padding: 0.85rem 1.9rem; font-size: 1rem; }
87
+ </style>
@@ -0,0 +1,72 @@
1
+ ---
2
+ // src/components/lib/GlassCard.astro
3
+ interface Props {
4
+ title?: string;
5
+ subtitle?: string;
6
+ hoverable?: boolean;
7
+ padding?: 'sm' | 'md' | 'lg';
8
+ }
9
+
10
+ const { title, subtitle, hoverable = true, padding = 'md' } = Astro.props;
11
+ ---
12
+
13
+ <div class:list={['glass-card', `glass-card--p${padding}`, { 'glass-card--hoverable': hoverable }]}>
14
+ {title && (
15
+ <div class="glass-card__header">
16
+ <h3 class="glass-card__title">{title}</h3>
17
+ {subtitle && <p class="glass-card__subtitle">{subtitle}</p>}
18
+ </div>
19
+ )}
20
+ <div class="glass-card__body">
21
+ <slot />
22
+ </div>
23
+ </div>
24
+
25
+ <style>
26
+ .glass-card {
27
+ background: rgba(255, 255, 255, 0.04);
28
+ backdrop-filter: blur(16px);
29
+ border: 1px solid rgba(255, 255, 255, 0.09);
30
+ border-radius: 20px;
31
+ position: relative;
32
+ overflow: hidden;
33
+ transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
34
+ }
35
+
36
+ .glass-card::before {
37
+ content: '';
38
+ position: absolute;
39
+ top: 0; left: 0; right: 0;
40
+ height: 1px;
41
+ background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
42
+ }
43
+
44
+ .glass-card--hoverable:hover {
45
+ transform: translateY(-4px);
46
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(99, 102, 241, 0.2);
47
+ border-color: rgba(99, 102, 241, 0.25);
48
+ }
49
+
50
+ .glass-card__header {
51
+ border-bottom: 1px solid rgba(255, 255, 255, 0.07);
52
+ margin-bottom: 1rem;
53
+ padding-bottom: 0.75rem;
54
+ }
55
+
56
+ .glass-card__title {
57
+ margin: 0 0 0.25rem;
58
+ font-size: 1.05rem;
59
+ font-weight: 600;
60
+ color: #f1f5f9;
61
+ }
62
+
63
+ .glass-card__subtitle {
64
+ margin: 0;
65
+ font-size: 0.82rem;
66
+ color: #64748b;
67
+ }
68
+
69
+ .glass-card--psm { padding: 1rem; }
70
+ .glass-card--pmd { padding: 1.5rem; }
71
+ .glass-card--plg { padding: 2rem; }
72
+ </style>
@@ -0,0 +1,65 @@
1
+ ---
2
+ // src/components/lib/GlassNavbar.astro
3
+ interface Props {
4
+ brand?: string;
5
+ brandHref?: string;
6
+ }
7
+ const { brand = 'Astro Components', brandHref = '/' } = Astro.props;
8
+ ---
9
+
10
+ <header class="glass-nav">
11
+ <div class="glass-nav__inner">
12
+ <a href={brandHref} class="glass-nav__brand">{brand}</a>
13
+ <nav class="glass-nav__links">
14
+ <slot name="links" />
15
+ </nav>
16
+ <div class="glass-nav__actions">
17
+ <slot name="actions" />
18
+ </div>
19
+ </div>
20
+ </header>
21
+
22
+ <style>
23
+ .glass-nav {
24
+ background: rgba(10, 10, 20, 0.7);
25
+ backdrop-filter: blur(20px);
26
+ border: 1px solid rgba(255, 255, 255, 0.07);
27
+ border-radius: 14px;
28
+ }
29
+
30
+ .glass-nav__inner {
31
+ padding: 0 1.5rem;
32
+ height: 56px;
33
+ display: flex;
34
+ align-items: center;
35
+ gap: 2rem;
36
+ }
37
+
38
+ .glass-nav__brand {
39
+ font-size: 1rem;
40
+ font-weight: 800;
41
+ color: #f1f5f9;
42
+ text-decoration: none;
43
+ background: linear-gradient(135deg, #818cf8, #c084fc);
44
+ -webkit-background-clip: text;
45
+ -webkit-text-fill-color: transparent;
46
+ background-clip: text;
47
+ flex-shrink: 0;
48
+ }
49
+
50
+ .glass-nav__links {
51
+ display: flex; align-items: center; gap: 0.25rem; flex: 1;
52
+ }
53
+
54
+ .glass-nav__links :global(a) {
55
+ padding: 0.4rem 0.8rem; font-size: 0.875rem; font-weight: 500;
56
+ color: #94a3b8; text-decoration: none; border-radius: 8px;
57
+ transition: color 0.2s ease, background 0.2s ease;
58
+ }
59
+
60
+ .glass-nav__links :global(a:hover) { color: #e2e8f0; background: rgba(255,255,255,0.06); }
61
+
62
+ .glass-nav__actions {
63
+ display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0;
64
+ }
65
+ </style>
@@ -0,0 +1,60 @@
1
+ ---
2
+ // src/components/lib/GlowButton.astro
3
+ interface Props {
4
+ color?: string;
5
+ href?: string;
6
+ }
7
+ const { color = '#6366f1', href } = Astro.props;
8
+ const Tag = href ? 'a' : 'button';
9
+ ---
10
+
11
+ <Tag href={href} class="glow-btn" style={`--glow-color: ${color}`}>
12
+ <slot />
13
+ </Tag>
14
+
15
+ <style>
16
+ .glow-btn {
17
+ display: inline-flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ padding: 0.7rem 1.6rem;
21
+ font-family: inherit;
22
+ font-size: 0.9rem;
23
+ font-weight: 700;
24
+ letter-spacing: 0.05em;
25
+ text-transform: uppercase;
26
+ color: #fff;
27
+ background: var(--glow-color);
28
+ border: none;
29
+ border-radius: 10px;
30
+ cursor: pointer;
31
+ text-decoration: none;
32
+ position: relative;
33
+ transition: transform 0.2s ease;
34
+ box-shadow: 0 0 20px color-mix(in srgb, var(--glow-color) 60%, transparent);
35
+ }
36
+
37
+ .glow-btn::after {
38
+ content: '';
39
+ position: absolute;
40
+ inset: -3px;
41
+ border-radius: 13px;
42
+ background: var(--glow-color);
43
+ opacity: 0;
44
+ filter: blur(16px);
45
+ transition: opacity 0.3s ease;
46
+ z-index: -1;
47
+ }
48
+
49
+ .glow-btn:hover { transform: translateY(-2px); }
50
+
51
+ .glow-btn:hover::after {
52
+ opacity: 0.5;
53
+ animation: pulse-glow 1.5s ease-in-out infinite;
54
+ }
55
+
56
+ @keyframes pulse-glow {
57
+ 0%, 100% { opacity: 0.4; }
58
+ 50% { opacity: 0.8; }
59
+ }
60
+ </style>