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/componentsshell
pnpm add @pinky-ui/componentsshell
yarn add @pinky-ui/componentsshell — copies source into your project
npx pinky-ui add lift-cardPrefer to run the whole repository locally instead?
repository
git clone https://github.com/florash/Pinky-UI.git
cd Pinky-UI
npm install
npm run devProps
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | Required. |
| radius | "md" | "lg" | "xl" | "2xl" | "xl" | Corner radius from the shape scale. |
| padded | boolean | true | Inner content padding. |
| shadow | "neutral" | "pink" | "neutral" | Shadow token pair. |
| as | ElementType | "div" | Pass Link from next/link to make the whole card navigable. |
| href | string | — | Only meaningful when as renders an anchor. |
| onClick | () => void | — | Makes 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