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
@@ -0,0 +1,142 @@
1
+ /* ─────────────────────────────────────────────────────────────
2
+ Astro Components Design System
3
+ Global styles and design tokens
4
+ ───────────────────────────────────────────────────────────── */
5
+
6
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap');
7
+
8
+ /* ── Reset ───────────────────────────────────────────────── */
9
+ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
10
+
11
+ /* ── Design Tokens ───────────────────────────────────────── */
12
+ :root {
13
+ /* Colors */
14
+ --c-bg: #050505;
15
+ --c-bg-1: #0a0a0a;
16
+ --c-bg-2: #111111;
17
+ --c-surface: rgba(255,255,255,0.02);
18
+ --c-border: rgba(255,255,255,0.05);
19
+
20
+ --c-primary: #b8860b;
21
+ --c-primary-light: #d4a017;
22
+ --c-primary-glow: rgba(184,134,11,0.12);
23
+ --c-accent: #fef3c7;
24
+
25
+ --c-text-1: #d4d4d4;
26
+ --c-text-2: #737373;
27
+ --c-text-3: #404040;
28
+
29
+ /* Typography */
30
+ --font-sans: 'Inter', system-ui, sans-serif;
31
+ --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
32
+
33
+ /* Spacing scale */
34
+ --sp-1: 0.25rem; /* 4px */
35
+ --sp-2: 0.5rem; /* 8px */
36
+ --sp-3: 0.75rem; /* 12px */
37
+ --sp-4: 1rem; /* 16px */
38
+ --sp-6: 1.5rem; /* 24px */
39
+ --sp-8: 2rem; /* 32px */
40
+ --sp-12: 3rem; /* 48px */
41
+ --sp-16: 4rem; /* 64px */
42
+
43
+ /* Radii */
44
+ --r-sm: 8px;
45
+ --r-md: 12px;
46
+ --r-lg: 20px;
47
+ --r-xl: 28px;
48
+ --r-full: 9999px;
49
+
50
+ /* Sidebar */
51
+ --sidebar-w: 260px;
52
+ --header-h: 64px;
53
+ }
54
+
55
+ /* ── Base ────────────────────────────────────────────────── */
56
+ html {
57
+ font-family: var(--font-sans);
58
+ font-size: 16px;
59
+ scroll-behavior: smooth;
60
+ -webkit-font-smoothing: antialiased;
61
+ }
62
+
63
+ body {
64
+ background-color: var(--c-bg);
65
+ color: var(--c-text-2);
66
+ min-height: 100vh;
67
+ line-height: 1.6;
68
+ }
69
+
70
+ /* ── Typography ─────────────────────────────────────────── */
71
+ h1, h2, h3, h4, h5, h6 {
72
+ font-family: var(--font-sans);
73
+ color: var(--c-text-1);
74
+ line-height: 1.25;
75
+ letter-spacing: -0.02em;
76
+ }
77
+
78
+ a { color: var(--c-primary-light); text-decoration: none; }
79
+ a:hover { color: var(--c-text-1); }
80
+
81
+ code, pre {
82
+ font-family: var(--font-mono);
83
+ }
84
+
85
+ /* ── Scrollbar ───────────────────────────────────────────── */
86
+ ::-webkit-scrollbar { width: 6px; height: 6px; }
87
+ ::-webkit-scrollbar-track { background: transparent; }
88
+ ::-webkit-scrollbar-thumb {
89
+ background: rgba(255,255,255,0.1);
90
+ border-radius: var(--r-full);
91
+ }
92
+ ::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }
93
+
94
+ /* ── Noise texture overlay ───────────────────────────────── */
95
+ body::before {
96
+ content: '';
97
+ position: fixed;
98
+ inset: 0;
99
+ pointer-events: none;
100
+ z-index: 0;
101
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.02'/%3E%3C/svg%3E");
102
+ opacity: 0.4;
103
+ }
104
+
105
+ /* ── Utility classes ─────────────────────────────────────── */
106
+ .container {
107
+ max-width: 1200px;
108
+ margin: 0 auto;
109
+ padding: 0 var(--sp-6);
110
+ }
111
+
112
+ .gradient-text {
113
+ background: linear-gradient(180deg, #e8b830, #a07818);
114
+ -webkit-background-clip: text;
115
+ -webkit-text-fill-color: transparent;
116
+ background-clip: text;
117
+ }
118
+
119
+ .sr-only {
120
+ position: absolute;
121
+ width: 1px; height: 1px;
122
+ padding: 0; margin: -1px;
123
+ overflow: hidden; clip: rect(0,0,0,0);
124
+ white-space: nowrap; border: 0;
125
+ }
126
+
127
+ /* ── Animations ─────────────────────────────────────────── */
128
+ @keyframes fade-up {
129
+ from { opacity: 0; transform: translateY(16px); }
130
+ to { opacity: 1; transform: translateY(0); }
131
+ }
132
+
133
+ @keyframes fade-in {
134
+ from { opacity: 0; }
135
+ to { opacity: 1; }
136
+ }
137
+
138
+ .anim-fade-up { animation: fade-up 0.5s ease both; }
139
+ .anim-fade-in { animation: fade-in 0.4s ease both; }
140
+ .anim-delay-1 { animation-delay: 0.1s; }
141
+ .anim-delay-2 { animation-delay: 0.2s; }
142
+ .anim-delay-3 { animation-delay: 0.3s; }
@@ -0,0 +1,10 @@
1
+ ---
2
+ interface Props { href: string; }
3
+ const { href } = Astro.props;
4
+ ---
5
+ <a href={href} class="smart-link"><slot /></a>
6
+ <style>
7
+ .smart-link { color: #818cf8; text-decoration: none; position: relative; font-weight: 600; padding: 2px 0; }
8
+ .smart-link::after { content: ""; position: absolute; bottom: -2px; left: 50%; width: 0; height: 2px; background: #6366f1; transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
9
+ .smart-link:hover::after { width: 100%; left: 0; }
10
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <h1 class="mask-txt"><slot /></h1>
4
+ <style>
5
+ .mask-txt { font-size: 8rem; font-weight: 900; background: url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&w=1000&q=80'); background-size: cover; background-position: center; -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin: 0; line-height: 1; text-align: center; }
6
+ @media (max-width: 768px) { .mask-txt { font-size: 4rem; } }
7
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <code class="glass-code"><slot /></code>
4
+ <style>
5
+ .glass-code { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); padding: 0.2rem 0.4rem; border-radius: 6px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; color: #e2e8f0; font-size: 0.9em; }
6
+ </style>
@@ -0,0 +1,20 @@
1
+ ---
2
+ interface Props { text: string; }
3
+ const { text } = Astro.props;
4
+ ---
5
+ <div class="glitch-text" data-text={text}>{text}</div>
6
+ <style>
7
+ .glitch-text { position: relative; font-size: 3rem; font-weight: 900; color: #fff; text-transform: uppercase; }
8
+ .glitch-text::before, .glitch-text::after { content: attr(data-text); position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
9
+ .glitch-text::before { left: 2px; text-shadow: -2px 0 #ff003c; clip: rect(44px, 450px, 56px, 0); animation: glitch-anim 5s infinite linear alternate-reverse; }
10
+ .glitch-text::after { left: -2px; text-shadow: -2px 0 #00e0ff; clip: rect(12px, 450px, 80px, 0); animation: glitch-anim 2s infinite linear alternate-reverse; }
11
+ @keyframes glitch-anim {
12
+ 0% { clip: rect(10px, 9999px, 20px, 0); transform: skew(0.5deg); }
13
+ 20% { clip: rect(40px, 9999px, 50px, 0); }
14
+ 40% { clip: rect(80px, 9999px, 90px, 0); }
15
+ 60% { clip: rect(20px, 9999px, 30px, 0); }
16
+ 80% { clip: rect(60px, 9999px, 70px, 0); }
17
+ 100% { clip: rect(0, 9999px, 10px, 0); transform: skew(-0.5deg); }
18
+ }
19
+ @media (max-width: 768px) { .glitch-text { font-size: 2rem; } }
20
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <p class="drop-p"><slot /></p>
4
+ <style>
5
+ .drop-p { color: #94a3b8; line-height: 1.8; font-size: 1.1rem; }
6
+ .drop-p::first-letter { float: left; font-size: 4rem; font-weight: 900; line-height: 0.8; margin-right: 0.5rem; margin-top: 0.5rem; color: #fff; background: linear-gradient(135deg, #6366f1, #c084fc); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
7
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="v-txt"><slot /></div>
4
+ <style>
5
+ .v-txt { writing-mode: vertical-rl; transform: rotate(180deg); color: #334155; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.4em; text-transform: uppercase; white-space: nowrap; }
6
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+ <div class="f-label-wrap">
4
+ <span class="f-label">PREMIUM</span>
5
+ <slot />
6
+ </div>
7
+ <style>
8
+ .f-label-wrap { position: relative; padding-top: 1.5rem; }
9
+ .f-label { position: absolute; top: 0; left: 0; font-size: 0.7rem; font-weight: 800; color: #6366f1; letter-spacing: 0.2em; text-transform: uppercase; }
10
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ ---
3
+ <blockquote class="glass-quote">
4
+ <div class="q-ico">“</div>
5
+ <p><slot /></p>
6
+ <footer>— Astro Components Team</footer>
7
+ </blockquote>
8
+ <style>
9
+ .glass-quote { position: relative; padding: 2.5rem; background: rgba(255,255,255,0.03); border-left: 4px solid #6366f1; border-radius: 0 20px 20px 0; backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.05); }
10
+ .q-ico { position: absolute; top: 0px; left: 1rem; font-size: 5rem; color: rgba(99,102,241,0.1); font-family: serif; line-height: 1; }
11
+ p { font-size: 1.2rem; color: #e2e8f0; font-style: italic; line-height: 1.6; margin: 0 0 1rem; position: relative; z-index: 1; }
12
+ footer { color: #64748b; font-size: 0.9rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; }
13
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <h3 class="shimmer-txt"><slot /></h3>
4
+ <style>
5
+ .shimmer-txt { font-size: 2rem; color: rgba(255,255,255,0.2); background: linear-gradient(90deg, transparent, #fff, transparent); background-size: 200% 100%; -webkit-background-clip: text; animation: shimmer-anim 3s infinite linear; margin: 0; font-weight: 800; }
6
+ @keyframes shimmer-anim { 0% { background-position: -100% 0; } 100% { background-position: 100% 0; } }
7
+ </style>
@@ -0,0 +1,9 @@
1
+ ---
2
+ interface Props { level?: 1 | 2 | 3 | 4 | 5 | 6; from?: string; to?: string; }
3
+ const { level = 1, from = '#6366f1', to = '#c084fc' } = Astro.props;
4
+ const Tag = `h${level}` as any;
5
+ ---
6
+ <Tag class="grad-txt" style={`--from: ${from}; --to: ${to}`}><slot /></Tag>
7
+ <style>
8
+ .grad-txt { display: inline-block; font-weight: 900; background: linear-gradient(135deg, var(--from), var(--to)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; line-height: 1.2; margin: 0; }
9
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <a href="#" class="grad-link"><slot /></a>
4
+ <style>
5
+ .grad-link { text-decoration: none; color: #fff; border-bottom: 3px solid transparent; border-image: linear-gradient(135deg, #6366f1, #c084fc); border-image-slice: 1; padding-bottom: 2px; font-weight: 700; transition: 0.3s; }
6
+ .grad-link:hover { opacity: 0.8; padding-bottom: 5px; }
7
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <kbd class="tau-kbd"><slot /></kbd>
4
+ <style>
5
+ .tau-kbd { background: #1e293b; border: 1px solid #334155; border-bottom-width: 3px; border-radius: 6px; padding: 2px 8px; color: #f1f5f9; font-family: sans-serif; font-weight: 700; font-size: 0.75rem; display: inline-flex; align-items: center; justify-content: center; min-width: 24px; box-shadow: 0 2px 0 rgba(0,0,0,0.4); vertical-align: middle; }
6
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="cinema-txt"><slot /></div>
4
+ <style>
5
+ .cinema-txt { color: #fff; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.8em; text-transform: uppercase; text-align: center; line-height: 1.5; }
6
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+ <ul class="custom-list">
4
+ <slot />
5
+ </ul>
6
+ <style>
7
+ .custom-list { list-style: none; padding: 0; }
8
+ .custom-list :global(li) { position: relative; padding-left: 1.5rem; margin-bottom: 0.85rem; color: #94a3b8; font-size: 1rem; line-height: 1.5; }
9
+ .custom-list :global(li::before) { content: "→"; position: absolute; left: 0; color: #6366f1; font-weight: 900; }
10
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="mono-stat"><slot /></div>
4
+ <style>
5
+ .mono-stat { background: #000; color: #00ff00; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; padding: 0.75rem 1.25rem; border-left: 3px solid #00ff00; font-size: 0.8rem; border-radius: 4px; border: 1px solid rgba(0, 255, 0, 0.1); }
6
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <span class="neon-hi"><slot /></span>
4
+ <style>
5
+ .neon-hi { color: #fff; background: rgba(99,102,241,0.2); padding: 0.1em 0.3em; border-radius: 4px; box-shadow: 0 0 10px rgba(99,102,241,0.3); border: 1px solid rgba(99,102,241,0.4); }
6
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <h2 class="rev-text"><slot /></h2>
4
+ <style>
5
+ .rev-text { font-size: 3.5rem; font-weight: 900; color: #fff; text-shadow: 4px 4px 0px rgba(99,102,241,0.3), 8px 8px 0px rgba(0,0,0,0.5); margin: 0; line-height: 1.1; }
6
+ @media (max-width: 768px) { .rev-text { font-size: 2rem; } }
7
+ </style>
@@ -0,0 +1,8 @@
1
+ ---
2
+ ---
3
+ <h2 class="stroke-h"><slot /></h2>
4
+ <style>
5
+ .stroke-h { font-size: 4rem; font-weight: 900; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,0.2); text-transform: uppercase; letter-spacing: 0.05em; transition: 0.3s; margin: 0; }
6
+ .stroke-h:hover { -webkit-text-stroke-color: #6366f1; }
7
+ @media (max-width: 768px) { .stroke-h { font-size: 2.5rem; } }
8
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="stack-3d"><slot /></div>
4
+ <style>
5
+ .stack-3d { font-size: 4rem; font-weight: 900; color: #fff; position: relative; text-shadow: 1px 1px #6366f1, 2px 2px #6366f1, 3px 3px #6366f1, 4px 4px #6366f1; line-height: 1.1; }
6
+ @media (max-width: 768px) { .stack-3d { font-size: 2.5rem; } }
7
+ </style>
@@ -0,0 +1,15 @@
1
+ ---
2
+ interface Props { text: string; speed?: string; }
3
+ const { text, speed = '3s' } = Astro.props;
4
+ ---
5
+ <div class="tw-wrap">
6
+ <span class="tw-text" style={`--len: ${text.length}; --speed: ${speed}`}>
7
+ {text}
8
+ </span>
9
+ </div>
10
+ <style>
11
+ .tw-wrap { display: inline-block; }
12
+ .tw-text { display: block; overflow: hidden; white-space: nowrap; border-right: 3px solid #6366f1; color: #fff; font-family: monospace; font-size: 1.5rem; font-weight: 700; width: 0; animation: typing var(--speed) steps(var(--len)) forwards, blink 0.75s step-end infinite; }
13
+ @keyframes typing { from { width: 0 } to { width: 100% } }
14
+ @keyframes blink { from, to { border-color: transparent } 50% { border-color: #6366f1 } }
15
+ </style>
@@ -0,0 +1,20 @@
1
+ export { default as AnimatedUnderlineLink } from './AnimatedUnderlineLink.astro';
2
+ export { default as BackgroundClipMask } from './BackgroundClipMask.astro';
3
+ export { default as CodeInlineGlass } from './CodeInlineGlass.astro';
4
+ export { default as CyberpunkGlitchText } from './CyberpunkGlitchText.astro';
5
+ export { default as DropCapParagraph } from './DropCapParagraph.astro';
6
+ export { default as FadedVerticalText } from './FadedVerticalText.astro';
7
+ export { default as FloatingTextLabel } from './FloatingTextLabel.astro';
8
+ export { default as GlassBlockQuote } from './GlassBlockQuote.astro';
9
+ export { default as GlassTextReveal } from './GlassTextReveal.astro';
10
+ export { default as GradientHeading } from './GradientHeading.astro';
11
+ export { default as GradientUnderlineLink } from './GradientUnderlineLink.astro';
12
+ export { default as KbdIndicator } from './KbdIndicator.astro';
13
+ export { default as LetterSpacingWide } from './LetterSpacingWide.astro';
14
+ export { default as MinimalListMarkers } from './MinimalListMarkers.astro';
15
+ export { default as MonospaceStatLine } from './MonospaceStatLine.astro';
16
+ export { default as NeonTextHighlight } from './NeonTextHighlight.astro';
17
+ export { default as ShadowRevealText } from './ShadowRevealText.astro';
18
+ export { default as StrokeHeadingOutline } from './StrokeHeadingOutline.astro';
19
+ export { default as Text3DLayer } from './Text3DLayer.astro';
20
+ export { default as TypewriterText } from './TypewriterText.astro';
@@ -0,0 +1,20 @@
1
+ export { default as AnimatedUnderlineLink } from './AnimatedUnderlineLink.astro';
2
+ export { default as BackgroundClipMask } from './BackgroundClipMask.astro';
3
+ export { default as CodeInlineGlass } from './CodeInlineGlass.astro';
4
+ export { default as CyberpunkGlitchText } from './CyberpunkGlitchText.astro';
5
+ export { default as DropCapParagraph } from './DropCapParagraph.astro';
6
+ export { default as FadedVerticalText } from './FadedVerticalText.astro';
7
+ export { default as FloatingTextLabel } from './FloatingTextLabel.astro';
8
+ export { default as GlassBlockQuote } from './GlassBlockQuote.astro';
9
+ export { default as GlassTextReveal } from './GlassTextReveal.astro';
10
+ export { default as GradientHeading } from './GradientHeading.astro';
11
+ export { default as GradientUnderlineLink } from './GradientUnderlineLink.astro';
12
+ export { default as KbdIndicator } from './KbdIndicator.astro';
13
+ export { default as LetterSpacingWide } from './LetterSpacingWide.astro';
14
+ export { default as MinimalListMarkers } from './MinimalListMarkers.astro';
15
+ export { default as MonospaceStatLine } from './MonospaceStatLine.astro';
16
+ export { default as NeonTextHighlight } from './NeonTextHighlight.astro';
17
+ export { default as ShadowRevealText } from './ShadowRevealText.astro';
18
+ export { default as StrokeHeadingOutline } from './StrokeHeadingOutline.astro';
19
+ export { default as Text3DLayer } from './Text3DLayer.astro';
20
+ export { default as TypewriterText } from './TypewriterText.astro';
@@ -0,0 +1,11 @@
1
+ ---
2
+ interface Props { ratio?: string; }
3
+ const { ratio = '16 / 9' } = Astro.props;
4
+ ---
5
+ <div class="aspect-box" style={`aspect-ratio: ${ratio}`}>
6
+ <slot />
7
+ </div>
8
+ <style>
9
+ .aspect-box { width: 100%; background: rgba(30, 41, 59, 0.5); overflow: hidden; display: flex; align-items: center; justify-content: center; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.05); }
10
+ .aspect-box :global(img, video, iframe) { width: 100%; height: 100%; object-fit: cover; }
11
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="mesh-bg"></div>
4
+ <style>
5
+ .mesh-bg { position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px); background-size: 24px 24px; pointer-events: none; }
6
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="c-mask"><slot /></div>
4
+ <style>
5
+ .c-mask { width: 100px; height: 100px; overflow: hidden; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
6
+ .c-mask :global(*) { width: 100%; height: 100%; object-fit: cover; }
7
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <button class="ripple-bt"><slot /></button>
4
+ <style>
5
+ .ripple-bt { background: none; border: none; padding: 0; outline: none; transition: transform 0.1s; cursor: pointer; border-radius: inherit; }
6
+ .ripple-bt:active { transform: scale(0.95); }
7
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ interface Props { duration?: string; delay?: string; }
3
+ const { duration = '0.6s', delay = '0s' } = Astro.props;
4
+ ---
5
+ <div class="fade-in" style={`--d: ${duration}; --l: ${delay}`}>
6
+ <slot />
7
+ </div>
8
+ <style>
9
+ .fade-in { opacity: 0; animation: fade-in-anim var(--d) cubic-bezier(0.16, 1, 0.3, 1) var(--l) forwards; }
10
+ @keyframes fade-in-anim { to { opacity: 1; } }
11
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="ratio-3-2"><slot /></div>
4
+ <style>
5
+ .ratio-3-2 { width: 100%; aspect-ratio: 3 / 2; position: relative; overflow: hidden; border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.1); }
6
+ .ratio-3-2 :global(*) { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
7
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="blur-layer"></div>
4
+ <style>
5
+ .blur-layer { position: absolute; inset: 0; backdrop-filter: blur(20px); background: rgba(255,255,255,0.03); z-index: -1; pointer-events: none; }
6
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="grad-border-box"><slot /></div>
4
+ <style>
5
+ .grad-border-box { position: relative; padding: 2rem; background: #080b14; border-radius: 20px; box-shadow: 0 20px 50px rgba(0,0,0,0.5); }
6
+ .grad-border-box::before { content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 2px; background: linear-gradient(135deg, #6366f1, #c084fc); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; }
7
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="h-lift"><slot /></div>
4
+ <style>
5
+ .h-lift { transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s; cursor: pointer; display: inline-block; width: 100%; }
6
+ .h-lift:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.3); }
7
+ </style>
@@ -0,0 +1,15 @@
1
+ ---
2
+ interface Props { size?: 'sm' | 'md' | 'lg' | 'xl'; }
3
+ const { size = 'md' } = Astro.props;
4
+ ---
5
+ <div class:list={['spacer', `spacer--${size}`]}></div>
6
+ <style>
7
+ .spacer--sm { height: 1rem; }
8
+ .spacer--md { height: 2.5rem; }
9
+ .spacer--lg { height: 5rem; }
10
+ .spacer--xl { height: 10rem; }
11
+ @media (max-width: 768px) {
12
+ .spacer--lg { height: 2.5rem; }
13
+ .spacer--xl { height: 4rem; }
14
+ }
15
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ interface Props { hideOn?: 'mobile' | 'desktop'; }
3
+ const { hideOn } = Astro.props;
4
+ ---
5
+ <div class:list={['vis-toggle', hideOn ? `hide-${hideOn}` : '']}>
6
+ <slot />
7
+ </div>
8
+ <style>
9
+ @media (max-width: 768px) { .hide-mobile { display: none !important; } }
10
+ @media (min-width: 769px) { .hide-desktop { display: none !important; } }
11
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ ---
3
+ <div class="scroll-lock-triggers">
4
+ <div class="scroll-lock-trigger" onclick="document.body.style.overflow = 'hidden'">Lock Scroll</div>
5
+ <div class="scroll-lock-trigger" onclick="document.body.style.overflow = 'auto'">Unlock Scroll</div>
6
+ </div>
7
+ <style>
8
+ .scroll-lock-triggers { display: flex; gap: 1rem; }
9
+ .scroll-lock-trigger { cursor: pointer; color: #6366f1; text-decoration: underline; font-weight: 700; font-size: 0.9rem; }
10
+ .scroll-lock-trigger:hover { color: #818cf8; }
11
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ interface Props { offset?: string; id?: string; }
3
+ const { offset = '100px', id } = Astro.props;
4
+ ---
5
+ <section class="s-target" style={`scroll-margin-top: ${offset}`} id={id}>
6
+ <slot />
7
+ </section>
8
+ <style>
9
+ .s-target { position: relative; }
10
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="s-reveal"><slot /></div>
4
+ <style>
5
+ .s-reveal { opacity: 0; transform: translateY(20px); animation: s-rev 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
6
+ @keyframes s-rev { to { opacity: 1; transform: translateY(0); } }
7
+ </style>
@@ -0,0 +1,22 @@
1
+ ---
2
+ interface Props { to: string; }
3
+ const { to } = Astro.props;
4
+ ---
5
+ <a href={`#${to}`} class="smooth-s"><slot /></a>
6
+ <style>
7
+ .smooth-s { color: #6366f1; font-weight: 800; text-decoration: none; cursor: pointer; transition: 0.2s; }
8
+ .smooth-s:hover { color: #818cf8; text-decoration: underline; }
9
+ </style>
10
+ <script>
11
+ // Ensuring smooth scroll behavior for modern browsers if not set in CSS
12
+ document.querySelectorAll('.smooth-s').forEach(anchor => {
13
+ anchor.addEventListener('click', function (e) {
14
+ e.preventDefault();
15
+ const targetId = this.getAttribute('href').substring(1);
16
+ const targetElement = document.getElementById(targetId);
17
+ if (targetElement) {
18
+ targetElement.scrollIntoView({ behavior: 'smooth' });
19
+ }
20
+ });
21
+ });
22
+ </script>
@@ -0,0 +1,12 @@
1
+ ---
2
+ interface Props { layer?: 'base' | 'nav' | 'overlay' | 'toast'; }
3
+ const { layer = 'base' } = Astro.props;
4
+ ---
5
+ <div class:list={['z-stack', `z-${layer}`]}><slot /></div>
6
+ <style>
7
+ .z-stack { position: relative; }
8
+ .z-base { z-index: 1; }
9
+ .z-nav { z-index: 1000; }
10
+ .z-overlay { z-index: 2000; }
11
+ .z-toast { z-index: 3000; }
12
+ </style>
@@ -0,0 +1,8 @@
1
+ ---
2
+ interface Props { offset?: string; }
3
+ const { offset = '1rem' } = Astro.props;
4
+ ---
5
+ <div class="sticky-u" style={`top: ${offset}`}><slot /></div>
6
+ <style>
7
+ .sticky-u { position: sticky; z-index: 10; }
8
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ interface Props { lines?: number; }
3
+ const { lines = 1 } = Astro.props;
4
+ ---
5
+ <div class="truncate" style={`-webkit-line-clamp: ${lines}`}>
6
+ <slot />
7
+ </div>
8
+ <style>
9
+ .truncate { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
10
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="s-trunc"><slot /></div>
4
+ <style>
5
+ .s-trunc { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; display: block; }
6
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <span class="sr-only"><slot /></span>
4
+ <style>
5
+ .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }
6
+ </style>