<div class="frame">
  <div class="center">
    <section class="todo-cmp">
      <header class="todo-cmp__header">
        <h2>Friday</h2>
        <p>March 4, 2016</p>
      </header>

        <ul class="todo-cmp__list">
          <li>
            <label for="todo-01">
              <input id="todo-01" type="checkbox">
              <span>Open template</span>
            </label>
          </li>
          <li>
            <label for="todo-02">
              <input id="todo-02" type="checkbox">
              <span>Build a to-do list</span>
            </label>
          </li>
            <li>
            <label for="todo-03">
              <input id="todo-03" type="checkbox">
              <span>Write something</span>
            </label>
          </li>
          <li>
            <label for="todo-04">
              <input id="todo-04" type="checkbox">
              <span>Complete the task</span>
            </label>
          </li>
      </ul>
    </section>
  </div>
</div>
// delete the following line if no text is used
// edit the line if you wanna use other fonts
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600);

// use only the available space inside the 400x400 frame
.frame {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 400px;
  height: 400px;
  margin-top: -200px;
  margin-left: -200px;
  border-radius: 2px;
  box-shadow: 4px 8px 16px 0 rgba(0,0,0,0.1);
  overflow: hidden;
  color: #333;
  font-family: 'Open Sans', Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  
  
  /*
  http://colorzilla.com/gradient-editor */
background: rgb(253,162,49);
background: -moz-linear-gradient(45deg, rgba(253,162,49,1) 0%, rgba(251,183,49,1) 60%, rgba(253,202,49,1) 100%);
background: -webkit-linear-gradient(45deg, rgba(253,162,49,1) 0%,rgba(251,183,49,1) 60%,rgba(253,202,49,1) 100%);
background: linear-gradient(45deg, rgba(253,162,49,1) 0%,rgba(251,183,49,1) 60%,rgba(253,202,49,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fda231', endColorstr='#fdca31',GradientType=1 ); 
}

.center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.todo-cmp {
  background: #ffffff;
  color: #497081;
  padding: 10px 30px;
  border-radius: 5px;
  box-shadow: 2px 2px 14px rgba(0,0,0,0.15);
  width: 180px;
  
  &__header {
    text-align: center;
    padding: 10px 0;
    border-bottom: 1px solid #ddd;
    
    
    h2 {
      font-weight: 600;
      font-size: 1.2rem;
      margin: 4px auto;
      padding: 0;
    }
    p {
      padding: 0 0 5px;
      margin: 4px auto;
      font-size: 0.8rem;
    }
  }
  
  &__list {
    list-style: none;
    padding: 0;
    
    li {
      padding: 10px 0 15px;
      margin: 0;
      text-align: left;
      width: 100%;
      
      label {
        cursor: pointer;
        font-size: 0.82rem;
        width: 100%;
        display: block;
        
        
        input {
          float: right;
          opacity: 0;
        }
        
        span {
          position: relative;
          display:block;
          transition: all 550ms ease-in-out;
        }
        
        
        input + span::after {
            content: "";
            display: block;
            border: 1px solid #497081;
            border-radius: 13px;
            height: 13px;
            width: 13px;
            position: absolute;
            right: 0;
            top: 1px;
            z-index: 10;
          
           transition: all 550ms cubic-bezier(0.680, -0.550, 0.265, 1.550); 
           transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
          /* https://matthewlein.com/tools/ceaser */
        }
        
        input + span::before {
            content: "✔";
            display: block;
            font-size: 22px;
            height: 13px;
            width: 13px;
            position: absolute;
            right: -2px;
            top: -8px;
            z-index: 10;
            opacity: 0;
        }
        
        input:checked + span {
          color: #ccc;
          transition: all 550ms ease-in-out;
        }
        
        input:checked + span::after {
            opacity: 0;
            height: 17px;
            width: 17px;
            top: -2px;
            right: -2px;
        }
        
        input:checked + span::before {
            opacity: 1;
           transition: all 550ms ease-in-out;
        }
      }
    }
  }
}
View Compiled
// jQuery v3.3.1 is supported

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://100dayscss.com/codepen/js/jquery.min.js