Single Element Icons
Inspired by this set → http://www.flaticon.com/packs/ios7-set-lined-1
<ul>
<ul>
<li><div class="icon arrow-previous"></div></li>
<li><div class="icon arrow-right"></div></li>
<li><div class="icon arrow-left"></div></li>
<li><div class="icon arrow-next"></div></li>
<li><div class="icon arrow-bottom"></div></li>
<li><div class="icon arrow-top"></div></li>
<li><div class="icon smart-phone"></div></li>
<li><div class="icon information-button"></div></li>
<li><div class="icon speech-bubble"></div></li>
<li><div class="icon speech-bubble speech-bubble--no-text"></div></li>
<li><div class="icon bullet-list"></div></li>
<li><div class="icon scale"></div></li>
<li><div class="icon credit-card"></div></li>
<li><div class="icon calendar-tick"></div></li>
<li><div class="icon outcoming"></div></li>
<li><div class="icon clock"></div></li>
<li><div class="icon mail"></div></li>
<li><div class="icon add"></div></li>
<li><div class="icon bookmark"></div></li>
<li><div class="icon portfolio"></div></li>
<li><div class="icon hierarchy"></div></li>
<li><div class="icon converging-arrows"></div></li>
<li><div class="icon not-charging"></div></li>
<li><div class="icon battery battery--two-bars"></div></li>
<li><div class="icon battery battery--three-bars"></div></li>
<li><div class="icon battery battery--four-bars"></div></li>
<li><div class="icon menu-three-lines"></div></li>
<li><div class="icon cross-out-mark"></div></li>
<li><div class="icon arrow-refresh"></div></li>
<li><div class="icon wrong-sign"></div></li>
<li><div class="icon clapper"></div></li>
<li><div class="icon tablet-locked"></div></li>
<li><div class="icon storage"></div></li>
<li><div class="icon card-and-machine"></div></li>
<li><div class="icon aim-target"></div></li>
<li><div class="icon box"></div></li>
<li><div class="icon window-computer"></div></li>
<li><div class="icon circle-of-circles"></div></li>
<li><div class="icon window-plus"></div></li>
<li><div class="icon stack"></div></li>
<li><div class="icon bluethooth"></div></li>
</ul>
: black;
black;:
body {
background: #e6e6e6;
}
ul {
list-style-type: none;
padding: 0;
margin: 0;
font-size: 0;
li {
width: 64px;
height: 64px;
border: 39px solid white;
background: #FFF;
display: inline-block;
position: relative;
vertical-align: top;
margin: 5px;
&:after {
background: rgba(0, 100, 255, 0.1);
width: 2px;
height: 100%;
position: absolute;
left: 50%;
margin-left: -1px;
content: '';
}
&:before {
background: rgba(0, 100, 255, 0.1);
height: 2px;
width: 100%;
position: absolute;
top: 50%;
margin-top: -1px;
content: '';
}
/* comment this ↓ to see the middle of the box */
&:after, &:before { content: normal; }
}
}
.icon {
position: relative;
display: inline-block;
.box-sizing;
&:after, &:before {
content: '';
position: absolute;
.box-sizing;
}
}
.arrow {
&-previous, &-next, &-bottom, &-top {
width: 100%;
height: 100%;
&:before, &:after {
width: 39px;
height: 2px;
background: ;
content: '';
position: absolute;
top: 50%;
}
&:before { .rotate(-44deg); }
&:after { .rotate(44deg); }
}
&-previous {
&:before, &:after {
left: 25%;
.transform-origin(0, 0);
}
}
&-next {
&:before, &:after {
right: 25%;
.transform-origin(100%, 100%);
}
}
&-bottom {
&:before, &:after {
.transform-origin(50%, 0);
}
&:before { left: 0; .rotate(46deg); }
&:after { right: 0; .rotate(-46deg); }
}
&-top {
&:before, &:after {
.transform-origin(50%, 100%);
}
&:before { left: 0; .rotate(-46deg); }
&:after { right: 0; .rotate(46deg); }
}
}
.arrow {
&-right, &-left {
height: 2px;
width: 55px;
background: ;
position: absolute;
top: 50%;
margin-top: -1px;
&:after {
content: '';
position: absolute;
width: 25px;
height: 25px;
bottom: 1px;
border: 2px solid ;
}
}
&-right:after {
.rotate(-45deg);
.transform-origin(100%, 100%);
border-left: none;
border-top: none;
right: -1px;
}
&-left:after {
.rotate(45deg);
.transform-origin(0, 100%);
border-right: none;
border-top: none;
left: -1px;
}
}
.smart-phone {
width: 28px;
height: 54px;
border: 2px solid ;
border-radius: 4px;
position: absolute;
left: 50%;
top: 50%;
margin: -25px 0 0 -14px;
&:after {
content: '';
position: absolute;
width: 100%;
top: 4px;
bottom: 5px;
border: 2px solid ;
border-left: 0;
border-right: 0;
}
&:before {
position: absolute;
content: '';
left: 50%;
bottom: 1px;
width: 3px;
height: 3px;
margin-left: -1px;
background: ;
border-radius: 100%;
}
}
.information-button {
width: 56px;
height: 56px;
border: 2px solid ;
border-radius: 100%;
position: absolute;
left: 50%;
top: 50%;
margin: -28px auto auto -28px;
&:before {
width: 4px;
height: 4px;
background: ;
border-radius: 100%;
left: 50%;
margin-left: -2px;
top: 10px;
}
&:after {
width: 4px;
height: 25px;
background: ;
border-radius: 10px;
left: 50%;
margin-left: -2px;
bottom: 10px;
}
}
.speech-bubble {
width: 56px;
height: 40px;
border: 2px solid ;
position: absolute;
top: 50%;
left: 50%;
margin: -20px 0 0 -28px;
box-shadow: inset 10px 0 0 0 white,
inset -10px 0 0 0 white,
inset 0 13px 0 0 white,
inset 0 15px 0 0 ,
inset 0 -13px 0 0 white,
inset 0 -15px 0 0 ;
&--no-text {
box-shadow: none;
}
&:before {
width: 0;
height: 0;
border-top: 9px solid transparent;
border-bottom: 9px solid transparent;
border-right: 9px solid ;
bottom: -14px;
left: 10px;
.rotate(45deg);
}
&:after {
width: 0;
height: 0;
border-top: 9px solid transparent;
border-bottom: 9px solid transparent;
border-right: 9px solid white;
bottom: -9px;
left: 12px;
.rotate(45deg);
}
}
.bullet-list {
width: 6px;
height: 6px;
background: white;
border-radius: 100%;
position: absolute;
top: 50%;
left: 6px;
margin: -3px 0 0 0;
box-shadow: 0 20px 0 0 white,
0 -20px 0 0 white,
0 0 0 2px ,
0 -20px 0 2px ,
0 20px 0 2px ;
&:after {
background: ;
width: 32px;
height: 2px;
left: 18px;
top: 50%;
margin: -1px 0 0 0;
box-shadow: 0 -20px 0 0 ,
0 20px 0 0 ;
}
}
.scale {
width: 62px;
height: 18px;
border: 2px solid ;
top: 50%;
left: 50%;
margin: -18px 0 0 -31px;
background: linear-gradient(
to right,
transparent 66.66%, 33.33%
);
background-size: 3px 6px;
background-repeat: repeat-x;
background-position: bottom left;
.rotate(45deg);
&:after {
width: 100%;
height: 100%;
background: linear-gradient(
to right,
transparent 90%, 10%
);
background-size: 15px 8px;
background-repeat: repeat-x;
background-position: bottom left;
}
}
.credit-card {
width: 56px;
height: 40px;
border: 2px solid ;
position: absolute;
top: 50%;
left: 50%;
margin: -20px 0 0 -28px;
border-radius: 3px;
&:after {
width: 100%;
height: 6px;
top: 7px;
left: 0;
background: ;
}
&:before {
width: 16px;
height: 5px;
right: 5px;
bottom: 7px;
background: ;
}
}
.calendar-tick {
width: 54px;
height: 52px;
position: absolute;
top: 50%;
left: 50%;
margin: -26px 0 0 -27px;
border: 2px solid ;
box-shadow: inset 0 9px 0 0 white,
inset 0 11px 0 0 ;
&:after {
width: 20px;
height: 14px;
border: 2px solid ;
border-top: 0;
border-right: 0;
.rotate(-45deg);
left: 50%;
top: 50%;
margin: -7px 0 0 -10px;
}
&:before {
width: 2px;
height: 10px;
background: ;
left: 6px;
top: -6px;
box-shadow: 9px 0 0 0 ,
18px 0 0 0 ,
27px 0 0 0 ,
36px 0 0 0 ;
}
}
.outcoming {
position: absolute;
width: 32px;
height: 46px;
border: 2px solid ;
border-right: 0;
top: 50%;
left: 5px;
margin-top: -23px;
&:after {
width: 46px;
height: 2px;
background: ;
top: 50%;
left: 6px;
margin-top: -1px;
}
&:before {
width: 20px;
height: 20px;
right: -24px;
top: 50%;
margin-top: -20px;
border: 2px solid ;
border-top: 0;
border-left: 0;
box-sizing: border-box;
-moz-box-sizing: border-box;
.rotate(-45deg);
.transform-origin(100%, 100%);
}
}
.clock {
width: 56px;
height: 56px;
border: 2px solid ;
border-radius: 100%;
position: absolute;
left: 50%;
top: 50%;
margin: -28px 0 0 -28px;
&:after {
width: 19px;
height: 21px;
border: 2px solid ;
border-left: 0;
border-top: 0;
bottom: 50%;
right: 50%;
margin: 0 -1px -1px 0;
box-sizing: border-box;
-moz-box-sizing: border-box;
}
}
.mail {
width: 56px;
height: 36px;
border: 2px solid ;
position: absolute;
left: 50%;
top: 50%;
margin: -18px 0 0 -28px;
&:before, &:after {
background: ;
width: 33px;
height: 2px;
top: 2px;
}
&:before {
.rotate(34deg);
.transform-origin(0, 0);
}
&:after {
right: 0;
.rotate(-34deg);
.transform-origin(100%, 0);
}
}
.add {
position: absolute;
left: 50%;
top: 50%;
margin: -28px 0 0 -3px;
&, &:before {
background: ;
height: 56px;
width: 6px;
border-radius: 10px;
}
&:before {
.rotate(90deg);
}
}
.bookmark {
width: 42px;
height: 56px;
position: absolute;
left: 50%;
top: 50%;
margin: -28px 0 0 -21px;
border: 2px solid ;
border-bottom: 0;
&:after {
width: 30px;
height: 30px;
border: 2px solid ;
border-right: 0;
border-bottom: 0;
top: 100%;
left: 50%;
margin: -15px 0 0 -15px;
box-sizing: border-box;
moz-box-sizing: border-box;
.rotate(45deg);
}
}
.portfolio {
width: 50px;
height: 34px;
position: absolute;
left: 50%;
top: 50%;
margin: -17px 0 0 -25px;
border: 2px solid ;
box-shadow: inset 0 8px 0 0 white,
inset 0 10px 0 0 ;
&:before {
width: 18px;
height: 7px;
border: 2px solid ;
border-bottom: 0;
left: 50%;
top: -9px;
margin: 0 0 0 -9px;
box-sizing: border-box;
moz-box-sizing: border-box;
}
&:after {
width: 4px;
height: 4px;
background: white;
left: 7px;
top: 10px;
box-shadow: 0 0 0 1px ,
28px 0 0 0 white,
28px 0 0 1px ;
}
}
.hierarchy {
width: 7px;
height: 7px;
background: white;
position: absolute;
left: 43px;
top: 50%;
margin-top: -4px;
box-shadow: 0 -19px 0 0 white,
0 19px 0 0 white,
0 0 0 2px ,
0 -19px 0 2px ,
0 19px 0 2px ,
-28px 0 0 2px white,
-28px 0 0 4px ;
&:before {
width: 10px;
height: 41px;
border: 2px solid ;
border-right: 0;
top: -17px;
left: -12px;
.box-sizing;
}
&:after {
width: 15px;
height: 2px;
background: ;
left: -17px;
top: 50%;
margin-top: -1px;
}
}
.converging-arrows {
width: 78px;
height: 2px;
position: absolute;
top: 50%;
left: 50%;
margin: -1px 0 0 -39px;
box-shadow: inset 32px 0 0 0 ,
inset -32px 0 0 0 ;
.rotate(-45deg);
.transform-origin(50%, 50%);
&:before, &:after {
width: 20px;
height: 20px;
border: 2px solid ;
top: 50%;
margin-top: -10px;
.box-sizing;
.rotate(45deg);
.transform-origin(50%, 50%);
}
&:before {
left: 10px;
border-left: 0;
border-bottom: 0;
}
&:after {
right: 10px;
border-right: 0;
border-top: 0;
}
}
.not-charging {
width: 50px;
height: 24px;
border: 1px solid ;
position: absolute;
top: 50%;
left: 50%;
margin: -12px 0 0 -25px;
&:after {
width: 60px;
height: 1px;
background: ;
left: 50%;
top: 50%;
margin: 0 0 0 -30px;
box-shadow: 0 0 0 1px white;
.rotate(45deg);
}
&:before {
width: 5px;
height: 10px;
border: 1px solid ;
border-left: 0;
right: -6px;
top: 50%;
margin-top: -5px;
}
}
.battery {
width: 44px;
height: 24px;
border: 1px solid ;
position: absolute;
top: 50%;
left: 50%;
margin: -12px 0 0 -22px;
&--two-bars:after,
&--three-bars:after,
&--four-bars:after {
height: 16px;
width: 5px;
background: white;
left: 3px;
top: 3px;
}
&--two-bars:after {
box-shadow: 0 0 0 1px ,
10px 0 0 0 white,
10px 0 0 1px ;
}
&--three-bars:after {
box-shadow: 0 0 0 1px ,
10px 0 0 0 white,
10px 0 0 1px ,
20px 0 0 0 white,
20px 0 0 1px ;
}
&--four-bars:after {
box-shadow: 0 0 0 1px ,
10px 0 0 0 white,
10px 0 0 1px ,
20px 0 0 0 white,
20px 0 0 1px ,
30px 0 0 0 white,
30px 0 0 1px ;
}
&:before {
width: 5px;
height: 10px;
border: 1px solid ;
border-left: 0;
right: -6px;
top: 50%;
margin-top: -5px;
}
}
.menu-three-lines {
position: absolute;
top: 50%;
left: 50%;
margin: -1px 0 0 -28px;
&, &:after, &:before {
width: 56px;
height: 2px;
background: ;
}
&:before { top: -20px; }
&:after { bottom: -20px; }
}
.cross-out-mark {
width: 84px;
height: 2px;
position: absolute;
margin: -1px 0 0 -42px;
.rotate(45deg);
.transform-origin(50%, 50%);
&, &:after {
background: ;
left: 50%;
top: 50%;
}
&:after {
height: 84px;
width: 2px;
margin: -42px 0 0 -1px;
}
}
.arrow-refresh {
position: absolute;
width: 54px;
height: 54px;
border: 2px solid ;
border-radius: 100%;
left: 50%;
top: 50%;
margin: -27px 0 0 -27px;
&:before {
width: 20px;
height: 20px;
background: white;
right: -2px;
bottom: 50%;
}
&:after {
width: 12px;
height: 12px;
border: 2px solid ;
border-top: 0;
border-left: 0;
top: -6px;
right: 6px;
.rotate(-10deg);
.transform-origin(100%, 100%);
}
}
.wrong-sign {
width: 56px;
height: 56px;
position: absolute;
top: 50%;
left: 50%;
margin: -28px 0 0 -28px;
border: 1px solid ;
&:before, &:after {
width: 40px;
height: 1px;
background: ;
top: 50%;
left: 50%;
margin-left: -20px;
}
&:before { .rotate(-45deg); }
&:after { .rotate(45deg); }
}
.clapper {
height: 30px;
position: absolute;
left: 50%;
top: 50%;
margin: -4px 0 0 -25px;
&, &:before, &:after {
width: 50px;
border: 2px solid ;
}
&:before, &:after {
height: 8px;
left: -2px;
background-position: -8px 0;
background-size: 8px 8px;
background-image: -webkit-repeating-linear-gradient(-45deg, transparent, transparent 7px, 7px, 8px);
background-image: repeating-linear-gradient(-45deg, transparent, transparent 7px, 7px, 8px);
}
&:before {
top: -8px;
}
&:after {
top: -15px;
.rotate(-15deg);
.transform-origin(0, 100%);
}
}
.tablet-locked {
width: 36px;
height: 56px;
position: absolute;
left: 50%;
top: 50%;
margin: -28px 0 0 -18px;
border: 2px solid ;
border-radius: 2px;
box-shadow: inset 0 4px 0 0 white,
inset 0 6px 0 0 ,
inset 0 -6px 0 0 white,
inset 0 -8px 0 0 ;
&:before {
width: 8px;
height: 8px;
border: 1px solid ;
border-radius: 100%;
left: 50%;
top: 17px;
margin-left: -4px;
box-shadow: 0 28px 0 -2px ;
}
&:after {
width: 12px;
height: 10px;
border-radius: 1px;
top: 22px;
left: 50%;
border: 1px solid ;
background: white;
margin-left: -6px;
}
}
.storage {
width: 40px;
height: 54px;
border: 2px solid ;
position: absolute;
left: 50%;
top: 50%;
margin: -27px 0 0 -20px;
&:before {
width: 10px;
height: 2px;
background: ;
left: 50%;
margin-left: -5px;
top: 7px;
box-shadow: 0 16px 0 0 ,
0 32px 0 0 ;
}
&:after {
width: 30px;
height: 2px;
background: ;
left: 50%;
margin-left: -15px;
top: 16px;
box-shadow: 0 16px 0 0 ;
}
}
.card-and-machine {
width: 56px;
height: 14px;
position: absolute;
left: 50%;
top: 50%;
margin: -24px 0 0 -28px;
&, &:before {
border: 2px solid ;
}
&:before, &:after {
.transform(skew(160deg, 0deg));
}
&:before {
width: 34px;
height: 40px;
border-radius: 3px;
background: white;
left: 3px;
top: 5px;
background-color: white;
background: linear-gradient(
to right,
white 55%,
55%, 72%,
white 72%
);
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: bottom left;
}
&:after {
width: 4px;
height: 12px;
background: ;
top: 27px;
left: 7px;
}
}
.aim-target {
width: 40px;
height: 40px;
border: 2px solid ;
border-radius: 100%;
position: absolute;
left: 50%;
top: 50%;
margin: -20px 0 0 -20px;
&:before, &:after {
width: 58px;
height: 2px;
box-shadow: inset 17px 0 0 0 ,
inset -17px 0 0 0 ;
top: 50%;
left: 50%;
margin: -1px 0 0 -29px;
}
&:after {
.rotate(90deg);
}
}
.box {
width: 40px;
height: 40px;
position: absolute;
top: 50%;
left: 50%;
margin: -14px 0 0 -28px;
box-shadow: inset 12px 0 0 0 white,
inset -12px 0 0 0 white,
inset 0 5px 0 0 white,
inset 0 7px 0 0 ;
&, &:before, &:after {
border: 2px solid ;
background: white;
}
&, &:before {
width: 40px;
}
&:before {
height: 13px;
border-bottom: 0;
top: -15px;
left: 6px;
box-shadow: inset 17px 0 0 0 white,
inset 19px 0 0 0 ;
.transform(skew(130deg, 0deg));
}
&:after {
height: 39px;
width: 16px;
border-left: 0;
border-top: 0;
top: -8px;
left: 38px;
.transform(skew(0deg, 139deg));
}
}
.window-computer {
width: 58px;
height: 58px;
border: 2px solid ;
position: absolute;
left: 50%;
top: 50%;
background: white;
margin: -29px 0 0 -29px;
box-shadow: inset 0 9px 0 0 white,
inset 0 11px 0 0 ;
&:before, &:after {
background: ;
height: 3px;
top: 3px;
}
&:before {
width: 12px;
left: 3px;
}
&:after {
width: 3px;
right: 3px;
border-radius: 100%;
box-shadow: -6px 0 0 0 ;
}
}
.circle-of-circles {
width: 6px;
height: 6px;
border-radius: 100%;
background: white;
position: absolute;
left: 50%;
top: 50%;
margin: -28px 0 0 -3px;
box-shadow: 17px 8px 0 0 white,
24px 25px 0 0 white,
17px 42px 0 0 white,
0 48px 0 0 white,
-17px 42px 0 0 white,
-24px 25px 0 0 white,
-17px 8px 0 0 white,
0 0 0 1px ,
17px 8px 0 1px ,
24px 25px 0 1px ,
17px 42px 0 1px ,
0 48px 0 1px ,
-17px 42px 0 1px ,
-24px 25px 0 1px ,
-17px 8px 0 1px ;
}
.window-plus {
width: 38px;
height: 38px;
position: absolute;
top: 50%;
left: 50%;
margin: -12px 0 0 -26px;
border: 2px solid ;
box-shadow: 14px -14px 0 -2px white,
14px -14px 0 0 ;
&:before, &:after {
background: ;
left: 50%;
top: 50%;
}
&:before {
width: 26px;
height: 2px;
margin: -1px 0 0 -13px;
}
&:after {
width: 2px;
height: 26px;
margin: -13px 0 0 -1px;
}
}
.stack {
width: 54px;
height: 36px;
position: absolute;
top: 50%;
left: 50%;
margin: -11px 0 0 -27px;
&, &:before, &:after {
border: 2px solid ;
}
&:before, &:after {
border-bottom: 0;
}
&:before {
width: 46px;
height: 8px;
left: 2px;
top: -10px;
}
&:after {
width: 32px;
height: 5px;
left: 8px;
top: -16px;
}
}
.bluethooth {
height: 56px;
width: 2px;
background: ;
position: absolute;
left: 50%;
top: 50%;
margin: -28px 0 0 -1px;
&:before, &:after {
width: 20px;
height: 20px;
left: 2px;
border: 2px solid ;
border-left: 0;
}
&:before {
top: 0px;
.transform-origin(0, 0);
.rotate(45deg);
}
&:after {
bottom: 0;
.transform-origin(0, 100%);
.rotate(-45deg);
}
}
/* MIXINS */
.rotate ( ) {
-webkit-transform: rotate( );
-moz-transform: rotate( );
-ms-transform: rotate( );
-o-transform: rotate( );
}
.transform-origin ( :center, :center) {
-webkit-transform-origin: ;
-moz-transform-origin: ;
-ms-transform-origin: ;
-o-transform-origin: ;
}
.box-sizing ( :border-box) {
box-sizing: ;
-moz-box-sizing: ;
}
.transform( ){
-webkit-transform: ;
-moz-transform: ;
-ms-transform: ;
-o-transform: ;
}