Gradient header with triangle
HTML
<div class="content-box">
<header>
<h1>Foo bar baz</h1>
</header>
<i class="triangle"></i>
<div class="content">
<p>Getting the triangle to have the same gradient as the header is a bit tricky.</p>
<ol>
<li>Create a vertical gradient in the header</li>
<li>Create a square element positioned absolutely</li>
<li>Add the same gradient as the header except diagonally at 45deg to the square element</li>
<li>Rotate the square element 45 degrees</li>
<li>For pixel precision, make sure the square element is as tall as the header when rotated</li>
<li>Put a border on the left and bottom of the square element</li>
<li>Position the header relative and give it a z-index of 1</li>
<li>Position the square element absolutely behind the header</li>
</ol>
</div>
</div>
CSS
body {
padding: 20px;
font-family: helvetica, arial;
color: #505354;
}
.content-box {
border: solid 1px #A8ADB3;
margin-left: 20px;
background: #fcfeff;
position: relative;
-webkit-box-shadow: 0 1px 1px 0px #dee0e3;
-moz-box-shadow: 0 1px 1px 0px #dee0e3;
box-shadow: 0 1px 1px 0px #dee0e3;
}
.content-box header {
position: relative;
z-index: 1;
color: #000;
text-shadow: 0 1px 0 rgba(255,255,255,0.8);
padding: 10px;
border-bottom: solid 1px #A8ADB3;
background-color: #e6f0f9;
background-image: -moz-linear-gradient(top, #edf4fb, #dceaf7);
background-image: -ms-linear-gradient(top, #edf4fb, #dceaf7);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#edf4fb), to(#dceaf7));
background-image: -webkit-linear-gradient(top, #edf4fb, #dceaf7);
background-image: -o-linear-gradient(top, #edf4fb, #dceaf7);
background-image: linear-gradient(top, #edf4fb, #dceaf7);
background-repeat: repeat-x;
}
.triangle {
display: block;
height: 25px;
width: 25px;
position: absolute;
top: 6px;
left: -5px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
background: #d7e7f5;
border: solid 1px #a8adb3;
border-right: none;
border-top: none;
background-color: #dceaf7;
background-repeat: repeat-x;
background-image: -moz-linear-gradient(45deg, #edf4fb, #dceaf7);
background-image: -ms-linear-gradient(45deg, #edf4fb, #dceaf7);
background-image: -webkit-linear-gradient(45deg, #edf4fb, #dceaf7);
background-image: -o-linear-gradient(45deg, #edf4fb, #dceaf7);
background-image: linear-gradient(45deg, #edf4fb, #dceaf7);
-webkit-box-shadow: 0 1px 1px 0px #dee0e3;
-moz-box-shadow: 0 1px 1px 0px #dee0e3;
box-shadow: 0 1px 1px 0px #dee0e3;
}
.content-box .content {
padding: 10px;
}
ol {
...