astro-component-kit 0.3.1 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +133 -36
- package/package.json +17 -4
- package/src/components/index.ts +18 -202
- package/src/components/lib/Galaxy3D.astro +249 -137
- package/src/components/lib/app/AppSidebar.astro +249 -0
- package/src/components/lib/app/AppTopbar.astro +284 -0
- package/src/components/lib/app/ArrivalsBoard.astro +176 -0
- package/src/components/lib/app/AuthCard.astro +213 -0
- package/src/components/lib/app/DataTable.astro +346 -0
- package/src/components/lib/app/GuestProfileCard.astro +133 -0
- package/src/components/lib/app/HousekeepingBoard.astro +189 -0
- package/src/components/lib/app/PageHeader.astro +157 -0
- package/src/components/lib/app/PlanUsageCard.astro +112 -0
- package/src/components/lib/app/RoomRack.astro +207 -0
- package/src/components/lib/app/SettingsSection.astro +96 -0
- package/src/components/lib/app/SwitchRow.astro +71 -0
- package/src/components/lib/app/TeamMembers.astro +190 -0
- package/src/components/lib/app/app-icons.ts +52 -0
- package/src/components/lib/app/index.ts +19 -0
- package/src/components/lib/buttons/NeonBorderButton.astro +162 -0
- package/src/components/lib/buttons/RippleButton.astro +199 -0
- package/src/components/lib/buttons/SlideRevealButton.astro +159 -0
- package/src/components/lib/buttons/index.ts +4 -0
- package/src/components/lib/cards/GithubRepoCard.astro +176 -0
- package/src/components/lib/cards/PricingCompareMiniCard.astro +196 -0
- package/src/components/lib/cards/StatsTrendCard.astro +149 -0
- package/src/components/lib/cards/index.ts +3 -0
- package/src/components/lib/charts/ActivityRings.astro +105 -0
- package/src/components/lib/charts/AreaChart.astro +4 -4
- package/src/components/lib/charts/BarChart.astro +3 -3
- package/src/components/lib/charts/BoxPlotChart.astro +109 -0
- package/src/components/lib/charts/BubbleChart.astro +101 -0
- package/src/components/lib/charts/BulletChart.astro +160 -0
- package/src/components/lib/charts/BumpChart.astro +92 -0
- package/src/components/lib/charts/CandlestickChart.astro +105 -0
- package/src/components/lib/charts/ChartFrame.astro +373 -0
- package/src/components/lib/charts/DivergingBarChart.astro +98 -0
- package/src/components/lib/charts/DonutChart.astro +2 -2
- package/src/components/lib/charts/DumbbellChart.astro +92 -0
- package/src/components/lib/charts/ForecastLineChart.astro +125 -0
- package/src/components/lib/charts/FunnelChart.astro +122 -0
- package/src/components/lib/charts/GaugeChart.astro +111 -0
- package/src/components/lib/charts/GoalProgressChart.astro +97 -0
- package/src/components/lib/charts/GroupedBarChart.astro +125 -0
- package/src/components/lib/charts/HeatmapChart.astro +131 -0
- package/src/components/lib/charts/HistogramChart.astro +111 -0
- package/src/components/lib/charts/HorizontalBarChart.astro +155 -0
- package/src/components/lib/charts/KpiStatTile.astro +116 -0
- package/src/components/lib/charts/KpiTrendGrid.astro +60 -0
- package/src/components/lib/charts/LineChart.astro +160 -0
- package/src/components/lib/charts/LinearProgressGauge.astro +136 -0
- package/src/components/lib/charts/LollipopChart.astro +100 -0
- package/src/components/lib/charts/MeterGauge.astro +122 -0
- package/src/components/lib/charts/MetricDeltaTable.astro +125 -0
- package/src/components/lib/charts/PieChart.astro +135 -0
- package/src/components/lib/charts/PolarAreaChart.astro +85 -0
- package/src/components/lib/charts/PopulationPyramid.astro +122 -0
- package/src/components/lib/charts/PunchCardChart.astro +89 -0
- package/src/components/lib/charts/RadarChart.astro +94 -0
- package/src/components/lib/charts/RadarMetricChart.astro +168 -0
- package/src/components/lib/charts/RadialBarChart.astro +124 -0
- package/src/components/lib/charts/RangeAreaChart.astro +113 -0
- package/src/components/lib/charts/RetentionCohortTable.astro +126 -0
- package/src/components/lib/charts/SankeyChart.astro +128 -0
- package/src/components/lib/charts/ScatterPlot.astro +139 -0
- package/src/components/lib/charts/SegmentedBarChart.astro +119 -0
- package/src/components/lib/charts/SlopeChart.astro +105 -0
- package/src/components/lib/charts/SparklineChart.astro +87 -0
- package/src/components/lib/charts/StackedAreaChart.astro +130 -0
- package/src/components/lib/charts/StackedBarChart.astro +136 -0
- package/src/components/lib/charts/SunburstChart.astro +103 -0
- package/src/components/lib/charts/TreemapChart.astro +94 -0
- package/src/components/lib/charts/WaffleChart.astro +121 -0
- package/src/components/lib/charts/WaterfallChart.astro +118 -0
- package/src/components/lib/charts/chart-tooltip.ts +75 -0
- package/src/components/lib/charts/chart-utils.ts +271 -0
- package/src/components/lib/charts/index.ts +46 -0
- package/src/components/lib/data/ActivityHeatmapGrid.astro +157 -0
- package/src/components/lib/data/MetricComparisonRow.astro +109 -0
- package/src/components/lib/data/StatusTimelineFeed.astro +168 -0
- package/src/components/lib/data/index.ts +3 -0
- package/src/components/lib/ecommerce/CartDrawer.astro +483 -0
- package/src/components/lib/ecommerce/CartPageList.astro +290 -0
- package/src/components/lib/ecommerce/CartToast.astro +276 -0
- package/src/components/lib/ecommerce/CategoryTiles.astro +143 -0
- package/src/components/lib/ecommerce/CheckoutForm.astro +423 -0
- package/src/components/lib/ecommerce/CountdownBanner.astro +230 -0
- package/src/components/lib/ecommerce/FilterBar.astro +278 -0
- package/src/components/lib/ecommerce/FilterSidebar.astro +405 -0
- package/src/components/lib/ecommerce/LiveActivityToast.astro +213 -0
- package/src/components/lib/ecommerce/OrderSummary.astro +295 -0
- package/src/components/lib/ecommerce/ProductBuyBox.astro +247 -0
- package/src/components/lib/ecommerce/ProductCardMinimal.astro +229 -0
- package/src/components/lib/ecommerce/ProductGallery.astro +145 -0
- package/src/components/lib/ecommerce/ProductGrid.astro +118 -0
- package/src/components/lib/ecommerce/ProductMedia.astro +113 -0
- package/src/components/lib/ecommerce/ProductRating.astro +78 -0
- package/src/components/lib/ecommerce/ProductToolbar.astro +93 -0
- package/src/components/lib/ecommerce/PromoBar.astro +145 -0
- package/src/components/lib/ecommerce/StockIndicator.astro +127 -0
- package/src/components/lib/ecommerce/StoreHeader.astro +446 -0
- package/src/components/lib/ecommerce/StoreHero.astro +260 -0
- package/src/components/lib/ecommerce/StoreProductCard.astro +307 -0
- package/src/components/lib/ecommerce/TrustBadges.astro +101 -0
- package/src/components/lib/ecommerce/VariantPicker.astro +145 -0
- package/src/components/lib/ecommerce/cart-store.ts +151 -0
- package/src/components/lib/ecommerce/catalog-filter.ts +62 -0
- package/src/components/lib/ecommerce/index.ts +34 -0
- package/src/components/lib/ecommerce/product-icons.ts +28 -0
- package/src/components/lib/ecommerce/types.ts +70 -0
- package/src/components/lib/feedback/ProgressRingCounter.astro +118 -0
- package/src/components/lib/feedback/ToastNotificationGroup.astro +173 -0
- package/src/components/lib/feedback/index.ts +2 -0
- package/src/components/lib/forms/AnimatedInput.astro +4 -2
- package/src/components/lib/forms/CustomRadioGroup.astro +3 -1
- package/src/components/lib/forms/GlassInlineToggleGroup.astro +161 -0
- package/src/components/lib/forms/PasswordStrengthInput.astro +242 -0
- package/src/components/lib/forms/PhoneCountryInput.astro +145 -0
- package/src/components/lib/forms/TagsAutocompleteInput.astro +249 -0
- package/src/components/lib/forms/index.ts +5 -0
- package/src/components/lib/index.ts +2 -0
- package/src/components/lib/layout/BentoGrid3.astro +6 -4
- package/src/components/lib/layout/CenterFixedBox.astro +2 -2
- package/src/components/lib/layout/CenteredContainer.astro +4 -2
- package/src/components/lib/layout/ClusterHorizontal.astro +2 -2
- package/src/components/lib/layout/DiagonalSectionDivider.astro +69 -0
- package/src/components/lib/layout/FeatureHero.astro +4 -2
- package/src/components/lib/layout/FooterCenteredMinimal.astro +4 -2
- package/src/components/lib/layout/FullBleedSection.astro +2 -2
- package/src/components/lib/layout/GalleryGrid4.astro +2 -2
- package/src/components/lib/layout/HolyGrailGrid.astro +127 -0
- package/src/components/lib/layout/LandingSectionSplit.astro +5 -3
- package/src/components/lib/layout/MasonryGrid.astro +2 -2
- package/src/components/lib/layout/MinimalFooterGrid.astro +1 -1
- package/src/components/lib/layout/ScrollSnapSection.astro +1 -1
- package/src/components/lib/layout/SidebarLayoutWrapper.astro +4 -2
- package/src/components/lib/layout/SplitScreenLayout.astro +3 -3
- package/src/components/lib/layout/StepLayoutVertical.astro +1 -1
- package/src/components/lib/layout/StickySidebarWrapper.astro +4 -2
- package/src/components/lib/layout/index.ts +3 -1
- package/src/components/lib/navigation/QuickJumpDock.astro +125 -0
- package/src/components/lib/navigation/StepBreadcrumbBar.astro +151 -0
- package/src/components/lib/navigation/SubNavbarPills.astro +102 -0
- package/src/components/lib/navigation/index.ts +3 -0
- package/src/components/lib/overlays/CookiePreferencesDrawer.astro +226 -0
- package/src/components/lib/overlays/FloatingFeedbackWidget.astro +203 -0
- package/src/components/lib/overlays/ImageCompareSlider.astro +172 -0
- package/src/components/lib/overlays/index.ts +3 -0
- package/src/components/lib/sections/AgencyContactBrief.astro +194 -0
- package/src/components/lib/sections/AgencyFooterCta.astro +94 -0
- package/src/components/lib/sections/AgencyHeader.astro +161 -0
- package/src/components/lib/sections/AgencyHeroKinetic.astro +172 -0
- package/src/components/lib/sections/AgencyServicesList.astro +113 -0
- package/src/components/lib/sections/AgencyTeamGrid.astro +111 -0
- package/src/components/lib/sections/AgencyWorkGrid.astro +147 -0
- package/src/components/lib/sections/BlogGridSection.astro +133 -0
- package/src/components/lib/sections/ButtonsShowcase.astro +20 -18
- package/src/components/lib/sections/CardsShowcase.astro +28 -26
- package/src/components/lib/sections/CareersOpenings.astro +141 -0
- package/src/components/lib/sections/ChangelogSection.astro +151 -0
- package/src/components/lib/sections/ContactGlassForm.astro +10 -8
- package/src/components/lib/sections/ContactSplitMap.astro +141 -0
- package/src/components/lib/sections/CtaAppDownload.astro +13 -11
- package/src/components/lib/sections/CtaGlowBanner.astro +12 -10
- package/src/components/lib/sections/CtaNewsletterSection.astro +165 -0
- package/src/components/lib/sections/CtaSplitImage.astro +149 -0
- package/src/components/lib/sections/DataShowcase.astro +23 -21
- package/src/components/lib/sections/FaqAccordionSection.astro +8 -8
- package/src/components/lib/sections/FaqTwoColumn.astro +121 -0
- package/src/components/lib/sections/FeatureAlternatingRows.astro +192 -0
- package/src/components/lib/sections/FeatureBentoGrid.astro +13 -11
- package/src/components/lib/sections/FeatureIconGrid.astro +155 -0
- package/src/components/lib/sections/FeatureTabsShowcase.astro +182 -0
- package/src/components/lib/sections/FeatureTimelineFlow.astro +8 -6
- package/src/components/lib/sections/FeedbackShowcase.astro +15 -13
- package/src/components/lib/sections/FooterMegaSection.astro +157 -0
- package/src/components/lib/sections/FormsShowcase.astro +22 -20
- package/src/components/lib/sections/HeroDashboardPreview.astro +182 -0
- package/src/components/lib/sections/HeroGlass.astro +22 -20
- package/src/components/lib/sections/HeroGradient.astro +15 -13
- package/src/components/lib/sections/HeroMinimalCentered.astro +175 -0
- package/src/components/lib/sections/HeroShowcaseSplit.astro +306 -0
- package/src/components/lib/sections/HeroSplit.astro +13 -11
- package/src/components/lib/sections/HeroTerminal.astro +253 -0
- package/src/components/lib/sections/HeroWaitlist.astro +231 -0
- package/src/components/lib/sections/HowItWorksSteps.astro +180 -0
- package/src/components/lib/sections/IntegrationsGrid.astro +167 -0
- package/src/components/lib/sections/LayoutShowcase.astro +21 -19
- package/src/components/lib/sections/LogoCloudSection.astro +96 -0
- package/src/components/lib/sections/LogoWallGrid.astro +93 -0
- package/src/components/lib/sections/NavigationShowcase.astro +15 -13
- package/src/components/lib/sections/OverlaysShowcase.astro +21 -19
- package/src/components/lib/sections/PricingComparisonMatrix.astro +15 -13
- package/src/components/lib/sections/PricingSinglePlan.astro +159 -0
- package/src/components/lib/sections/PricingTierCards.astro +11 -9
- package/src/components/lib/sections/PricingToggleCards.astro +171 -0
- package/src/components/lib/sections/ShopCategoryHero.astro +103 -0
- package/src/components/lib/sections/ShopCollectionMosaic.astro +131 -0
- package/src/components/lib/sections/ShopFooterWordmark.astro +100 -0
- package/src/components/lib/sections/ShopHeaderEditorial.astro +396 -0
- package/src/components/lib/sections/ShopHeroEditorial.astro +151 -0
- package/src/components/lib/sections/ShopLookbook.astro +250 -0
- package/src/components/lib/sections/ShopNewsletterEditorial.astro +128 -0
- package/src/components/lib/sections/ShopProductRail.astro +150 -0
- package/src/components/lib/sections/ShopReviewsEditorial.astro +133 -0
- package/src/components/lib/sections/ShopValuesMarquee.astro +91 -0
- package/src/components/lib/sections/StatsCounterBand.astro +124 -0
- package/src/components/lib/sections/StatsDashboardSection.astro +85 -0
- package/src/components/lib/sections/StatsMetricShowcase.astro +9 -7
- package/src/components/lib/sections/TeamGridSection.astro +12 -10
- package/src/components/lib/sections/TestimonialCarousel.astro +167 -0
- package/src/components/lib/sections/TestimonialFeatured.astro +122 -0
- package/src/components/lib/sections/TestimonialGridSection.astro +188 -0
- package/src/components/lib/sections/TestimonialWallGlass.astro +11 -9
- package/src/components/lib/sections/TypographyShowcase.astro +10 -8
- package/src/components/lib/sections/index.ts +39 -0
- package/src/components/lib/templates/ecommerce/StoreCategoryPage.astro +160 -0
- package/src/components/lib/templates/ecommerce/StoreCheckoutPage.astro +98 -0
- package/src/components/lib/templates/ecommerce/StoreHomePage.astro +191 -0
- package/src/components/lib/templates/ecommerce/StoreLayout.astro +169 -0
- package/src/components/lib/templates/ecommerce/StoreProductPage.astro +165 -0
- package/src/components/lib/templates/ecommerce/data.ts +187 -0
- package/src/components/lib/templates/ecommerce/index.ts +14 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialBagPage.astro +52 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialCheckoutPage.astro +123 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialHomePage.astro +102 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialLayout.astro +216 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialProductPage.astro +205 -0
- package/src/components/lib/templates/ecommerce-editorial/EditorialShopPage.astro +112 -0
- package/src/components/lib/templates/ecommerce-editorial/data.ts +125 -0
- package/src/components/lib/templates/ecommerce-editorial/index.ts +16 -0
- package/src/components/lib/templates/saas-hotel/AppLayout.astro +83 -0
- package/src/components/lib/templates/saas-hotel/DashboardPage.astro +66 -0
- package/src/components/lib/templates/saas-hotel/GuestsPage.astro +65 -0
- package/src/components/lib/templates/saas-hotel/LandingPage.astro +213 -0
- package/src/components/lib/templates/saas-hotel/ReportsPage.astro +63 -0
- package/src/components/lib/templates/saas-hotel/ReservationsPage.astro +49 -0
- package/src/components/lib/templates/saas-hotel/RoomsPage.astro +48 -0
- package/src/components/lib/templates/saas-hotel/SettingsPage.astro +115 -0
- package/src/components/lib/templates/saas-hotel/SignInPage.astro +50 -0
- package/src/components/lib/templates/saas-hotel/data.ts +229 -0
- package/src/components/lib/templates/saas-hotel/index.ts +19 -0
- package/src/components/lib/templates/saas-hotel/lobby-theme.css +90 -0
- package/src/components/lib/typography/AnimatedCounterText.astro +102 -0
- package/src/components/lib/typography/CurvedPathHeading.astro +86 -0
- package/src/components/lib/typography/GradientTextMarquee.astro +105 -0
- package/src/components/lib/typography/HackerDecodeText.astro +85 -0
- package/src/components/lib/typography/index.ts +4 -0
- package/src/styles/global.css +113 -1
|
@@ -8,6 +8,7 @@ interface Props {
|
|
|
8
8
|
const { title = "Forms", subtitle = "Form elements with clean animations and validation states." } = Astro.props;
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
<div class="cq-forms-showcase-cq">
|
|
11
12
|
<section class="forms-showcase">
|
|
12
13
|
<div class="container">
|
|
13
14
|
<div class="showcase-header">
|
|
@@ -79,8 +80,9 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
79
80
|
</div>
|
|
80
81
|
</div>
|
|
81
82
|
</section>
|
|
82
|
-
|
|
83
|
+
</div>
|
|
83
84
|
<style>
|
|
85
|
+
.cq-forms-showcase-cq { container-type: inline-size; }
|
|
84
86
|
.forms-showcase {
|
|
85
87
|
padding: var(--sp-16) 0;
|
|
86
88
|
position: relative;
|
|
@@ -97,8 +99,8 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
97
99
|
text-transform: uppercase;
|
|
98
100
|
letter-spacing: 0.1em;
|
|
99
101
|
color: var(--c-primary-light);
|
|
100
|
-
background:
|
|
101
|
-
border: 1px solid
|
|
102
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 10%, transparent);
|
|
103
|
+
border: 1px solid color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent);
|
|
102
104
|
border-radius: var(--r-full);
|
|
103
105
|
margin-bottom: var(--sp-4);
|
|
104
106
|
}
|
|
@@ -120,7 +122,7 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
120
122
|
padding: var(--sp-12);
|
|
121
123
|
background: rgba(10, 10, 10, 0.6);
|
|
122
124
|
backdrop-filter: blur(20px);
|
|
123
|
-
border: 1px solid
|
|
125
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
124
126
|
border-radius: var(--r-xl);
|
|
125
127
|
margin-bottom: var(--sp-6);
|
|
126
128
|
box-shadow: 0 20px 60px rgba(0,0,0,0.4);
|
|
@@ -149,8 +151,8 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
149
151
|
font-size: 0.9rem;
|
|
150
152
|
font-family: var(--font-sans);
|
|
151
153
|
color: var(--c-text-1);
|
|
152
|
-
background:
|
|
153
|
-
border: 1px solid
|
|
154
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
155
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
154
156
|
border-radius: var(--r-md);
|
|
155
157
|
outline: none;
|
|
156
158
|
transition: all 0.3s ease;
|
|
@@ -202,9 +204,9 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
202
204
|
}
|
|
203
205
|
.textarea-mockup {
|
|
204
206
|
padding: 0.85rem 1rem;
|
|
205
|
-
background:
|
|
207
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
206
208
|
backdrop-filter: blur(12px);
|
|
207
|
-
border: 1px solid
|
|
209
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
208
210
|
border-radius: var(--r-md);
|
|
209
211
|
display: flex;
|
|
210
212
|
flex-direction: column;
|
|
@@ -213,7 +215,7 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
213
215
|
}
|
|
214
216
|
.textarea-line {
|
|
215
217
|
height: 8px;
|
|
216
|
-
background:
|
|
218
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
217
219
|
border-radius: var(--r-sm);
|
|
218
220
|
width: 100%;
|
|
219
221
|
}
|
|
@@ -241,12 +243,12 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
241
243
|
display: flex;
|
|
242
244
|
align-items: center;
|
|
243
245
|
justify-content: center;
|
|
244
|
-
box-shadow: 0 2px 8px
|
|
246
|
+
box-shadow: 0 2px 8px color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
245
247
|
}
|
|
246
248
|
.checkbox-check {
|
|
247
249
|
width: 14px;
|
|
248
250
|
height: 14px;
|
|
249
|
-
color: #0a0a0a;
|
|
251
|
+
color: var(--c-on-primary, #0a0a0a);
|
|
250
252
|
}
|
|
251
253
|
.checkbox-label {
|
|
252
254
|
font-size: 0.85rem;
|
|
@@ -261,8 +263,8 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
261
263
|
.toggle-track {
|
|
262
264
|
width: 44px;
|
|
263
265
|
height: 24px;
|
|
264
|
-
background:
|
|
265
|
-
border: 1px solid
|
|
266
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
267
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.15);
|
|
266
268
|
border-radius: var(--r-full);
|
|
267
269
|
position: relative;
|
|
268
270
|
}
|
|
@@ -274,7 +276,7 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
274
276
|
height: 18px;
|
|
275
277
|
background: linear-gradient(135deg, var(--c-primary-light), var(--c-primary));
|
|
276
278
|
border-radius: 50%;
|
|
277
|
-
box-shadow: 0 2px 6px
|
|
279
|
+
box-shadow: 0 2px 6px color-mix(in srgb, var(--c-primary, #b8860b) 40%, transparent);
|
|
278
280
|
transition: all 0.25s ease;
|
|
279
281
|
}
|
|
280
282
|
.toggle-label {
|
|
@@ -295,9 +297,9 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
295
297
|
}
|
|
296
298
|
.select-display {
|
|
297
299
|
padding: 0.85rem 1rem;
|
|
298
|
-
background:
|
|
300
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
299
301
|
backdrop-filter: blur(12px);
|
|
300
|
-
border: 1px solid
|
|
302
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
301
303
|
border-radius: var(--r-md);
|
|
302
304
|
display: flex;
|
|
303
305
|
align-items: center;
|
|
@@ -306,8 +308,8 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
306
308
|
transition: all 0.25s ease;
|
|
307
309
|
}
|
|
308
310
|
.select-display:hover {
|
|
309
|
-
border-color:
|
|
310
|
-
background:
|
|
311
|
+
border-color: color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
312
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
311
313
|
}
|
|
312
314
|
.select-value {
|
|
313
315
|
font-size: 0.9rem;
|
|
@@ -323,7 +325,7 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
323
325
|
.usage-code {
|
|
324
326
|
text-align: center;
|
|
325
327
|
padding: var(--sp-4);
|
|
326
|
-
background:
|
|
328
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.02);
|
|
327
329
|
border-radius: var(--r-md);
|
|
328
330
|
}
|
|
329
331
|
.usage-code code {
|
|
@@ -332,7 +334,7 @@ const { title = "Forms", subtitle = "Form elements with clean animations and val
|
|
|
332
334
|
color: var(--c-primary-light);
|
|
333
335
|
}
|
|
334
336
|
|
|
335
|
-
@
|
|
337
|
+
@container (max-width: 640px) {
|
|
336
338
|
.form-grid {
|
|
337
339
|
grid-template-columns: 1fr;
|
|
338
340
|
gap: var(--sp-4);
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
/**
|
|
3
|
+
* HeroDashboardPreview — SaaS hero with headline, CTAs and a live-rendered
|
|
4
|
+
* product dashboard mockup built from the kit's own SVG charts.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} badge - Eyebrow badge.
|
|
7
|
+
* @param {string} title - Headline.
|
|
8
|
+
* @param {string} subtitle - Supporting paragraph.
|
|
9
|
+
* @param {{label: string, href: string}} primary - Primary CTA.
|
|
10
|
+
* @param {{label: string, href: string}} secondary - Secondary CTA.
|
|
11
|
+
* @param {string} variant - Mockup frame (browser|floating|flat).
|
|
12
|
+
* @param {string} size - Vertical rhythm (sm|md|lg).
|
|
13
|
+
* @param {string} className - Extra CSS class.
|
|
14
|
+
*/
|
|
15
|
+
import LineChart from '../charts/LineChart.astro';
|
|
16
|
+
import KpiStatTile from '../charts/KpiStatTile.astro';
|
|
17
|
+
|
|
18
|
+
interface Props {
|
|
19
|
+
badge?: string;
|
|
20
|
+
title?: string;
|
|
21
|
+
subtitle?: string;
|
|
22
|
+
primary?: { label: string; href: string };
|
|
23
|
+
secondary?: { label: string; href: string };
|
|
24
|
+
variant?: 'browser' | 'floating' | 'flat';
|
|
25
|
+
size?: 'sm' | 'md' | 'lg';
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const {
|
|
30
|
+
badge = 'Analytics, reimagined',
|
|
31
|
+
title = 'See every metric that matters, in real time',
|
|
32
|
+
subtitle = 'Unified revenue, product and infrastructure dashboards. Set up in minutes, no SQL required.',
|
|
33
|
+
primary = { label: 'Start free trial', href: '#' },
|
|
34
|
+
secondary = { label: 'Book a demo', href: '#' },
|
|
35
|
+
variant = 'browser',
|
|
36
|
+
size = 'md',
|
|
37
|
+
className = '',
|
|
38
|
+
} = Astro.props;
|
|
39
|
+
|
|
40
|
+
const id = `hdp-${Math.random().toString(36).slice(2, 8)}`;
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
<div class="cq-hero-dashboard-preview-cq">
|
|
44
|
+
<section class={`hdp hdp--${variant} hdp--${size} ${className}`} aria-labelledby={id}>
|
|
45
|
+
<div class="hdp__glow" aria-hidden="true"></div>
|
|
46
|
+
<div class="hdp__copy">
|
|
47
|
+
<span class="hdp__badge">{badge}</span>
|
|
48
|
+
<h1 id={id} class="hdp__title">{title}</h1>
|
|
49
|
+
<p class="hdp__subtitle">{subtitle}</p>
|
|
50
|
+
<div class="hdp__actions">
|
|
51
|
+
<a class="hdp__btn hdp__btn--primary" href={primary.href}>{primary.label}</a>
|
|
52
|
+
<a class="hdp__btn hdp__btn--ghost" href={secondary.href}>
|
|
53
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="10" /><path d="m10 8 6 4-6 4V8z" fill="currentColor" /></svg>
|
|
54
|
+
{secondary.label}
|
|
55
|
+
</a>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div class="hdp__mock" role="group" aria-label="Product dashboard preview">
|
|
60
|
+
{variant === 'browser' && (
|
|
61
|
+
<div class="hdp__chrome" aria-hidden="true">
|
|
62
|
+
<span></span><span></span><span></span>
|
|
63
|
+
<p>app.example.com/overview</p>
|
|
64
|
+
</div>
|
|
65
|
+
)}
|
|
66
|
+
<div class="hdp__screen">
|
|
67
|
+
<div class="hdp__kpis">
|
|
68
|
+
<KpiStatTile label="Revenue" value="$128.4k" change={9.2} period="vs last month" size="sm" variant="solid" trend={[80, 84, 90, 88, 96, 102, 110, 118, 128]} />
|
|
69
|
+
<KpiStatTile label="Active users" value="24,812" change={4.1} period="vs last month" size="sm" variant="solid" trend={[20, 21, 21.5, 22, 22.8, 23.1, 23.9, 24.2, 24.8]} />
|
|
70
|
+
<KpiStatTile label="Churn" value="2.3%" change={-0.6} invert period="vs last month" size="sm" variant="solid" trend={[3.1, 3, 2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 2.3]} />
|
|
71
|
+
</div>
|
|
72
|
+
<LineChart title="Revenue by channel" subtitle="Last 12 weeks" variant="solid" size="sm" height={220} />
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</section>
|
|
76
|
+
</div>
|
|
77
|
+
<style>
|
|
78
|
+
.cq-hero-dashboard-preview-cq { container-type: inline-size; }
|
|
79
|
+
.hdp {
|
|
80
|
+
--hdp-py: 5.5rem;
|
|
81
|
+
position: relative;
|
|
82
|
+
overflow: hidden;
|
|
83
|
+
padding: var(--hdp-py) var(--sp-6, 1.5rem) 0;
|
|
84
|
+
background: var(--c-bg, #050505);
|
|
85
|
+
}
|
|
86
|
+
.hdp--sm { --hdp-py: 3.5rem; }
|
|
87
|
+
.hdp--lg { --hdp-py: 7.5rem; }
|
|
88
|
+
.hdp__glow {
|
|
89
|
+
position: absolute;
|
|
90
|
+
top: 30%;
|
|
91
|
+
left: 50%;
|
|
92
|
+
width: 900px;
|
|
93
|
+
height: 600px;
|
|
94
|
+
transform: translateX(-50%);
|
|
95
|
+
background: radial-gradient(ellipse, rgba(57, 135, 229, 0.16), transparent 65%);
|
|
96
|
+
filter: blur(40px);
|
|
97
|
+
pointer-events: none;
|
|
98
|
+
}
|
|
99
|
+
.hdp__copy { position: relative; max-width: 760px; margin: 0 auto 3.5rem; text-align: center; }
|
|
100
|
+
.hdp__badge {
|
|
101
|
+
display: inline-block;
|
|
102
|
+
padding: 0.35rem 0.85rem;
|
|
103
|
+
border-radius: var(--r-full, 999px);
|
|
104
|
+
background: rgba(57, 135, 229, 0.12);
|
|
105
|
+
border: 1px solid rgba(57, 135, 229, 0.3);
|
|
106
|
+
color: #a9cdf7;
|
|
107
|
+
font-size: 0.8125rem;
|
|
108
|
+
font-weight: 600;
|
|
109
|
+
}
|
|
110
|
+
.hdp__title {
|
|
111
|
+
margin: 1.4rem 0 1rem;
|
|
112
|
+
font-size: clamp(2.25rem, 5.5vw, 3.75rem);
|
|
113
|
+
font-weight: 800;
|
|
114
|
+
letter-spacing: -0.035em;
|
|
115
|
+
line-height: 1.06;
|
|
116
|
+
color: var(--c-text-1, #fff);
|
|
117
|
+
text-wrap: balance;
|
|
118
|
+
}
|
|
119
|
+
.hdp__subtitle { margin: 0 auto 2rem; max-width: 560px; font-size: 1.0625rem; line-height: 1.6; color: var(--c-text-2, #a3a3a3); }
|
|
120
|
+
.hdp__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }
|
|
121
|
+
.hdp__btn {
|
|
122
|
+
display: inline-flex;
|
|
123
|
+
align-items: center;
|
|
124
|
+
gap: 0.5rem;
|
|
125
|
+
min-height: 48px;
|
|
126
|
+
padding: 0 1.5rem;
|
|
127
|
+
border-radius: var(--r-md, 12px);
|
|
128
|
+
font-weight: 650;
|
|
129
|
+
text-decoration: none;
|
|
130
|
+
transition: transform 0.2s ease, background 0.2s ease;
|
|
131
|
+
}
|
|
132
|
+
.hdp__btn:hover { transform: translateY(-1px); }
|
|
133
|
+
.hdp__btn:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: 3px; }
|
|
134
|
+
.hdp__btn--primary { background: var(--chart-1, #3987e5); color: #fff; }
|
|
135
|
+
.hdp__btn--primary:hover { background: #5598e7; color: #fff; }
|
|
136
|
+
.hdp__btn--ghost { color: var(--c-text-1, #fff); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.14); }
|
|
137
|
+
.hdp__btn--ghost:hover { border-color: rgb(var(--ink-rgb, 255 255 255) / 0.3); color: var(--c-text-1, #fff); }
|
|
138
|
+
|
|
139
|
+
.hdp__mock {
|
|
140
|
+
position: relative;
|
|
141
|
+
max-width: 1080px;
|
|
142
|
+
margin: 0 auto;
|
|
143
|
+
border-radius: var(--r-xl, 24px) var(--r-xl, 24px) 0 0;
|
|
144
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
145
|
+
border-bottom: 0;
|
|
146
|
+
background: #0a0a0c;
|
|
147
|
+
overflow: hidden;
|
|
148
|
+
mask-image: linear-gradient(to bottom, #000 70%, transparent);
|
|
149
|
+
}
|
|
150
|
+
.hdp--floating .hdp__mock {
|
|
151
|
+
border-radius: var(--r-xl, 24px);
|
|
152
|
+
border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
153
|
+
margin-bottom: var(--hdp-py);
|
|
154
|
+
mask-image: none;
|
|
155
|
+
transform: perspective(1600px) rotateX(8deg);
|
|
156
|
+
box-shadow: 0 60px 120px -40px rgba(57, 135, 229, 0.35);
|
|
157
|
+
}
|
|
158
|
+
.hdp--flat .hdp__mock { background: transparent; border-color: transparent; }
|
|
159
|
+
.hdp__chrome {
|
|
160
|
+
display: flex;
|
|
161
|
+
align-items: center;
|
|
162
|
+
gap: 0.45rem;
|
|
163
|
+
padding: 0.8rem 1rem;
|
|
164
|
+
border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
165
|
+
}
|
|
166
|
+
.hdp__chrome span { width: 10px; height: 10px; border-radius: 50%; background: rgb(var(--ink-rgb, 255 255 255) / 0.12); }
|
|
167
|
+
.hdp__chrome p {
|
|
168
|
+
margin: 0 auto;
|
|
169
|
+
padding: 0.25rem 1rem;
|
|
170
|
+
border-radius: 6px;
|
|
171
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
172
|
+
font-size: 0.75rem;
|
|
173
|
+
color: var(--c-text-3, #737373);
|
|
174
|
+
}
|
|
175
|
+
.hdp__screen { display: grid; gap: 1rem; padding: 1.25rem; }
|
|
176
|
+
.hdp__kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
|
|
177
|
+
@container (max-width: 760px) {
|
|
178
|
+
.hdp__kpis { grid-template-columns: 1fr; }
|
|
179
|
+
.hdp__kpis > :global(*:nth-child(n + 2)) { display: none; }
|
|
180
|
+
.hdp--floating .hdp__mock { transform: none; }
|
|
181
|
+
}
|
|
182
|
+
</style>
|
|
@@ -11,6 +11,7 @@ const {
|
|
|
11
11
|
} = Astro.props;
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
<div class="cq-hero-glass-cq">
|
|
14
15
|
<section class="hero-glass">
|
|
15
16
|
<div class="hero-glass__bg" aria-hidden="true">
|
|
16
17
|
<div class="hero-glass__orb hero-glass__orb--1"></div>
|
|
@@ -44,8 +45,9 @@ const {
|
|
|
44
45
|
</div>
|
|
45
46
|
</div>
|
|
46
47
|
</section>
|
|
47
|
-
|
|
48
|
+
</div>
|
|
48
49
|
<style>
|
|
50
|
+
.cq-hero-glass-cq { container-type: inline-size; }
|
|
49
51
|
.hero-glass {
|
|
50
52
|
position: relative;
|
|
51
53
|
min-height: 90vh;
|
|
@@ -58,9 +60,9 @@ const {
|
|
|
58
60
|
.hero-glass__bg {
|
|
59
61
|
position: absolute;
|
|
60
62
|
inset: 0;
|
|
61
|
-
background: radial-gradient(ellipse at 20% 50%,
|
|
62
|
-
radial-gradient(ellipse at 80% 20%,
|
|
63
|
-
radial-gradient(ellipse at 50% 80%,
|
|
63
|
+
background: radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent) 0%, transparent 50%),
|
|
64
|
+
radial-gradient(ellipse at 80% 20%, color-mix(in srgb, var(--c-primary, #b8860b) 8%, transparent) 0%, transparent 50%),
|
|
65
|
+
radial-gradient(ellipse at 50% 80%, color-mix(in srgb, var(--c-primary, #b8860b) 6%, transparent) 0%, transparent 50%);
|
|
64
66
|
}
|
|
65
67
|
.hero-glass__orb {
|
|
66
68
|
position: absolute;
|
|
@@ -71,18 +73,18 @@ const {
|
|
|
71
73
|
.hero-glass__orb--1 {
|
|
72
74
|
width: 400px; height: 400px;
|
|
73
75
|
top: 10%; left: 15%;
|
|
74
|
-
background:
|
|
76
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 15%, transparent);
|
|
75
77
|
}
|
|
76
78
|
.hero-glass__orb--2 {
|
|
77
79
|
width: 300px; height: 300px;
|
|
78
80
|
top: 40%; right: 10%;
|
|
79
|
-
background:
|
|
81
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 10%, transparent);
|
|
80
82
|
animation-delay: 2s;
|
|
81
83
|
}
|
|
82
84
|
.hero-glass__orb--3 {
|
|
83
85
|
width: 250px; height: 250px;
|
|
84
86
|
bottom: 15%; left: 40%;
|
|
85
|
-
background:
|
|
87
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 8%, transparent);
|
|
86
88
|
animation-delay: 4s;
|
|
87
89
|
}
|
|
88
90
|
@keyframes orbFloat {
|
|
@@ -99,10 +101,10 @@ const {
|
|
|
99
101
|
background: rgba(10, 10, 10, 0.6);
|
|
100
102
|
backdrop-filter: blur(24px);
|
|
101
103
|
-webkit-backdrop-filter: blur(24px);
|
|
102
|
-
border: 1px solid
|
|
104
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
103
105
|
border-radius: var(--r-xl);
|
|
104
106
|
box-shadow: 0 24px 80px rgba(0,0,0,0.5),
|
|
105
|
-
inset 0 1px 0
|
|
107
|
+
inset 0 1px 0 rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
106
108
|
display: flex;
|
|
107
109
|
flex-direction: column;
|
|
108
110
|
align-items: center;
|
|
@@ -146,22 +148,22 @@ const {
|
|
|
146
148
|
}
|
|
147
149
|
.hero-glass__btn--primary {
|
|
148
150
|
background: linear-gradient(135deg, var(--c-primary-light), var(--c-primary));
|
|
149
|
-
color: #0a0a0a;
|
|
151
|
+
color: var(--c-on-primary, #0a0a0a);
|
|
150
152
|
border: none;
|
|
151
|
-
box-shadow: 0 4px 20px
|
|
153
|
+
box-shadow: 0 4px 20px color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
152
154
|
}
|
|
153
155
|
.hero-glass__btn--primary:hover {
|
|
154
156
|
transform: translateY(-2px);
|
|
155
|
-
box-shadow: 0 8px 30px
|
|
157
|
+
box-shadow: 0 8px 30px color-mix(in srgb, var(--c-primary, #b8860b) 45%, transparent);
|
|
156
158
|
}
|
|
157
159
|
.hero-glass__btn--secondary {
|
|
158
|
-
background:
|
|
160
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
159
161
|
color: var(--c-text-1);
|
|
160
|
-
border: 1px solid
|
|
162
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
161
163
|
}
|
|
162
164
|
.hero-glass__btn--secondary:hover {
|
|
163
|
-
background:
|
|
164
|
-
border-color:
|
|
165
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
166
|
+
border-color: color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
165
167
|
transform: translateY(-2px);
|
|
166
168
|
}
|
|
167
169
|
.hero-glass__trust {
|
|
@@ -171,14 +173,14 @@ const {
|
|
|
171
173
|
font-size: 0.8rem;
|
|
172
174
|
color: var(--c-text-3);
|
|
173
175
|
padding-top: var(--sp-3);
|
|
174
|
-
border-top: 1px solid
|
|
176
|
+
border-top: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
175
177
|
}
|
|
176
178
|
.hero-glass__avatars { display: flex; }
|
|
177
179
|
.hero-glass__avatar {
|
|
178
180
|
width: 28px; height: 28px;
|
|
179
181
|
border-radius: 50%;
|
|
180
182
|
background: linear-gradient(135deg, var(--c-primary), var(--c-primary-light));
|
|
181
|
-
color: #0a0a0a;
|
|
183
|
+
color: var(--c-on-primary, #0a0a0a);
|
|
182
184
|
display: flex;
|
|
183
185
|
align-items: center;
|
|
184
186
|
justify-content: center;
|
|
@@ -189,11 +191,11 @@ const {
|
|
|
189
191
|
}
|
|
190
192
|
.hero-glass__avatar:first-child { margin-left: 0; }
|
|
191
193
|
.hero-glass__avatar--more {
|
|
192
|
-
background:
|
|
194
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
193
195
|
color: var(--c-text-3);
|
|
194
196
|
}
|
|
195
197
|
|
|
196
|
-
@
|
|
198
|
+
@container (max-width: 640px) {
|
|
197
199
|
.hero-glass { min-height: 75vh; padding: var(--sp-8) var(--sp-4); }
|
|
198
200
|
.hero-glass__card { padding: var(--sp-6); }
|
|
199
201
|
.hero-glass__actions { flex-direction: column; width: 100%; max-width: 260px; }
|
|
@@ -11,6 +11,7 @@ const {
|
|
|
11
11
|
} = Astro.props;
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
<div class="cq-hero-gradient-cq">
|
|
14
15
|
<section class="hero-gradient">
|
|
15
16
|
<div class="hero-gradient__bg" aria-hidden="true"></div>
|
|
16
17
|
<div class="hero-gradient__content">
|
|
@@ -29,8 +30,9 @@ const {
|
|
|
29
30
|
</div>
|
|
30
31
|
</div>
|
|
31
32
|
</section>
|
|
32
|
-
|
|
33
|
+
</div>
|
|
33
34
|
<style>
|
|
35
|
+
.cq-hero-gradient-cq { container-type: inline-size; }
|
|
34
36
|
.hero-gradient {
|
|
35
37
|
position: relative;
|
|
36
38
|
min-height: 90vh;
|
|
@@ -45,10 +47,10 @@ const {
|
|
|
45
47
|
inset: 0;
|
|
46
48
|
background: linear-gradient(
|
|
47
49
|
135deg,
|
|
48
|
-
|
|
50
|
+
color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent) 0%,
|
|
49
51
|
transparent 40%,
|
|
50
52
|
transparent 60%,
|
|
51
|
-
|
|
53
|
+
color-mix(in srgb, var(--c-primary, #b8860b) 15%, transparent) 100%
|
|
52
54
|
);
|
|
53
55
|
animation: gradientShift 8s ease-in-out infinite alternate;
|
|
54
56
|
}
|
|
@@ -74,8 +76,8 @@ const {
|
|
|
74
76
|
text-transform: uppercase;
|
|
75
77
|
letter-spacing: 0.08em;
|
|
76
78
|
color: var(--c-primary-light);
|
|
77
|
-
background:
|
|
78
|
-
border: 1px solid
|
|
79
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent);
|
|
80
|
+
border: 1px solid color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
79
81
|
border-radius: var(--r-full);
|
|
80
82
|
}
|
|
81
83
|
.hero-gradient__title {
|
|
@@ -116,26 +118,26 @@ const {
|
|
|
116
118
|
}
|
|
117
119
|
.hero-btn--primary {
|
|
118
120
|
background: linear-gradient(135deg, var(--c-primary-light), var(--c-primary));
|
|
119
|
-
color: #0a0a0a;
|
|
120
|
-
box-shadow: 0 4px 24px
|
|
121
|
+
color: var(--c-on-primary, #0a0a0a);
|
|
122
|
+
box-shadow: 0 4px 24px color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
121
123
|
}
|
|
122
124
|
.hero-btn--primary:hover {
|
|
123
125
|
transform: translateY(-2px);
|
|
124
|
-
box-shadow: 0 8px 32px
|
|
126
|
+
box-shadow: 0 8px 32px color-mix(in srgb, var(--c-primary, #b8860b) 45%, transparent);
|
|
125
127
|
}
|
|
126
128
|
.hero-btn--glass {
|
|
127
|
-
background:
|
|
129
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
128
130
|
backdrop-filter: blur(12px);
|
|
129
131
|
color: var(--c-text-1);
|
|
130
|
-
border: 1px solid
|
|
132
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
131
133
|
}
|
|
132
134
|
.hero-btn--glass:hover {
|
|
133
|
-
background:
|
|
134
|
-
border-color:
|
|
135
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
136
|
+
border-color: color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
135
137
|
transform: translateY(-2px);
|
|
136
138
|
}
|
|
137
139
|
|
|
138
|
-
@
|
|
140
|
+
@container (max-width: 640px) {
|
|
139
141
|
.hero-gradient { min-height: 70vh; padding: var(--sp-8) var(--sp-4); }
|
|
140
142
|
.hero-gradient__actions { flex-direction: column; width: 100%; max-width: 280px; }
|
|
141
143
|
.hero-btn { width: 100%; justify-content: center; }
|