Circular Gallery
shadcn-extras/circular-galleryFreeComponent
A 3D circular fan-out image gallery.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/NayanDevLab/shadcn-extras/dev/public/c/circular-gallery.jsonSource
1'use client';23import * as React from 'react';4import { cn } from '@/lib/utils';5import './circular-gallery.css';67export interface CircularGalleryItemProps {8 id: string;9 imageSrc: string;10 title: string;11}1213export interface CircularGalleryProps extends Omit<14 React.HTMLAttributes<HTMLElement>,15 'title'16> {17 items: CircularGalleryItemProps[];18 title?: React.ReactNode;19 radius?: string;20}2122export const CircularGallery = React.forwardRef<23 HTMLElement,24 CircularGalleryProps25>(({ className, items, title, radius = '40vmin', ...props }, ref) => {26 return (27 <section28 ref={ref}29 className={cn('circular-gallery-wrapper', className)}30 style={31 {32 '--cards': items.length,33 '--radius': radius,34 } as React.CSSProperties35 }36 {...props}37 >38 {items.map((item, index) => (39 <div40 key={item.id}41 id={item.id}42 data-title={item.title}43 style={44 {45 '--i': index + 1,46 '--bg-img': `url(${item.imageSrc})`,47 } as React.CSSProperties48 }49 >50 <a href={`#${item.id}`}>51 {/* eslint-disable-next-line @next/next/no-img-element */}52 <img src={item.imageSrc} alt={item.title} />53 </a>54 </div>55 ))}56 {title && <h1>{title}</h1>}57 </section>58 );59});60CircularGallery.displayName = 'CircularGallery';
Files it writes
More from shadcn-extras
All 33 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Animated Image Gridanimated-image-grid | shadcn-extras | Components | Free | no deps · 3 files | |
| Blog Card Fourblog-card-four | shadcn-extras | Components | Free | 1 dep | |
| Blog Card Oneblog-card-one | shadcn-extras | Components | Free | no deps | |
| Blog Card Threeblog-card-three | shadcn-extras | Components | Free | 1 dep | |
| Blog Card Twoblog-card-two | shadcn-extras | Components | Free | 1 dep | |
| Bulb Iconbulb-icon | shadcn-extras | Components | Free | 2 deps | |
| Chevron Stepschevron-steps | shadcn-extras | Components | Free | no deps | |
| Clock Iconclock-icon | shadcn-extras | Components | Free | 2 deps |
