CSS Tricks – Create custom corner ribbons for product, plan etc


Trick 1:

HTML :

<div class="wrapper"> <div class="ribbon-wrapper-green"><div class="ribbon-green">NEWS</div></div> </div>​

CSS :

.wrapper { margin: 50px auto; width: 280px; height: 370px; background: white; border-radius: 10px; -webkit-box-shadow: 0px 0px 8px rgba(0,0,0,0.3); -moz-box-shadow: 0px 0px 8px rgba(0,0,0,0.3); box-shadow: 0px 0px 8px rgba(0,0,0,0.3); position: relative; z-index: 90; } .ribbon-wrapper-green { width: 85px; height: 88px; overflow: hidden; position: absolute; top: -3px; right: -3px; } .ribbon-green { font: bold 15px Sans-Serif; color: #333; text-align: center; text-shadow: rgba(255,255,255,0.5) 0px 1px 0px; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); position: relative; padding: 7px 0; left: -5px; top: 15px; width: 120px; background-color: #BFDC7A; background-image: -webkit-gradient(linear, left top, left bottom, from(#BFDC7A), to(#8EBF45)); background-image: -webkit-linear-gradient(top, #BFDC7A, #8EBF45); background-image: -moz-linear-gradient(top, #BFDC7A, #8EBF45); background-image: -ms-linear-gradient(top, #BFDC7A, #8EBF45); background-image: -o-linear-gradient(top, #BFDC7A, #8EBF45); color: #6a6340; -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.3); -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.3); box-shadow: 0px 0px 3px rgba(0,0,0,0.3); } .ribbon-green:before, .ribbon-green:after { content: ""; border-top: 3px solid #6e8900; border-left: 3px solid transparent; border-right: 3px solid transparent; position:absolute; bottom: -3px; } .ribbon-green:before { left: 0; } .ribbon-green:after { right: 0; }​

Trick 2:

HTML :

<div class="corner-ribbon top-left sticky red shadow">Hello</div> <div class="corner-ribbon top-right sticky blue">Hello</div> <div class="corner-ribbon bottom-left sticky orange">Hello</div> <div class="corner-ribbon bottom-right sticky green shadow">Hello</div>

CSS :

/* The ribbons */ .corner-ribbon{ width: 200px; background: #e43; position: absolute; top: 25px; left: -50px; text-align: center; line-height: 50px; letter-spacing: 1px; color: #f0f0f0; transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } /* Custom styles */ .corner-ribbon.sticky{ position: fixed; } .corner-ribbon.shadow{ box-shadow: 0 0 3px rgba(0,0,0,.3); } /* Different positions */ .corner-ribbon.top-left{ top: 25px; left: -50px; transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } .corner-ribbon.top-right{ top: 25px; right: -50px; left: auto; transform: rotate(45deg); -webkit-transform: rotate(45deg); } .corner-ribbon.bottom-left{ top: auto; bottom: 25px; left: -50px; transform: rotate(45deg); -webkit-transform: rotate(45deg); } .corner-ribbon.bottom-right{ top: auto; right: -50px; bottom: 25px; left: auto; transform: rotate(-45deg); -webkit-transform: rotate(-45deg); } /* Colors */ .corner-ribbon.white{background: #f0f0f0; color: #555;} .corner-ribbon.black{background: #333;} .corner-ribbon.grey{background: #999;} .corner-ribbon.blue{background: #39d;} .corner-ribbon.green{background: #2c7;} .corner-ribbon.turquoise{background: #1b9;} .corner-ribbon.purple{background: #95b;} .corner-ribbon.red{background: #e43;} .corner-ribbon.orange{background: #e82;} .corner-ribbon.yellow{background: #ec0;}

Trick 3 :

HTML :

<div class="product"> <div class="ribbon-wrapper"> <div class="ribbon">NEW</div> </div> </div>

CSS :

.product { margin: 50px auto; width: 280px; height: 370px; background: white; border: 1px solid #333; position: relative; z-index: 90; } .ribbon-wrapper { width: 85px; height: 88px; overflow: hidden; position: absolute; top: -3px; left: -3px; .ribbon { font: bold 15px sans-serif; color: #333; text-align: center; -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); -o-transform: rotate(-45deg); position: relative; padding: 7px 0; top: 15px; left: -30px; width: 120px; background-color: #ebb134; color: #fff; } }

Share this post:


Leave a Reply

Your email address will not be published. Required fields are marked *