Your KPIs become tall glowing 3D towers in a dark abstract city. The dashboard screenshot floats above the skyline like a control layer, with FogExp2 atmospheric perspective fading distant towers into deep blue-black.
import MetricsCity from '@crazygl/hero-metrics-city';
export default function Hero() {
return (
<MetricsCity
screenshot="/product/dashboard.png"
towerCount={220}
highColor="#FFB45A"
lowColor="#3A4D7A"
/>
);
}screenshot plus screenshotX/Y/Z, screenshotScale, screenshotTilt, screenEmissive.towerCount, towerSpacing, towerWidth, heightVariation, centerBoost, animSpeed, animAmplitude, lowColor→highColor gradient, topGlow (cap brightness).fogDensity, fogColor, groundColor, bgColor, transparentBackground.cameraPitch, cameraDistance, cameraHeight, parallaxStrength.npm install @crazygl/hero-metrics-cityThe component takes the same props you see in the live customizer on the right — every default ships poster-quality.
import FloatingMetricsCity from '@crazygl/hero-metrics-city';
export default function Landing() {
return (
<FloatingMetricsCity />
);
}The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';
import FloatingMetricsCity from '@crazygl/hero-metrics-city';
export default function Page() {
return (
<section>
<FloatingMetricsCity
heading="Say hi."
subheading="Your new hero."
/>
<article>
<h2>Welcome</h2>
<p>Your content keeps its own voice below the hero.</p>
</article>
</section>
);
}