blob: 9d9aa6007fff066de763c43dd503f3b72bc72b67 [file] [log] [blame]
/* CONTAINER */
diagnostic .half-height {
position: relative;
height: 50%;
}
diagnostic .onethird-height {
position: relative;
height: 33%;
}
diagnostic .twothird-height {
position: relative;
height: 67%;
}
diagnostic .subscriber-select{
max-width: 200px;
position: absolute;
top: 20px;
right: 20px;
z-index: 1;
}
.half-height + .half-height {
border-top: 1px solid black;
}
service-topology,
logic-topology {
height: 100%;
width: 100%;
display: block;
position: absolute;
top: 0;
}
logic-topology .subscriber circle,
logic-topology .device circle{
fill: #fff;
stroke: green;
stroke-width: 1px;
}
logic-topology > svg {
position: absolute;
top: 0;
}
/* STATS */
logic-topology > .instances-stats {
position: absolute;
top: 0;
z-index: 2;
width: 100%;
}
logic-topology > .instances-stats ul.list-group {
font-size: 10px !important;
}
logic-topology > .instances-stats ul.list-group li{
padding: 3px 15px;
}
logic-topology > .instances-stats ul.list-group .badge {
font-size: 8px;
}
/* CLOUDS */
logic-topology .network .cloud {
fill: #fff;
stroke: green;
stroke-width: 1px;
}
/* RACK */
logic-topology .node.rack > g > rect{
fill: #ccc;
stroke: steelblue;
stroke-width: 1px;
}
/* CP NODE */
logic-topology .compute-node > rect{
fill: #fff;
stroke: steelblue;
stroke-width: 1px;
}
/* INSTANCE */
logic-topology .instance > rect{
fill: #eee;
stroke: steelblue;
stroke-width: 1px;
}
logic-topology .node .instance.active rect{
fill: lightsteelblue;
stroke: steelblue;
stroke-width: 1px;
}
logic-topology .node .instance.active.good > rect{
fill: green;
}
logic-topology .node .instance.active.provisioning > rect{
fill: yellow;
}
logic-topology .node .instance.active.bad > rect{
fill: red;
}
/* INSTANCE STATS */
logic-topology .node .instance .stats-container rect {
fill: white;
}
logic-topology .node .instance .stats-container text.name{
font-weight: bold;
}
logic-topology .node .instance .stats-container text.ip{
font-style: italic;
font-size: 10px;
}
/* CONTAINERS */
logic-topology .node .container rect{
fill: #eee;
stroke: steelblue;
stroke-width: 1px;
}
/* LEGEND */
.legend {
fill: #fff;
stroke: #ccc;
stroke-width: 1px;
position: relative;
}
.legend text {
stroke: #000;
}
.node {
cursor: pointer;
}
.node circle,
.node rect{
fill: #fff;
stroke: steelblue;
stroke-width: 1px;
}
.node.subscriber circle,
.node.subscriber rect,
.node.router circle,
.node.router rect {
stroke: #05ffcb;
}
.node.slice rect {
stroke: #b01dff;
}
.node.instance rect {
stroke: #ccc;
}
.node.instance rect.active {
stroke: #ff8b00;
}
.node rect.slice-detail{
fill: #fff;
stroke: steelblue;
stroke-width: 3px;
}
.node text {
font: 12px sans-serif;
}
.link, .device-link {
fill: none;
stroke: #ccc;
stroke-width: 2px;
}
.link.slice {
stroke: rgba(157, 4, 183, 0.29);
}
.link.instance{
stroke: #ccc;
}
.link.instance.active{
stroke: rgba(255, 138, 0, 0.65);
}
.service-details{
width: 200px;
position: absolute;
top: 20px;
right: 20px;
}
/* when showing the thing */
.animate.ng-hide-remove {
animation:0.5s bounceInRight ease;
}
/* when hiding the picture */
.animate.ng-hide-add {
animation:0.5s bounceOutRight ease;
}
/* LOADER */
.loader {
font-size: 10px;
margin: 150px auto;
text-indent: -9999em;
width: 11em;
height: 11em;
border-radius: 50%;
background: #ffffff;
background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
position: relative;
animation: load3 1.4s infinite linear;
transform: translateZ(0);
}
.loader:before {
width: 50%;
height: 50%;
background: #105E9E;
border-radius: 100% 0 0 0;
position: absolute;
top: 0;
left: 0;
content: '';
}
.loader:after {
background: #fff;
width: 75%;
height: 75%;
border-radius: 50%;
content: '';
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@keyframes load3 {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
/* MODALS */
.modal.fade.in {
display: block;
}
/* ANIMATIONS */
@keyframes bounceInRight {
from, 60%, 75%, 90%, to {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
}
from {
opacity: 0;
transform: translate3d(3000px, 0, 0);
}
60% {
opacity: 1;
transform: translate3d(-25px, 0, 0);
}
75% {
transform: translate3d(10px, 0, 0);
}
90% {
transform: translate3d(-5px, 0, 0);
}
to {
transform: none;
}
}
@keyframes bounceOutRight {
20% {
opacity: 1;
transform: translate3d(-20px, 0, 0);
}
to {
opacity: 0;
transform: translate3d(2000px, 0, 0);
}
}