Who doesn’t love Post-it notes? In my previous life, before I started learning CSS, I would ask myself “how can I make a convincing looking Post-it note in Photoshop?” After extensive CSS study and research I have come to realize that some things can be done with CSS alone. That’s right, the post it you see on the right is 100% CSS. Go ahead, check it out. Here is how it is done.
I broke the instructions up into key elements so the uninitiated can get a feel for how I constructed everything. The process itself might be helpful for some people – it was certainly helpful for me. If you aren’t interested in my life story, feel free to skip to the end for a quick ‘plug and play’ code snippet.
margin: 25px; width: 250px; min-height:175px; max-height:175px; padding-top:35px;
This is the basic square that will be built around your content. The height is somewhat complicated because I want the text to begin lower on the Post-it rather than at the top. To ensure the padding doesn’t add any height while still lowering the text, set a min and max parameter on the height.
background: rgb(255,255,136); /* Old browsers */ background: -moz-linear-gradient(-45deg, rgba(255,255,136,1) 77%, rgba(255,255,214,1) 100%); /* FF3.6+ */ background: -webkit-gradient(linear, left top, right bottom, color-stop(77%,rgba(255,255,136,1)), color-stop(100%,rgba(255,255,214,1))); /*Chrome,Safari4+*/ background: -webkit-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* Chrome10+,Safari5.1+ */ background: -o-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* Opera 11.10+ */ background: -ms-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* IE10+ */ background: linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* W3C */ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff88', endColorstr='#ffff88',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ }
This is where much of the magic happens. When you think of a Post-it note you probably think of yellow, right? It’s true, but we need to think in 3D terms. It needs a yellow gradient that fades at a 45-degree angle into a slightly lighter color at the bottom right. This will help with creating a “peeled up” illusion later on. I just used this amazing tool (http://www.colorzilla.com/gradient-editor) to make mine. This code looks like a huge mess, but it’s mostly due to cross-browser support. Speaking of cross-browser support, Internet Explorer 6-9 does not like diagonal gradients so this website provides a nice fallback and converts our diagonal gradient into a horizontal gradient. This is not optimal so I recommend changing the last line of code here:
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff88', endColorstr='#ffff88',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */
Either make startColorstr and endColorstr the same number (which will turn off the gradient and make the Post-it a solid color) or change GradientType from 1 to 0 (this will make the gradient vertical instead of horizontal). I chose to remove the gradient.
border:1px solid #E8E8E8; border-top:60px solid #fdfd86;
I am doing something special with the border. You could easily give this a 1px light grey border and it would look fine, however, Post-its have that sticky glue-like substance on top that, when in use, has a slightly different look than the rest of the Post-it. I created a thick top border that is nearly the same color as the yellow I used. The effect is so slight you almost can’t tell it’s there, but anyone who does will surely appreciate it.
font-family:'Reenie Beanie'; font-size:22px; text-align:center;
This is my font styling. Consider putting a script font on your post it, something like Marker Felt or Comic Sans, or preferably something interesting from the Google Font API like Reenie Beanie seen here.
Although Post-its are square, the bottom corners tend to peel off the surface a bit when stuck to something. This 3D effect is subtle, but adds a ton to the feel of the note. This is the code to make only the bottom right corner look peeled for most browsers. As usual, sorry IE users
-webkit-border-bottom-right-radius: 60px 5px; -moz-border-bottom-right-radius: 60px 5px; -o-border-bottom-right-radius: 60px 5px;
And there we have it. The final code for the Post-it class looks like this:
.postit {
text-align:center;
width: 275px;
margin: 25px;
min-height:175px;
max-height:175px;
padding-top:35px;
position:relative;
border:1px solid #E8E8E8;
border-top:60px solid #fdfd86;
font-family:'Reenie Beanie';
font-size:22px;
-webkit-border-bottom-right-radius: 60px 5px;
-moz-border-bottom-right-radius: 60px 5px;
-o-border-bottom-right-radius: 60px 5px;display:inline-block;
background: rgb(255,255,136); /* Old browsers */
background: -moz-linear-gradient(-45deg, rgba(255,255,136,1) 77%, rgba(255,255,214,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right bottom, color-stop(77%,rgba(255,255,136,1)), color-stop(100%,rgba(255,255,214,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* IE10+ */
background: linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff88', endColorstr='#ffff88',GradientType=0 ); /* IE6-9 fallback on horizontal gradient */
}
I know what you are thinking. Where is the shadow? Well, the shadow is actually a different piece of CSS. We’re doing more than simply adding a box shadow around the note. We could do that, but then it would look like the Post-it is floating rather than stuck on the wall.
Creating a non-box shadow is a bit of a workaround. We are actually going to be making a shape, giving that shape a shadow, and carefully adjusting that shape/shadow so only about 5% of it is visible. Sounds easy, right? I used this website to fine tune my effect (http://www.wordpressthemeshock.com/css-drop-shadow). It took me some playing to get it right, but I am happy with the result.
content: ""; width:125px; height: 25px; -moz-transform:skew(10deg,10deg) translate(-45px,-15px); -webkit-transform:skew(5deg,5deg) translate(-45px,-15px); -o-transform:skew(5deg,5deg) translate(-45px,-15px); transform:skew(10deg,10deg) translate(-45px,-15px)
Here is our shape. It’s a long rectangle that has been skewed to have more acute angles.
position:absolute; right: 0px; bottom:9px; z-index: -1;
This positioning hides the box behind our Post-it and makes sure it stays underneath. I ran into an interesting problem when using this on a template sites like the one you are on now. The negative z-index actually put the shadow behind the background, making it invisible. I am not sure if this will be the case on other CMS sites, or other templates, but to get around this problem you simply need to give your background a z-index of 0.
background: rgba(0, 0, 0, 0.2); -moz-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40); -webkit-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40); -o-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40); /* box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40); */
Finally, the shadow. It takes a bit of tweaking to make it show up just right. Also you might have noticed that box-shadow is commented out. This is the IE workaround. IE doesn’t support rotation or skew so the shape that is actually making our shadow doesn’t cast the correct shadow. Without a box-shadow, it is just hidden under the yellow not not bothering anyone. The shadow website I provided above wants you to put together your inline code in a funny way. After you wrap your content in the .postit class, you need to make another empty div just to hold the box shadow. Like this:
<div class="postit"> Here is my postit content <div class="cornershadow"> </div> </div>
That is a bit clunky and I always want to do less inline work, so I put my own spin on things. Instead of making a separate class for the cornershadow, which would look like this:
.cornershadow {
content: "";
position:absolute;
z-index:-1;
right: 0px; bottom:9px;
width:125px;
height: 25px;
background: rgba(0, 0, 0, 0.2);
-moz-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40);
-webkit-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40);
-o-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40);
/* box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40); */
-moz-transform:skew(10deg,10deg) translate(-45px,-15px);
-webkit-transform:skew(5deg,5deg) translate(-45px,-15px);
-o-transform:skew(5deg,5deg) translate(-45px,-15px);
transform:skew(10deg,10deg) translate(-45px,-15px)
}
…I used the psuedo class :after to simply put the cornershadow code after all postit class divs! So now all you need to do is make a div class=”postit” and put whatever you want in it!
The complete code:
.postit {
text-align:center;
width: 275px;
margin: 25px;
min-height:175px;
max-height:175px;
padding-top:35px;
position:relative;
border:1px solid #E8E8E8;
border-top:60px solid #fdfd86;
font-family:'Reenie Beanie';
font-size:22px;
-webkit-border-bottom-right-radius: 60px 5px;
-moz-border-bottom-right-radius: 60px 5px;
-o-border-bottom-right-radius: 60px 5px;display:inline-block;
background: rgb(255,255,136); /* Old browsers */
background: -moz-linear-gradient(-45deg, rgba(255,255,136,1) 77%, rgba(255,255,214,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, right bottom, color-stop(77%,rgba(255,255,136,1)), color-stop(100%,rgba(255,255,214,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* IE10+ */
background: linear-gradient(-45deg, rgba(255,255,136,1) 77%,rgba(255,255,214,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffff88', endColorstr='#ffff88',GradientType=0 ); /* IE6-9 fallback on horizontal gradient */
}
.postit:after {
content: "";
position:absolute;
z-index:-1;
right: 0px; bottom:9px;
width:125px;
height: 25px;
background: rgba(0, 0, 0, 0.2);
-moz-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40);
-webkit-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40);
-o-box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40);
/* box-shadow: 40px 27px 5px rgba(0, 0, 0, 0.40); */
-moz-transform:skew(10deg,10deg) translate(-45px,-15px);
-webkit-transform:skew(5deg,5deg) translate(-45px,-15px);
-o-transform:skew(5deg,5deg) translate(-45px,-15px);
transform:skew(10deg,10deg) translate(-45px,-15px)
}
And the inline code:
<div class="postit">Check out this Post-it <br /> It's 100% CSS!</div>

If you want to further increase your Post-it fun consider separating the colored gradient and borders into its own class, naming that class .yellow. Then create a class for other Post-it colors like .blue, .pink, .orange, and so on. That way you get to name your div class=”positit pink” and get different colors. You can also give your Post-its a rotation (like the one I have at the beginning of this post) by wrapping it in a div and giving that div rotate transformation.
MentorMate CEO Björn Stansvik met with Minnesota Governor Mark Dayton on Tuesday, as the Governor kicked off his “Adopt a School” initiative, which aims to help schools and businesses foster successful partnerships.
MentorMate got involved in the program by providing an iPhone developer as a tutor to assist David, a student in the special education program at South Education Center with his iPad application. David’s app allows students with special needs to easily create, edit, and store music playlists.
Think about all the unremarkable movies you have seen in your life that were forgotten the second you left the theater. Business cards are no different. You probably leave them strewn about your wallet, desk or car as visual clutter you ignore on a daily basis. On the other hand, like any good work of art, there are probably some cards that stand out from the rest. Which kind would you rather have your name on?
When MentorMate tasked me with redesigning our business card I was given a single, simple instruction:
“Make our business card explain what our company does.”
“Custom software development” is what we do. Could I just write that and make it work? I tried several configurations and nothing looked right. It just cluttered up the design. Also, custom software development is not descriptive enough to fully explain what MentorMate does. Do we work with web software, desktop or mobile apps? Do we offer any other skills in additional to custom software development? MentorMate does all of those things, but a simple label cannot say it all. That sentence does not leave a lasting impression. I needed a better way to explain what we do at MentorMate in a way that people could understand and internalize.
Working Backwards
A realization occurred while I was sitting at my computer. I have Adobe Photoshop, Illustrator and InDesign icons on my desktop. Adobe CS5 comes with many applications ranging from movie editing to flash animation. Most people only utilize a small subset of those applications. Anyone looking at my desktop would see these three icons and they would have a pretty good idea of what I do (graphic design) without having it spelled out for them. What if I had these icons on my business card?
But it is not enough to just explain what I do. The same way I can see that Adobe CS5 is much more than just Photoshop, Illustrator and InDesign, people need to see that MentorMate is more than just the skills of a single graphic designer. After a little more brainstorming the concept for the back of the card was born.
A list of all relevant skills was compiled with input from the entire staff and an icon was created for each of these skills. Every employee’s card has his or her skills highlighted, while the other skills remain grayed out. At a glance, you can see exactly what skills any person at MentorMate has and at the same time see all the skills MentorMate encompasses as a whole.
A bonus side effect of this design materialized: people want more badges. MentorMate employees are driven to light up as many of their icons as they can and become eager to learn new skills. The business card became almost like a trophy, a point of pride.
“Storyboarding” the Card Front
First_Name.Last_Name@MentorMate.com is the email convention we use. As you can see, this email address holds a lot of information: name, company, website and email are all present. Instead of writing all that information out on the card, why not just break it down into the core elements?
Minimizing lines of code is an important practice for developers. Creating visual appeal is important to graphic designers. Most of all, it just makes sense. Alex.Krasny at MentorMate.com is everything a client or business partner needs to know about me. Why use four lines when it can be said in one?
The graph paper background and the hand drawn brackets were added to create a storyboarding feel. MentorMate begins each project by discussing the clients business needs first, usually using a white board. There are many arrows, lines, subtitles and images scribbled on a white board in the early stages of any application’s development. Although the business card is far from an early stage of development at this point, the handwriting and measurements add an accurate visual cue.
Scanning the QR code will import all of the card’s contact info into any mobile device. QR codes are a relatively new piece of technology that will probably continue to develop as more people own smartphones that have scanning capabilities. The business card wears the QR code almost as a badge of technology forwardness.
“Make our business cards explain what we do as a company.”
In the end the business cards explain what we do as a company without outright saying so. The amount of redundancy is kept at a minimum while still delivering all relevant information. The proficiencies of each employee are delivered along with the company’s total knowledge pool without using excessive technical jargon. The resulting design is visually appealing and provides others with a small glimpse of our storyboarding process.


From a User’s Perspective