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.
- package/LICENSE +21 -0
- package/README.md +262 -0
- package/dist/AnimatedInput.astro +82 -0
- package/dist/Badge.astro +52 -0
- package/dist/GlassButton.astro +87 -0
- package/dist/GlassCard.astro +72 -0
- package/dist/GlassNavbar.astro +65 -0
- package/dist/GlowButton.astro +60 -0
- package/dist/buttons/3dPushButton.astro +136 -0
- package/dist/buttons/AnimatedIconButton.astro +146 -0
- package/dist/buttons/BorderDrawButton.astro +112 -0
- package/dist/buttons/CyberpunkButton.astro +148 -0
- package/dist/buttons/DoubleBorderButton.astro +131 -0
- package/dist/buttons/GhostOutlineButton.astro +109 -0
- package/dist/buttons/GlassButton.astro +165 -0
- package/dist/buttons/GlowButton.astro +119 -0
- package/dist/buttons/LiquidButton.astro +167 -0
- package/dist/buttons/LoadingButton.astro +148 -0
- package/dist/buttons/MagneticButton.astro +134 -0
- package/dist/buttons/MinimalPillButton.astro +102 -0
- package/dist/buttons/NeumorphicButton.astro +158 -0
- package/dist/buttons/PulseButton.astro +111 -0
- package/dist/buttons/RetroArcadeButton.astro +105 -0
- package/dist/buttons/RetroShadowButton.astro +82 -0
- package/dist/buttons/ShimmerButton.astro +113 -0
- package/dist/buttons/ShinyButton.astro +121 -0
- package/dist/buttons/TiltGlowButton.astro +145 -0
- package/dist/buttons/index.mjs +19 -0
- package/dist/buttons/index.ts +19 -0
- package/dist/cards/BlogHorizontalCard.astro +18 -0
- package/dist/cards/CyberFeatureCard.astro +12 -0
- package/dist/cards/EcommerceProductCard.astro +24 -0
- package/dist/cards/GlassCard.astro +17 -0
- package/dist/cards/GlassEventCard.astro +19 -0
- package/dist/cards/GlowPortfolioCard.astro +16 -0
- package/dist/cards/InteractiveTiltCard.astro +25 -0
- package/dist/cards/KanbanItemCard.astro +15 -0
- package/dist/cards/MinimalLinkCard.astro +12 -0
- package/dist/cards/MusicPlayerMini.astro +21 -0
- package/dist/cards/NeumorphicCard.astro +6 -0
- package/dist/cards/NotificationCard.astro +15 -0
- package/dist/cards/PricingCard.astro +17 -0
- package/dist/cards/ProfileCard.astro +17 -0
- package/dist/cards/RetroGameCard.astro +15 -0
- package/dist/cards/StatCard.astro +15 -0
- package/dist/cards/TaskKanbanCard.astro +18 -0
- package/dist/cards/TestimonialCardClean.astro +20 -0
- package/dist/cards/WeatherWidgetCard.astro +17 -0
- package/dist/cards/index.mjs +19 -0
- package/dist/cards/index.ts +19 -0
- package/dist/data/AccordionGroupGlass.astro +21 -0
- package/dist/data/AvatarGroupStack.astro +15 -0
- package/dist/data/CalendarGridView.astro +18 -0
- package/dist/data/DataChipsGroup.astro +16 -0
- package/dist/data/DescriptionListHoriz.astro +14 -0
- package/dist/data/FileTreeView.astro +22 -0
- package/dist/data/GanttChartMinimal.astro +12 -0
- package/dist/data/GlassTable.astro +23 -0
- package/dist/data/KeyValuePillGroup.astro +12 -0
- package/dist/data/PriceCompareTable.astro +22 -0
- package/dist/data/ProgressListSmall.astro +17 -0
- package/dist/data/RatingBreakdownBar.astro +13 -0
- package/dist/data/SparklineStatCard.astro +16 -0
- package/dist/data/StatsGridDashboard.astro +16 -0
- package/dist/data/StepperDataVertical.astro +15 -0
- package/dist/data/TagCloudData.astro +14 -0
- package/dist/data/TimelineHorizSteps.astro +18 -0
- package/dist/data/TreeItemInteractive.astro +18 -0
- package/dist/data/UserDirectoryItem.astro +15 -0
- package/dist/data/VerticalTimeline.astro +21 -0
- package/dist/data/index.mjs +20 -0
- package/dist/data/index.ts +20 -0
- package/dist/feedback/AnimatedCheckmark.astro +13 -0
- package/dist/feedback/Badge.astro +19 -0
- package/dist/feedback/CircleProgress.astro +22 -0
- package/dist/feedback/ConfettiFeedback.astro +18 -0
- package/dist/feedback/CyberGlitchAlert.astro +11 -0
- package/dist/feedback/EmptyStateCard.astro +13 -0
- package/dist/feedback/GlassAlert.astro +20 -0
- package/dist/feedback/GlassModal.astro +19 -0
- package/dist/feedback/GlassProgress.astro +10 -0
- package/dist/feedback/IndicatorBadgeMinimal.astro +10 -0
- package/dist/feedback/NeonSpinner.astro +7 -0
- package/dist/feedback/PulseDot.astro +12 -0
- package/dist/feedback/RatingPill.astro +13 -0
- package/dist/feedback/ShakeErrorGroup.astro +7 -0
- package/dist/feedback/SimpleTooltip.astro +10 -0
- package/dist/feedback/SkeletonList.astro +20 -0
- package/dist/feedback/Spotlight.astro +9 -0
- package/dist/feedback/StepProgress.astro +14 -0
- package/dist/feedback/ToastNotif.astro +11 -0
- package/dist/feedback/TypingIndicator.astro +12 -0
- package/dist/feedback/index.mjs +20 -0
- package/dist/feedback/index.ts +20 -0
- package/dist/forms/AnimatedInput.astro +16 -0
- package/dist/forms/ChipInput.astro +13 -0
- package/dist/forms/ColorPickerInput.astro +13 -0
- package/dist/forms/CurrencyInput.astro +11 -0
- package/dist/forms/CustomRadioGroup.astro +13 -0
- package/dist/forms/CyberpunkCheckbox.astro +15 -0
- package/dist/forms/DragDropUpload.astro +12 -0
- package/dist/forms/ErrorInput.astro +11 -0
- package/dist/forms/FloatingPassword.astro +20 -0
- package/dist/forms/FormGroupVertical.astro +14 -0
- package/dist/forms/GlassSlider.astro +7 -0
- package/dist/forms/GlassTextarea.astro +14 -0
- package/dist/forms/ModernSelect.astro +16 -0
- package/dist/forms/NeumorphicSwitch.astro +55 -0
- package/dist/forms/OTPInput.astro +22 -0
- package/dist/forms/RatingStars.astro +15 -0
- package/dist/forms/SearchReveal.astro +13 -0
- package/dist/forms/SegmentedControl.astro +13 -0
- package/dist/forms/SimpleFileInput.astro +11 -0
- package/dist/forms/StepperInput.astro +14 -0
- package/dist/forms/index.mjs +20 -0
- package/dist/forms/index.ts +20 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/layout/BentoGrid3.astro +14 -0
- package/dist/layout/CenterFixedBox.astro +6 -0
- package/dist/layout/CenteredContainer.astro +8 -0
- package/dist/layout/ClusterHorizontal.astro +6 -0
- package/dist/layout/FeatureHero.astro +17 -0
- package/dist/layout/FooterCenteredMinimal.astro +11 -0
- package/dist/layout/FullBleedSection.astro +6 -0
- package/dist/layout/GalleryGrid4.astro +7 -0
- package/dist/layout/GlassCardGrid.astro +6 -0
- package/dist/layout/GlassSectionHeader.astro +15 -0
- package/dist/layout/LandingSectionSplit.astro +13 -0
- package/dist/layout/MasonryGrid.astro +7 -0
- package/dist/layout/MinimalFooterGrid.astro +20 -0
- package/dist/layout/ScrollSnapSection.astro +7 -0
- package/dist/layout/SectionDividerText.astro +7 -0
- package/dist/layout/SidebarLayoutWrapper.astro +11 -0
- package/dist/layout/SplitScreenLayout.astro +11 -0
- package/dist/layout/StepLayoutVertical.astro +21 -0
- package/dist/layout/StickySidebarWrapper.astro +10 -0
- package/dist/layout/VerticalStack.astro +8 -0
- package/dist/layout/index.mjs +20 -0
- package/dist/layout/index.ts +20 -0
- package/dist/navigation/AnchorSideNav.astro +13 -0
- package/dist/navigation/BottomNavMobile.astro +13 -0
- package/dist/navigation/BreadcrumbsMinimal.astro +16 -0
- package/dist/navigation/BurgerMorphIcon.astro +12 -0
- package/dist/navigation/CommandPaletteUI.astro +17 -0
- package/dist/navigation/DotNavigationSlider.astro +13 -0
- package/dist/navigation/FloatingTabBar.astro +12 -0
- package/dist/navigation/GlassNavbar.astro +19 -0
- package/dist/navigation/LangSwitcherPill.astro +17 -0
- package/dist/navigation/MegaMenuGlass.astro +25 -0
- package/dist/navigation/MinimalSidebar.astro +18 -0
- package/dist/navigation/PaginationGlass.astro +20 -0
- package/dist/navigation/PaginationInfiniteUI.astro +11 -0
- package/dist/navigation/RadialIconMenu.astro +15 -0
- package/dist/navigation/RetroArcadeMenu.astro +12 -0
- package/dist/navigation/ScrollProgressTop.astro +15 -0
- package/dist/navigation/SimpleFooterGlass.astro +21 -0
- package/dist/navigation/TabUnderline.astro +14 -0
- package/dist/navigation/UserProfileNav.astro +21 -0
- package/dist/navigation/VerticalTabs.astro +14 -0
- package/dist/navigation/index.mjs +20 -0
- package/dist/navigation/index.ts +20 -0
- package/dist/overlays/AgeVerificationOverlay.astro +20 -0
- package/dist/overlays/BackdropBlurMask.astro +6 -0
- package/dist/overlays/BottomSheetMobile.astro +16 -0
- package/dist/overlays/CommandDialog.astro +19 -0
- package/dist/overlays/ContextMenuOverlay.astro +17 -0
- package/dist/overlays/CookieBannerGlass.astro +14 -0
- package/dist/overlays/ExitIntentOverlay.astro +19 -0
- package/dist/overlays/FloatingTrayActions.astro +13 -0
- package/dist/overlays/HelpBubbleOverlay.astro +11 -0
- package/dist/overlays/LightboxOverlay.astro +13 -0
- package/dist/overlays/LoadingOverlayFull.astro +10 -0
- package/dist/overlays/MobileNavOverlay.astro +18 -0
- package/dist/overlays/OverlayModal.astro +24 -0
- package/dist/overlays/PopoverMenuGlass.astro +17 -0
- package/dist/overlays/SearchOverlayFullscreen.astro +15 -0
- package/dist/overlays/SideDrawerRight.astro +16 -0
- package/dist/overlays/SplashIntroOverlay.astro +11 -0
- package/dist/overlays/SpotlightIndicator.astro +6 -0
- package/dist/overlays/ToastStackOverlay.astro +12 -0
- package/dist/overlays/TooltipActionTray.astro +14 -0
- package/dist/overlays/index.mjs +20 -0
- package/dist/overlays/index.ts +20 -0
- package/dist/styles/global.css +142 -0
- package/dist/typography/AnimatedUnderlineLink.astro +10 -0
- package/dist/typography/BackgroundClipMask.astro +7 -0
- package/dist/typography/CodeInlineGlass.astro +6 -0
- package/dist/typography/CyberpunkGlitchText.astro +20 -0
- package/dist/typography/DropCapParagraph.astro +7 -0
- package/dist/typography/FadedVerticalText.astro +6 -0
- package/dist/typography/FloatingTextLabel.astro +10 -0
- package/dist/typography/GlassBlockQuote.astro +13 -0
- package/dist/typography/GlassTextReveal.astro +7 -0
- package/dist/typography/GradientHeading.astro +9 -0
- package/dist/typography/GradientUnderlineLink.astro +7 -0
- package/dist/typography/KbdIndicator.astro +6 -0
- package/dist/typography/LetterSpacingWide.astro +6 -0
- package/dist/typography/MinimalListMarkers.astro +10 -0
- package/dist/typography/MonospaceStatLine.astro +6 -0
- package/dist/typography/NeonTextHighlight.astro +6 -0
- package/dist/typography/ShadowRevealText.astro +7 -0
- package/dist/typography/StrokeHeadingOutline.astro +8 -0
- package/dist/typography/Text3DLayer.astro +7 -0
- package/dist/typography/TypewriterText.astro +15 -0
- package/dist/typography/index.mjs +20 -0
- package/dist/typography/index.ts +20 -0
- package/dist/utilities/AspectRatioBox.astro +11 -0
- package/dist/utilities/BackgroundDotPattern.astro +6 -0
- package/dist/utilities/CircularMask.astro +7 -0
- package/dist/utilities/ClickRippleWrapper.astro +7 -0
- package/dist/utilities/FadeInWrapper.astro +11 -0
- package/dist/utilities/FixedRatioImage.astro +7 -0
- package/dist/utilities/GlassBlurLayer.astro +6 -0
- package/dist/utilities/GradientBorderMask.astro +7 -0
- package/dist/utilities/HoverLift.astro +7 -0
- package/dist/utilities/ResponsiveSpacer.astro +15 -0
- package/dist/utilities/ResponsiveVisToggle.astro +11 -0
- package/dist/utilities/ScrollLockParent.astro +11 -0
- package/dist/utilities/ScrollMarginTarget.astro +10 -0
- package/dist/utilities/SlideUpReveal.astro +7 -0
- package/dist/utilities/SmoothAnchorLink.astro +22 -0
- package/dist/utilities/StackLayering.astro +12 -0
- package/dist/utilities/StickyObserver.astro +8 -0
- package/dist/utilities/TextTruncate.astro +10 -0
- package/dist/utilities/TruncateSingleLine.astro +6 -0
- package/dist/utilities/VisuallyHidden.astro +6 -0
- package/dist/utilities/index.mjs +20 -0
- package/dist/utilities/index.ts +20 -0
- package/package.json +108 -0
- package/src/components/lib/AnimatedInput.astro +82 -0
- package/src/components/lib/Badge.astro +52 -0
- package/src/components/lib/GlassButton.astro +87 -0
- package/src/components/lib/GlassCard.astro +72 -0
- package/src/components/lib/GlassNavbar.astro +65 -0
- package/src/components/lib/GlowButton.astro +60 -0
- package/src/components/lib/buttons/3dPushButton.astro +136 -0
- package/src/components/lib/buttons/AnimatedIconButton.astro +146 -0
- package/src/components/lib/buttons/BorderDrawButton.astro +112 -0
- package/src/components/lib/buttons/CyberpunkButton.astro +148 -0
- package/src/components/lib/buttons/DoubleBorderButton.astro +131 -0
- package/src/components/lib/buttons/GhostOutlineButton.astro +109 -0
- package/src/components/lib/buttons/GlassButton.astro +165 -0
- package/src/components/lib/buttons/GlowButton.astro +119 -0
- package/src/components/lib/buttons/LiquidButton.astro +167 -0
- package/src/components/lib/buttons/LoadingButton.astro +148 -0
- package/src/components/lib/buttons/MagneticButton.astro +134 -0
- package/src/components/lib/buttons/MinimalPillButton.astro +102 -0
- package/src/components/lib/buttons/NeumorphicButton.astro +158 -0
- package/src/components/lib/buttons/PulseButton.astro +111 -0
- package/src/components/lib/buttons/RetroArcadeButton.astro +105 -0
- package/src/components/lib/buttons/RetroShadowButton.astro +82 -0
- package/src/components/lib/buttons/ShimmerButton.astro +113 -0
- package/src/components/lib/buttons/ShinyButton.astro +121 -0
- package/src/components/lib/buttons/TiltGlowButton.astro +145 -0
- package/src/components/lib/buttons/index.ts +19 -0
- package/src/components/lib/cards/BlogHorizontalCard.astro +18 -0
- package/src/components/lib/cards/CyberFeatureCard.astro +12 -0
- package/src/components/lib/cards/EcommerceProductCard.astro +24 -0
- package/src/components/lib/cards/GlassCard.astro +17 -0
- package/src/components/lib/cards/GlassEventCard.astro +19 -0
- package/src/components/lib/cards/GlowPortfolioCard.astro +16 -0
- package/src/components/lib/cards/InteractiveTiltCard.astro +25 -0
- package/src/components/lib/cards/KanbanItemCard.astro +15 -0
- package/src/components/lib/cards/MinimalLinkCard.astro +12 -0
- package/src/components/lib/cards/MusicPlayerMini.astro +21 -0
- package/src/components/lib/cards/NeumorphicCard.astro +6 -0
- package/src/components/lib/cards/NotificationCard.astro +15 -0
- package/src/components/lib/cards/PricingCard.astro +17 -0
- package/src/components/lib/cards/ProfileCard.astro +17 -0
- package/src/components/lib/cards/RetroGameCard.astro +15 -0
- package/src/components/lib/cards/StatCard.astro +15 -0
- package/src/components/lib/cards/TaskKanbanCard.astro +18 -0
- package/src/components/lib/cards/TestimonialCardClean.astro +20 -0
- package/src/components/lib/cards/WeatherWidgetCard.astro +17 -0
- package/src/components/lib/cards/index.ts +19 -0
- package/src/components/lib/data/AccordionGroupGlass.astro +21 -0
- package/src/components/lib/data/AvatarGroupStack.astro +15 -0
- package/src/components/lib/data/CalendarGridView.astro +18 -0
- package/src/components/lib/data/DataChipsGroup.astro +16 -0
- package/src/components/lib/data/DescriptionListHoriz.astro +14 -0
- package/src/components/lib/data/FileTreeView.astro +22 -0
- package/src/components/lib/data/GanttChartMinimal.astro +12 -0
- package/src/components/lib/data/GlassTable.astro +23 -0
- package/src/components/lib/data/KeyValuePillGroup.astro +12 -0
- package/src/components/lib/data/PriceCompareTable.astro +22 -0
- package/src/components/lib/data/ProgressListSmall.astro +17 -0
- package/src/components/lib/data/RatingBreakdownBar.astro +13 -0
- package/src/components/lib/data/SparklineStatCard.astro +16 -0
- package/src/components/lib/data/StatsGridDashboard.astro +16 -0
- package/src/components/lib/data/StepperDataVertical.astro +15 -0
- package/src/components/lib/data/TagCloudData.astro +14 -0
- package/src/components/lib/data/TimelineHorizSteps.astro +18 -0
- package/src/components/lib/data/TreeItemInteractive.astro +18 -0
- package/src/components/lib/data/UserDirectoryItem.astro +15 -0
- package/src/components/lib/data/VerticalTimeline.astro +21 -0
- package/src/components/lib/data/index.ts +20 -0
- package/src/components/lib/feedback/AnimatedCheckmark.astro +13 -0
- package/src/components/lib/feedback/Badge.astro +19 -0
- package/src/components/lib/feedback/CircleProgress.astro +22 -0
- package/src/components/lib/feedback/ConfettiFeedback.astro +18 -0
- package/src/components/lib/feedback/CyberGlitchAlert.astro +11 -0
- package/src/components/lib/feedback/EmptyStateCard.astro +13 -0
- package/src/components/lib/feedback/GlassAlert.astro +20 -0
- package/src/components/lib/feedback/GlassModal.astro +19 -0
- package/src/components/lib/feedback/GlassProgress.astro +10 -0
- package/src/components/lib/feedback/IndicatorBadgeMinimal.astro +10 -0
- package/src/components/lib/feedback/NeonSpinner.astro +7 -0
- package/src/components/lib/feedback/PulseDot.astro +12 -0
- package/src/components/lib/feedback/RatingPill.astro +13 -0
- package/src/components/lib/feedback/ShakeErrorGroup.astro +7 -0
- package/src/components/lib/feedback/SimpleTooltip.astro +10 -0
- package/src/components/lib/feedback/SkeletonList.astro +20 -0
- package/src/components/lib/feedback/Spotlight.astro +9 -0
- package/src/components/lib/feedback/StepProgress.astro +14 -0
- package/src/components/lib/feedback/ToastNotif.astro +11 -0
- package/src/components/lib/feedback/TypingIndicator.astro +12 -0
- package/src/components/lib/feedback/index.ts +20 -0
- package/src/components/lib/forms/AnimatedInput.astro +16 -0
- package/src/components/lib/forms/ChipInput.astro +13 -0
- package/src/components/lib/forms/ColorPickerInput.astro +13 -0
- package/src/components/lib/forms/CurrencyInput.astro +11 -0
- package/src/components/lib/forms/CustomRadioGroup.astro +13 -0
- package/src/components/lib/forms/CyberpunkCheckbox.astro +15 -0
- package/src/components/lib/forms/DragDropUpload.astro +12 -0
- package/src/components/lib/forms/ErrorInput.astro +11 -0
- package/src/components/lib/forms/FloatingPassword.astro +20 -0
- package/src/components/lib/forms/FormGroupVertical.astro +14 -0
- package/src/components/lib/forms/GlassSlider.astro +7 -0
- package/src/components/lib/forms/GlassTextarea.astro +14 -0
- package/src/components/lib/forms/ModernSelect.astro +16 -0
- package/src/components/lib/forms/NeumorphicSwitch.astro +55 -0
- package/src/components/lib/forms/OTPInput.astro +22 -0
- package/src/components/lib/forms/RatingStars.astro +15 -0
- package/src/components/lib/forms/SearchReveal.astro +13 -0
- package/src/components/lib/forms/SegmentedControl.astro +13 -0
- package/src/components/lib/forms/SimpleFileInput.astro +11 -0
- package/src/components/lib/forms/StepperInput.astro +14 -0
- package/src/components/lib/forms/index.ts +20 -0
- package/src/components/lib/index.ts +6 -0
- package/src/components/lib/layout/BentoGrid3.astro +14 -0
- package/src/components/lib/layout/CenterFixedBox.astro +6 -0
- package/src/components/lib/layout/CenteredContainer.astro +8 -0
- package/src/components/lib/layout/ClusterHorizontal.astro +6 -0
- package/src/components/lib/layout/FeatureHero.astro +17 -0
- package/src/components/lib/layout/FooterCenteredMinimal.astro +11 -0
- package/src/components/lib/layout/FullBleedSection.astro +6 -0
- package/src/components/lib/layout/GalleryGrid4.astro +7 -0
- package/src/components/lib/layout/GlassCardGrid.astro +6 -0
- package/src/components/lib/layout/GlassSectionHeader.astro +15 -0
- package/src/components/lib/layout/LandingSectionSplit.astro +13 -0
- package/src/components/lib/layout/MasonryGrid.astro +7 -0
- package/src/components/lib/layout/MinimalFooterGrid.astro +20 -0
- package/src/components/lib/layout/ScrollSnapSection.astro +7 -0
- package/src/components/lib/layout/SectionDividerText.astro +7 -0
- package/src/components/lib/layout/SidebarLayoutWrapper.astro +11 -0
- package/src/components/lib/layout/SplitScreenLayout.astro +11 -0
- package/src/components/lib/layout/StepLayoutVertical.astro +21 -0
- package/src/components/lib/layout/StickySidebarWrapper.astro +10 -0
- package/src/components/lib/layout/VerticalStack.astro +8 -0
- package/src/components/lib/layout/index.ts +20 -0
- package/src/components/lib/navigation/AnchorSideNav.astro +13 -0
- package/src/components/lib/navigation/BottomNavMobile.astro +13 -0
- package/src/components/lib/navigation/BreadcrumbsMinimal.astro +16 -0
- package/src/components/lib/navigation/BurgerMorphIcon.astro +12 -0
- package/src/components/lib/navigation/CommandPaletteUI.astro +17 -0
- package/src/components/lib/navigation/DotNavigationSlider.astro +13 -0
- package/src/components/lib/navigation/FloatingTabBar.astro +12 -0
- package/src/components/lib/navigation/GlassNavbar.astro +19 -0
- package/src/components/lib/navigation/LangSwitcherPill.astro +17 -0
- package/src/components/lib/navigation/MegaMenuGlass.astro +25 -0
- package/src/components/lib/navigation/MinimalSidebar.astro +18 -0
- package/src/components/lib/navigation/PaginationGlass.astro +20 -0
- package/src/components/lib/navigation/PaginationInfiniteUI.astro +11 -0
- package/src/components/lib/navigation/RadialIconMenu.astro +15 -0
- package/src/components/lib/navigation/RetroArcadeMenu.astro +12 -0
- package/src/components/lib/navigation/ScrollProgressTop.astro +15 -0
- package/src/components/lib/navigation/SimpleFooterGlass.astro +21 -0
- package/src/components/lib/navigation/TabUnderline.astro +14 -0
- package/src/components/lib/navigation/UserProfileNav.astro +21 -0
- package/src/components/lib/navigation/VerticalTabs.astro +14 -0
- package/src/components/lib/navigation/index.ts +20 -0
- package/src/components/lib/overlays/AgeVerificationOverlay.astro +20 -0
- package/src/components/lib/overlays/BackdropBlurMask.astro +6 -0
- package/src/components/lib/overlays/BottomSheetMobile.astro +16 -0
- package/src/components/lib/overlays/CommandDialog.astro +19 -0
- package/src/components/lib/overlays/ContextMenuOverlay.astro +17 -0
- package/src/components/lib/overlays/CookieBannerGlass.astro +14 -0
- package/src/components/lib/overlays/ExitIntentOverlay.astro +19 -0
- package/src/components/lib/overlays/FloatingTrayActions.astro +13 -0
- package/src/components/lib/overlays/HelpBubbleOverlay.astro +11 -0
- package/src/components/lib/overlays/LightboxOverlay.astro +13 -0
- package/src/components/lib/overlays/LoadingOverlayFull.astro +10 -0
- package/src/components/lib/overlays/MobileNavOverlay.astro +18 -0
- package/src/components/lib/overlays/OverlayModal.astro +24 -0
- package/src/components/lib/overlays/PopoverMenuGlass.astro +17 -0
- package/src/components/lib/overlays/SearchOverlayFullscreen.astro +15 -0
- package/src/components/lib/overlays/SideDrawerRight.astro +16 -0
- package/src/components/lib/overlays/SplashIntroOverlay.astro +11 -0
- package/src/components/lib/overlays/SpotlightIndicator.astro +6 -0
- package/src/components/lib/overlays/ToastStackOverlay.astro +12 -0
- package/src/components/lib/overlays/TooltipActionTray.astro +14 -0
- package/src/components/lib/overlays/index.ts +20 -0
- package/src/components/lib/typography/AnimatedUnderlineLink.astro +10 -0
- package/src/components/lib/typography/BackgroundClipMask.astro +7 -0
- package/src/components/lib/typography/CodeInlineGlass.astro +6 -0
- package/src/components/lib/typography/CyberpunkGlitchText.astro +20 -0
- package/src/components/lib/typography/DropCapParagraph.astro +7 -0
- package/src/components/lib/typography/FadedVerticalText.astro +6 -0
- package/src/components/lib/typography/FloatingTextLabel.astro +10 -0
- package/src/components/lib/typography/GlassBlockQuote.astro +13 -0
- package/src/components/lib/typography/GlassTextReveal.astro +7 -0
- package/src/components/lib/typography/GradientHeading.astro +9 -0
- package/src/components/lib/typography/GradientUnderlineLink.astro +7 -0
- package/src/components/lib/typography/KbdIndicator.astro +6 -0
- package/src/components/lib/typography/LetterSpacingWide.astro +6 -0
- package/src/components/lib/typography/MinimalListMarkers.astro +10 -0
- package/src/components/lib/typography/MonospaceStatLine.astro +6 -0
- package/src/components/lib/typography/NeonTextHighlight.astro +6 -0
- package/src/components/lib/typography/ShadowRevealText.astro +7 -0
- package/src/components/lib/typography/StrokeHeadingOutline.astro +8 -0
- package/src/components/lib/typography/Text3DLayer.astro +7 -0
- package/src/components/lib/typography/TypewriterText.astro +15 -0
- package/src/components/lib/typography/index.ts +20 -0
- package/src/components/lib/utilities/AspectRatioBox.astro +11 -0
- package/src/components/lib/utilities/BackgroundDotPattern.astro +6 -0
- package/src/components/lib/utilities/CircularMask.astro +7 -0
- package/src/components/lib/utilities/ClickRippleWrapper.astro +7 -0
- package/src/components/lib/utilities/FadeInWrapper.astro +11 -0
- package/src/components/lib/utilities/FixedRatioImage.astro +7 -0
- package/src/components/lib/utilities/GlassBlurLayer.astro +6 -0
- package/src/components/lib/utilities/GradientBorderMask.astro +7 -0
- package/src/components/lib/utilities/HoverLift.astro +7 -0
- package/src/components/lib/utilities/ResponsiveSpacer.astro +15 -0
- package/src/components/lib/utilities/ResponsiveVisToggle.astro +11 -0
- package/src/components/lib/utilities/ScrollLockParent.astro +11 -0
- package/src/components/lib/utilities/ScrollMarginTarget.astro +10 -0
- package/src/components/lib/utilities/SlideUpReveal.astro +7 -0
- package/src/components/lib/utilities/SmoothAnchorLink.astro +22 -0
- package/src/components/lib/utilities/StackLayering.astro +12 -0
- package/src/components/lib/utilities/StickyObserver.astro +8 -0
- package/src/components/lib/utilities/TextTruncate.astro +10 -0
- package/src/components/lib/utilities/TruncateSingleLine.astro +6 -0
- package/src/components/lib/utilities/VisuallyHidden.astro +6 -0
- 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,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,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,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,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,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,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,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>
|