A seamless two-axis image wall warped as one continuous fisheye surface, with dense editorial tiles and weighted drag navigation.
pnpm dlx shadcn@latest add @componentry/fisheye-infinite-grid| Property | Type | Default |
|---|---|---|
itemsImages and labels repeated across the seamless two-axis grid. | FisheyeGridItem[] | Built-in editorial motion collection |
tileWidthWidth of each gallery tile in CSS pixels. | number | 238 |
tileHeightHeight of each gallery tile in CSS pixels. | number | 272 |
gapSpace between adjacent grid tiles in CSS pixels. | number | 0 |
lensStrengthIntensity of the center-weighted bend. Use 0 for a flat grid. | number | 0.24 |
themeColor treatment for the grid surface, tile chrome, labels, and depth vignette. System follows the active page or OS theme. | "dark" | "light" | "system" | "system" |
hoverNudgeDistance of the small reversible motion shown when a mouse enters the grid. | number | 16 |
inertiaMomentum retained after drag release. Values are clamped between 0 and 0.98. | number | 0.94 |
wheelSensitivityTrackpad and mouse-wheel response. Lower values create a slower, heavier pan. | number | 0.42 |
classNameAdditional classes applied to the root container. | string | — |
View source
Keep in mind
Need a custom component?
I build bespoke UI components & websites tailored to your brand.
import { FisheyeInfiniteGrid } from "@/components/ui/fisheye-infinite-grid"export default function Gallery() {
return (
<FisheyeInfiniteGrid
className="h-full min-h-[620px] w-full"
/>
)
}