Short guide for authors and maintainers: two ways to add motion in PageHub, both valid; they solve different jobs. As of the unified Effects builder both live as rows under Design → Effects, but they still write to different places under…
Short guide for authors and maintainers: two ways to add motion in PageHub, both valid; they solve different jobs. As of the unified Effects builder both live as rows under Design → Effects, but they still write to different places under the hood.
AnimationsInput)root.animation* (and related props) on the node, not the raw animate-* Tailwind list by default.animate-css-*, ph-hover-*, ph-anim-scroll, …), inline animation-* / duration overrides, scroll/load/hover triggers via the animation system.EffectsClassInput)className: transition-*, duration-*, ease-*, delay-*, transforms (scale-*, translate-*, rotate-*, skew-*, origin-*, will-change-*), filters (blur-*, brightness-*, contrast-*, grayscale-*, hue-rotate-*, invert-*, saturate-*, sepia-*), and the parallel backdrop-* family.transition-colors, scale-* / translate-*, blur-*, combining with hover: / responsive prefixes in the raw class string when needed.transition-opacity on className); avoid duplicating the same intent twice (two spinners, two competing transitions on one property).animate-* utility (animate-spin, animate-pulse, …) is no longer exposed as its own picker entry in the Effects section; reach for it via Class name if you need it explicitly.props.scrollEffect (+ scrollDirection, scrollSpeed, scrollSnap, scrollTimelineRunway, scrollSmoothing) on a Container typed as section.focus:, dark:, …), or keys not exposed as a row yet (e.g. raw animate-spin continuous animations).dark: in structured panels (not animation-specific)Structured toolbar inputs (colors, spacing, layout, etc.) respect breakpoint chips and the moon (dark scope) next to them: writes go to md:dark:… when both apply. That is separate from the Effects row distinctions; it applies across Design / Layout / Advanced. For full variant rules, focus:, group-*, and anything outside the v1 stack, use Class name or see Tailwind coverage matrix (Variants row and Editor scope: dark: and breakpoints).
className when the spec is purely Tailwind utility strings (including animate-pulse, duration-300, ease-out).See also: Tailwind coverage matrix (motion row and changelog), Effects builder section in the popover pattern doc.