Skip to content
Pinky UI

Lift Card

Transform and box-shadow only, no pointer-event listeners — the cheapest card for grids that need many at once.

  • cards
  • card
  • effect
  • hover
  • lightweight

Weekly digest

A plain lift, cheap enough for a grid of fifty.

Quick usage

usage
import { LiftCard } from "@pinky-ui/components";

<LiftCard onClick={() => open(item.id)}>
  {item.title}
</LiftCard>

Presets

Default

A translateY lift and a deeper shadow on hover.

Install

Add @pinky-ui/components as a dependency, or use the CLI to copy this component's source directly into your project — no dependency to manage, fully editable.

shell
npm install @pinky-ui/components

Prefer to run the whole repository locally instead?

repository
git clone https://github.com/florash/Pinky-UI.git
cd Pinky-UI
npm install
npm run dev

Props

PropTypeDefaultDescription
childrenReactNodeRequired.
radius"md" | "lg" | "xl" | "2xl""xl"Corner radius from the shape scale.
paddedbooleantrueInner content padding.
shadow"neutral" | "pink""neutral"Shadow token pair.
asElementType"div"Pass Link from next/link to make the whole card navigable.
hrefstringOnly meaningful when as renders an anchor.
onClick() => voidMakes the card a click target; adds the focus-visible ring automatically.

Accessibility

  • Same focus-visible rule as Basic Card once onClick/href is present.

Reduced motion

The translateY lift is skipped under prefers-reduced-motion: reduce; the shadow still deepens.

When to use

  • Grids with many cards, where a per-card pointer tracker's cost adds up
  • A bulk list that just needs to read as liftable

When not to use

  • A handful of cards that deserve individual character — Jelly Card