Infinite Bento Pan
framecn/infinite-bento-panFreeComponent
A camera diagonally drifts across an oversized bento grid behind a soft vignette.
Install it
npx shadcn@latest add https://framecn.dev/r/infinite-bento-pan.jsonSource
1"use client";23import { Timegroup } from "@editframe/react";4import type { CSSProperties } from "react";56const FONT_FAMILY =7 "var(--font-geist-sans), -apple-system, BlinkMacSystemFont, sans-serif";89const SUPER_W = 3500;10const SUPER_H = 2500;1112type CardKind =13 | "chart"14 | "counter"15 | "gradient"16 | "code"17 | "logo"18 | "stat"19 | "bars";2021interface CardDef {22 x: number;23 y: number;24 w: number;25 h: number;26 kind: CardKind;27 hue: number;28 label?: string;29}3031const CARDS: CardDef[] = [32 { h: 280, hue: 220, kind: "chart", label: "Revenue", w: 480, x: 80, y: 80 },33 { h: 280, hue: 280, kind: "counter", label: "MRR", w: 280, x: 600, y: 80 },34 { h: 180, hue: 200, kind: "gradient", w: 360, x: 920, y: 80 },35 { h: 280, hue: 0, kind: "code", label: "deploy.ts", w: 480, x: 1320, y: 80 },36 { h: 280, hue: 320, kind: "logo", w: 280, x: 1840, y: 80 },37 { h: 180, hue: 160, kind: "stat", label: "Uptime", w: 380, x: 2160, y: 80 },38 { h: 280, hue: 40, kind: "bars", label: "Visits", w: 360, x: 2580, y: 80 },39 { h: 200, hue: 180, kind: "counter", label: "Users", w: 360, x: 920, y: 300 },40 {41 h: 200,42 hue: 100,43 kind: "chart",44 label: "Latency",45 w: 380,46 x: 2160,47 y: 300,48 },49 { h: 280, hue: 340, kind: "gradient", w: 280, x: 80, y: 400 },50 { h: 280, hue: 0, kind: "code", label: "api.ts", w: 480, x: 400, y: 400 },51 { h: 280, hue: 60, kind: "stat", label: "P95", w: 280, x: 1320, y: 420 },52 { h: 280, hue: 260, kind: "bars", label: "Builds", w: 380, x: 1640, y: 420 },53 { h: 280, hue: 200, kind: "logo", w: 360, x: 2580, y: 420 },54 { h: 240, hue: 290, kind: "chart", label: "Errors", w: 480, x: 80, y: 720 },55 { h: 240, hue: 20, kind: "stat", label: "RPS", w: 280, x: 600, y: 720 },56 { h: 220, hue: 240, kind: "gradient", w: 380, x: 920, y: 740 },57 {58 h: 220,59 hue: 140,60 kind: "counter",61 label: "Active",62 w: 360,63 x: 1320,64 y: 740,65 },66 { h: 220, hue: 0, kind: "code", label: "worker.ts", w: 480, x: 1720, y: 740 },67 { h: 220, hue: 320, kind: "bars", label: "Queue", w: 360, x: 2240, y: 740 },68 { h: 220, hue: 180, kind: "logo", w: 360, x: 80, y: 1000 },69 { h: 220, hue: 80, kind: "stat", label: "Cache", w: 380, x: 460, y: 1000 },70 { h: 220, hue: 200, kind: "chart", label: "CPU", w: 480, x: 880, y: 1000 },71 {72 h: 220,73 hue: 360,74 kind: "counter",75 label: "Jobs",76 w: 280,77 x: 1400,78 y: 1000,79 },80 { h: 220, hue: 120, kind: "gradient", w: 360, x: 1720, y: 1020 },81// … truncated
What it pulls in
npm packages
Files it writes
More from framecn
All 101 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| AI Generate Overlayai-generate-overlay | framecn | Components | Free | 1 dep | |
| AI Generation Canvasai-generation-canvas | framecn | Components | Free | 1 dep | |
| Animated Bar Chartanimated-bar-chart | framecn | Components | Free | 1 dep | |
| Animated Line Chartanimated-line-chart | framecn | Components | Free | 1 dep | |
| Backdropbackdrop | framecn | Components | Free | 1 dep | |
| Blur Out Upblur-out-up | framecn | Components | Free | 1 dep | |
| Blur Revealblur-reveal | framecn | Components | Free | 1 dep | |
| Bounding Box Selectorbounding-box-selector | framecn | Components | Free | 1 dep |
