Fluid Fullscreen Menu

Here is a  toggle button that animates into a fullscreen menu. The challenge was to transition a circle shape into a rectangle shape of the browser's viewport. It is responsive and works no matter the screen orientation.

Menu Toggle Button

Shout out to Oakland Agency and the Burgers Vol 1 project. This tutorial is using the Burger 3 Button.

Layers

There are three main elements to making this interaction possible. You can think of them as layers if it helps.

  • Burger or Menu Toggle Button
  • Menu Background
  • Menu

Animation

There are two click interactions on the burger. The first interaction came with it when I copied it from the cloned Burgers Vol 1 project. The second interaction is controlling the menu and menu-bkgd elements.

It became necessary to control the movement path and growth separately.

  • menu-bkgd acts like an anchor moving the circle from the corner to the middle
  • menu-bkgd__wrapper is the container for the circle
  • menu-bkgd__circle is nested inside the above divs

With interaction controls there's the ability to adjust the timing with Easing, however in order to get a more organic smooth animation we need to move in a non-linear path. No more A⇢B. To get a curved vector path of motion, it is necessary to separate the movement along the X and Y axis and invert the easing.

Yay! Now we get a smooth curved animation path. The rest of the interaction animations are the normal stuff of move, scale, and so on.

To better see what I'm talking about, the toggle below will turn on borders for the main elements and activate interactions that are 10x slower than normal. Try it.

Toggle Visual Guides

Closing Thoughts

Hopefully this quick breakdown and sample project have given you some understanding to the methods used to achieve a smooth animation.

Feel free to check out my Webflow Portfolio or my Website. Take care and happy designing!