Projects

Rive animation work designed around real product use cases.

These examples show the type of interface problems I solve: feedback states, onboarding clarity, component consistency, and developer-controlled interaction logic.

Use case: checkout

Payment feedback state machine

Loading, approved, declined, and retry states built as a small Rive system.

Problem solved: users get clear feedback while developers connect app events to named animation inputs.

Use case: onboarding

Setup progress interaction

Step transitions, completed states, and subtle encouragement for a multi-step setup flow.

Problem solved: the flow feels guided without adding heavy video assets or distracting motion.

Use case: dashboard

Loading and empty states

Motion language for analytics cards, skeleton loading, empty charts, and data refresh feedback.

Problem solved: the product communicates what is happening instead of leaving users waiting.

Use case: navigation

Tab and menu micro-interactions

Hover, active, pressed, and disabled states designed for app navigation components.

Problem solved: interaction feedback feels consistent across the UI and remains easy for developers to implement.

Use case: button system

Primary action feedback

A reusable motion pattern for button press, waiting, success, and failure outcomes.

Problem solved: important actions feel responsive while the interface preserves layout stability.

Use case: empty state

First-use product moment

Lightweight animation that guides users toward the next useful action in a new workspace.

Problem solved: empty screens become understandable without looking like marketing illustrations.