TimeLine - Different

by charmis

HTML

<ul id='timeline'>
  <li class='event down'>
    <div class='content'>
      <div class="avatar">me</div>
    </div>
   
    <div class="dot">
      <span class='circle'></span>
    </div>
    <div class='date'>2008</div>
  </li>
  <li class='event up'>
    <div class='content'>
      <div class="avatar">me</div>
    </div>
    <div class="dot">
      <span class='circle'></span>
    </div>
    <div class='date'>2009</div>
  </li>
  <li class='event down'>
    <div class='content'>
      <div class="avatar">me</div>
    </div>
    <div class="dot">
      <span class='circle'></span>
    </div>
    <div class='date'>2010</div>
  </li>
  <li class='event up'>
    <div class='content'>
      <div class="avatar">me</div>
    </div>
    <div class="dot">
      <span class='circle'></span>
    </div>
    <div class="date">2011</div>
  </li>
  <li class="last">
    <div class="rectangle">
      story continuing ...
    </div>
  </li>
</ul>

CSS

/***
 * http://css-tricks.com/ordering-css3-properties/
 * http://www.456bereastreet.com/archive/201311/cutting_down_on_vendor_prefixes/
 ***/

$bg: #fffff0;
$line: #BADA55;
$red: #f98262;
$date: black;

body {
  margin: 0;
  padding: 0 20px;
  color: $red;
  background: $bg;
}

#timeline {
  list-style: none;
  width: 100%;
  height: 200px;
  margin: 200px 0 0;
  border-top: 6px solid $line;
  display: table;
  border-spacing: 30px 0;
  li {
    display: table-cell;
    position: relative;
    min-width: 100px;
  }
}
.circle {
  margin: 0 auto;
  top: -14px;
  left: 0;
  right: 0;
  width: 10px;
  height: 10px;
  background: $bg;
  border: 6px solid $red;
  border-radius: 50%;
  display: block;
  position: absolute;
}
.date {

}
.content {
  text-align: center;
  position: relative;
  
}
.avatar {
  width: 30px;
  height: 30px;
  display: block;
  border-radius: 50%;
  border: 6px solid $line;
  position: absolute;
  margin: 0 auto;
  left: 0;
  right: 0;
  text-align: center;
  line-height: 30px;
  background: $bg;
}
.content:before {
  content: '';
  width: 50px;
  height: 100px;
  left: 50%;
  margin-left: -2px;
  position: absolute;
}
li.down {
  .content:before {
    border-left: 4px solid $red;
    border-bottom: 4px solid $red;
    -webkit-border-radius: 0 20px;
    -moz-border-radius: 0 20px;
    border-radius: 0 20px;
  }
  .avatar {
    top: 80px;
    left: 100px;
  }
}
li.up {
  .content {
    margin-top: -106px;
    &:before {
      border-left: 4px solid $red;
    }
  }
  .date {
    margin-top: 106px;
  }
  .avatar {
    background: $bg;
    margin-top: -30px;
  }
}
.rectangle {
  border: 1px solid $red;
  border-radius: 30px;
  height: 30px;
  width: 200px;
  top: -19px;
  position: relative;
  background: $bg;
  line-height: 30px;
  text-align: center;
}