Introduce a footer-triggered Version History drawer with categorized release notes, hardcoded release data, and semver tracking at v0.3.0. Also ships blog blockquote/table styling, site-wide typography, home page image updates, header refinements, and related bug fixes. Co-authored-by: Cursor <cursoragent@cursor.com>
110 lines
2.1 KiB
TypeScript
110 lines
2.1 KiB
TypeScript
import type { Transition, Variants } from "motion/react";
|
|
|
|
/** Smooth ease-out curve for agent UI transitions */
|
|
export const agentEase = [0.22, 1, 0.36, 1] as const;
|
|
|
|
export const agentSpring = {
|
|
type: "spring",
|
|
stiffness: 380,
|
|
damping: 32,
|
|
} as const satisfies Transition;
|
|
|
|
export const agentSoftSpring = {
|
|
type: "spring",
|
|
stiffness: 260,
|
|
damping: 28,
|
|
} as const satisfies Transition;
|
|
|
|
export const agentPanelTransition: Transition = {
|
|
duration: 0.48,
|
|
ease: agentEase,
|
|
};
|
|
|
|
export const agentLayoutTransition: Transition = {
|
|
layout: { duration: 0.52, ease: agentEase },
|
|
};
|
|
|
|
export const agentFadeUp: Variants = {
|
|
hidden: { opacity: 0, y: 18 },
|
|
visible: {
|
|
opacity: 1,
|
|
y: 0,
|
|
transition: agentPanelTransition,
|
|
},
|
|
exit: {
|
|
opacity: 0,
|
|
y: -14,
|
|
transition: { duration: 0.32, ease: agentEase },
|
|
},
|
|
};
|
|
|
|
export const agentFadeIn: Variants = {
|
|
hidden: { opacity: 0, scale: 0.98 },
|
|
visible: {
|
|
opacity: 1,
|
|
scale: 1,
|
|
transition: agentPanelTransition,
|
|
},
|
|
exit: {
|
|
opacity: 0,
|
|
scale: 0.97,
|
|
transition: { duration: 0.3, ease: agentEase },
|
|
},
|
|
};
|
|
|
|
export const agentSlideInEnd: Variants = {
|
|
hidden: { opacity: 0, x: 28 },
|
|
visible: {
|
|
opacity: 1,
|
|
x: 0,
|
|
transition: agentSoftSpring,
|
|
},
|
|
exit: {
|
|
opacity: 0,
|
|
x: 28,
|
|
transition: { duration: 0.32, ease: agentEase },
|
|
},
|
|
};
|
|
|
|
export const agentStaggerContainer: Variants = {
|
|
hidden: {},
|
|
visible: {
|
|
transition: { staggerChildren: 0.07, delayChildren: 0.06 },
|
|
},
|
|
exit: {
|
|
transition: { staggerChildren: 0.04, staggerDirection: -1 },
|
|
},
|
|
};
|
|
|
|
export const agentStaggerFast: Variants = {
|
|
hidden: {},
|
|
visible: {
|
|
transition: { staggerChildren: 0.06, delayChildren: 0.12 },
|
|
},
|
|
};
|
|
|
|
export const agentCardVariant: Variants = {
|
|
hidden: { opacity: 0, y: 20, scale: 0.96 },
|
|
visible: {
|
|
opacity: 1,
|
|
y: 0,
|
|
scale: 1,
|
|
transition: agentSoftSpring,
|
|
},
|
|
exit: {
|
|
opacity: 0,
|
|
y: -10,
|
|
scale: 0.94,
|
|
transition: { duration: 0.28, ease: agentEase },
|
|
},
|
|
};
|
|
|
|
export const agentThreadItem: Variants = {
|
|
hidden: { opacity: 0, y: 14 },
|
|
visible: {
|
|
opacity: 1,
|
|
y: 0,
|
|
transition: agentPanelTransition,
|
|
},
|
|
};
|