astro-component-kit 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +139 -27
- package/bin/cli.js +67 -0
- package/bin/installer.js +179 -0
- package/package.json +35 -5
- package/src/components/index.ts +2 -0
- 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/charts/AreaChart.astro +4 -4
- package/src/components/lib/charts/BarChart.astro +3 -3
- package/src/components/lib/charts/ChartFrame.astro +10 -10
- package/src/components/lib/charts/DonutChart.astro +2 -2
- package/src/components/lib/charts/DumbbellChart.astro +1 -1
- package/src/components/lib/charts/ForecastLineChart.astro +1 -1
- package/src/components/lib/charts/GaugeChart.astro +1 -1
- package/src/components/lib/charts/HeatmapChart.astro +1 -1
- package/src/components/lib/charts/HorizontalBarChart.astro +2 -2
- package/src/components/lib/charts/KpiStatTile.astro +4 -4
- package/src/components/lib/charts/LinearProgressGauge.astro +4 -4
- package/src/components/lib/charts/MetricDeltaTable.astro +3 -3
- package/src/components/lib/charts/RadarMetricChart.astro +4 -4
- package/src/components/lib/charts/RadialBarChart.astro +1 -1
- package/src/components/lib/charts/RetentionCohortTable.astro +2 -2
- package/src/components/lib/charts/TreemapChart.astro +1 -1
- 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/forms/AnimatedInput.astro +4 -2
- package/src/components/lib/forms/CustomRadioGroup.astro +3 -1
- 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/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 +11 -9
- 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/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 +9 -7
- 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 +10 -8
- package/src/components/lib/sections/ChangelogSection.astro +20 -7
- package/src/components/lib/sections/ContactGlassForm.astro +10 -8
- package/src/components/lib/sections/ContactSplitMap.astro +11 -9
- 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 +13 -11
- package/src/components/lib/sections/CtaSplitImage.astro +13 -11
- 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 +9 -7
- package/src/components/lib/sections/FeatureAlternatingRows.astro +10 -8
- package/src/components/lib/sections/FeatureBentoGrid.astro +13 -11
- package/src/components/lib/sections/FeatureIconGrid.astro +6 -6
- package/src/components/lib/sections/FeatureTabsShowcase.astro +13 -11
- 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 +13 -11
- package/src/components/lib/sections/FormsShowcase.astro +22 -20
- package/src/components/lib/sections/HeroDashboardPreview.astro +11 -9
- 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 +10 -10
- package/src/components/lib/sections/HeroShowcaseSplit.astro +18 -16
- package/src/components/lib/sections/HeroSplit.astro +13 -11
- package/src/components/lib/sections/HeroTerminal.astro +14 -12
- package/src/components/lib/sections/HeroWaitlist.astro +10 -8
- package/src/components/lib/sections/HowItWorksSteps.astro +12 -10
- package/src/components/lib/sections/IntegrationsGrid.astro +7 -7
- package/src/components/lib/sections/LayoutShowcase.astro +21 -19
- package/src/components/lib/sections/LogoCloudSection.astro +4 -4
- package/src/components/lib/sections/LogoWallGrid.astro +6 -4
- 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 +13 -11
- package/src/components/lib/sections/PricingTierCards.astro +11 -9
- package/src/components/lib/sections/PricingToggleCards.astro +13 -13
- 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 +9 -7
- package/src/components/lib/sections/StatsDashboardSection.astro +4 -2
- 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 +10 -8
- package/src/components/lib/sections/TestimonialFeatured.astro +7 -5
- package/src/components/lib/sections/TestimonialGridSection.astro +7 -7
- 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 +10 -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/data/registry/app.ts +93 -0
- package/src/data/registry/buttons.ts +3279 -0
- package/src/data/registry/cards.ts +1753 -0
- package/src/data/registry/charts-svg.ts +557 -0
- package/src/data/registry/charts.ts +500 -0
- package/src/data/registry/data.ts +986 -0
- package/src/data/registry/ecommerce.ts +269 -0
- package/src/data/registry/feedback.ts +1824 -0
- package/src/data/registry/forms.ts +2513 -0
- package/src/data/registry/index.ts +64 -0
- package/src/data/registry/layout.ts +206 -0
- package/src/data/registry/navigation.ts +936 -0
- package/src/data/registry/overlays.ts +1133 -0
- package/src/data/registry/sections-extra.ts +397 -0
- package/src/data/registry/sections.ts +361 -0
- package/src/data/registry/sources.ts +41 -0
- package/src/data/registry/templates.ts +414 -0
- package/src/data/registry/types.ts +30 -0
- package/src/data/registry/typography.ts +777 -0
- package/src/mcp/http-server.ts +324 -0
- package/src/mcp/index.ts +67 -0
- package/src/mcp/installer.ts +178 -0
- package/src/mcp/registry-adapter.ts +278 -0
- package/src/mcp/stdio-server.ts +11 -0
- package/src/mcp/tools.ts +247 -0
- package/src/mcp/types.ts +53 -0
- package/src/styles/global.css +95 -0
|
@@ -21,6 +21,7 @@ const {
|
|
|
21
21
|
} = Astro.props;
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
+
<div class="cq-contact-glass-form-cq">
|
|
24
25
|
<section class={`contact-section ${className}`} aria-labelledby="contact-title">
|
|
25
26
|
<div class="contact-bg" aria-hidden="true">
|
|
26
27
|
<div class="contact-glow"></div>
|
|
@@ -115,8 +116,9 @@ const {
|
|
|
115
116
|
</div>
|
|
116
117
|
</div>
|
|
117
118
|
</section>
|
|
118
|
-
|
|
119
|
+
</div>
|
|
119
120
|
<style>
|
|
121
|
+
.cq-contact-glass-form-cq { container-type: inline-size; }
|
|
120
122
|
.contact-section {
|
|
121
123
|
position: relative;
|
|
122
124
|
padding: var(--sp-20, 5rem) var(--sp-6, 1.5rem);
|
|
@@ -163,7 +165,7 @@ const {
|
|
|
163
165
|
font-weight: 700;
|
|
164
166
|
letter-spacing: 0.06em;
|
|
165
167
|
text-transform: uppercase;
|
|
166
|
-
background:
|
|
168
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent);
|
|
167
169
|
color: #eab308;
|
|
168
170
|
border: 1px solid rgba(234, 179, 8, 0.25);
|
|
169
171
|
margin-bottom: var(--sp-4, 1rem);
|
|
@@ -218,7 +220,7 @@ const {
|
|
|
218
220
|
gap: 1rem;
|
|
219
221
|
padding: 1rem 1.25rem;
|
|
220
222
|
background: rgba(15, 23, 42, 0.5);
|
|
221
|
-
border: 1px solid
|
|
223
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
222
224
|
border-radius: 14px;
|
|
223
225
|
backdrop-filter: blur(10px);
|
|
224
226
|
}
|
|
@@ -227,7 +229,7 @@ const {
|
|
|
227
229
|
width: 40px;
|
|
228
230
|
height: 40px;
|
|
229
231
|
border-radius: 10px;
|
|
230
|
-
background:
|
|
232
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
231
233
|
color: #eab308;
|
|
232
234
|
display: flex;
|
|
233
235
|
align-items: center;
|
|
@@ -261,7 +263,7 @@ const {
|
|
|
261
263
|
.contact-form {
|
|
262
264
|
background: rgba(15, 23, 42, 0.7);
|
|
263
265
|
backdrop-filter: blur(24px);
|
|
264
|
-
border: 1px solid
|
|
266
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
265
267
|
border-radius: var(--r-2xl, 24px);
|
|
266
268
|
padding: clamp(1.75rem, 4vw, 2.5rem);
|
|
267
269
|
box-shadow: 0 25px 50px -15px rgba(0, 0, 0, 0.7);
|
|
@@ -303,7 +305,7 @@ const {
|
|
|
303
305
|
width: 100%;
|
|
304
306
|
padding: 0.75rem 1rem;
|
|
305
307
|
background: rgba(0, 0, 0, 0.35);
|
|
306
|
-
border: 1px solid
|
|
308
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
307
309
|
border-radius: 10px;
|
|
308
310
|
color: #fff;
|
|
309
311
|
font-size: 0.92rem;
|
|
@@ -346,14 +348,14 @@ const {
|
|
|
346
348
|
box-shadow: 0 6px 20px rgba(234, 179, 8, 0.45);
|
|
347
349
|
}
|
|
348
350
|
|
|
349
|
-
@
|
|
351
|
+
@container (max-width: 960px) {
|
|
350
352
|
.contact-grid {
|
|
351
353
|
grid-template-columns: 1fr;
|
|
352
354
|
gap: 3rem;
|
|
353
355
|
}
|
|
354
356
|
}
|
|
355
357
|
|
|
356
|
-
@
|
|
358
|
+
@container (max-width: 640px) {
|
|
357
359
|
.form-row {
|
|
358
360
|
grid-template-columns: 1fr;
|
|
359
361
|
}
|
|
@@ -66,6 +66,7 @@ const SX = VW / 100;
|
|
|
66
66
|
const SY = VH / 100;
|
|
67
67
|
---
|
|
68
68
|
|
|
69
|
+
<div class="cq-contact-split-map-cq">
|
|
69
70
|
<section class={`csm csm--${variant} csm--${size} ${className}`} aria-labelledby={id}>
|
|
70
71
|
<div class="csm__inner">
|
|
71
72
|
<div class="csm__info">
|
|
@@ -91,8 +92,8 @@ const SY = VH / 100;
|
|
|
91
92
|
<svg viewBox={`0 0 ${VW} ${VH}`} aria-hidden="true">
|
|
92
93
|
{variant !== 'plain' && dots.map(([x, y]) => (
|
|
93
94
|
variant === 'grid'
|
|
94
|
-
? <rect x={x * SX - 0.8} y={y * SY - 0.8} width="1.6" height="1.6" fill="
|
|
95
|
-
: <circle cx={x * SX} cy={y * SY} r="0.75" fill="
|
|
95
|
+
? <rect x={x * SX - 0.8} y={y * SY - 0.8} width="1.6" height="1.6" fill="rgb(var(--ink-rgb, 255 255 255) / 0.14)" />
|
|
96
|
+
: <circle cx={x * SX} cy={y * SY} r="0.75" fill="rgb(var(--ink-rgb, 255 255 255) / 0.18)" />
|
|
96
97
|
))}
|
|
97
98
|
{offices.map((o) => (
|
|
98
99
|
<g>
|
|
@@ -107,8 +108,9 @@ const SY = VH / 100;
|
|
|
107
108
|
</div>
|
|
108
109
|
</div>
|
|
109
110
|
</section>
|
|
110
|
-
|
|
111
|
+
</div>
|
|
111
112
|
<style>
|
|
113
|
+
.cq-contact-split-map-cq { container-type: inline-size; }
|
|
112
114
|
.csm {
|
|
113
115
|
--csm-py: 5.5rem;
|
|
114
116
|
padding: var(--csm-py) var(--sp-6, 1.5rem);
|
|
@@ -120,20 +122,20 @@ const SY = VH / 100;
|
|
|
120
122
|
.csm__title { margin: 0 0 0.75rem; font-size: clamp(1.9rem, 4vw, 2.75rem); font-weight: 800; letter-spacing: -0.03em; color: var(--c-text-1, #fff); }
|
|
121
123
|
.csm__subtitle { margin: 0 0 2rem; font-size: 1.0625rem; line-height: 1.6; color: var(--c-text-2, #a3a3a3); }
|
|
122
124
|
.csm__channels { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 0.6rem; }
|
|
123
|
-
.csm__channel { display: flex; align-items: center; gap: 0.9rem; min-height: 60px; padding: 0.6rem 0.9rem; border-radius: var(--r-md, 14px); border: 1px solid var(--c-border,
|
|
124
|
-
.csm__channel:hover { border-color:
|
|
125
|
+
.csm__channel { display: flex; align-items: center; gap: 0.9rem; min-height: 60px; padding: 0.6rem 0.9rem; border-radius: var(--r-md, 14px); border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.07)); background: rgb(var(--ink-rgb, 255 255 255) / 0.02); color: inherit; text-decoration: none; transition: border-color 0.2s ease, background 0.2s ease; }
|
|
126
|
+
.csm__channel:hover { border-color: rgb(var(--ink-rgb, 255 255 255) / 0.2); background: rgb(var(--ink-rgb, 255 255 255) / 0.04); }
|
|
125
127
|
.csm__channel:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: 2px; }
|
|
126
|
-
.csm__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--c-primary-glow,
|
|
128
|
+
.csm__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--c-primary-glow, color-mix(in srgb, var(--c-primary, #b8860b) 14%, transparent)); color: var(--c-primary-light, #d4a017); flex-shrink: 0; }
|
|
127
129
|
.csm__label { display: block; font-size: 0.75rem; color: var(--c-text-3, #8a8a8a); }
|
|
128
130
|
.csm__value { display: block; font-size: 0.9375rem; font-weight: 600; color: var(--c-text-1, #fff); }
|
|
129
131
|
.csm__offices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
|
|
130
132
|
.csm__offices address { font-style: normal; font-size: 0.8125rem; line-height: 1.5; color: var(--c-text-2, #a3a3a3); }
|
|
131
133
|
.csm__offices strong { display: block; font-size: 0.9375rem; color: var(--c-text-1, #fff); }
|
|
132
|
-
.csm__map { position: relative; aspect-ratio: 16 / 11; border-radius: var(--r-xl, 24px); border: 1px solid var(--c-border,
|
|
134
|
+
.csm__map { position: relative; aspect-ratio: 16 / 11; border-radius: var(--r-xl, 24px); border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.07)); background: radial-gradient(circle at 50% 40%, rgb(var(--ink-rgb, 255 255 255) / 0.04), transparent 70%), var(--c-bg-1, #0a0a0a); overflow: hidden; }
|
|
133
135
|
.csm__map svg { position: absolute; inset: 0; width: 100%; height: 100%; }
|
|
134
136
|
.csm__ping { transform-box: fill-box; transform-origin: center; animation: csm-ping 2.4s ease-out infinite; }
|
|
135
137
|
@keyframes csm-ping { from { transform: scale(0.6); opacity: 1; } to { transform: scale(2.4); opacity: 0; } }
|
|
136
|
-
.csm__pin { position: absolute; transform: translate(-50%, calc(-100% - 12px)); padding: 0.2rem 0.55rem; border-radius: 6px; background: rgba(10, 10, 12, 0.85); border: 1px solid
|
|
137
|
-
@
|
|
138
|
+
.csm__pin { position: absolute; transform: translate(-50%, calc(-100% - 12px)); padding: 0.2rem 0.55rem; border-radius: 6px; background: rgba(10, 10, 12, 0.85); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12); font-size: 0.6875rem; font-weight: 600; color: var(--c-text-1, #fff); white-space: nowrap; }
|
|
139
|
+
@container (max-width: 860px) { .csm__inner { grid-template-columns: 1fr; } }
|
|
138
140
|
@media (prefers-reduced-motion: reduce) { .csm__ping { animation: none; } }
|
|
139
141
|
</style>
|
|
@@ -21,6 +21,7 @@ const {
|
|
|
21
21
|
} = Astro.props;
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
+
<div class="cq-cta-app-download-cq">
|
|
24
25
|
<section class={`app-download-section ${className}`} aria-labelledby="app-title">
|
|
25
26
|
<div class="container">
|
|
26
27
|
<div class="app-card">
|
|
@@ -72,8 +73,9 @@ const {
|
|
|
72
73
|
</div>
|
|
73
74
|
</div>
|
|
74
75
|
</section>
|
|
75
|
-
|
|
76
|
+
</div>
|
|
76
77
|
<style>
|
|
78
|
+
.cq-cta-app-download-cq { container-type: inline-size; }
|
|
77
79
|
.app-download-section {
|
|
78
80
|
padding: var(--sp-20, 5rem) var(--sp-6, 1.5rem);
|
|
79
81
|
background: var(--c-bg-primary, #030712);
|
|
@@ -86,7 +88,7 @@ const {
|
|
|
86
88
|
|
|
87
89
|
.app-card {
|
|
88
90
|
background: linear-gradient(135deg, rgba(15, 23, 42, 0.8) 0%, rgba(10, 15, 30, 0.9) 100%);
|
|
89
|
-
border: 1px solid
|
|
91
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
90
92
|
border-radius: var(--r-2xl, 24px);
|
|
91
93
|
padding: clamp(2rem, 5vw, 4rem);
|
|
92
94
|
display: grid;
|
|
@@ -103,7 +105,7 @@ const {
|
|
|
103
105
|
font-weight: 700;
|
|
104
106
|
letter-spacing: 0.06em;
|
|
105
107
|
text-transform: uppercase;
|
|
106
|
-
background:
|
|
108
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent);
|
|
107
109
|
color: #eab308;
|
|
108
110
|
border: 1px solid rgba(234, 179, 8, 0.25);
|
|
109
111
|
margin-bottom: var(--sp-4, 1rem);
|
|
@@ -134,8 +136,8 @@ const {
|
|
|
134
136
|
|
|
135
137
|
.feat-pill {
|
|
136
138
|
padding: 0.4rem 0.85rem;
|
|
137
|
-
background:
|
|
138
|
-
border: 1px solid
|
|
139
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
140
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
139
141
|
border-radius: 9999px;
|
|
140
142
|
font-size: 0.82rem;
|
|
141
143
|
color: #cbd5e1;
|
|
@@ -153,7 +155,7 @@ const {
|
|
|
153
155
|
gap: 0.75rem;
|
|
154
156
|
padding: 0.65rem 1.25rem;
|
|
155
157
|
background: rgba(0, 0, 0, 0.6);
|
|
156
|
-
border: 1px solid
|
|
158
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.15);
|
|
157
159
|
border-radius: 12px;
|
|
158
160
|
color: #fff;
|
|
159
161
|
text-decoration: none;
|
|
@@ -161,8 +163,8 @@ const {
|
|
|
161
163
|
}
|
|
162
164
|
|
|
163
165
|
.store-btn:hover {
|
|
164
|
-
background:
|
|
165
|
-
border-color:
|
|
166
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
167
|
+
border-color: rgb(var(--ink-rgb, 255 255 255) / 0.3);
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
.store-btn__text {
|
|
@@ -192,7 +194,7 @@ const {
|
|
|
192
194
|
width: 250px;
|
|
193
195
|
height: 400px;
|
|
194
196
|
background: #020617;
|
|
195
|
-
border: 3px solid
|
|
197
|
+
border: 3px solid rgb(var(--ink-rgb, 255 255 255) / 0.2);
|
|
196
198
|
border-radius: 36px;
|
|
197
199
|
padding: 12px;
|
|
198
200
|
box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.8);
|
|
@@ -244,13 +246,13 @@ const {
|
|
|
244
246
|
|
|
245
247
|
.phone-card-mini {
|
|
246
248
|
padding: 0.5rem;
|
|
247
|
-
background:
|
|
249
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
248
250
|
border-radius: 8px;
|
|
249
251
|
font-size: 0.72rem;
|
|
250
252
|
color: #cbd5e1;
|
|
251
253
|
}
|
|
252
254
|
|
|
253
|
-
@
|
|
255
|
+
@container (max-width: 960px) {
|
|
254
256
|
.app-card {
|
|
255
257
|
grid-template-columns: 1fr;
|
|
256
258
|
}
|
|
@@ -27,6 +27,7 @@ const {
|
|
|
27
27
|
} = Astro.props;
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
<div class="cq-cta-glow-banner-cq">
|
|
30
31
|
<section class={`cta-banner-section ${className}`} aria-labelledby="cta-title">
|
|
31
32
|
<div class="container">
|
|
32
33
|
<div class="cta-banner-card">
|
|
@@ -75,8 +76,9 @@ const {
|
|
|
75
76
|
</div>
|
|
76
77
|
</div>
|
|
77
78
|
</section>
|
|
78
|
-
|
|
79
|
+
</div>
|
|
79
80
|
<style>
|
|
81
|
+
.cq-cta-glow-banner-cq { container-type: inline-size; }
|
|
80
82
|
.cta-banner-section {
|
|
81
83
|
padding: var(--sp-20, 5rem) var(--sp-6, 1.5rem);
|
|
82
84
|
background: var(--c-bg-primary, #030712);
|
|
@@ -127,7 +129,7 @@ const {
|
|
|
127
129
|
font-weight: 700;
|
|
128
130
|
letter-spacing: 0.06em;
|
|
129
131
|
text-transform: uppercase;
|
|
130
|
-
background:
|
|
132
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 15%, transparent);
|
|
131
133
|
color: #facc15;
|
|
132
134
|
border: 1px solid rgba(234, 179, 8, 0.3);
|
|
133
135
|
margin-bottom: var(--sp-4, 1.25rem);
|
|
@@ -163,7 +165,7 @@ const {
|
|
|
163
165
|
align-items: center;
|
|
164
166
|
gap: 0.5rem;
|
|
165
167
|
background: rgba(0, 0, 0, 0.4);
|
|
166
|
-
border: 1px solid
|
|
168
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
167
169
|
border-radius: 12px;
|
|
168
170
|
padding: 0.35rem;
|
|
169
171
|
max-width: 460px;
|
|
@@ -211,16 +213,16 @@ const {
|
|
|
211
213
|
}
|
|
212
214
|
|
|
213
215
|
.cta-btn--ghost {
|
|
214
|
-
background:
|
|
216
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
215
217
|
color: #fff;
|
|
216
|
-
border: 1px solid
|
|
218
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
217
219
|
height: 48px;
|
|
218
220
|
box-sizing: border-box;
|
|
219
221
|
}
|
|
220
222
|
|
|
221
223
|
.cta-btn--ghost:hover {
|
|
222
|
-
background:
|
|
223
|
-
border-color:
|
|
224
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
225
|
+
border-color: rgb(var(--ink-rgb, 255 255 255) / 0.25);
|
|
224
226
|
}
|
|
225
227
|
|
|
226
228
|
.cta-trust-row {
|
|
@@ -230,7 +232,7 @@ const {
|
|
|
230
232
|
justify-content: center;
|
|
231
233
|
gap: 1.5rem;
|
|
232
234
|
padding-top: 1.5rem;
|
|
233
|
-
border-top: 1px solid
|
|
235
|
+
border-top: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
234
236
|
}
|
|
235
237
|
|
|
236
238
|
.trust-item {
|
|
@@ -246,7 +248,7 @@ const {
|
|
|
246
248
|
color: #eab308;
|
|
247
249
|
}
|
|
248
250
|
|
|
249
|
-
@
|
|
251
|
+
@container (max-width: 640px) {
|
|
250
252
|
.cta-form {
|
|
251
253
|
flex-direction: column;
|
|
252
254
|
background: transparent;
|
|
@@ -256,7 +258,7 @@ const {
|
|
|
256
258
|
.cta-input {
|
|
257
259
|
width: 100%;
|
|
258
260
|
background: rgba(0, 0, 0, 0.4);
|
|
259
|
-
border: 1px solid
|
|
261
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
260
262
|
border-radius: 8px;
|
|
261
263
|
box-sizing: border-box;
|
|
262
264
|
}
|
|
@@ -40,6 +40,7 @@ const {
|
|
|
40
40
|
const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
+
<div class="cq-cta-newsletter-section-cq">
|
|
43
44
|
<section class={`cns cns--${variant} cns--${size} ${className}`} aria-labelledby={id}>
|
|
44
45
|
<div class="cns__box">
|
|
45
46
|
<div class="cns__copy">
|
|
@@ -65,7 +66,7 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
65
66
|
</form>
|
|
66
67
|
</div>
|
|
67
68
|
</section>
|
|
68
|
-
|
|
69
|
+
</div>
|
|
69
70
|
<script>
|
|
70
71
|
document.querySelectorAll<HTMLFormElement>('.cns__form').forEach((form) => {
|
|
71
72
|
const input = form.querySelector<HTMLInputElement>('.cns__input');
|
|
@@ -89,6 +90,7 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
89
90
|
</script>
|
|
90
91
|
|
|
91
92
|
<style>
|
|
93
|
+
.cq-cta-newsletter-section-cq { container-type: inline-size; }
|
|
92
94
|
.cns {
|
|
93
95
|
--cns-py: 5rem;
|
|
94
96
|
padding: var(--cns-py) var(--sp-6, 1.5rem);
|
|
@@ -107,12 +109,12 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
107
109
|
border-radius: var(--r-xl, 28px);
|
|
108
110
|
}
|
|
109
111
|
.cns--gradient .cns__box {
|
|
110
|
-
background: radial-gradient(circle at 100% 0%, rgba(144, 133, 233, 0.22), transparent 55%), radial-gradient(circle at 0% 100%, var(--c-primary-glow,
|
|
111
|
-
border: 1px solid
|
|
112
|
+
background: radial-gradient(circle at 100% 0%, rgba(144, 133, 233, 0.22), transparent 55%), radial-gradient(circle at 0% 100%, var(--c-primary-glow, color-mix(in srgb, var(--c-primary, #b8860b) 20%, transparent)), transparent 55%), #0c0c10;
|
|
113
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
112
114
|
}
|
|
113
|
-
.cns--glass .cns__box { background:
|
|
114
|
-
.cns--bordered .cns__box { border: 1px solid
|
|
115
|
-
.cns__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 1.25rem; border-radius: 14px; background:
|
|
115
|
+
.cns--glass .cns__box { background: rgb(var(--ink-rgb, 255 255 255) / 0.035); border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.08)); backdrop-filter: blur(16px); }
|
|
116
|
+
.cns--bordered .cns__box { border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.14); }
|
|
117
|
+
.cns__icon { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 1.25rem; border-radius: 14px; background: rgb(var(--ink-rgb, 255 255 255) / 0.06); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1); color: var(--c-text-1, #fff); }
|
|
116
118
|
.cns__title { margin: 0 0 0.75rem; font-size: clamp(1.6rem, 3.5vw, 2.25rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.15; color: var(--c-text-1, #fff); }
|
|
117
119
|
.cns__subtitle { margin: 0 0 1.25rem; font-size: 1rem; line-height: 1.6; color: var(--c-text-2, #a3a3a3); }
|
|
118
120
|
.cns__perks { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
|
|
@@ -126,7 +128,7 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
126
128
|
min-height: 50px;
|
|
127
129
|
padding: 0 1rem;
|
|
128
130
|
border-radius: var(--r-md, 12px);
|
|
129
|
-
border: 1px solid
|
|
131
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.14);
|
|
130
132
|
background: rgba(0, 0, 0, 0.35);
|
|
131
133
|
color: var(--c-text-1, #fff);
|
|
132
134
|
font: inherit;
|
|
@@ -134,7 +136,7 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
134
136
|
transition: border-color 0.2s ease, box-shadow 0.2s ease;
|
|
135
137
|
}
|
|
136
138
|
.cns__input::placeholder { color: var(--c-text-3, #737373); }
|
|
137
|
-
.cns__input:focus { outline: none; border-color: var(--c-primary-light, #d4a017); box-shadow: 0 0 0 3px var(--c-primary-glow,
|
|
139
|
+
.cns__input:focus { outline: none; border-color: var(--c-primary-light, #d4a017); box-shadow: 0 0 0 3px var(--c-primary-glow, color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent)); }
|
|
138
140
|
.cns__input[aria-invalid='true'] { border-color: var(--chart-neg, #f06a6a); }
|
|
139
141
|
.cns__btn {
|
|
140
142
|
min-height: 50px;
|
|
@@ -142,7 +144,7 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
142
144
|
border: 0;
|
|
143
145
|
border-radius: var(--r-md, 12px);
|
|
144
146
|
background: var(--c-text-1, #fff);
|
|
145
|
-
color: #0a0a0a;
|
|
147
|
+
color: var(--c-on-primary, #0a0a0a);
|
|
146
148
|
font: inherit;
|
|
147
149
|
font-weight: 650;
|
|
148
150
|
cursor: pointer;
|
|
@@ -154,10 +156,10 @@ const id = `cns-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
154
156
|
.cns__msg[data-state='error'] { color: #ff9b9b; }
|
|
155
157
|
.cns__msg[data-state='ok'] { color: #7ee2b8; }
|
|
156
158
|
.cns__privacy { margin: 0.25rem 0 0; font-size: 0.8125rem; color: var(--c-text-3, #8a8a8a); }
|
|
157
|
-
@
|
|
159
|
+
@container (max-width: 820px) {
|
|
158
160
|
.cns__box { grid-template-columns: 1fr; }
|
|
159
161
|
}
|
|
160
|
-
@
|
|
162
|
+
@container (max-width: 460px) {
|
|
161
163
|
.cns__field { flex-direction: column; }
|
|
162
164
|
}
|
|
163
165
|
</style>
|
|
@@ -47,6 +47,7 @@ const {
|
|
|
47
47
|
const id = `csi-${Math.random().toString(36).slice(2, 8)}`;
|
|
48
48
|
---
|
|
49
49
|
|
|
50
|
+
<div class="cq-cta-split-image-cq">
|
|
50
51
|
<section class={`csi csi--${variant} csi--${size} ${className}`} aria-labelledby={id}>
|
|
51
52
|
<div class="csi__box">
|
|
52
53
|
<div class="csi__copy">
|
|
@@ -70,8 +71,9 @@ const id = `csi-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
70
71
|
</div>
|
|
71
72
|
</div>
|
|
72
73
|
</section>
|
|
73
|
-
|
|
74
|
+
</div>
|
|
74
75
|
<style>
|
|
76
|
+
.cq-cta-split-image-cq { container-type: inline-size; }
|
|
75
77
|
.csi {
|
|
76
78
|
--csi-py: 5rem;
|
|
77
79
|
padding: var(--csi-py) var(--sp-6, 1.5rem);
|
|
@@ -86,19 +88,19 @@ const id = `csi-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
86
88
|
grid-template-columns: 1fr 1fr;
|
|
87
89
|
border-radius: var(--r-xl, 28px);
|
|
88
90
|
overflow: hidden;
|
|
89
|
-
border: 1px solid var(--c-border,
|
|
91
|
+
border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.08));
|
|
90
92
|
background: var(--c-bg-1, #0a0a0a);
|
|
91
93
|
}
|
|
92
|
-
.csi--outline .csi__box { background: transparent; border-color:
|
|
94
|
+
.csi--outline .csi__box { background: transparent; border-color: rgb(var(--ink-rgb, 255 255 255) / 0.15); }
|
|
93
95
|
.csi__copy { padding: clamp(2rem, 6vw, 4rem); display: flex; flex-direction: column; justify-content: center; }
|
|
94
96
|
.csi__title { margin: 0 0 1rem; font-size: clamp(1.75rem, 4vw, 2.75rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; color: var(--c-text-1, #fff); text-wrap: balance; }
|
|
95
97
|
.csi__text { margin: 0 0 2rem; font-size: 1.0625rem; line-height: 1.6; color: var(--c-text-2, #a3a3a3); max-width: 460px; }
|
|
96
98
|
.csi__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
|
|
97
99
|
.csi__btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.5rem; border-radius: var(--r-md, 12px); font-weight: 650; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; }
|
|
98
|
-
.csi__btn--primary { background: var(--c-primary-light, #d4a017); color: #0a0a0a; }
|
|
99
|
-
.csi__btn--primary:hover { background: var(--c-accent, #fef3c7); color: #0a0a0a; }
|
|
100
|
-
.csi__btn--ghost { border: 1px solid
|
|
101
|
-
.csi__btn--ghost:hover { border-color:
|
|
100
|
+
.csi__btn--primary { background: var(--c-primary-light, #d4a017); color: var(--c-on-primary, #0a0a0a); }
|
|
101
|
+
.csi__btn--primary:hover { background: var(--c-accent, #fef3c7); color: var(--c-on-primary, #0a0a0a); }
|
|
102
|
+
.csi__btn--ghost { border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.15); color: var(--c-text-1, #fff); }
|
|
103
|
+
.csi__btn--ghost:hover { border-color: rgb(var(--ink-rgb, 255 255 255) / 0.32); color: var(--c-text-1, #fff); }
|
|
102
104
|
.csi__btn:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: 3px; }
|
|
103
105
|
.csi__visual { position: relative; min-height: 320px; }
|
|
104
106
|
.csi__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
@@ -114,13 +116,13 @@ const id = `csi-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
114
116
|
}
|
|
115
117
|
.csi--mesh .csi__mesh {
|
|
116
118
|
background:
|
|
117
|
-
radial-gradient(circle at 20% 20%,
|
|
119
|
+
radial-gradient(circle at 20% 20%, color-mix(in srgb, var(--c-primary-light, #d4a017) 55%, transparent), transparent 45%),
|
|
118
120
|
radial-gradient(circle at 80% 30%, rgba(144, 133, 233, 0.55), transparent 45%),
|
|
119
121
|
radial-gradient(circle at 50% 90%, rgba(57, 135, 229, 0.5), transparent 50%),
|
|
120
122
|
#121218;
|
|
121
123
|
}
|
|
122
124
|
.csi--solid .csi__mesh { background: linear-gradient(135deg, #1a1408, #0c0c10); }
|
|
123
|
-
.csi--outline .csi__mesh { background: repeating-linear-gradient(45deg,
|
|
125
|
+
.csi--outline .csi__mesh { background: repeating-linear-gradient(45deg, rgb(var(--ink-rgb, 255 255 255) / 0.03) 0 12px, transparent 12px 24px); }
|
|
124
126
|
.csi__chip {
|
|
125
127
|
display: inline-flex;
|
|
126
128
|
align-items: baseline;
|
|
@@ -128,7 +130,7 @@ const id = `csi-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
128
130
|
padding: 0.75rem 1.1rem;
|
|
129
131
|
border-radius: var(--r-md, 14px);
|
|
130
132
|
background: rgba(10, 10, 12, 0.6);
|
|
131
|
-
border: 1px solid
|
|
133
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.14);
|
|
132
134
|
backdrop-filter: blur(12px);
|
|
133
135
|
color: var(--c-text-2, #c4c4c4);
|
|
134
136
|
font-size: 0.875rem;
|
|
@@ -139,7 +141,7 @@ const id = `csi-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
139
141
|
.csi__chip:nth-child(3) { transform: translateX(-2rem); }
|
|
140
142
|
.csi__chip strong { font-size: 1.25rem; color: var(--c-text-1, #fff); font-variant-numeric: tabular-nums; }
|
|
141
143
|
@keyframes csi-float { 50% { translate: 0 -8px; } }
|
|
142
|
-
@
|
|
144
|
+
@container (max-width: 820px) {
|
|
143
145
|
.csi__box { grid-template-columns: 1fr; }
|
|
144
146
|
.csi__visual { min-height: 240px; }
|
|
145
147
|
}
|
|
@@ -8,6 +8,7 @@ interface Props {
|
|
|
8
8
|
const { title = "Data Display", subtitle = "Stats, tables, and visualization elements." } = Astro.props;
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
<div class="cq-data-showcase-cq">
|
|
11
12
|
<section class="data-showcase">
|
|
12
13
|
<div class="container">
|
|
13
14
|
<div class="showcase-header">
|
|
@@ -78,8 +79,9 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
78
79
|
</div>
|
|
79
80
|
</div>
|
|
80
81
|
</section>
|
|
81
|
-
|
|
82
|
+
</div>
|
|
82
83
|
<style>
|
|
84
|
+
.cq-data-showcase-cq { container-type: inline-size; }
|
|
83
85
|
.data-showcase {
|
|
84
86
|
padding: var(--sp-16) 0;
|
|
85
87
|
position: relative;
|
|
@@ -96,8 +98,8 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
96
98
|
text-transform: uppercase;
|
|
97
99
|
letter-spacing: 0.1em;
|
|
98
100
|
color: var(--c-primary-light);
|
|
99
|
-
background:
|
|
100
|
-
border: 1px solid
|
|
101
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 10%, transparent);
|
|
102
|
+
border: 1px solid color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent);
|
|
101
103
|
border-radius: var(--r-full);
|
|
102
104
|
margin-bottom: var(--sp-4);
|
|
103
105
|
}
|
|
@@ -119,7 +121,7 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
119
121
|
padding: var(--sp-12);
|
|
120
122
|
background: rgba(10, 10, 10, 0.6);
|
|
121
123
|
backdrop-filter: blur(20px);
|
|
122
|
-
border: 1px solid
|
|
124
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
123
125
|
border-radius: var(--r-xl);
|
|
124
126
|
margin-bottom: var(--sp-6);
|
|
125
127
|
box-shadow: 0 20px 60px rgba(0,0,0,0.4);
|
|
@@ -146,16 +148,16 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
146
148
|
}
|
|
147
149
|
.stat-card {
|
|
148
150
|
padding: var(--sp-5);
|
|
149
|
-
background:
|
|
151
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
150
152
|
backdrop-filter: blur(12px);
|
|
151
|
-
border: 1px solid
|
|
153
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
152
154
|
border-radius: var(--r-lg);
|
|
153
155
|
text-align: center;
|
|
154
156
|
transition: all 0.25s ease;
|
|
155
157
|
}
|
|
156
158
|
.stat-card:hover {
|
|
157
|
-
background:
|
|
158
|
-
border-color:
|
|
159
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.07);
|
|
160
|
+
border-color: color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent);
|
|
159
161
|
transform: translateY(-2px);
|
|
160
162
|
}
|
|
161
163
|
.stat-value {
|
|
@@ -176,9 +178,9 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
176
178
|
|
|
177
179
|
/* Mini Table */
|
|
178
180
|
.mini-table {
|
|
179
|
-
background:
|
|
181
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
180
182
|
backdrop-filter: blur(12px);
|
|
181
|
-
border: 1px solid
|
|
183
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
182
184
|
border-radius: var(--r-lg);
|
|
183
185
|
overflow: hidden;
|
|
184
186
|
}
|
|
@@ -186,8 +188,8 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
186
188
|
display: grid;
|
|
187
189
|
grid-template-columns: 1.5fr 0.8fr 1fr;
|
|
188
190
|
padding: var(--sp-3) var(--sp-5);
|
|
189
|
-
background:
|
|
190
|
-
border-bottom: 1px solid
|
|
191
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
192
|
+
border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
191
193
|
font-size: 0.7rem;
|
|
192
194
|
font-weight: 600;
|
|
193
195
|
text-transform: uppercase;
|
|
@@ -198,7 +200,7 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
198
200
|
display: grid;
|
|
199
201
|
grid-template-columns: 1.5fr 0.8fr 1fr;
|
|
200
202
|
padding: var(--sp-3) var(--sp-5);
|
|
201
|
-
border-bottom: 1px solid
|
|
203
|
+
border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
202
204
|
font-size: 0.85rem;
|
|
203
205
|
align-items: center;
|
|
204
206
|
transition: background 0.2s ease;
|
|
@@ -207,7 +209,7 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
207
209
|
border-bottom: none;
|
|
208
210
|
}
|
|
209
211
|
.table-row:hover {
|
|
210
|
-
background:
|
|
212
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.03);
|
|
211
213
|
}
|
|
212
214
|
.col--name {
|
|
213
215
|
color: var(--c-text-1);
|
|
@@ -250,9 +252,9 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
250
252
|
/* Progress Bar */
|
|
251
253
|
.progress-section {
|
|
252
254
|
padding: var(--sp-5);
|
|
253
|
-
background:
|
|
255
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.04);
|
|
254
256
|
backdrop-filter: blur(12px);
|
|
255
|
-
border: 1px solid
|
|
257
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
256
258
|
border-radius: var(--r-lg);
|
|
257
259
|
}
|
|
258
260
|
.progress-labels {
|
|
@@ -273,16 +275,16 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
273
275
|
}
|
|
274
276
|
.progress-track {
|
|
275
277
|
height: 8px;
|
|
276
|
-
background:
|
|
278
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
277
279
|
border-radius: var(--r-full);
|
|
278
280
|
overflow: hidden;
|
|
279
281
|
}
|
|
280
282
|
.progress-fill {
|
|
281
283
|
width: 73%;
|
|
282
284
|
height: 100%;
|
|
283
|
-
background: linear-gradient(90deg, var(--c-primary-light), var(--c-primary),
|
|
285
|
+
background: linear-gradient(90deg, var(--c-primary-light), var(--c-primary), color-mix(in srgb, var(--c-primary, #b8860b) 40%, transparent));
|
|
284
286
|
border-radius: var(--r-full);
|
|
285
|
-
box-shadow: 0 0 12px
|
|
287
|
+
box-shadow: 0 0 12px color-mix(in srgb, var(--c-primary, #b8860b) 30%, transparent);
|
|
286
288
|
animation: progress-pulse 2.5s ease-in-out infinite;
|
|
287
289
|
}
|
|
288
290
|
@keyframes progress-pulse {
|
|
@@ -293,7 +295,7 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
293
295
|
.usage-code {
|
|
294
296
|
text-align: center;
|
|
295
297
|
padding: var(--sp-4);
|
|
296
|
-
background:
|
|
298
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.02);
|
|
297
299
|
border-radius: var(--r-md);
|
|
298
300
|
}
|
|
299
301
|
.usage-code code {
|
|
@@ -302,7 +304,7 @@ const { title = "Data Display", subtitle = "Stats, tables, and visualization ele
|
|
|
302
304
|
color: var(--c-primary-light);
|
|
303
305
|
}
|
|
304
306
|
|
|
305
|
-
@
|
|
307
|
+
@container (max-width: 640px) {
|
|
306
308
|
.stats-row {
|
|
307
309
|
grid-template-columns: 1fr;
|
|
308
310
|
gap: var(--sp-3);
|