Skip to content

Instantly share code, notes, and snippets.

@sdhagen
Created June 17, 2023 06:53
Show Gist options
  • Save sdhagen/aec5b9355e556033e838d275f5af58c6 to your computer and use it in GitHub Desktop.
Save sdhagen/aec5b9355e556033e838d275f5af58c6 to your computer and use it in GitHub Desktop.
Single DIV LED Indicators 7 SCSS
<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>

Single DIV LED Indicators 7 SCSS

Very simple single div animated led indicator lights. Just add the .active class.

A Pen by Steven Hagen on CodePen.

License.

$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" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment