fadeDown
Starts above its resting position and fades in on the way down, which reads well for panels that belong to something overhead.
⚡fadeDown
fadeDown in Motion
Starts above its resting position and fades in on the way down, which reads well for panels that belong to something overhead.
Spread Preset·Zero Runtime Tax
Usage
import { Section } from "@/lib/motion";
import { fadeDown } from "@/lib/motion/presets/fade-down";
export function Features() {
return (
<Section {...fadeDown} className="grid gap-6 md:grid-cols-3">
<FeatureCard title="Copy, do not install" />
<FeatureCard title="One file you own" />
<FeatureCard title="Presets you spread" />
</Section>
);
}Installation
npx shadcn@latest add https://motion.asmitsah.dev/r/fade-down.jsonProps and tokens
What it sets
Transition and viewport
Every motion prop the preset does not set — whileHover, whileTap, whileFocus — stays available at the call site. Write it after the spread and it wins.
layout and drag need the domMax feature bundle, not domAnimation — swap the lazy import in provider.tsx. It adds roughly 13kb gzipped on top of domAnimation.