Skip to the content

Fullscreen curtain menu

Fullscreen menu triggered by a burger. On opening, four pale panels fall from the top in a cascade, the burger turns into a cross, then the links rise out of a mask at large size in the right-hand column; the contact details (mono // labels) sit in the bottom left, the footer aligns the copyright with the links column with a system line on the left.

Become a member to unlock the full effect today.

Join now

Already a member? Sign in

Documentation

  1. Copy to Webflow

    Add Geist and Geist Mono to your site's fonts (Site settings, Fonts, Google Fonts) before pasting: Webflow removes any font your site has not installed.

  2. Add custom CSS

  3. Add custom JS

  4. Tune it

    Custom attributes
    Select the section on the canvas and open the Settings panel. Under Custom attributes, add a pair: the name on the left, the value on the right.
    Custom attributeWhat it does
    data-curtain-menu Marks the section the effect plays on. It takes no value: leave the value field empty.
    data-curtain-menu-toggle Marks the burger button, which usually sits outside the menu, in a fixed header. Without it nothing opens the menu but JavaScript, and the console says nothing. [ Required ]
    data-curtain-menu-panels Marks the box holding the curtain panels, real boxes your classes colour. Without it the engine builds the box and its panels itself. On the menu element the same name is the panel count of the table below. [ Optional ]
    data-curtain-menu-glow Marks the layer that lights up behind the links. Without it the engine builds it. [ Optional ]
    data-curtain-menu-links Marks the box holding the links that rise one after the other. Without it the engine takes the first nav inside the menu, and moves no link when there is none. [ Optional ]
    data-curtain-menu-link Marks one link to move, for links that do not all sit in the same box. As soon as one link carries it, only the marked links rise. [ Optional ]
    data-curtain-menu-mask Marks the box that clips a link while it rises. Without it the engine wraps each link in a box it builds. [ Optional ]
    data-curtain-menu-block Marks a side block that settles after the links, a contact column for one. Without it the block is simply there from the start. [ Optional ]
    data-curtain-menu-footer Marks the line that fades in last, at the foot of the menu. Without it nothing fades in there. [ Optional ]
    data-curtain-menu-bar Marks a bar of the burger that turns into a cross. Without it the engine takes the first two spans inside the button. [ Optional ]
    Settings
    Every setting is a custom attribute too, added the same way and on the same section. An attribute always wins over the defaults written in the code.
    AttributeDefaultWhat it is
    data-curtain-menu-panels 4 Vertical panels the curtain is cut into when the markup has none, 1 to 8.
    data-curtain-menu-fall 0.55 How long one panel takes to drop over the page, in seconds.
    data-curtain-menu-fall-stagger 0.07 Delay between two panels starting to fall, in seconds.
    data-curtain-menu-fall-ease power4.inOut Shape of the fall, where it speeds up and where it settles. Options: any GSAP ease, power2.out and expo.inOut for instance.
    data-curtain-menu-glow 0.5 Fade-in of the glow that comes up behind the open menu, in seconds, when --curtain-menu-glow gives it a tint (none by default).
    data-curtain-menu-cross 5 How far each burger bar travels towards the middle as it turns into a cross, any CSS unit.
    data-curtain-menu-morph 0.4 How long the burger takes to become a cross, in seconds.
    data-curtain-menu-reveal 0.85 How long one link takes to rise out of its mask, in seconds.
    data-curtain-menu-reveal-stagger 0.06 Delay between two links rising, in seconds.
    data-curtain-menu-reveal-ease power4.out Shape of the links rising. Options: any GSAP ease, back.out and power2.out for instance.
    data-curtain-menu-lift clamp(16px, 2.4vh, 26px) How far the side blocks travel up while they fade in, any CSS unit.
    data-curtain-menu-blocks 0.5 How long one side block takes to settle in, in seconds.
    data-curtain-menu-blocks-stagger 0.07 Delay between two side blocks, in seconds.
    data-curtain-menu-footer 0.5 Fade-in of the line at the foot of the menu, in seconds.
    data-curtain-menu-open-speed 0.8 Playback speed of the whole opening, 1 being the durations above.
    data-curtain-menu-close-speed 1.25 Playback speed of the closing, which plays the same timeline backwards.
    data-curtain-menu-escape true Whether the Escape key closes the menu. Options: true, false.
    data-curtain-menu-close-on-link true Whether a click on a menu link closes the menu. Options: true, false, false being for links that open elsewhere.
    data-curtain-menu-label-open Open menu Label read out on the button while the menu is closed. Options: any short phrase.
    data-curtain-menu-label-close Close menu Label read out on the button while the menu is open. Options: any short phrase.

What it does

Fullscreen curtain menu is an animated navigation component for Webflow and vanilla JavaScript, built on GSAP 3. Also called fullscreen curtain menu animation, full screen menu or fullscreen menu.

Fullscreen menu triggered by a burger. On opening, four pale panels fall from the top in a cascade, the burger turns into a cross, then the links rise out of a mask at large size in the right-hand column; the contact details (mono // labels) sit in the bottom left, the footer aligns the copyright with the links column with a system line on the left. Closing is an accelerated rewind. Ink on cream, the ink #15100c runs through everything: hovers, the blinking caret in the eyebrow, the OK words in the status lines, selection. No glow. The terminal layer stays grey, the accent only underlines its end: that is what integrates it instead of detaching it.

Updated

Questions

Paste the component on the canvas, then change its settings as custom attributes on the menu element, for instance data-curtain-menu-fall="0.7". Add Geist and Geist Mono to the site's fonts before pasting, because the Designer drops a font the site does not have.

No plugin, only the GSAP 3 core. The demo and the Webflow embed name version 3.12.5 from the CDN, and on Webflow the engine waits for the copy Webflow injects instead of loading a second one. If gsap has not arrived after ten seconds, it warns in the console and the menu stays hidden.

Set data-curtain-menu-fall, the time one panel takes to drop, 0.55 seconds by default: lower and the curtain snaps shut, higher and the fall is slow and heavy. data-curtain-menu-fall-stagger, 0.07 by default, is the delay between two panels, and 0 drops them all at once.

Yes to both, by default: escape and closeOnLink are true. Write data-curtain-menu-close-on-link="false" for links that open elsewhere. The engine also keeps aria-expanded on the burger in step and switches its label between Open menu and Close menu.

Add or remove boxes inside the element marked data-curtain-menu-panels: the shipped markup holds four. The panels setting, 4 by default and 1 to 8, only counts when that container is left out and the script builds the panels itself.