Very simple single div animated led indicator lights. Just add the .active class.
A Pen by Steven Hagen on CodePen.
<link href='https://fonts.googleapis.com/css?family=Josefin+Sans:600' rel='stylesheet' type='text/css'> | |
<body class="carbon-fiber"> | |
<div class="container"> | |
<div class="row"> | |
<div class="col-xs-12"> | |
<h1 class="text-center">LED Status Indicators</h1> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row color-row"> | |
<div class="col-xs-4 indicator_pair text-right"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-center"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
<div class="col-xs-4 indicator_pair text-left"> | |
<div class="indicator"></div> | |
<div class="indicator active"></div> | |
<div class="indicator pulse"></div> | |
</div> | |
</div> | |
<div class="row"> | |
<br><br> | |
</div> |
Very simple single div animated led indicator lights. Just add the .active class.
A Pen by Steven Hagen on CodePen.
$width: 14px; | |
$height: 14px; | |
$colors: magenta, ghostwhite, red, orange, yellow, limegreen, blue, deepskyblue, | |
blueviolet; | |
@for $i from 1 through length($colors) { | |
.color-row:nth-child(#{length($colors)}n + #{$i}) { | |
@for $j from 1 through 3 { | |
.indicator_pair:nth-child(#{$j}) { | |
.indicator { | |
width: ($width * $j/1.5); | |
height: ($height * $j/1.5); | |
background-color: shade(nth($colors, $i), 50%); | |
border-radius: 50%; | |
position: relative; | |
margin: $height/2 $width/2; | |
display: inline-block; | |
float: none; | |
} | |
.indicator.active { | |
background-color: nth($colors, $i); | |
-moz-box-shadow: 0 0 ($width * $j) nth($colors, $i); | |
-webkit-box-shadow: 0 0 ($width * $j) nth($colors, $i); | |
box-shadow: 0 0 ($width * $j) nth($colors, $i); | |
} | |
.indicator.pulse { | |
background-color: nth($colors, $i); | |
-moz-box-shadow: 0 0 ($width * $j) nth($colors, $i); | |
-webkit-box-shadow: 0 0 ($width * $j) nth($colors, $i); | |
box-shadow: 0 0 ($width * $j) nth($colors, $i); | |
-webkit-animation: pulsate-#{$i} | |
0.25s | |
ease-in | |
#{0.1 * | |
$i}s | |
alternate | |
infinite; | |
-moz-animation: pulsate-#{$i} | |
0.25s | |
ease-in | |
#{0.1 * | |
$i}s | |
alternate | |
infinite; | |
-o-animation: pulsate-#{$i} 0.25s ease-in #{0.1 * $i}s alternate infinite; | |
animation: pulsate-#{$i} 0.25s ease-in #{0.1 * $i}s alternate infinite; | |
} | |
.indicator:before { | |
$rimwidth: ($width * $j)/8; | |
$rimheight: ($height * $j)/8; | |
content: ""; | |
width: calc(100% + #{$rimwidth}); | |
height: calc(100% + #{$rimheight}); | |
border-radius: 50%; | |
background: #222; | |
position: absolute; | |
top: -$rimwidth/2; | |
left: -$rimheight/2; | |
z-index: -1; | |
} | |
.indicator:after { | |
content: ""; | |
width: 70%; | |
height: 50%; | |
border-radius: 50%; | |
background: rgba(255, 255, 255, 0.2); | |
position: absolute; | |
top: ($width * $j)/12; | |
left: ($width * $j)/10; | |
} | |
.indicator.active:after { | |
background: rgba(255, 255, 255, 0.3); | |
} | |
@keyframes pulsate-#{$i} { | |
from { | |
background-color: nth($colors, $i); | |
-moz-box-shadow: 0 0 ($width * $j)/4 nth($colors, $i); | |
-webkit-box-shadow: 0 0 ($width * $j)/4 nth($colors, $i); | |
box-shadow: 0 0 ($width * $j)/4 nth($colors, $i); | |
} | |
to { | |
background-color: tint(nth($colors, $i), 20%); | |
-moz-box-shadow: 0 0 ($width * $j)/2 tint(nth($colors, $i), 20%); | |
-webkit-box-shadow: 0 0 ($width * $j)/2 tint(nth($colors, $i), 20%); | |
box-shadow: 0 0 ($width * $j)/2 tint(nth($colors, $i), 20%); | |
} | |
} | |
} | |
} | |
} | |
} | |
//---------------Presentation------------------------ | |
.indicator_pair { | |
margin-bottom: 5px; | |
} | |
h1 { | |
margin: 70px 0 60px 0; | |
} | |
body { | |
background-color: #111; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
padding-bottom: 30px; | |
} | |
h1 { | |
text-transform: uppercase; | |
font-size: 50px; | |
text-align: center; | |
text-shadow: 0 4px 5px rgba(60, 72, 96, 0.5); | |
color: #f0edf2; | |
-webkit-font-smoothing: antialiased; | |
-moz-osx-font-smoothing: grayscale; | |
-webkit-animation-duration: 0.1s; | |
animation-duration: 0.1s; | |
-webkit-animation-fill-mode: both; | |
animation-fill-mode: both; | |
-webkit-animation-name: zoomIn; | |
animation-name: zoomIn; | |
-webkit-text-stroke-width: 1px; | |
-webkit-text-stroke-color: #fff; | |
text-shadow: rgb(255, 255, 255) 0px 0px 175px, rgb(255, 255, 255) 0px 0px 10px, | |
rgb(255, 255, 255) 0px 0px 1px, rgb(0, 51, 128) 0px 0px 100px, | |
rgb(0, 51, 128) 0px 0px 250px; | |
} | |
@-webkit-keyframes zoomIn { | |
from { | |
opacity: 0; | |
-webkit-transform: scale3d(0.3, 0.3, 0.3); | |
transform: scale3d(0.3, 0.3, 0.3); | |
} | |
50% { | |
opacity: 1; | |
} | |
} | |
@keyframes zoomIn { | |
from { | |
opacity: 0; | |
-webkit-transform: scale3d(0.3, 0.3, 0.3); | |
transform: scale3d(0.3, 0.3, 0.3); | |
} | |
50% { | |
opacity: 1; | |
} | |
} |
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" /> |