
3D Extruded Buildings & Urban Footprints
Real-world 3D building extrusions with dynamic sunlight shadows, terrain DEM elevations, and pitch/bearing camera controls.
kpi-griduiBare responsive grid wrapper (2 / 3 / 4 columns). Pass any children — Cards, inline charts, custom tiles. No items prop, no item rendering.
Also available for Vue ->$pnpm dlx shadcn@latest add https://uipkge.dev/r/react/kpi-grid.json$npx shadcn@latest add https://uipkge.dev/r/react/kpi-grid.json$yarn dlx shadcn@latest add https://uipkge.dev/r/react/kpi-grid.json$bunx shadcn@latest add https://uipkge.dev/r/react/kpi-grid.jsonnpx shadcn@latest add @uipkge-react/kpi-gridInstalls to:components/ui/kpi-grid/Executive metrics grid combining KPI cards, sparkline micro-charts, trend indicators, and responsive grid geometry.
| Name | Type / Values | Default | Required |
|---|---|---|---|
columns | 2 | 3 | 4 | 4 | optional |
import * as React from 'react'
import { cn } from '@/lib/utils'
export interface KpiGridProps extends React.HTMLAttributes<HTMLDivElement> {
columns?: 2 | 3 | 4
}
const KpiGrid = React.forwardRef<HTMLDivElement, KpiGridProps>(
({ columns = 4, className, children, ...props }, ref) => (
<div
ref={ref}
data-uipkge=""
data-slot="kpi-grid"
className={cn(
'grid gap-4 md:grid-cols-2',
columns === 3 ? 'lg:grid-cols-3' : columns === 2 ? 'lg:grid-cols-2' : 'lg:grid-cols-4',
className,
)}
{...props}
>
{children}
</div>
),
)
KpiGrid.displayName = 'KpiGrid'
export { KpiGrid }
export { KpiGrid, type KpiGridProps } from './kpi-grid'
Raw manifest:https://uipkge.dev/r/react/kpi-grid.json