Create a 3D Ribbon Wrap-Around Effect (Plus a Free PSD!)

Create a 3D Ribbon Wrap-Around Effect (Plus a Free PSD!)

Tutorial Details
  • Program: Adobe Photoshop
  • Difficulty: Beginner
  • Time to Complete: 30 mins

Final Product What You'll Be Creating

With the holidays are right around the corner, I though it might be fun to create a tutorial on the popular 3d Wrap-Around Ribbon effect that has been popping up so much this year. This is a great way to add depth to your designs, and it’s pretty darn easy to complete. I’ll show you some examples of it in action around the web, walk you through the creation techniques in Adobe Photoshop, and then explain the different approaches to coding it.


Examples of The 3D Ribbon in Action

Before we dive into the tutorial, let’s take a look at a handful of sites that are using this effect. Note the variety of ways that you can get creative with this, so don’t stop at this tutorial alone! The principles behind this are very simple in nature, but as you can see from the following examples, you can get pretty frisky with the execution.


The Tutorial

Alright, now that we’ve seen a few examples of just how creative you can get with this effect, let’s dig into the tutorial. The goal here is to teach the basic techniques – what you do with them is where it should get interesting!


Step 01: Getting Started

Create a new document in Photoshop. The size doesn’t really matter… we’ll be using a 600px wide canvas for this walkthrough, but you can use your own size if you’re working this into a web design.

We want to create some separation right away, so start out by making the background dark, and draw a light colored rectangle on top.


Step 02: Creating the Basic Shapes

We’ll start the ribbon by drawing a 310px by 44px rectangle. I’m using a rounded rectangle with a 4px radius, but you can also use a squared rectangle if you don’t like the round corner.

Pay attention to the width: You want to use a total width that equals the “width of your content column” + “the width that you want the ribbon to overlap your main background”. In this example, I’m using 310px, which is 285px for content, and about 25px of overlap.


Step 03

Next, I want to square off the bottom corner so that it’s not round. I move in with the Convert Point Tool, and simply nudge the point so that there is a 90 degree angle.

The reason we’re doing this is simple: to complete the optical illusion of the ribbon “folding” in on itself, this corner should not be round. You can get pretty creative with this step alone by creating the illusion of “rounding out” by making the bottom-right corner actually fold down – but we’ll keep it simple in this example.


Step 04

Now we want to cut out the shape of the ribbon. Use the Polygonal Lasso Tool to carve out the shape… I’m holding down the “SHIFT” key to force 45 degree angles, but you can carve out any shape that you’d like.

Once you’ve selected your desired shape with the lasso tool, make this a Vector Mask on top of your ribbon layer:


Step 05

The next step is to create the “shadowed” side of the ribbon that will disappear behind the foreground. Start by drawing a simple square.

Tip: Use a color that’s a little bit darker than the front side of the ribbon to help create the illusion of depth.


Step 06

Now we need to create the “fold” effect – using the Convert Point Tool again, move the bottom-right point of the square UP until it’s almost to the top-right point.

Your document should look like this now:


Step 07: Layer Styles

Ok – now we have our basic shapes! That means the next step is adding some custom layer styles to our ribbon. You can do whatever you want here, but I’ll show you the settings I’m using to create a light, textured appearance.

The following layer styles get applied to the front-side of the ribbon.


A simple drop-shadow is the first step – this creates the initial division between the ribbon and the foreground.

The inner shadow is the crucial element – note the “Noise” levels – that’s what’s creating the texture.

Adding a light inner glow will help create depth and division.

The following layer styles get applied to the under-side of the ribbon.


Adding a light inner glow will help mimic the one on the front side.

Whallah! Now it should look like this:


Step 08: Adding the Text

Time for some text! I’m using 18pt “Eureka” with a light drop shadow, but you can use anything you’d like.


Step 09: Adding the Dotted Lines

The dotted lines can be done in a variety of ways, but I’ll show you how to do it using basic text “dots” – using the “.” key. Note the settings up above – the text-layer is set to nearly 50% opacity, and I’m using a variety of character techniques to complete the effect.

