Built with Rive

Interactive quiz designed and animated in Rive

Kris

Kris Blencki

Interactive quiz: Rive animations

Overview


This project focused on:
Designing a character that follows Duolingo’s (language learning app) visual style and guidelines
Adapting the Duolingo aesthetic to create an original quiz layout

My Role


It was a passion project where I wanted to explore how Rive could be used for Duolingo style interactions, so I handled every step of the design and animation process.
The character and its animation states
The character and its animation states

The Process


I started with designing a new character following the Duolingo official guidelines. The idea was to create a character exclusive for the Italian language - an Italian chef who will evaluate the language exercises as well as food related customs. In general the character supposed to behave a bit grumpy but also should be able to appreciate user's successful actions. With the character ready, I built a full bone structure, adding extra bones to the arms for greater flexibility. I also implemented IK controls for the legs, which simplified the animation process. To enhance expressiveness, I created joysticks for 2.5D head movement, as well as controls for the eyes and eyelids. Finally, I developed a state machine with four animations: success, failure, and two idle states.
In the second phase, I adapted the Duolingo style to design a quiz interface. I created and animated three buttons and a progress bar, building each as a reusable component. I also designed a template component containing text areas for questions and answers. This template was used across the main artboard, where I swapped in content for each new question using data binding. Data binding was also used for switching all of the text content between English and Italian language.
All of the components combined together
All of the components combined together
Like this project

Posted Nov 19, 2025

Duolingo-style quiz featuring a custom character with original animations created in Rive.