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

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.