Files
alirez.brandCursor a47ec493c5 feat: add version history drawer with release notes
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>
2026-07-02 02:46:20 +03:30

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,
},
};