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
|
@@ -174,7 +174,7 @@ const faqs = [
|
|
|
174
174
|
font-weight: 700;
|
|
175
175
|
letter-spacing: 0.06em;
|
|
176
176
|
text-transform: uppercase;
|
|
177
|
-
background:
|
|
177
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent);
|
|
178
178
|
color: #eab308;
|
|
179
179
|
border: 1px solid rgba(234, 179, 8, 0.25);
|
|
180
180
|
margin-bottom: var(--sp-4, 1rem);
|
|
@@ -208,7 +208,7 @@ const faqs = [
|
|
|
208
208
|
.faq-tab {
|
|
209
209
|
padding: 0.5rem 1.1rem;
|
|
210
210
|
background: rgba(15, 23, 42, 0.6);
|
|
211
|
-
border: 1px solid
|
|
211
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
212
212
|
border-radius: 9999px;
|
|
213
213
|
color: #94a3b8;
|
|
214
214
|
font-size: 0.85rem;
|
|
@@ -219,7 +219,7 @@ const faqs = [
|
|
|
219
219
|
|
|
220
220
|
.faq-tab:hover {
|
|
221
221
|
color: #fff;
|
|
222
|
-
border-color:
|
|
222
|
+
border-color: rgb(var(--ink-rgb, 255 255 255) / 0.2);
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
.faq-tab--active {
|
|
@@ -239,14 +239,14 @@ const faqs = [
|
|
|
239
239
|
.faq-item {
|
|
240
240
|
background: rgba(15, 23, 42, 0.5);
|
|
241
241
|
backdrop-filter: blur(16px);
|
|
242
|
-
border: 1px solid
|
|
242
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
243
243
|
border-radius: 16px;
|
|
244
244
|
overflow: hidden;
|
|
245
245
|
transition: border-color 0.3s ease, background 0.3s ease;
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
.faq-item:hover {
|
|
249
|
-
border-color:
|
|
249
|
+
border-color: rgb(var(--ink-rgb, 255 255 255) / 0.18);
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
.faq-item[open] {
|
|
@@ -302,7 +302,7 @@ const faqs = [
|
|
|
302
302
|
gap: 1.5rem;
|
|
303
303
|
padding: 1.75rem 2rem;
|
|
304
304
|
background: rgba(15, 23, 42, 0.6);
|
|
305
|
-
border: 1px solid
|
|
305
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
306
306
|
border-radius: 20px;
|
|
307
307
|
flex-wrap: wrap;
|
|
308
308
|
}
|
|
@@ -331,8 +331,8 @@ const faqs = [
|
|
|
331
331
|
|
|
332
332
|
.support-btn {
|
|
333
333
|
padding: 0.75rem 1.4rem;
|
|
334
|
-
background:
|
|
335
|
-
border: 1px solid
|
|
334
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
335
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.15);
|
|
336
336
|
border-radius: 10px;
|
|
337
337
|
color: #fff;
|
|
338
338
|
font-size: 0.9rem;
|
|
@@ -44,6 +44,7 @@ const uid = Math.random().toString(36).slice(2, 8);
|
|
|
44
44
|
const id = `ftc-${uid}`;
|
|
45
45
|
---
|
|
46
46
|
|
|
47
|
+
<div class="cq-faq-two-column-cq">
|
|
47
48
|
<section class={`ftc ftc--${variant} ftc--${size} ${className}`} aria-labelledby={id}>
|
|
48
49
|
<div class="ftc__inner">
|
|
49
50
|
<div class="ftc__intro">
|
|
@@ -69,8 +70,9 @@ const id = `ftc-${uid}`;
|
|
|
69
70
|
</div>
|
|
70
71
|
</div>
|
|
71
72
|
</section>
|
|
72
|
-
|
|
73
|
+
</div>
|
|
73
74
|
<style>
|
|
75
|
+
.cq-faq-two-column-cq { container-type: inline-size; }
|
|
74
76
|
.ftc {
|
|
75
77
|
--ftc-py: 5.5rem;
|
|
76
78
|
padding: var(--ftc-py) var(--sp-6, 1.5rem);
|
|
@@ -82,14 +84,14 @@ const id = `ftc-${uid}`;
|
|
|
82
84
|
.ftc__intro { position: sticky; top: 6rem; }
|
|
83
85
|
.ftc__title { margin: 0 0 1rem; font-size: clamp(1.9rem, 4vw, 2.5rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1.12; color: var(--c-text-1, #fff); }
|
|
84
86
|
.ftc__subtitle { margin: 0 0 1.75rem; font-size: 1rem; line-height: 1.65; color: var(--c-text-2, #a3a3a3); }
|
|
85
|
-
.ftc__support { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 46px; padding: 0 1.25rem; border-radius: var(--r-md, 12px); border: 1px solid
|
|
86
|
-
.ftc__support:hover { border-color:
|
|
87
|
+
.ftc__support { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 46px; padding: 0 1.25rem; border-radius: var(--r-md, 12px); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.14); color: var(--c-text-1, #fff); font-weight: 600; text-decoration: none; transition: border-color 0.2s ease; }
|
|
88
|
+
.ftc__support:hover { border-color: rgb(var(--ink-rgb, 255 255 255) / 0.32); color: var(--c-text-1, #fff); }
|
|
87
89
|
.ftc__support:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: 2px; }
|
|
88
90
|
.ftc__list { display: grid; }
|
|
89
91
|
.ftc--cards .ftc__list { gap: 0.75rem; }
|
|
90
|
-
.ftc--bordered .ftc__item { border-bottom: 1px solid
|
|
91
|
-
.ftc--bordered .ftc__item:first-child { border-top: 1px solid
|
|
92
|
-
.ftc--cards .ftc__item { border-radius: var(--r-md, 14px); background:
|
|
92
|
+
.ftc--bordered .ftc__item { border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08); }
|
|
93
|
+
.ftc--bordered .ftc__item:first-child { border-top: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08); }
|
|
94
|
+
.ftc--cards .ftc__item { border-radius: var(--r-md, 14px); background: rgb(var(--ink-rgb, 255 255 255) / 0.025); border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.07)); padding-inline: 1.25rem; }
|
|
93
95
|
.ftc__q {
|
|
94
96
|
display: flex;
|
|
95
97
|
justify-content: space-between;
|
|
@@ -111,7 +113,7 @@ const id = `ftc-${uid}`;
|
|
|
111
113
|
.ftc__a p { margin: 0; font-size: 0.9875rem; line-height: 1.7; color: var(--c-text-2, #a3a3a3); }
|
|
112
114
|
.ftc__item[open] .ftc__a { animation: ftc-in 0.25s ease; }
|
|
113
115
|
@keyframes ftc-in { from { opacity: 0; transform: translateY(-4px); } }
|
|
114
|
-
@
|
|
116
|
+
@container (max-width: 820px) {
|
|
115
117
|
.ftc__inner { grid-template-columns: 1fr; }
|
|
116
118
|
.ftc__intro { position: static; }
|
|
117
119
|
}
|
|
@@ -55,6 +55,7 @@ const id = `far-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
55
55
|
const bars = [38, 62, 48, 80, 66, 92, 74];
|
|
56
56
|
---
|
|
57
57
|
|
|
58
|
+
<div class="cq-feature-alternating-rows-cq">
|
|
58
59
|
<section class={`far far--${variant} far--${size} ${className}`} aria-labelledby={id}>
|
|
59
60
|
<h2 id={id} class="far__sr">{title}</h2>
|
|
60
61
|
<div class="far__inner">
|
|
@@ -105,8 +106,9 @@ const bars = [38, 62, 48, 80, 66, 92, 74];
|
|
|
105
106
|
})}
|
|
106
107
|
</div>
|
|
107
108
|
</section>
|
|
108
|
-
|
|
109
|
+
</div>
|
|
109
110
|
<style>
|
|
111
|
+
.cq-feature-alternating-rows-cq { container-type: inline-size; }
|
|
110
112
|
.far {
|
|
111
113
|
--far-py: 5.5rem;
|
|
112
114
|
padding: var(--far-py) var(--sp-6, 1.5rem);
|
|
@@ -134,10 +136,10 @@ const bars = [38, 62, 48, 80, 66, 92, 74];
|
|
|
134
136
|
overflow: hidden;
|
|
135
137
|
}
|
|
136
138
|
.far--glass .far__visual {
|
|
137
|
-
background: radial-gradient(circle at 30% 20%,
|
|
138
|
-
border: 1px solid var(--c-border,
|
|
139
|
+
background: radial-gradient(circle at 30% 20%, rgb(var(--ink-rgb, 255 255 255) / 0.06), transparent 60%), rgb(var(--ink-rgb, 255 255 255) / 0.02);
|
|
140
|
+
border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.07));
|
|
139
141
|
}
|
|
140
|
-
.far--outline .far__visual { border: 1px dashed
|
|
142
|
+
.far--outline .far__visual { border: 1px dashed rgb(var(--ink-rgb, 255 255 255) / 0.14); }
|
|
141
143
|
.far__chart { display: flex; align-items: flex-end; gap: 10px; width: 100%; height: 70%; }
|
|
142
144
|
.far__chart span {
|
|
143
145
|
flex: 1;
|
|
@@ -155,7 +157,7 @@ const bars = [38, 62, 48, 80, 66, 92, 74];
|
|
|
155
157
|
padding: 1.5rem;
|
|
156
158
|
border-radius: var(--r-md, 12px);
|
|
157
159
|
background: #0b0b0d;
|
|
158
|
-
border: 1px solid
|
|
160
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
159
161
|
font-family: var(--font-mono, monospace);
|
|
160
162
|
font-size: 0.8125rem;
|
|
161
163
|
line-height: 1.75;
|
|
@@ -173,8 +175,8 @@ const bars = [38, 62, 48, 80, 66, 92, 74];
|
|
|
173
175
|
gap: 0.75rem;
|
|
174
176
|
padding: 0.85rem 1rem;
|
|
175
177
|
border-radius: var(--r-md, 12px);
|
|
176
|
-
background:
|
|
177
|
-
border: 1px solid
|
|
178
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.03);
|
|
179
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.07);
|
|
178
180
|
font-family: var(--font-mono, monospace);
|
|
179
181
|
font-size: 0.8125rem;
|
|
180
182
|
color: var(--c-text-1, #fff);
|
|
@@ -182,7 +184,7 @@ const bars = [38, 62, 48, 80, 66, 92, 74];
|
|
|
182
184
|
.far__stack span::before { content: ''; width: 20px; height: 20px; border-radius: 6px; background: var(--c); }
|
|
183
185
|
.far__stack span:nth-child(2) { margin-left: 1.5rem; }
|
|
184
186
|
.far__stack span:nth-child(3) { margin-left: 3rem; }
|
|
185
|
-
@
|
|
187
|
+
@container (max-width: 820px) {
|
|
186
188
|
.far__row { grid-template-columns: 1fr; }
|
|
187
189
|
.far__row--rev .far__copy { order: 0; }
|
|
188
190
|
}
|
|
@@ -21,6 +21,7 @@ const {
|
|
|
21
21
|
} = Astro.props;
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
+
<div class="cq-feature-bento-grid-cq">
|
|
24
25
|
<section class={`bento-section ${className}`} aria-labelledby="bento-title">
|
|
25
26
|
<div class="bento-bg" aria-hidden="true">
|
|
26
27
|
<div class="bento-glow bento-glow--1"></div>
|
|
@@ -139,8 +140,9 @@ const {
|
|
|
139
140
|
</div>
|
|
140
141
|
</div>
|
|
141
142
|
</section>
|
|
142
|
-
|
|
143
|
+
</div>
|
|
143
144
|
<style>
|
|
145
|
+
.cq-feature-bento-grid-cq { container-type: inline-size; }
|
|
144
146
|
.bento-section {
|
|
145
147
|
position: relative;
|
|
146
148
|
padding: var(--sp-20, 5rem) var(--sp-6, 1.5rem);
|
|
@@ -199,7 +201,7 @@ const {
|
|
|
199
201
|
font-weight: 700;
|
|
200
202
|
letter-spacing: 0.06em;
|
|
201
203
|
text-transform: uppercase;
|
|
202
|
-
background:
|
|
204
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent);
|
|
203
205
|
color: #eab308;
|
|
204
206
|
border: 1px solid rgba(234, 179, 8, 0.25);
|
|
205
207
|
margin-bottom: var(--sp-4, 1rem);
|
|
@@ -233,7 +235,7 @@ const {
|
|
|
233
235
|
background: rgba(15, 23, 42, 0.6);
|
|
234
236
|
backdrop-filter: blur(20px);
|
|
235
237
|
-webkit-backdrop-filter: blur(20px);
|
|
236
|
-
border: 1px solid
|
|
238
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
237
239
|
border-radius: var(--r-xl, 20px);
|
|
238
240
|
padding: 2rem;
|
|
239
241
|
display: flex;
|
|
@@ -245,7 +247,7 @@ const {
|
|
|
245
247
|
|
|
246
248
|
.bento-card:hover {
|
|
247
249
|
transform: translateY(-4px);
|
|
248
|
-
border-color:
|
|
250
|
+
border-color: rgb(var(--ink-rgb, 255 255 255) / 0.18);
|
|
249
251
|
box-shadow: 0 20px 40px -15px rgba(0, 0, 0, 0.6);
|
|
250
252
|
}
|
|
251
253
|
|
|
@@ -306,13 +308,13 @@ const {
|
|
|
306
308
|
padding: 1rem;
|
|
307
309
|
background: rgba(0, 0, 0, 0.3);
|
|
308
310
|
border-radius: 12px;
|
|
309
|
-
border: 1px solid
|
|
311
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.05);
|
|
310
312
|
}
|
|
311
313
|
|
|
312
314
|
.speed-score {
|
|
313
315
|
text-align: center;
|
|
314
316
|
padding-right: 1.5rem;
|
|
315
|
-
border-right: 1px solid
|
|
317
|
+
border-right: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
316
318
|
}
|
|
317
319
|
|
|
318
320
|
.score-number {
|
|
@@ -364,7 +366,7 @@ const {
|
|
|
364
366
|
.a11y-pill {
|
|
365
367
|
padding: 0.6rem 0.85rem;
|
|
366
368
|
background: rgba(0, 0, 0, 0.3);
|
|
367
|
-
border: 1px solid
|
|
369
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
368
370
|
border-radius: 8px;
|
|
369
371
|
font-size: 0.82rem;
|
|
370
372
|
color: #cbd5e1;
|
|
@@ -380,7 +382,7 @@ const {
|
|
|
380
382
|
width: 22px;
|
|
381
383
|
height: 22px;
|
|
382
384
|
border-radius: 50%;
|
|
383
|
-
border: 2px solid
|
|
385
|
+
border: 2px solid rgb(var(--ink-rgb, 255 255 255) / 0.2);
|
|
384
386
|
}
|
|
385
387
|
.color-dot--gold { background: #eab308; }
|
|
386
388
|
.color-dot--indigo { background: #6366f1; }
|
|
@@ -391,7 +393,7 @@ const {
|
|
|
391
393
|
padding: 0.75rem;
|
|
392
394
|
background: rgba(0, 0, 0, 0.5);
|
|
393
395
|
border-radius: 8px;
|
|
394
|
-
border: 1px solid
|
|
396
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
395
397
|
font-size: 0.8rem;
|
|
396
398
|
color: #93c5fd;
|
|
397
399
|
font-family: var(--font-mono, monospace);
|
|
@@ -424,7 +426,7 @@ const {
|
|
|
424
426
|
50% { transform: scale(1.4); opacity: 0.6; }
|
|
425
427
|
}
|
|
426
428
|
|
|
427
|
-
@
|
|
429
|
+
@container (max-width: 960px) {
|
|
428
430
|
.bento-grid {
|
|
429
431
|
grid-template-columns: 1fr;
|
|
430
432
|
}
|
|
@@ -439,7 +441,7 @@ const {
|
|
|
439
441
|
}
|
|
440
442
|
.speed-score {
|
|
441
443
|
border-right: none;
|
|
442
|
-
border-bottom: 1px solid
|
|
444
|
+
border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
443
445
|
padding-right: 0;
|
|
444
446
|
padding-bottom: 0.75rem;
|
|
445
447
|
width: 100%;
|
|
@@ -113,14 +113,14 @@ const id = `fig-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
113
113
|
transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
|
|
114
114
|
}
|
|
115
115
|
.fig--card .fig__card {
|
|
116
|
-
background: linear-gradient(160deg,
|
|
117
|
-
border: 1px solid var(--c-border,
|
|
116
|
+
background: linear-gradient(160deg, rgb(var(--ink-rgb, 255 255 255) / 0.04), rgb(var(--ink-rgb, 255 255 255) / 0.01));
|
|
117
|
+
border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.07));
|
|
118
118
|
}
|
|
119
|
-
.fig--bordered .fig__card { border: 1px solid
|
|
119
|
+
.fig--bordered .fig__card { border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1); }
|
|
120
120
|
.fig--plain .fig__card { padding: 0.5rem 0; }
|
|
121
121
|
.fig--card .fig__card:hover, .fig--card .fig__card:focus-within,
|
|
122
122
|
.fig--bordered .fig__card:hover, .fig--bordered .fig__card:focus-within {
|
|
123
|
-
border-color:
|
|
123
|
+
border-color: color-mix(in srgb, var(--c-primary-light, #d4a017) 35%, transparent);
|
|
124
124
|
transform: translateY(-3px);
|
|
125
125
|
}
|
|
126
126
|
.fig__icon {
|
|
@@ -130,8 +130,8 @@ const id = `fig-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
130
130
|
height: 46px;
|
|
131
131
|
margin-bottom: 1.25rem;
|
|
132
132
|
border-radius: var(--r-md, 12px);
|
|
133
|
-
background: var(--c-primary-glow,
|
|
134
|
-
border: 1px solid
|
|
133
|
+
background: var(--c-primary-glow, color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent));
|
|
134
|
+
border: 1px solid color-mix(in srgb, var(--c-primary-light, #d4a017) 25%, transparent);
|
|
135
135
|
color: var(--c-primary-light, #d4a017);
|
|
136
136
|
}
|
|
137
137
|
.fig__card-title { margin: 0 0 0.5rem; font-size: 1.125rem; font-weight: 650; color: var(--c-text-1, #fff); letter-spacing: -0.01em; }
|
|
@@ -37,6 +37,7 @@ const uid = Math.random().toString(36).slice(2, 8);
|
|
|
37
37
|
const id = `fts-${uid}`;
|
|
38
38
|
---
|
|
39
39
|
|
|
40
|
+
<div class="cq-feature-tabs-showcase-cq">
|
|
40
41
|
<section class={`fts fts--${variant} fts--${size} ${className}`} aria-labelledby={id}>
|
|
41
42
|
<div class="fts__inner">
|
|
42
43
|
<header class="fts__head">
|
|
@@ -79,7 +80,7 @@ const id = `fts-${uid}`;
|
|
|
79
80
|
</div>
|
|
80
81
|
</div>
|
|
81
82
|
</section>
|
|
82
|
-
|
|
83
|
+
</div>
|
|
83
84
|
<script>
|
|
84
85
|
document.querySelectorAll<HTMLElement>('[data-fts]').forEach((root) => {
|
|
85
86
|
const tabs = Array.from(root.querySelectorAll<HTMLButtonElement>('[role="tab"]'));
|
|
@@ -106,6 +107,7 @@ const id = `fts-${uid}`;
|
|
|
106
107
|
</script>
|
|
107
108
|
|
|
108
109
|
<style>
|
|
110
|
+
.cq-feature-tabs-showcase-cq { container-type: inline-size; }
|
|
109
111
|
.fts {
|
|
110
112
|
--fts-py: 5.5rem;
|
|
111
113
|
padding: var(--fts-py) var(--sp-6, 1.5rem);
|
|
@@ -133,13 +135,13 @@ const id = `fts-${uid}`;
|
|
|
133
135
|
}
|
|
134
136
|
.fts__tab:hover { color: var(--c-text-1, #fff); }
|
|
135
137
|
.fts__tab:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: 2px; }
|
|
136
|
-
.fts--pills .fts__list { width: fit-content; margin-inline: auto; padding: 0.35rem; border-radius: var(--r-full, 999px); background:
|
|
137
|
-
.fts--pills .fts__tab[aria-selected='true'] { background: var(--c-text-1, #fff); color: #0a0a0a; }
|
|
138
|
-
.fts--underline .fts__list { border-bottom: 1px solid
|
|
138
|
+
.fts--pills .fts__list { width: fit-content; margin-inline: auto; padding: 0.35rem; border-radius: var(--r-full, 999px); background: rgb(var(--ink-rgb, 255 255 255) / 0.04); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.07); }
|
|
139
|
+
.fts--pills .fts__tab[aria-selected='true'] { background: var(--c-text-1, #fff); color: var(--c-on-primary, #0a0a0a); }
|
|
140
|
+
.fts--underline .fts__list { border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08); gap: 1.5rem; }
|
|
139
141
|
.fts--underline .fts__tab { border-radius: 0; padding: 0 0.25rem; border-bottom: 2px solid transparent; margin-bottom: -1px; }
|
|
140
142
|
.fts--underline .fts__tab[aria-selected='true'] { color: var(--c-text-1, #fff); border-bottom-color: var(--c-primary-light, #d4a017); }
|
|
141
|
-
.fts--cards .fts__tab { border-radius: var(--r-md, 12px); border-color:
|
|
142
|
-
.fts--cards .fts__tab[aria-selected='true'] { border-color: var(--c-primary-light, #d4a017); color: var(--c-text-1, #fff); background: var(--c-primary-glow,
|
|
143
|
+
.fts--cards .fts__tab { border-radius: var(--r-md, 12px); border-color: rgb(var(--ink-rgb, 255 255 255) / 0.08); }
|
|
144
|
+
.fts--cards .fts__tab[aria-selected='true'] { border-color: var(--c-primary-light, #d4a017); color: var(--c-text-1, #fff); background: var(--c-primary-glow, color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent)); }
|
|
143
145
|
|
|
144
146
|
.fts__panel {
|
|
145
147
|
display: grid;
|
|
@@ -148,8 +150,8 @@ const id = `fts-${uid}`;
|
|
|
148
150
|
align-items: center;
|
|
149
151
|
padding: clamp(1.5rem, 4vw, 3rem);
|
|
150
152
|
border-radius: var(--r-xl, 24px);
|
|
151
|
-
background: linear-gradient(160deg,
|
|
152
|
-
border: 1px solid var(--c-border,
|
|
153
|
+
background: linear-gradient(160deg, rgb(var(--ink-rgb, 255 255 255) / 0.045), rgb(var(--ink-rgb, 255 255 255) / 0.01));
|
|
154
|
+
border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.07));
|
|
153
155
|
animation: fts-in 0.35s ease;
|
|
154
156
|
}
|
|
155
157
|
.fts__panel[hidden] { display: none; }
|
|
@@ -168,13 +170,13 @@ const id = `fts-${uid}`;
|
|
|
168
170
|
gap: 0.5rem;
|
|
169
171
|
min-height: 200px;
|
|
170
172
|
border-radius: var(--r-lg, 20px);
|
|
171
|
-
background: radial-gradient(circle at 50% 30%, var(--c-primary-glow,
|
|
172
|
-
border: 1px solid
|
|
173
|
+
background: radial-gradient(circle at 50% 30%, var(--c-primary-glow, color-mix(in srgb, var(--c-primary, #b8860b) 16%, transparent)), transparent 70%), rgb(var(--ink-rgb, 255 255 255) / 0.02);
|
|
174
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
173
175
|
text-align: center;
|
|
174
176
|
padding: 1.5rem;
|
|
175
177
|
}
|
|
176
178
|
.fts__stat-value { font-size: clamp(2.75rem, 6vw, 4rem); font-weight: 800; letter-spacing: -0.04em; color: var(--c-text-1, #fff); font-variant-numeric: tabular-nums; line-height: 1; }
|
|
177
179
|
.fts__stat-label { font-size: 0.875rem; color: var(--c-text-2, #a3a3a3); }
|
|
178
|
-
@
|
|
180
|
+
@container (max-width: 760px) { .fts__panel { grid-template-columns: 1fr; } }
|
|
179
181
|
@media (prefers-reduced-motion: reduce) { .fts__panel { animation: none; } }
|
|
180
182
|
</style>
|
|
@@ -48,6 +48,7 @@ const steps = [
|
|
|
48
48
|
];
|
|
49
49
|
---
|
|
50
50
|
|
|
51
|
+
<div class="cq-feature-timeline-flow-cq">
|
|
51
52
|
<section class={`timeline-section ${className}`} aria-labelledby="timeline-title">
|
|
52
53
|
<div class="timeline-bg" aria-hidden="true">
|
|
53
54
|
<div class="timeline-glow"></div>
|
|
@@ -83,8 +84,9 @@ const steps = [
|
|
|
83
84
|
</div>
|
|
84
85
|
</div>
|
|
85
86
|
</section>
|
|
86
|
-
|
|
87
|
+
</div>
|
|
87
88
|
<style>
|
|
89
|
+
.cq-feature-timeline-flow-cq { container-type: inline-size; }
|
|
88
90
|
.timeline-section {
|
|
89
91
|
position: relative;
|
|
90
92
|
padding: var(--sp-20, 5rem) var(--sp-6, 1.5rem);
|
|
@@ -131,7 +133,7 @@ const steps = [
|
|
|
131
133
|
font-weight: 700;
|
|
132
134
|
letter-spacing: 0.06em;
|
|
133
135
|
text-transform: uppercase;
|
|
134
|
-
background:
|
|
136
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 12%, transparent);
|
|
135
137
|
color: #eab308;
|
|
136
138
|
border: 1px solid rgba(234, 179, 8, 0.25);
|
|
137
139
|
margin-bottom: var(--sp-4, 1rem);
|
|
@@ -199,7 +201,7 @@ const steps = [
|
|
|
199
201
|
flex: 1;
|
|
200
202
|
background: rgba(15, 23, 42, 0.6);
|
|
201
203
|
backdrop-filter: blur(20px);
|
|
202
|
-
border: 1px solid
|
|
204
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
203
205
|
border-radius: 20px;
|
|
204
206
|
padding: 2rem;
|
|
205
207
|
transition: transform 0.3s ease, border-color 0.3s ease;
|
|
@@ -207,7 +209,7 @@ const steps = [
|
|
|
207
209
|
|
|
208
210
|
.step-card__body:hover {
|
|
209
211
|
transform: translateX(4px);
|
|
210
|
-
border-color:
|
|
212
|
+
border-color: rgb(var(--ink-rgb, 255 255 255) / 0.18);
|
|
211
213
|
}
|
|
212
214
|
|
|
213
215
|
.step-tag {
|
|
@@ -234,7 +236,7 @@ const steps = [
|
|
|
234
236
|
.step-code {
|
|
235
237
|
padding: 0.75rem 1rem;
|
|
236
238
|
background: rgba(0, 0, 0, 0.5);
|
|
237
|
-
border: 1px solid
|
|
239
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
238
240
|
border-radius: 10px;
|
|
239
241
|
font-family: var(--font-mono, monospace);
|
|
240
242
|
font-size: 0.85rem;
|
|
@@ -242,7 +244,7 @@ const steps = [
|
|
|
242
244
|
overflow-x: auto;
|
|
243
245
|
}
|
|
244
246
|
|
|
245
|
-
@
|
|
247
|
+
@container (max-width: 640px) {
|
|
246
248
|
.flow-line {
|
|
247
249
|
display: none;
|
|
248
250
|
}
|
|
@@ -8,6 +8,7 @@ interface Props {
|
|
|
8
8
|
const { title = "Feedback", subtitle = "Badges, alerts, and notification components." } = Astro.props;
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
<div class="cq-feedback-showcase-cq">
|
|
11
12
|
<section class="feedback-showcase">
|
|
12
13
|
<div class="container">
|
|
13
14
|
<div class="showcase-header">
|
|
@@ -66,8 +67,9 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
66
67
|
</div>
|
|
67
68
|
</div>
|
|
68
69
|
</section>
|
|
69
|
-
|
|
70
|
+
</div>
|
|
70
71
|
<style>
|
|
72
|
+
.cq-feedback-showcase-cq { container-type: inline-size; }
|
|
71
73
|
.feedback-showcase {
|
|
72
74
|
padding: var(--sp-16) 0;
|
|
73
75
|
position: relative;
|
|
@@ -84,8 +86,8 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
84
86
|
text-transform: uppercase;
|
|
85
87
|
letter-spacing: 0.1em;
|
|
86
88
|
color: var(--c-primary-light);
|
|
87
|
-
background:
|
|
88
|
-
border: 1px solid
|
|
89
|
+
background: color-mix(in srgb, var(--c-primary, #b8860b) 10%, transparent);
|
|
90
|
+
border: 1px solid color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent);
|
|
89
91
|
border-radius: var(--r-full);
|
|
90
92
|
margin-bottom: var(--sp-4);
|
|
91
93
|
}
|
|
@@ -107,7 +109,7 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
107
109
|
padding: var(--sp-12);
|
|
108
110
|
background: rgba(10, 10, 10, 0.6);
|
|
109
111
|
backdrop-filter: blur(20px);
|
|
110
|
-
border: 1px solid
|
|
112
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
111
113
|
border-radius: var(--r-xl);
|
|
112
114
|
margin-bottom: var(--sp-6);
|
|
113
115
|
box-shadow: 0 20px 60px rgba(0,0,0,0.4);
|
|
@@ -192,13 +194,13 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
192
194
|
}
|
|
193
195
|
.badge--new {
|
|
194
196
|
background: linear-gradient(135deg, var(--c-primary-light), var(--c-primary));
|
|
195
|
-
color: #0a0a0a;
|
|
196
|
-
box-shadow: 0 2px 10px
|
|
197
|
+
color: var(--c-on-primary, #0a0a0a);
|
|
198
|
+
box-shadow: 0 2px 10px color-mix(in srgb, var(--c-primary, #b8860b) 25%, transparent);
|
|
197
199
|
}
|
|
198
200
|
.badge--beta {
|
|
199
|
-
background:
|
|
201
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.08);
|
|
200
202
|
color: var(--c-text-1);
|
|
201
|
-
border: 1px solid
|
|
203
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12);
|
|
202
204
|
}
|
|
203
205
|
.badge--count {
|
|
204
206
|
background: rgba(239,68,68,0.15);
|
|
@@ -215,9 +217,9 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
215
217
|
gap: 0.75rem;
|
|
216
218
|
width: 100%;
|
|
217
219
|
padding: 1rem;
|
|
218
|
-
background:
|
|
220
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
219
221
|
backdrop-filter: blur(12px);
|
|
220
|
-
border: 1px solid
|
|
222
|
+
border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.1);
|
|
221
223
|
border-radius: var(--r-lg);
|
|
222
224
|
box-shadow: 0 8px 30px rgba(0,0,0,0.3);
|
|
223
225
|
animation: fadeSlideIn 0.5s ease 0.45s both;
|
|
@@ -268,7 +270,7 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
268
270
|
.spinner {
|
|
269
271
|
width: 1.5rem;
|
|
270
272
|
height: 1.5rem;
|
|
271
|
-
border: 2px solid
|
|
273
|
+
border: 2px solid color-mix(in srgb, var(--c-primary, #b8860b) 20%, transparent);
|
|
272
274
|
border-top-color: var(--c-primary-light);
|
|
273
275
|
border-radius: 50%;
|
|
274
276
|
animation: spin 0.8s linear infinite;
|
|
@@ -300,7 +302,7 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
300
302
|
.usage-code {
|
|
301
303
|
text-align: center;
|
|
302
304
|
padding: var(--sp-4);
|
|
303
|
-
background:
|
|
305
|
+
background: rgb(var(--ink-rgb, 255 255 255) / 0.02);
|
|
304
306
|
border-radius: var(--r-md);
|
|
305
307
|
}
|
|
306
308
|
.usage-code code {
|
|
@@ -309,7 +311,7 @@ const { title = "Feedback", subtitle = "Badges, alerts, and notification compone
|
|
|
309
311
|
color: var(--c-primary-light);
|
|
310
312
|
}
|
|
311
313
|
|
|
312
|
-
@
|
|
314
|
+
@container (max-width: 640px) {
|
|
313
315
|
.feedback-stack { max-width: 100%; gap: var(--sp-4); }
|
|
314
316
|
.preview-stage { padding: var(--sp-8) var(--sp-4); }
|
|
315
317
|
.preview-stage__inner { min-height: auto; }
|
|
@@ -58,6 +58,7 @@ const icons = {
|
|
|
58
58
|
const id = `fms-${Math.random().toString(36).slice(2, 8)}`;
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
+
<div class="cq-footer-mega-section-cq">
|
|
61
62
|
<footer class={`fms fms--${variant} fms--${size} ${className}`} aria-labelledby={id}>
|
|
62
63
|
<h2 id={id} class="fms__sr">Site footer</h2>
|
|
63
64
|
<div class="fms__inner">
|
|
@@ -108,32 +109,33 @@ const id = `fms-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
108
109
|
</div>
|
|
109
110
|
</div>
|
|
110
111
|
</footer>
|
|
111
|
-
|
|
112
|
+
</div>
|
|
112
113
|
<style>
|
|
114
|
+
.cq-footer-mega-section-cq { container-type: inline-size; }
|
|
113
115
|
.fms {
|
|
114
116
|
--fms-py: 4.5rem;
|
|
115
117
|
padding: var(--fms-py) var(--sp-6, 1.5rem) 2rem;
|
|
116
118
|
background: var(--c-bg-1, #0a0a0a);
|
|
117
|
-
border-top: 1px solid
|
|
119
|
+
border-top: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.06);
|
|
118
120
|
}
|
|
119
121
|
.fms--sm { --fms-py: 3rem; }
|
|
120
122
|
.fms--lg { --fms-py: 6rem; }
|
|
121
|
-
.fms--bordered .fms__inner { padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--r-xl, 28px); border: 1px solid var(--c-border,
|
|
123
|
+
.fms--bordered .fms__inner { padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--r-xl, 28px); border: 1px solid var(--c-border, rgb(var(--ink-rgb, 255 255 255) / 0.08)); background: rgb(var(--ink-rgb, 255 255 255) / 0.015); }
|
|
122
124
|
.fms--minimal { background: transparent; border-top: 0; }
|
|
123
125
|
.fms--minimal .fms__news { display: none; }
|
|
124
126
|
.fms__sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
|
|
125
127
|
.fms__inner { max-width: 1180px; margin: 0 auto; }
|
|
126
|
-
.fms__top { display: grid; grid-template-columns: 1.2fr 2fr; gap: clamp(2rem, 6vw, 5rem); padding-bottom: 3rem; border-bottom: 1px solid
|
|
128
|
+
.fms__top { display: grid; grid-template-columns: 1.2fr 2fr; gap: clamp(2rem, 6vw, 5rem); padding-bottom: 3rem; border-bottom: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.07); }
|
|
127
129
|
.fms__logo { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 44px; font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; color: var(--c-text-1, #fff); text-decoration: none; }
|
|
128
130
|
.fms__tagline { margin: 0.75rem 0 1.75rem; max-width: 320px; font-size: 0.9375rem; line-height: 1.6; color: var(--c-text-2, #a3a3a3); }
|
|
129
131
|
.fms__news-label { display: block; margin-bottom: 0.5rem; font-size: 0.8125rem; font-weight: 600; color: var(--c-text-1, #fff); }
|
|
130
|
-
.fms__news-field { display: flex; max-width: 340px; border-radius: var(--r-md, 12px); border: 1px solid
|
|
132
|
+
.fms__news-field { display: flex; max-width: 340px; border-radius: var(--r-md, 12px); border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.12); background: rgba(0, 0, 0, 0.3); overflow: hidden; transition: border-color 0.2s ease; }
|
|
131
133
|
.fms__news-field:focus-within { border-color: var(--c-primary-light, #d4a017); }
|
|
132
134
|
.fms__news-field input { flex: 1; min-width: 0; min-height: 46px; padding: 0 0.9rem; border: 0; background: transparent; color: var(--c-text-1, #fff); font: inherit; font-size: 0.9375rem; }
|
|
133
135
|
.fms__news-field input:focus { outline: none; }
|
|
134
136
|
.fms__news-field input::placeholder { color: var(--c-text-3, #737373); }
|
|
135
|
-
.fms__news-field button { width: 46px; border: 0; background:
|
|
136
|
-
.fms__news-field button:hover { background: var(--c-primary-light, #d4a017); color: #0a0a0a; }
|
|
137
|
+
.fms__news-field button { width: 46px; border: 0; background: rgb(var(--ink-rgb, 255 255 255) / 0.06); color: var(--c-text-1, #fff); cursor: pointer; transition: background 0.2s ease; }
|
|
138
|
+
.fms__news-field button:hover { background: var(--c-primary-light, #d4a017); color: var(--c-on-primary, #0a0a0a); }
|
|
137
139
|
.fms__news-field button:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: -2px; }
|
|
138
140
|
.fms__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 2rem; }
|
|
139
141
|
.fms__col-title { margin: 0 0 1rem; font-size: 0.8125rem; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-text-1, #fff); }
|
|
@@ -144,12 +146,12 @@ const id = `fms-${Math.random().toString(36).slice(2, 8)}`;
|
|
|
144
146
|
.fms a:focus-visible { outline: 2px solid var(--c-primary-light, #d4a017); outline-offset: 2px; border-radius: 4px; }
|
|
145
147
|
.fms__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.75rem; }
|
|
146
148
|
.fms__copy { margin: 0; font-size: 0.8125rem; }
|
|
147
|
-
.fms__status { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 36px; padding: 0 0.85rem; border-radius: 999px; border: 1px solid
|
|
149
|
+
.fms__status { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 36px; padding: 0 0.85rem; border-radius: 999px; border: 1px solid rgb(var(--ink-rgb, 255 255 255) / 0.08); font-size: 0.8125rem; }
|
|
148
150
|
.fms__status:hover { color: var(--c-text-1, #fff); }
|
|
149
151
|
.fms__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--chart-pos, #34c38f); box-shadow: 0 0 8px var(--chart-pos, #34c38f); }
|
|
150
152
|
.fms__socials { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.25rem; }
|
|
151
153
|
.fms__socials a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; color: var(--c-text-2, #a3a3a3); transition: color 0.2s ease, background 0.2s ease; }
|
|
152
|
-
.fms__socials a:hover { color: var(--c-text-1, #fff); background:
|
|
153
|
-
@
|
|
154
|
-
@
|
|
154
|
+
.fms__socials a:hover { color: var(--c-text-1, #fff); background: rgb(var(--ink-rgb, 255 255 255) / 0.06); }
|
|
155
|
+
@container (max-width: 860px) { .fms__top { grid-template-columns: 1fr; } }
|
|
156
|
+
@container (max-width: 560px) { .fms__bottom { flex-direction: column; align-items: flex-start; } }
|
|
155
157
|
</style>
|