Family Components

One of the reasons I got into design engineering was Family. The first time I used the app I was blown away by the attention to detail and the user experience. I decided to re-create a couple of the components from the app on the web.

Currency Converter

The number animation in this component uses Number Flow and shared layout animations from Motion. The text formatting is handled using react-number-format.

The Use Max / Using Max transition is done by splitting the words into individual spans and animating them using Motion. Thanks to Janum Trivedi for the tip regarding the transition. Adding an x translate made a pretty big difference in how the interaction feels.

Ethereum1.67 ETH
Us
e
Max
0
$
0
.
0
0
AaveReceive AAVE
0

Keep in mind that this is only a prototype showcasing some of the interactions, rather than a fully built out feature. There is some functionality missing, such as navigating with arrow keys in the input field, the ability to edit the values in the middle of the input field and a couple more.

I've also come to the conclusion that some of the interactions wouldn't work as well on the web. The nature of how the values are input is different on mobile, because Family is a mobile app.

Family Wallets

Each wallet cards has 3 different states, collapsed, default and expanded. The transition between these states is animated using unique layoutId for each wallet. I also wrote an article explaning how this interaction was built in detail.

Jakub1.03 ETH
Savings25.08 ETH
Rainy Day0.04 ETH
Spending0 ETH
See the full code on CodeSandbox.
Image Stack

This interaction effectively uses the same principle as the wallets interaction. It is comprised of two states; one where the stack is collapsed and one where it's expanded. The components that I want to animate between are then are then tied using layoutId.

FujiDesertForestBeach
Images4 items
Pending Transactions

This interaction is quite simple to create, it only animates the y position values and scale.

Pending
4
Sending toVitalikVitalik
Ethereum$20.00
DeadFellaz
Sending toVitalikVitalik
DeadFellaz
Fee Only
DeadFellaz
Sending toVitalikVitalik
DeadFellaz
Fee Only
DeadFellaz
Sending toVitalikVitalik
DeadFellaz
Fee Only
Onboarding

The biggest challenge with this animation is orchestrating everything together to make the animation feel good. The properties that are animated are scale, opacity, and Y position. The x icon animation is done using pathLength.

Add an Existing Wallet
Continue using a wallet you already own or keep track of any address.
ImportAdd an existing wallet via a Secret Phrase or Private Key.
Nothing to RestoreAll wallets backed up to iCloud are currently in use.
Conclusion

Finally, these animations are in no way affiliated with Family. These are all explorations, focused on how some of these interactions might've been built.

Re-creating these components served as a great learning experience. I'm personally a huge Family fan, and I consider the app to be one of the best consumer apps out there. All of the credit for the original animations goes to the Family team.