Session probe lands on /vw_pages (Research). Use main designlang extract with --cookie-file — pack ignores auth. 39 artifacts under docs/design-extract; tolerate designlang late summary crash when cores exist.
70 lines
2.1 KiB
JavaScript
70 lines
2.1 KiB
JavaScript
// Framer Motion presets — generated by designlang (motionlang)
|
|
// Source: https://coulomb.social
|
|
// 2026-08-08T23:30:22.009Z
|
|
//
|
|
// import { transitions, variants } from './coulomb.social-motion.framer';
|
|
// <motion.div variants={variants.slideUp} initial="hidden" animate="show"
|
|
// transition={transitions.base} />
|
|
|
|
/** Easing curves extracted from the live page, as Framer cubic-bezier arrays. */
|
|
export const easings = {
|
|
standard: [0.25, 1, 0.5, 1],
|
|
};
|
|
|
|
/** Duration presets (seconds), extracted from the live page. */
|
|
export const durations = {
|
|
sm: 0.25,
|
|
};
|
|
|
|
/** Spring presets — pass to a Framer Motion `transition` prop. */
|
|
export const springs = {
|
|
soft: { type: 'spring', stiffness: 320, damping: 30, mass: 1 },
|
|
};
|
|
|
|
/** Ready-to-spread Framer Motion transition objects. */
|
|
export const transitions = {
|
|
base: { duration: 0.25, ease: easings.standard },
|
|
fast: { duration: 0.125, ease: easings.standard },
|
|
slow: { duration: 0.450, ease: easings.standard },
|
|
spring: springs.soft,
|
|
};
|
|
|
|
/** Common variants wired to the extracted timing. */
|
|
export const variants = {
|
|
fade: {
|
|
hidden: { opacity: 0 },
|
|
show: { opacity: 1, transition: transitions.base },
|
|
},
|
|
slideUp: {
|
|
hidden: { opacity: 0, y: 16 },
|
|
show: { opacity: 1, y: 0, transition: transitions.base },
|
|
},
|
|
scaleIn: {
|
|
hidden: { opacity: 0, scale: 0.96 },
|
|
show: { opacity: 1, scale: 1, transition: transitions.base },
|
|
},
|
|
pop: {
|
|
hidden: { opacity: 0, scale: 0.9 },
|
|
show: { opacity: 1, scale: 1, transition: springs.soft },
|
|
},
|
|
stagger: {
|
|
hidden: {},
|
|
show: { transition: { staggerChildren: 0.063 } },
|
|
},
|
|
};
|
|
|
|
/** Site uses scroll- or view-timeline. Drop-in `whileInView` props. */
|
|
export const inView = {
|
|
fadeIn: {
|
|
initial: variants.fade.hidden,
|
|
whileInView: variants.fade.show,
|
|
viewport: { once: true, amount: 0.3 },
|
|
},
|
|
riseIn: {
|
|
initial: variants.slideUp.hidden,
|
|
whileInView: variants.slideUp.show,
|
|
viewport: { once: true, amount: 0.3 },
|
|
},
|
|
};
|
|
|
|
export default { easings, durations, springs, transitions, variants, inView };
|