blob: 66df5736cf46b753394f0b2e0ae515c5bb7dcf2e [file] [log] [blame]
Matteo Scandoloda19dff2016-02-08 16:55:44 -08001/* CONTAINER */
2diagnostic .half-height {
3 position: relative;
4 height: 50%;
5}
6
Matteo Scandoloba2d63d2016-02-17 13:54:11 -08007diagnostic .onethird-height {
8 position: relative;
9 height: 33%;
10}
11
12diagnostic .twothird-height {
13 position: relative;
14 height: 67%;
15}
16
Matteo Scandolo38ba3312016-02-09 16:01:49 -080017diagnostic .subscriber-select{
18 max-width: 200px;
19 position: absolute;
20 top: 20px;
21 right: 20px;
22 z-index: 1;
23}
24
Matteo Scandoloeeb9c082016-02-09 11:19:22 -080025.half-height + .half-height {
26 border-top: 1px solid black;
27}
28
29service-topology,
30logic-topology {
Matteo Scandolobe9b13d2016-01-21 11:21:03 -080031 height: 100%;
32 width: 100%;
33 display: block;
Matteo Scandoloeeb9c082016-02-09 11:19:22 -080034 position: absolute;
35 top: 0;
Matteo Scandolobe9b13d2016-01-21 11:21:03 -080036}
37
Matteo Scandolob373a102016-02-09 11:37:11 -080038logic-topology .subscriber circle,
39logic-topology .device circle{
40 fill: #fff;
41 stroke: green;
42 stroke-width: 1px;
43}
44
Matteo Scandoloc303fd02016-02-17 15:11:33 -080045logic-topology > svg {
46 position: absolute;
47 top: 0;
48}
49
Matteo Scandoloc303fd02016-02-17 15:11:33 -080050/* CLOUDS */
51
Matteo Scandolo38ba3312016-02-09 16:01:49 -080052logic-topology .network .cloud {
53 fill: #fff;
54 stroke: green;
55 stroke-width: 1px;
56}
57
Matteo Scandolo3b507bc2016-02-17 13:59:20 -080058/* RACK */
59logic-topology .node.rack > g > rect{
60 fill: #ccc;
61 stroke: steelblue;
62 stroke-width: 1px;
63}
64
65/* CP NODE */
66
67logic-topology .compute-node > rect{
Matteo Scandolob785b572016-02-16 11:50:51 -080068 fill: #fff;
69 stroke: steelblue;
70 stroke-width: 1px;
71}
72
Matteo Scandolo3b507bc2016-02-17 13:59:20 -080073/* INSTANCE */
74
75logic-topology .instance > rect{
76 fill: #eee;
77 stroke: steelblue;
78 stroke-width: 1px;
79}
80
Matteo Scandoloedd3d6f2016-02-16 15:06:11 -080081logic-topology .node .instance.active rect{
82 fill: lightsteelblue;
83 stroke: steelblue;
84 stroke-width: 1px;
85}
86
Matteo Scandolo06afdfe2016-02-23 13:47:14 -080087logic-topology .node .instance.active.good > rect{
88 fill: green;
89}
90
91logic-topology .node .instance.active.provisioning > rect{
92 fill: yellow;
93}
94
95logic-topology .node .instance.active.bad > rect{
96 fill: red;
97}
98
99/* INSTANCE STATS */
100
101logic-topology .node .instance .stats-container rect {
102 fill: white;
103}
104
105logic-topology .node .instance .stats-container text.name{
106 font-weight: bold;
107}
108
109logic-topology .node .instance .stats-container text.ip{
110 font-style: italic;
111 font-size: 10px;
112}
113
114/* CONTAINERS */
Matteo Scandolo653c5092016-02-24 11:14:01 -0800115logic-topology .node .instance .stats-container .container rect {
Matteo Scandolo06afdfe2016-02-23 13:47:14 -0800116 fill: #eee;
117 stroke: steelblue;
118 stroke-width: 1px;
119}
120
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800121/* LEGEND */
122
123.legend {
124 fill: #fff;
125 stroke: #ccc;
126 stroke-width: 1px;
127 position: relative;
128}
129
130.legend text {
131 stroke: #000;
132}
133
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800134.node {
135 cursor: pointer;
136}
137
Matteo Scandoloc86b4c12016-01-25 17:36:08 -0800138.node circle,
139.node rect{
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800140 fill: #fff;
141 stroke: steelblue;
Matteo Scandoloda19dff2016-02-08 16:55:44 -0800142 stroke-width: 1px;
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800143}
144
Matteo Scandolofb46f5b2016-01-25 10:10:38 -0800145.node.subscriber circle,
Matteo Scandolo38ba3312016-02-09 16:01:49 -0800146.node.subscriber rect,
147.node.router circle,
148.node.router rect {
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800149 stroke: #05ffcb;
Matteo Scandolofb46f5b2016-01-25 10:10:38 -0800150}
151
Matteo Scandoloc86b4c12016-01-25 17:36:08 -0800152.node.slice rect {
Matteo Scandolo4889f5a2016-01-25 12:00:42 -0800153 stroke: #b01dff;
154}
155
Matteo Scandoloc86b4c12016-01-25 17:36:08 -0800156.node.instance rect {
Matteo Scandolo998e4652016-01-28 12:02:57 -0800157 stroke: #ccc;
158}
159
160.node.instance rect.active {
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800161 stroke: #ff8b00;
Matteo Scandolo4889f5a2016-01-25 12:00:42 -0800162}
163
Matteo Scandolo793e1dd2016-01-22 09:33:26 -0800164.node rect.slice-detail{
165 fill: #fff;
166 stroke: steelblue;
167 stroke-width: 3px;
168}
169
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800170.node text {
171 font: 12px sans-serif;
172}
173
Matteo Scandoloeeb9c082016-02-09 11:19:22 -0800174.link, .device-link {
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800175 fill: none;
176 stroke: #ccc;
177 stroke-width: 2px;
Matteo Scandolo68236262016-01-21 15:38:06 -0800178}
179
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800180.link.slice {
Matteo Scandolo39f49472016-01-25 13:55:09 -0800181 stroke: rgba(157, 4, 183, 0.29);
182}
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800183.link.instance{
Matteo Scandolo998e4652016-01-28 12:02:57 -0800184 stroke: #ccc;
185}
186
187.link.instance.active{
Matteo Scandolo65d6fc42016-01-25 16:24:42 -0800188 stroke: rgba(255, 138, 0, 0.65);
189}
Matteo Scandolo39f49472016-01-25 13:55:09 -0800190
Matteo Scandolo68236262016-01-21 15:38:06 -0800191.service-details{
192 width: 200px;
193 position: absolute;
194 top: 20px;
195 right: 20px;
Matteo Scandolo53a02262016-01-21 16:02:57 -0800196}
197
198/* when showing the thing */
199
200.animate.ng-hide-remove {
201 animation:0.5s bounceInRight ease;
202}
203
204/* when hiding the picture */
205.animate.ng-hide-add {
206 animation:0.5s bounceOutRight ease;
207}
208
Matteo Scandolo17dc11d2016-02-22 09:16:46 -0800209/* LOADER */
210.loader {
211 font-size: 10px;
212 margin: 150px auto;
213 text-indent: -9999em;
214 width: 11em;
215 height: 11em;
216 border-radius: 50%;
217 background: #ffffff;
218 background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
219 background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
220 background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
221 background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
222 background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
223 position: relative;
224 animation: load3 1.4s infinite linear;
225 transform: translateZ(0);
226}
227.loader:before {
228 width: 50%;
229 height: 50%;
230 background: #105E9E;
231 border-radius: 100% 0 0 0;
232 position: absolute;
233 top: 0;
234 left: 0;
235 content: '';
236}
237.loader:after {
238 background: #fff;
239 width: 75%;
240 height: 75%;
241 border-radius: 50%;
242 content: '';
243 margin: auto;
244 position: absolute;
245 top: 0;
246 left: 0;
247 bottom: 0;
248 right: 0;
249}
250
251@keyframes load3 {
252 0% {
253 -webkit-transform: rotate(0deg);
254 transform: rotate(0deg);
255 }
256 100% {
257 -webkit-transform: rotate(360deg);
258 transform: rotate(360deg);
259 }
260}
261
Matteo Scandolocc8fa152016-02-22 09:57:55 -0800262/* MODALS */
263
264.modal.fade.in {
265 display: block;
266}
267
Matteo Scandolo53a02262016-01-21 16:02:57 -0800268/* ANIMATIONS */
269
270@keyframes bounceInRight {
271 from, 60%, 75%, 90%, to {
272 animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
273 }
274
275 from {
276 opacity: 0;
277 transform: translate3d(3000px, 0, 0);
278 }
279
280 60% {
281 opacity: 1;
282 transform: translate3d(-25px, 0, 0);
283 }
284
285 75% {
286 transform: translate3d(10px, 0, 0);
287 }
288
289 90% {
290 transform: translate3d(-5px, 0, 0);
291 }
292
293 to {
294 transform: none;
295 }
296}
297
Matteo Scandoloc303fd02016-02-17 15:11:33 -0800298@keyframes bounceOutRight {
299 20% {
300 opacity: 1;
301 transform: translate3d(-20px, 0, 0);
302 }
Matteo Scandolo53a02262016-01-21 16:02:57 -0800303
Matteo Scandoloc303fd02016-02-17 15:11:33 -0800304 to {
305 opacity: 0;
306 transform: translate3d(2000px, 0, 0);
307 }
Matteo Scandolobe9b13d2016-01-21 11:21:03 -0800308}