Now, let’s look at the light “shadow” that helps make the dots pop a little:


Take note that we’re not using the “Multiply” method because we actually want our shadow to be light, not dark.

Step 10: Final Effect

That should complete the ribbon for the right rail; You can copy/paste and flip the layer-set to create a version for the left-side.


Ways to Code It

Now that we’ve designed the ribbon, it’s worth taking a few minutes to discuss the three ways that you might use to code it. We won’t go deep into the line-by-line code; there are lots of CSS specific tutorials that can help you with this out there (even on our network site, Nettuts!). What I will do is discuss the approaches that you might use as well as sharing a few links where you can find deeper information on them.

Method 01: CSS – A Single Background Image

This is the simplest, most straight forward approach. It uses the basic CSS background properties without any fancy tricks beyond a little positioning. Your ribbon might look slightly different, so I’ll walk you through the basic steps:

  1. Chop: Save your ribbon graphic as a transparent .PNG file (see above)
  2. HTML: Create a basic DIV or Header element.
  3. CSS: Style the element to use the graphic as the “background-image”.
  4. Use the “background-position” property to nudge the ribbon into place to complete the effect. You’ll likely want to use a negative integer to push your graphic outside of the framework.
  5. Use the padding property to place your text in the right spot.

Pros: This is the simplest method – it’s easy to complete.

Cons: Re-skinning requires opening up a Photoshop file; The element won’t “stretch” if you want it to be anything other than a fixed size.


Method 02: Sliding Doors CSS

The classic “sliding doors” method is similar to the first approach, but it’ll allow you to stretch your ribbon to fit any size you want!

  1. Chop: Save your ribbon graphic as three transparent .PNG files (see above)
  2. HTML: Create three elements – this left, middle, and right approach will allow us to stretch the center element using a repeating background.
  3. CSS: Style the elements to use the graphics as the “background-image” – the center element should “repeat-x”.
  4. Use the “background-position” property to nudge the ribbon into place to complete the effect.
  5. Use the padding property to place your text in the right spot. The left and right modules will be empty – the center module will hold your text.

Pros: This is quite flexible – you get the benefits of using images and the flexibility of the sliding doors method.

Cons: This can be quite tricky to get perfect in every browser; Re-skinning still requires opening up a Photoshop file, but now there are three images to save, not just one.


Method 03: CSS3 Techniques

If you’re willing to give up some of the details (like the noise texture and the inner glow), it’s possible to re-create this in code completely without images. The new rotation method, gradients, and element shadows are the primary techniques (read about them all here).

Read the full CSS based tutorial at Nettuts!

Pros: No images needed! This means it’s super easy to re-skin by changing a few values in the CSS.

Cons: In addition to losing the ability to add texture and other highlights, this method won’t render properly in lots of browsers. Everything above IE8, Safari 4.0, and Firefox 3.5 will work fine – but you’re risking it not working at all in older browsers (which lots of people have).


Conclusion

I hope you’ve enjoyed this walkthrough! This effect is one of the simplest ways to add the illusion of depth to your designs, and there area variety of ways that you can approach the coding of it. Leave some comments or questions down below :)

