Off-Canvas Menu Effects

Some inspiration for off-canvas menu effects and styles using CSS transitions and SVG path animations.

Off-Canvas Menu Effects

Today we’d like to share a couple of styles and effects for off-canvas menus. The off-canvas sidebar is widely used and we have already created some effect inspiration before. Like with everything, style evolves and today we want to show a new set of modern effects for your inspiration. Different layouts and synced transitions of the menu and the page can make everything look more interesting and we can make use of the available space for side-menus and controls. SVG allows us to play with organic shapes and add some unexpected and stylish moves to a design.

We use CSS transitions, CSS animations created with bounce.js and animated SVGs with the help of Snap.svg. We also use Font Awesome and the profile picture is from the Random User Generator.

Please note that the effects serve as inspiration and will work (best) in modern browsers.

Let’s take a look at some of the styles.

OffCanvasMenuEffects01
This first demo is inspired by the Dribbble shot Old Designspiration Menu Concept One by Michael Martinho.

OffCanvasMenuEffects02
The idea behind the corner box effect is to translate an off-canvas box into the viewport while moving the content to the opposite corner, too, creating a window-like effect.

OffCanvasMenuEffects03
Following the simple corner box, we can think of another “layer” that will move on top of the previous box and that will make the content translate another “step”.

Tiny break: 📬 Want to stay up to date with frontend and trends in web design? Subscribe and get our Collective newsletter twice a tweek.

OffCanvasMenuEffects04
This menu expands from the menu button itself, taking up a space that was revealed by pushing down the content of the page. You might have seen this effect on a sidebar in one of our Morphing Buttons demos.

OffCanvasMenuEffects05
This menu is not an off-canvas one, but more like an expanding box with a content overlay. Here we use a jelly-like animation created with bounce.js.

OffCanvasMenuEffects06
This demo is using Snap.svg for animating SVG paths. Using a combination of a morphing wave with delayed menu item appearances, an organic feel is created.

We hope you enjoyed the effects and get inspired!

Manoela Ilic

Manoela is the main tinkerer at Codrops. With a background in coding and passion for all things design, she creates web experiments and keeps frontend professionals informed about the latest trends.

Stay in the loop: Get your dose of frontend twice a week

Fresh news, inspo, code demos, and UI animations—zero fluff, all quality. Make your Mondays and Thursdays creative!

Feedback 90

Comments are closed.
  1. Nice examples as usual – although I’m not a fan of the nested example pushing the main body over. Bit of an unnecessary indulgence!!

  2. As always, sleek!
    PS: Corner Morph, Wave have no visual menu icon to click on. I can see the dark footer bar… but not the trigger?! (Safari 6.1.x)

  3. These are definitely cool – I like the Corner Morph especially!

    My only critique – having the closing button in a very different location from the opening button doesn’t seem ideal – I’d rather be able to close the menu with my cursor in the same place. It’s a small thing that doesn’t make these any less cool otherwise!

  4. Elastic effect is the coolest one. I’m gonna try to do it without svg (border-radius). Wish me luck 😀

  5. Awesome work guys, as usual. A lot of UX consideration going into these posts, ini’t. +1 🙂

  6. Cool. Did you change something? Now, CornerMorph + Wave are working fine in Safari6.1.x 🙂

  7. You are able to surprise me every time, and I always try to take as much as possible from you. Thanks for your effort!

  8. These are great! Is there a simple solution to have ‘side slide’ slide in from the right as opposed to the left?

    • Trying the same with no effort, can’t find the code to change direction // Have you found the solution?

      AWESOME Tutorial as always Mary Lou! Thanks & cheers (:

  9. Love that stuff 🙂 I added a custom CSS lightbox and when It opens, the menu should close.. can somebody pleaaase help me?
    <a href=”mycourse.php#settings onClick:toggleMenu()” rel=”nofollow”> i thought that this should do it but it didnt 🙁 #settings is the id for opening the lightbox!

    • sorry forgot that a href works 😉

      a href=”mycourse.php#settings onClick:toggleMenu() .. so the id settings is for opening the lightbox but then the nav should close!

  10. Hi
    How do I enter the menu on the right and change the direction of ‘internal animation?
    tnx

  11. Its Working In Internet Explorer If I View Demo From Codrop But When I Download and view in internet explorer It does’nt work. Please Help

  12. Really inspirational but what if i want to use in working website, might be difficult to make mobile compatible!

  13. Hi, great article and demos! I used and tweaked one of your demos on my website (top expand example). I’ve noticed in demos that the page scrolls right back to the top of the page, after refresh. I see you’re using overflow-y: scroll; for .content-wrap… I tried few ways of fixing, so the page stays at the same point after refresh, but nothing works. Do you have any ideas for a quick fix? I don’t want to use JS for this. Thank you!

  14. Hi there, it looks awesome, exactly what i was looking for 🙂

    I encountered a few problems though, hopefully someone can help me out. Bear with me, i’m still learning css 😉

    1. I would like to have a centered div where I put the contents of the website (1200px for example) (div class ‘content’ in demo) but then the overlay is only working on that div. I want it to cover everything but the menu itself and a fixed header.

    2. I added a jquery plugin (http://manos.malihu.gr/jquery-custom-content-scroller/) because my menu is pretty long and on a phone you would have to scroll, but somehow it messes up everything. I noticed I could scroll the content itself but saw no scrollbar. I tried several things but I couldn’t work it out.

    3. I couldn’t get the ‘x’ (to close) to hover in a certain color.

    Thanks in advance!