Skip to main content

Image Card

An image-centric card component with overlay content. Supports 'overlay' variant (content centered on image) and 'fullHeight' variant (title at top, content at bottom). Includes configurable overlay styles (dark, light, gradient) and tilt animations.

Installation

$ npx shadcn@latest add @orecus/image-card
Dependencies:
motion
Registry:
@orecus/color-utils@orecus/use-reduced-motion@orecus/use-tilt-animation@orecus/entity-card

Component

Full-bleed image cards with overlay content for properties, items, and assets.

fullHeight Variant

Content overlaid on full-height image. Great for property listings.

Mountain View Cabin

Mountain View Cabin

123 Alpine Road · Aspen, CO 81611
2,400 sq ft
Lakeside Retreat

Lakeside Retreat

456 Lakeview Dr · Lake Tahoe, CA
3,200 sq ft

overlay Variant

Compact card with image and overlay. Great for item/inventory cards.

Samsung Smart TV 65"

Samsung Smart TV 65"

Entertainment
Electronics
$1,299
Dishwasher

Bosch Dishwasher

Appliance
maintenance
$899

Props

PropTypeDefaultDescription
entity*T extends BaseEntityThe entity object to display in the card
title*CardTitle<T>Title configuration with key, render function, and left/right content
image*CardImage<T>Required image configuration with src, alt, objectFit
ImageComponentReact.ElementType'img'Image component to use (e.g., next/image)
variant'overlay' | 'fullHeight''overlay'Card layout variant
overlayStyle'dark' | 'light' | 'gradient''dark'Backdrop overlay style
fieldsCardField<T>[]Array of field configurations to display
footerReactNode | ((entity: T) => ReactNode)Optional footer content
heightnumber300Card height for fullHeight variant
hoverEffectMaybeEntityValue<T, 'none' | 'lift' | 'scale' | 'tilt'>'none'Hover effect style. Supports static value or entity-derived function.
tiltConfigTiltConfigConfiguration for tilt animation (max angle, perspective, scale, speed). Only used with tilt effects.
hoverBorderMaybeEntityValue<T, boolean>falseWhether border color animates on hover. Supports static value or entity-derived function.
hoverGlowMaybeEntityValue<T, boolean>falseWhether to show gradient glow effect on hover. Supports static value or entity-derived function.
onClick(entity: T) => voidClick handler - makes card interactive
classNamestringAdditional CSS classes
typeMaybeEntityValue<T, 'normal' | 'subtle' | 'strong' | 'solid' | 'none'>'none'Card glass effect variant. Supports static value or entity-derived function.
accentBarMaybeEntityValue<T, 'none' | 'top' | 'bottom'>'none'Gradient accent bar position. Supports static value or entity-derived function.
accentBarVariantMaybeEntityValue<T, 'fade' | 'solid'>'fade'Accent bar gradient style. Supports static value or entity-derived function.
accentColorMaybeEntityValue<T, ThemeColor>'primary'Predefined accent color for accent bar. Supports static value or entity-derived function for dynamic coloring per entity.
accentBarOnHoverMaybeEntityValue<T, boolean>falseWhether accent bar appears only on hover. Supports static value or entity-derived function.
loadingbooleanfalseShows skeleton loading state when true
bentoBentoConfigBento grid configuration. When provided, card uses h-full to fill grid cells. Supports optional minHeight class override.