Tools I use: Figma, Claude, Paper, Motion, Tailwind CSS, Swift
PG Gonni
Forlì: 44.2093° N, 12.0673° EMontréal: 45.4905° N, 73.5587° W

PG Gonni

Design Engineer

Experiment

Vertical icon switch

A switch that uses a specific icon per direction, built with clip-path and useTransform.



Based on this Threads post by Ozan Öztaskiran.

The original example was a more typical switch, with a checkmark icon that moves up and down based on the selection. I left a comment suggesting that the switch use a specific icon for each direction for added clarity.

I also wanted to use this as an opportunity to make use of clip-path, which I learned about in one of the earlier modules of Emil Kowalski's Animations for the Web, while also trying to learn to use Motion's useTransform function.

Finally, I decided to animate the icons when the state switches, which added complexity to the code but also a nice little flair.

While I like the final effect, I'm not super happy with all the magic numbers I'm using to make the clip-path move smoothly between the two states.

motion
clip-path
useTransform
tailwind
react