feat(frontend): content micro-animations — stagger, button press, toast polish
- animate-stagger utility + staggerDelay() helper; lists now rise in sequence (recordings grid, moderation rows, message list, media queue, dashboard tiles). - Button gets a subtle active:scale-[0.97] press feedback. - Toaster: toast-in slide-up, tone-accent border, rounded hover-close target. - All motion is reduced-motion aware (killed under prefers-reduced-motion).
This commit is contained in:
@@ -4,3 +4,16 @@ import { twMerge } from "tailwind-merge";
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an inline style that staggers a list item's entrance animation.
|
||||
* Pair with the `animate-stagger` class. Caps the delay so long lists still
|
||||
* appear promptly.
|
||||
*/
|
||||
export function staggerDelay(
|
||||
index: number,
|
||||
step = 45,
|
||||
max = 600,
|
||||
): React.CSSProperties {
|
||||
return { animationDelay: `${Math.min(index * step, max)}ms` };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user