Brandon Jones is MDNW on Themeforest
Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • http://connorcrosby.me Connor Crosby

    Excellent tutorial! I have been wanting to create that effect. I also appreciate posting the CSS coding step.
    Thank you.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Thanks Connor! We haven’t released too many of these “site elements” tutorials yet, so I hope other people enjoy it as much as you have! We do have several “complete site” tuts coming out in the next weeks, so it’ll be interesting to see who likes the “full site walkthroughs” versus the “site element technique” walkthroughs like this.

      • http://connorcrosby.me Connor Crosby

        That sounds great! I love both the small things as well as the full site tutorials :)

      • Wouter

        Thanks for following up on my suggestion. I manage websites and am quote good at html & css, but always felt I lacked in the design department. Thanks to the tuts websites, I feel like making real progress! both the elements and the complete sites. Thank-you!

  • http://www.custompowerdesigns.com/site Aaron Nichols

    I love the tutorial but disagree with this part:

    Cons: Re-skinning requires opening up a Photoshop file; The element won’t “stretch” if you want it to be anything other than a fixed size.

    You could have simply sliced the document a bit different and set up separate divs. I can see that you wanted to keep it simple, but the wording can be different. The element won’t “stretch” unless you add a few more steps.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Thanks for the comment Aaron! The extra divs method that you mention is Method 2: Sliding Doors CSS :) But yes, with a couple extra steps you can make it flexible.

      • http://www.creativehacks.com/ Josue

        I made that effect using only CSS, thanks to one Tuts+ Tutorial :D

        • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
          Author

          Excellent! Thanks for the update Josue :)

  • http://twitter.com/garbaczd David Garbacz

    This tutorial literally could not have come at a better time. I was just struggling through making a ribbon for a client’s site today and I managed to do it but nowhere near as elegantly as you put it.

    Thanks for filling the gap for this designer who’s a little behind the times :P

  • http://devisefunction.com Matthew Heidenreich

    Your outcome is nice, but this tutorial has been done a lot. One thing I have always had issues with is creating the perfect ribbon that is rounded around the corner of a page instead of just a sharp edge, that would be interesting to see your outlook on :-) Anyways, loving the site…. the best in the network now in my opinion.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Thanks for the comment Matthew! We’re bound to cover some topics that have been hit before, but I’ll definitely do my best to avoid re-writes (or at least do them better than anyone else out there!). Cheers!

  • http://www.lucasdelrio.com.ar Lucas del Río

    Great tutorial, I thought it would show the coding part, but still, with the explanations I get the idea. To be honest, I’ve learned a bunch of stuff about css and html by now but I’m pretty new to web design, may be someone who is a bit newer than me wont have a clue of how to code this. I know it take time to explain something like this and also how to code it, but may be one of the three versions on how to code it would help, at least the first one which seems to be the easier. Just my opinion ^^.
    Still, as it’s mention in the tutorial, this element has appeared on many webs and was one of the elements that I liked most and wanted to know how to design it, + it’s so simple =) so this made my day, thanks Brandon!!

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Hi Lucas,

      Thanks for the comment! I purposefully left the coding part out because there are already quite a few tuts on these techniques out there (and I wanted to stay focused on the design in this case)… no need to re-invent the wheel; But, I think you bring up a good point that having at least one coded version can be helpful. I’ll see if I can’t whip this together later this week and include it in the download :)

  • Sahan

    Great one ! Thank you

  • Duncan

    Nice Tut! But the solutions for using this for the web are not complete. It is possible to do it with CSS2 and Jeffrey Way once did a tutorial about this, it had something to do with applying borders to an empty element.

    **Found it! http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-practical-css-shapes/

    • John

      I was going to post the same. For a standard wrap around this is really the best bet for easy updating.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Awesome! Thanks for finding that link guys… I searched and searched but I have no idea why I couldn’t find it myself :)

      Adding it to the tutorial text above!

  • Sadia Tabassum

    Great tutorial!! Always wanted to learn this effect. Its so nice. Will definitely use it in my next design.
    Thanks man.

  • Glaudston

    Thank you! This is great, specially with the coding tips added to it. keep them coming!

  • http://psdho.me PSDHOME

    WOW. Great job. I love 3D designs…

  • http://psdho.me PSDHOME

    I love 3D design works…

  • http://smallbitsofcode.com Boba

    Awesome Brandon, i was worried why there haven’t been new posts for 2 days but this one is worth the wait.

    I love the “site elements” tutorials, and i hope you’ll keep the coming :)

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Hah! I generally publish an article-a-day on Monday through Friday, but every once in a while I’ll be mixing it up just to keep you guys on your toes :)

      • http://smallbitsofcode.com Boba

        Haha, you sure did keep me on my toes, i refreshed like every minute since 11pm (GMT+1) till 1am, that’s about the time you publish new articles). :)

  • blue

    Thank you! Especially the way to code it is the big plus for me :)

    Keep on going

  • Murillo

    Nice tutorial Brandon, congratulations.

    I just was thinking, you’ll make “from psd to html” tutorials? I love them.

    And I’m from Brazil, sorry for my english.

    (:

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Hi Murillo, We’re definitely planning on some of these PSD > HTML tuts in the future – keep an eye out for them :)

  • http://newarts.at Drazen Mokic

    Nice, good and useful tutorial. Awesome you added the “Ways to Code it” part, i think this should become more common in the future.

  • speed730

    clean and useful design, thanks

  • Wouter

    I do not want to seem gullible (since you already did this article, my thanks!), but if you ever have the time, you could perhaps do an article on different ways to add depth to a design, and how you would go about it in Photoshop & Html/Css.

    Right now, if someone would ask me to add depth to a design, I’d probably litter it with drop shadows, since that’s the only method I know how to do it… x-)

  • http://themeforest.net/user/graphic_dev?ref=graphic_dev graphic_dev

    Hey,
    Nice tutorial. I just thought about one thing that might be worth mentioning for some readers. To keep the images smaller, you should only chop a small part of the second section when you use sliding doors, right?

    It’s not gonna make a huge difference for small images, but it could be worth keeping it in mind for larger images.

    Btw, how to I add an avatar to my post? I don’t see where I can log in using my marketplace account….

    • Wouter

      Actually, I believe the reason for cutting out a larger part, is for times when you have a lot of text or the user resizes the webpage font (e.g. in Firefox, I have my settings to Image->Zoom->Zoom text only). Then this part of the graphic will ‘slide’ out more.

      Also, I think the difference in file size between those image versions will be very small.

  • BeatShot

    Really awesome, this site just keeps getting better and better.

    It’s because of high quality tutorials like THIS why PSDtuts became so popular amongst webdesigners at the first place. I really hope webdesigntuts keeps producing quality interface tutorials.

    Thank you!

  • Richard

    Really liked the post. I used this effect the other day for a navigation menu bar, I used the lasso tool but next time I will try your method.
    As for coding I made the width smaller so I could get the menu bar in (didn’t think about negative numbers)

    Your way seems a lot easier.

    Thanks for the tips.

  • Pingback: Shared links from the week [Digest] November 13, 2010 | @puck's Blog

  • Buggy

    Hello,

    Great tutorial, But the Convert Point Tool won’t make the corner rounded. I select it, and nothing happens, no anchor points appear. I’d appreciate some help with this.

    Thanks

    • Wouter

      You have to click on the border. Perhaps you can zoom in to make it easier to select it. And if you do not see it the first time, click on it a second time.

  • Pingback: What I’ve Read: 10-11-01 to 10-11-14 | CSS Radar

  • http://www.techwench.com neo

    hi
    great tutorial as a beginner i appreciate for this work

    thanks

  • Dew

    Excellent job. I was looking for this type of technique. I wish to use it in my creation.

  • http://www.twenstudio.com TWEN STUDIO

    it’s Very Easy To Create a Simple Ribbon also you can visit my tutorials create a Ribbon in Photoshop http://goo.gl/m3tlL

    Posted on 05. Nov, 2010

  • http://www.jguiss.com Julien

    Thanks Brandon for this great ribbon ! The best free ribbon file to download from the web !

  • Wouter

    I just completed the tutorial. Thanks a lot!

    However, in step 06, when I tried using the convert point tool, it only let me draw curved lines and shapes.

    But I was able to do it using another tool: the direct selection tool. Perhaps it’s because I’m still using CS3?

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      It’s possible – tools change names and uses all the time from one version to the next :)

  • Wouter

    Here’s a quick tip for the absolute beginners:

    - In the layers palette, create a new group, call it “Ribbon One” (or anything you’d like to call it)
    - Drag the layers you used to create the ribbon into this group
    - Open the group and select all the layers except for the text layer with the text ’3D ribbon effect’
    - Go to the ‘Edit->Transform’ and pick ‘flip horizontal’
    - Optional: go to the ‘Edit->Transform’ and pick ‘flip vertical’ (if you want the folded area on top)
    - Now with the Move tool selected, move the mirror image anywhere on the page

    One fun thing that I noticed: if you rotate it 90 degrees ClockWise, you can position this ribbon over the vertical ribbon you created. You’ll notice it looks a lot like the ribbon for a (christmas) package, viewed from the top.

    • http://themeforest.net/user/epicera/portfolio?ref=epicera Brandon Jones
      Author

      Great tips Wouter!

  • Virtica

    Thanks for the great tutorial!

  • http://www.hmwebsolutions.co.uk Nathan

    Just wanted to say that I am really enjoying the site. I can’t wait for you to get more content up.

    Just to give my two cents, I’d look forward to more elements based tuts.

    Keep up the good work.

  • http://073.ro 073

    I need more! Thanks for great site, you got a new subscriber!

  • george

    nice article
    what about if the ribbon needs to be vertical?

  • http://riyas.in riyas

    thanks..nice one :)

  • yura

    can you axplain,how can i use Poligon Lasso in step 4?i don*t understand(

  • Pingback: How to Create a Ribbon Banner Navigation Bar with HTML/CSS3 | Webdesigntuts+

  • Pingback: How to Create a Modern Ribbon Banner Navigation Bar with Pure HTML/CSS3 | Shadowtek | Hosting and Design Solutions

  • Pingback: How to Create a Modern Ribbon Banner Navigation Bar with Pure HTML/CSS3 | Jetcat

  • Pingback: How to Create a Modern Ribbon Banner Navigation Bar with Pure HTML/CSS3 | Tagtype

  • http://www.psdstyle.net Chuckles

    Great tutorial. However I must say some steps are skipped and some tips left out.

    Using the PS grid would help tremendously with alignment and creating the ribbons.

    Just my two cents

  • Pingback: How to Create a Modern Ribbon Banner Navigation Bar with Pure HTML/CSS3 | Bubbleworks

  • http://www.coffeedesign.net Ahsan Idrisi

    Great tutorial and i was finding it from last one month

  • Pingback: How to Create a Modern Ribbon Banner Navigation Bar with Pure HTML/CSS3 | Camixo

  • http://www.seohit.org seo

    Is there PSD tutorial?

  • http://tomdurkin.me Tom Durkin

    Very useful tutorial. I use these all the time but like the effects you’ve applied in this example!

    Tom

  • http://www.slrprojects.com stian
  • Pingback: صمم شريط عنوان ذو تأثير ثلاثي الأبعاد | مدرسة الإنترأكتيف ميديا

  • Pingback: Create a 3D Ribbon |

  • http://capsicummediaworks.com/ Nirav Dave

    excellent tutorial ……its really helpful …thanks

  • sania

    very nice work…………i was really searching for this…….thanks

  • Jerome

    Hi, how do you encode those ribbon using HTML and CSS. Thank you.

  • Pingback: Web Design Trends 2012 « Ciaran Brohan – Multimedia

  • Iyop’s Designs

    Really usefull !!! … thnx a lot ^^

  • Pingback: Someone help with design this? - Bizzteams

  • Pingback: Website Design Trends 2012 - CT Social - CT Social

  • Pingback: Create a Charity Website Layout in Photoshop | Web Dezining

  • Pingback: Create a Charity Website Layout in Photoshop | Mo Ghaoui, Personal Blog

  • Pingback: Create a Charity Website Layout in Photoshop

  • Pingback: Create a Charity Website Layout in Photoshop | Developer Junk

  • Pingback: Create a Charity Website Layout in Photoshop | Tutorials | GfxPlus

  • Pingback: Create a Charity Website Layout in Photoshop - BESTTUT – share all best tutorials

  • Pingback: 10 Great Ribbon Tutorials In Photoshop

  • http://www.webspecia.com/ Amir Nasir

    awesome work

  • Weboz

    Thanks this post. I think it useful for many people.

  • chris

    sweet, just what I was looking for.

  • Pingback: Create a Charity Website Layout in Photoshop | HueDesigner

  • Pingback: Week 3 | Digital Media

  • Pingback: resource websites | GDES2000 Graphic Design for Internet & Multimedia

  • Pingback: site the have inspired, taught and entertained | GDES2000 Graphic Design for Internet & Multimedia