DocsFisheye Infinite Grid

Fisheye Infinite Grid

A seamless two-axis image wall warped as one continuous fisheye surface, with dense editorial tiles and weighted drag navigation.

Installation

pnpm dlx shadcn@latest add @componentry/fisheye-infinite-grid

Dependencies: clsx tailwind-merge

Usage

API Reference

PropTypeDefault
itemsFisheyeGridItem[]

Images and labels repeated across the seamless two-axis grid.

Built-in editorial motion collection
tileWidthnumber

Width of each gallery tile in CSS pixels.

238
tileHeightnumber

Height of each gallery tile in CSS pixels.

272
gapnumber

Space between adjacent grid tiles in CSS pixels.

0
lensStrengthnumber

Intensity of the center-weighted bend. Use 0 for a flat grid.

0.24
theme"dark" | "light" | "system"

Color treatment for the grid surface, tile chrome, labels, and depth vignette. System follows the active page or OS theme.

"system"
hoverNudgenumber

Distance of the small reversible motion shown when a mouse enters the grid.

16
inertianumber

Momentum retained after drag release. Values are clamped between 0 and 0.98.

0.94
wheelSensitivitynumber

Trackpad and mouse-wheel response. Lower values create a slower, heavier pan.

0.42
classNamestring

Additional classes applied to the root container.

—

Keep in mind

This component is inspired by various open-source projects and patterns. Please verify licenses and implementation details before using in production.

Need a custom component?

I build bespoke UI components & websites tailored to your brand.

DM me on X
PreviousEye TrackingNextFlight Status Card
Drag in any direction or use the arrow keys to explore the infinite grid.
import { FisheyeInfiniteGrid } from "@/components/ui/fisheye-infinite-grid"
 
export default function Gallery() {
  return (
    <FisheyeInfiniteGrid
      className="h-full min-h-[620px] w-full"
    />
  )
}