<div class="letter"><span id="a"></span></div>
<div class="letter"><span id="b"></span></div>
<div class="letter"><span id="c"></span></div>
<div class="letter"><span id="d"></span></div>
<div class="letter"><span id="e"></span></div>
<div class="letter"><span id="f"></span></div>
<div class="letter"><span id="g"></span></div>
<div class="letter"><span id="h"></span></div>
<div class="letter"><span id="i"></span></div>
<div class="letter"><span id="j"></span></div>
<div class="letter"><span id="k"></span></div>
<div class="letter"><span id="l"></span></div>
<div class="letter"><span id="m"></span></div>
<div class="letter"><span id="n"></span></div>
<div class="letter"><span id="o"></span></div>
<div class="letter"><span id="p"></span></div>
<div class="letter"><span id="q"></span></div>
<div class="letter"><span id="r"></span></div>
<div class="letter"><span id="s"></span></div>
<div class="letter"><span id="t"></span></div>
<div class="letter"><span id="u"></span></div>
<div class="letter"><span id="v"></span></div>
<div class="letter"><span id="w"></span></div>
<div class="letter"><span id="x"></span></div>
<div class="letter"><span id="y"></span></div>
<div class="letter"><span id="z"></span></div>
@import "compass/css3";

* {
 	box-sizing:border-box; 
}

body {
 	padding:20px; 
}

.letter {
 	display:block;
  width:100px;
  height:100px;
  box-shadow:0 0 1px rgba(0,0,0,0.5);
  margin:50px 10px 80px 10px; 
  float:left;
  position:relative;
  
  span {
    display:block; 
  	position:relative;
    
    &:after,
		&:before {
      content:"";
      display:block;
      position:absolute;
    }
  }
}

#a, #b, #c, #d, #e, #g, #o, #p, #q {
  width:100%;
  height:100%;
  border-radius:50%;
  border:25px solid #111;
}

#a:after {
	height:200%;
  right:-25px;
  top:-25px;
  width:25px;
  background:#111;
}

#b:after,
#h:after,
#k:after{
	height:200%;
  left:-25px;
  bottom:-25px;
  width:25px;
  background:#111;
}

#b:after {
 	height:300%; 
}

#c:after {
  height:50%;
  width:75%;
  top:50%;
  margin-top:-25%;
  right:-25px;
  background:white;
}

#d:after {
	height:300%;
  right:-25px;
  bottom:-25px;
  width:25px;
  background:#111;
}

#e:after {
  height:25px;
  width:190%;
  top:50%;
  margin-top:-25%;
  right:-23px;
  background:#111;
}

#e:before{
	width:100%;
  height:5px;
  background:white;
  right:-25px;
  top:74%;
  z-index:2;
}

#f {
  width:100%;
  height:100%;
  border-left:25px solid #111;
  
  &:before {
    width:75%;
    height:100%;
    border:25px solid #111;
    bottom:25%;
    left:-25px;
    border-radius:40% 0 0 0;
    border-bottom:none;
    border-right-color:white;
  }
  
  &:after {
    width:100%;
    top:0;
    left:-25px;
    background:#111;
    height:25px;
  }
}

#g:after{
	height:200%;
  right:-25px;
  top:-25px;
  width:25px;
  background:#111;
}

#g:before{
 	width:100%;
  height:100%;
  border:25px solid #111;
  bottom:-200%;
  right:-25px;
  border-radius:0 0 40% 0;
  border-top:none;
  border-left-color:white;
}

#h, #k, #m, #n { 
 width:100%;
  height:100%;
  border:25px solid #111;
  border-radius:0% 50% 0% 0%;
  border-bottom:none; 
}

#h:after,
#k:after{
  bottom:0;
}

#i {
  height:100%;
  width:25px;
  margin:0 auto;
  background: #111;
  
  &:after {
    width:25px;
    height:25px;
    border-radius:50%;
    background: #111;
    top:-50%;
    left:0;
  }
}

#j {
 	width:100%;
  border-right:25px solid #111;
  height:100%;
  right:0;
  top:0;
  
  &:before {
    bottom:-75%;
    width:75%;
    height:50%;
    border:25px solid #111;
    right:-25px;
    border-radius:0 0 40% 0;
    border-top:none;
    border-left-color:white;
  }
  
  &:after {
    width:25px;
    height:25px;
    border-radius:50%;
    background: #111;
    top:-50%;
    right:-25px;
  }
}


#k:before{
  height:25px;
  background: #111;
  width:100%;
  top:25%;
  border-radius:0 0 50% 0;
}

#l {
  width:25px;
  background:#111;
  height:150%;
  margin:0 auto;
  bottom:50%;
}	


#m:after, 
#w:after{
  height:100%;
  width:25px;
  background: #111;
  left:12px;
  top:-24px;
}

#p:after {
	height:300%;
  left:-25px;
  top:-25px;
  width:25px;
  background:#111;
}

#q:after,
#y:after{
	height:300%;
  right:-25px;
  top:-25px;
  width:25px;
  background:#111;
}

#r {
  width:100%;
  height:100%;
  overflow:hidden;
  
  &:before {
    height:100%;
    left:0;
    top:0;
    width:25px;
    background:#111; 
  }
  
  &:after {
    border:25px solid #111;
    width:100%;
    height:100%;
    border-radius:50%;
    left:-15px;
  }
}

#s {
 	width:100%;
  height:100%;
  border-radius:50%;
  border:25px solid #111;
  
  &:after {
    width:100%;
    height:25px;
    background:#111;
    border-top:5px solid white;
    border-radius:0 0 50% 0;
    right:-24px;
    top:50%;
    margin-top:-18px;
  }
  
  &:before {
    width:100%;
    height:25px;
    background:#111;
    border-bottom:5px solid white;
    left:-23px;
    top:50%;
    margin-top:-13px;
  }
}

#t {
 	width:25px;
  left:0;
  height:150%;
  bottom:50%;
  background:#111;
  
  &:after {
    background:#111;
    width:300%;
    height:25px;
    bottom:50%;
  }
}

#u, #y {
 	width:100%;
  height:100%;
  border:25px solid #111;
  border-radius:0% 0% 0% 50%;
  border-top:none;
} 

#y:after { 
  top:100%;
  right:-25px;
}

#v, #w {
 	width:100%;
  height:100%;
  border:25px solid #111;
  border-radius:0% 0% 50% 0%;
  border-top:none;
} 

#w:after{
 	bottom:-24px;
  top:auto;
}

#x {
  width:100%;
  height:100%;
  overflow:hidden;
  
  &:before, &:after {
    background: #111;
    width:25px;
    height:200%;
    top:-15px;
    left:100%;
    transform:rotate(45deg);
    transform-origin:0% 0%;
  }
  
  &:after {
    transform:rotate(-45deg);
    right:100%;
    left:auto;
    top:-10px;
  }
}

#y:after {
 	height:100%; 
}

#z{
 	width:100%;
  height:100%;
  overflow:hidden;
  
  &:after {
    border:25px solid #111;
    right:60px;
    border-right-width:40px;
    transform:skewX(-45deg);
    width:100%;
    height:100%;
    overflow:hidden;
  }
  
  &:before {
    bottom:0;
    left:0;
    width:100%;
    height:0;
    border:12px solid #111;
  }
}


View Compiled
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js