blob: dda6d5c6c83800e523c864f989376deff11ed7f2 [file] [log] [blame]
Simon Huntef31fb22014-12-19 13:16:44 -08001/*
Simon Hunt8ead3a22015-01-06 11:00:15 -08002 * Copyright 2014,2015 Open Networking Laboratory
Simon Huntef31fb22014-12-19 13:16:44 -08003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 ONOS GUI -- Topology View -- CSS file
Simon Huntef31fb22014-12-19 13:16:44 -080019 */
20
Simon Hunt7c8ab8d2015-02-03 15:05:15 -080021/* --- Base SVG Layer --- */
Simon Hunt626d2102015-01-29 11:54:50 -080022
Simon Huntd552ee92015-04-02 17:06:35 -070023#ov-topo svg {
24 /* prevents the little cut/copy/paste square that would appear on iPad */
25 -webkit-user-select: none;
26}
Simon Hunt5ee36e02015-01-15 10:33:20 -080027.light #ov-topo svg {
Simon Hunt426bd862015-01-14 16:48:41 -080028 background-color: #fff;
Simon Hunt6cc53692015-01-07 11:33:45 -080029}
Simon Hunt5ee36e02015-01-15 10:33:20 -080030.dark #ov-topo svg {
31 background-color: #2b2b2b;
32}
Simon Hunt426bd862015-01-14 16:48:41 -080033
Simon Hunt7c8ab8d2015-02-03 15:05:15 -080034
35/* --- "No Devices" Layer --- */
36
37#ov-topo svg #topo-noDevsLayer {
38 visibility: hidden;
39}
40
41.light #ov-topo svg .noDevsBird {
42 fill: #ecd;
43}
44.dark #ov-topo svg .noDevsBird {
45 fill: #683434;
46}
47
48#ov-topo svg #topo-noDevsLayer text {
49 font-size: 60pt;
50 font-style: italic;
51}
52.light #ov-topo svg #topo-noDevsLayer text {
53 fill: #dde;
54}
55.dark #ov-topo svg #topo-noDevsLayer text {
56 fill: #3b3b4f;
57}
58
59
60/* --- Topo Map --- */
61
Simon Hunt426bd862015-01-14 16:48:41 -080062#ov-topo svg #topo-map {
63 stroke-width: 2px;
Simon Hunt426bd862015-01-14 16:48:41 -080064 fill: transparent;
Simon Hunt5ee36e02015-01-15 10:33:20 -080065}
66
67.light #ov-topo svg #topo-map {
Simon Hunt2362b072015-06-11 20:08:22 -070068 stroke: #ddd;
Simon Hunt5ee36e02015-01-15 10:33:20 -080069}
70.dark #ov-topo svg #topo-map {
71 stroke: #444;
72}
Simon Hunt626d2102015-01-29 11:54:50 -080073
74
Simon Hunt4b668592015-01-29 17:33:53 -080075/* --- Topo Summary Panel --- */
Simon Hunt626d2102015-01-29 11:54:50 -080076
77#topo-p-summary {
78 /* Base css from panel.css */
Simon Hunt626d2102015-01-29 11:54:50 -080079}
80
Simon Hunt08f841d02015-02-10 14:39:20 -080081/* --- Topo Detail Panel --- */
82
83#topo-p-detail {
84 /* Base css from panel.css */
Simon Hunt7b41c4a2015-06-10 10:42:01 -070085 top: 320px;
Simon Hunt08f841d02015-02-10 14:39:20 -080086}
Bri Prebilic Coled8745462015-06-01 16:08:57 -070087html[data-platform='iPad'] #topo-p-detail {
Simon Hunt7b41c4a2015-06-10 10:42:01 -070088 top: 336px;
Bri Prebilic Coled8745462015-06-01 16:08:57 -070089}
Simon Hunt08f841d02015-02-10 14:39:20 -080090
Bri Prebilic Colef5e48b12015-04-21 14:52:36 -070091#topo-p-detail .actionBtns .actionBtn {
92 display: inline-block;
93}
94#topo-p-detail .actionBtns .actionBtn svg {
95 width: 30px;
96 height: 30px;
97}
98
Simon Hunt8d558082015-10-29 21:32:50 -070099/* --- Topo Dialog Panel --- */
100
101#topo-p-dialog .dialog-button {
102 display: inline-block;
103 cursor: pointer;
104 height: 20px;
105 padding: 2px 6px;
106 margin: 4px;
107 float: right;
108}
109
110.light #topo-p-dialog .dialog-button {
111 background-color: #fec;
112}
113.dark #topo-p-dialog .dialog-button {
114 background-color: #369;
115}
116
Simon Hunt08f841d02015-02-10 14:39:20 -0800117/* --- general topo-panel styling --- */
118
Bri Prebilic Cole8d3de3d2015-05-15 16:02:59 -0700119.topo-p div.header div.icon {
120 vertical-align: middle;
121 display: inline-block;
122}
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700123.topo-p div.body {
124 overflow-y: scroll;
125}
126
Bri Prebilic Cole0a6ffb62015-06-04 09:32:12 -0700127.topo-p div.body::-webkit-scrollbar {
128 display: none;
129}
130
Simon Hunt08f841d02015-02-10 14:39:20 -0800131.topo-p svg {
Simon Hunt626d2102015-01-29 11:54:50 -0800132 display: inline-block;
133 width: 42px;
134 height: 42px;
135}
136
Simon Hunt08f841d02015-02-10 14:39:20 -0800137.light .topo-p svg .glyph {
138 fill: #222;
139}
140
141.dark .topo-p svg .glyph.overlay {
142 fill: #222;
143}
144
145.dark .topo-p svg .glyph {
146 fill: #ddd;
147}
148.light .topo-p svg .glyph.overlay {
149 fill: #fff;
150}
151
152
153.topo-p h2 {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700154 padding: 0 4px;
155 margin: 0;
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700156 word-wrap: break-word;
Bri Prebilic Cole8d3de3d2015-05-15 16:02:59 -0700157 display: inline-block;
158 width: 210px;
159 vertical-align: middle;
Simon Hunt626d2102015-01-29 11:54:50 -0800160}
Simon Hunt08f841d02015-02-10 14:39:20 -0800161.light .topo-p h2 {
Simon Hunt626d2102015-01-29 11:54:50 -0800162 color: black;
163}
Simon Hunt08f841d02015-02-10 14:39:20 -0800164.dark .topo-p h2 {
Simon Hunt626d2102015-01-29 11:54:50 -0800165 color: #ddd;
166}
167
Simon Hunt08f841d02015-02-10 14:39:20 -0800168.topo-p h3 {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700169 padding: 0 4px;
170 margin: 0;
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700171 word-wrap: break-word;
Simon Hunt626d2102015-01-29 11:54:50 -0800172 top: 20px;
173 left: 50px;
174}
Simon Hunt08f841d02015-02-10 14:39:20 -0800175.light .topo-p h3 {
Simon Hunt626d2102015-01-29 11:54:50 -0800176 color: black;
177}
Simon Hunt08f841d02015-02-10 14:39:20 -0800178.dark .topo-p h3 {
Simon Hunt626d2102015-01-29 11:54:50 -0800179 color: #ddd;
180}
181
Simon Hunt08f841d02015-02-10 14:39:20 -0800182.topo-p p, table {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700183 padding: 4px;
184 margin: 0;
Simon Hunt626d2102015-01-29 11:54:50 -0800185}
186
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700187.topo-p td {
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700188 word-wrap: break-word;
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700189}
Simon Hunt08f841d02015-02-10 14:39:20 -0800190.topo-p td.label {
Simon Hunt626d2102015-01-29 11:54:50 -0800191 font-style: italic;
192 padding-right: 12px;
193 /* works for both light and dark themes ... */
194 color: #777;
195}
Simon Hunt08f841d02015-02-10 14:39:20 -0800196.topo-p td.value {
Simon Hunt626d2102015-01-29 11:54:50 -0800197}
198
Simon Hunt08f841d02015-02-10 14:39:20 -0800199.topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800200 height: 1px;
201 border: 0;
202}
Simon Hunt08f841d02015-02-10 14:39:20 -0800203.light .topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800204 background-color: #ccc;
205 color: #ccc;
206}
Simon Hunt08f841d02015-02-10 14:39:20 -0800207.dark .topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800208 background-color: #888;
209 color: #888;
210}
Simon Hunt4b668592015-01-29 17:33:53 -0800211
Simon Hunt4b668592015-01-29 17:33:53 -0800212/* --- Topo Instance Panel --- */
213
214#topo-p-instance {
215 height: 100px;
216}
217
218#topo-p-instance div.onosInst {
219 display: inline-block;
220 width: 170px;
221 height: 85px;
222 cursor: pointer;
223}
224
225#topo-p-instance svg rect {
Simon Hunt4b668592015-01-29 17:33:53 -0800226 stroke-width: 3.5;
227}
228#topo-p-instance .online svg rect {
229 opacity: 1;
Simon Hunta57d6812015-02-02 18:34:04 -0800230}
231.light #topo-p-instance svg rect {
232 fill: #ccc;
233 stroke: #aaa;
234}
235.light #topo-p-instance .online svg rect {
Simon Hunt4b668592015-01-29 17:33:53 -0800236 fill: #9cf;
237 stroke: #555;
238}
Simon Hunta57d6812015-02-02 18:34:04 -0800239.dark #topo-p-instance svg rect {
240 fill: #666;
241 stroke: #222;
242}
243.dark #topo-p-instance .online svg rect {
244 fill: #9cf;
245 stroke: #999;
246}
247
Simon Hunt4b668592015-01-29 17:33:53 -0800248
249#topo-p-instance svg .glyph {
250 fill: #888;
251 fill-rule: evenodd;
252}
253#topo-p-instance .online svg .glyph {
254 fill: #000;
255}
256
257#topo-p-instance svg .badgeIcon {
Simon Hunt4b668592015-01-29 17:33:53 -0800258 fill-rule: evenodd;
Simon Hunta57d6812015-02-02 18:34:04 -0800259 opacity: 0.4;
260}
261.light #topo-p-instance svg .badgeIcon {
262 fill: #777;
263}
264.dark #topo-p-instance svg .badgeIcon {
265 fill: #555;
Simon Hunt4b668592015-01-29 17:33:53 -0800266}
267
268#topo-p-instance .online svg .badgeIcon {
Simon Hunta57d6812015-02-02 18:34:04 -0800269 opacity: 1.0;
270}
271.light #topo-p-instance .online svg .badgeIcon {
272 fill: #fff;
273}
274.dark #topo-p-instance .online svg .badgeIcon {
Simon Hunt4b668592015-01-29 17:33:53 -0800275 fill: #fff;
276}
277
278#topo-p-instance svg text {
279 text-anchor: middle;
Simon Hunta57d6812015-02-02 18:34:04 -0800280 opacity: 0.3;
Simon Hunt4b668592015-01-29 17:33:53 -0800281}
282#topo-p-instance .online svg text {
Simon Hunta57d6812015-02-02 18:34:04 -0800283 opacity: 1.0;
284}
285.light #topo-p-instance svg text {
286 fill: #444;
287}
288.light #topo-p-instance .online svg text {
Simon Hunt4b668592015-01-29 17:33:53 -0800289 fill: #eee;
290}
Simon Hunta57d6812015-02-02 18:34:04 -0800291.dark #topo-p-instance svg text {
292 fill: #aaa;
293}
294.dark #topo-p-instance .online svg text {
295 fill: #ccc;
296}
Simon Hunt4b668592015-01-29 17:33:53 -0800297
298#topo-p-instance svg text.instTitle {
299 font-size: 11pt;
300 font-weight: bold;
301}
302#topo-p-instance svg text.instLabel {
303 font-size: 9pt;
304 font-style: italic;
305}
306
307#topo-p-instance .onosInst.mastership {
308 opacity: 0.3;
309}
310#topo-p-instance .onosInst.mastership.affinity {
311 opacity: 1.0;
312}
Simon Hunt0ee28682015-02-12 20:48:11 -0800313.light #topo-p-instance .onosInst.mastership.affinity svg rect {
314 filter: url(#blue-glow);
315}
316.dark #topo-p-instance .onosInst.mastership.affinity svg rect {
317 filter: url(#yellow-glow);
Simon Hunt4b668592015-01-29 17:33:53 -0800318}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700319.light.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
320 filter: url("data:image/svg+xml;utf8, <svg xmlns = \'http://www.w3.org/2000/svg\'><filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"blue-glow\"><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0 0 0 1 0 \"></feColorMatrix><feGaussianBlur stdDeviation=\"3\" result=\"coloredBlur\"></feGaussianBlur><feMerge><feMergeNode in=\"coloredBlur\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></svg>#blue-glow");
321}
322.dark.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
323 filter: url("data:image/svg+xml;utf8, <svg xmlns = \'http://www.w3.org/2000/svg\'><filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"yellow-glow\"><feColorMatrix type=\"matrix\" values=\"0 0 0 0 1.0 0 0 0 0 1.0 0 0 0 0 0.3 0 0 0 1 0 \"></feColorMatrix><feGaussianBlur stdDeviation=\"3\" result=\"coloredBlur\"></feGaussianBlur><feMerge><feMergeNode in=\"coloredBlur\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></svg>#yellow-glow");
324}
Simon Huntac4c6f72015-02-03 19:50:53 -0800325
Simon Hunt8d22c4b2015-08-06 16:24:43 -0700326
327/* --- Toolbar --- */
328
329#toolbar-topo-tbar .tbar-row.right {
330 width: 100%;
331}
332
333#toolbar-topo-tbar .tbar-row-text {
334 height: 21px;
335 text-align: right;
336 padding: 8px 60px 0 0;
337 font-style: italic;
338}
339
340
Simon Huntac4c6f72015-02-03 19:50:53 -0800341/* --- Topo Nodes --- */
342
Simon Hunta142dd22015-02-12 22:07:51 -0800343#ov-topo svg .suppressed {
Simon Hunt743a8492015-08-25 16:18:19 -0700344 opacity: 0.5 !important;
345}
346
347#ov-topo svg .suppressedmax {
Simon Hunta142dd22015-02-12 22:07:51 -0800348 opacity: 0.2 !important;
349}
350
Simon Huntac4c6f72015-02-03 19:50:53 -0800351#ov-topo svg .node {
352 cursor: pointer;
353}
354
Simon Hunt0ee28682015-02-12 20:48:11 -0800355.light #ov-topo svg .node.selected rect,
356.light #ov-topo svg .node.selected circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800357 fill: #f90;
Simon Hunt0ee28682015-02-12 20:48:11 -0800358 filter: url(#blue-glow);
359}
360.dark #ov-topo svg .node.selected rect,
361.dark #ov-topo svg .node.selected circle {
362 fill: #f90;
363 filter: url(#yellow-glow);
Simon Huntac4c6f72015-02-03 19:50:53 -0800364}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700365.light.firefox #ov-topo svg .node.selected rect,
366.light.firefox #ov-topo svg .node.selected circle {
367 filter: url("data:image/svg+xml;utf8, <svg xmlns = \'http://www.w3.org/2000/svg\'><filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"blue-glow\"><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0 0 0 1 0 \"></feColorMatrix><feGaussianBlur stdDeviation=\"3\" result=\"coloredBlur\"></feGaussianBlur><feMerge><feMergeNode in=\"coloredBlur\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></svg>#blue-glow");
368}
369.dark.firefox #ov-topo svg .node.selected rect,
370.dark.firefox #ov-topo svg .node.selected circle {
371 filter: url("data:image/svg+xml;utf8, <svg xmlns = \'http://www.w3.org/2000/svg\'><filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"yellow-glow\"><feColorMatrix type=\"matrix\" values=\"0 0 0 0 1.0 0 0 0 0 1.0 0 0 0 0 0.3 0 0 0 1 0 \"></feColorMatrix><feGaussianBlur stdDeviation=\"3\" result=\"coloredBlur\"></feGaussianBlur><feMerge><feMergeNode in=\"coloredBlur\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></svg>#yellow-glow");
372}
Simon Huntac4c6f72015-02-03 19:50:53 -0800373
374#ov-topo svg .node text {
375 pointer-events: none;
376}
377
378/* Device Nodes */
379
380#ov-topo svg .node.device {
381}
382
383#ov-topo svg .node.device rect {
384 stroke-width: 1.5;
385}
386
387#ov-topo svg .node.device.fixed rect {
388 stroke-width: 1.5;
Simon Hunt78c10bf2015-02-03 21:18:20 -0800389}
390.light #ov-topo svg .node.device.fixed rect {
391 stroke: #aaa;
392}
393.dark #ov-topo svg .node.device.fixed rect {
Simon Hunt1c367112015-02-05 18:02:46 -0800394 stroke: #999;
Simon Huntac4c6f72015-02-03 19:50:53 -0800395}
396
397/* note: device is offline without the 'online' class */
Simon Hunt1c367112015-02-05 18:02:46 -0800398.light #ov-topo svg .node.device {
Simon Huntac4c6f72015-02-03 19:50:53 -0800399 fill: #777;
400}
Simon Hunt1c367112015-02-05 18:02:46 -0800401.dark #ov-topo svg .node.device {
402 fill: #555;
403}
Simon Huntac4c6f72015-02-03 19:50:53 -0800404
Simon Hunt1c367112015-02-05 18:02:46 -0800405.light #ov-topo svg .node.device rect {
406 stroke: #666;
407}
408.light #ov-topo svg .node.device rect {
409 stroke: #999;
410}
411
412.light #ov-topo svg .node.device.online {
Simon Huntac4c6f72015-02-03 19:50:53 -0800413 fill: #6e7fa3;
414}
Simon Hunt1c367112015-02-05 18:02:46 -0800415.dark #ov-topo svg .node.device.online {
416 fill: #4E5C7F;
417}
Simon Huntac4c6f72015-02-03 19:50:53 -0800418
419/* note: device is offline without the 'online' class */
420#ov-topo svg .node.device text {
421 fill: #bbb;
422 font: 10pt sans-serif;
423}
424
425#ov-topo svg .node.device.online text {
426 fill: white;
427}
428
429#ov-topo svg .node.device .svgIcon rect {
430 fill: #aaa;
431}
432#ov-topo svg .node.device .svgIcon use {
433 fill: #777;
434}
435#ov-topo svg .node.device.selected .svgIcon rect {
436 fill: #f90;
437}
438#ov-topo svg .node.device.online .svgIcon rect {
439 fill: #ccc;
440}
441#ov-topo svg .node.device.online .svgIcon use {
442 fill: #000;
443}
444#ov-topo svg .node.device.online.selected .svgIcon rect {
445 fill: #f90;
446}
447
Simon Hunt004fc2c2015-10-23 11:55:58 -0700448/* Badges */
449/* (... works for both light and dark themes...) */
450#ov-topo svg .node .badge circle {
451 stroke: #aaa;
452}
453
454#ov-topo svg .node .badge.badgeInfo circle {
455 fill: #ccf;
456}
457
458#ov-topo svg .node .badge.badgeWarn circle {
459 fill: #da2;
460}
461
462#ov-topo svg .node .badge.badgeError circle {
463 fill: #e44;
464}
465
466#ov-topo svg .node .badge use {
467 fill: white;
468}
469
470#ov-topo svg .node .badge.badgeInfo use {
471 fill: #448;
472}
473
474#ov-topo svg .node .badge text {
475 fill: white;
476}
477
478#ov-topo svg .node .badge.badgeInfo text {
479 fill: #448;
480}
Simon Huntac4c6f72015-02-03 19:50:53 -0800481
482/* Host Nodes */
483
484#ov-topo svg .node.host {
Simon Huntac4c6f72015-02-03 19:50:53 -0800485}
486
487#ov-topo svg .node.host text {
Simon Huntac4c6f72015-02-03 19:50:53 -0800488 stroke: none;
489 font: 9pt sans-serif;
490}
Simon Hunt1894d792015-02-04 17:09:20 -0800491.light #ov-topo svg .node.host text {
492 fill: #846;
493}
494.dark #ov-topo svg .node.host text {
495 fill: #BB809D;
496}
Simon Huntac4c6f72015-02-03 19:50:53 -0800497
Simon Hunt1894d792015-02-04 17:09:20 -0800498.light svg .node.host circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800499 stroke: #000;
500 fill: #edb;
501}
Simon Hunt1894d792015-02-04 17:09:20 -0800502.dark svg .node.host circle {
503 stroke: #eee;
504 fill: #B2A180;
505}
Simon Huntac4c6f72015-02-03 19:50:53 -0800506
Simon Hunt1894d792015-02-04 17:09:20 -0800507.light svg .node.host .svgIcon {
508 fill: #444;
509}
510.dark svg .node.host .svgIcon {
511 fill: #222;
512}
Simon Huntac4c6f72015-02-03 19:50:53 -0800513
Simon Hunt1894d792015-02-04 17:09:20 -0800514/* --- Topo Links --- */
Simon Huntac4c6f72015-02-03 19:50:53 -0800515
Simon Hunt1894d792015-02-04 17:09:20 -0800516#ov-topo svg .link {
517 opacity: .9;
518}
519
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700520#ov-topo svg .link.selected,
521#ov-topo svg .link.enhanced {
522 stroke-width: 4.5px;
523}
524.light #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800525.light #ov-topo svg .link.enhanced {
526 filter: url(#blue-glow);
527}
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700528.dark #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800529.dark #ov-topo svg .link.enhanced {
530 filter: url(#yellow-glow);
531}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700532.light.firefox #ov-topo svg .link.selected,
533.light.firefox #ov-topo svg .link.enhanced {
534 filter: url("data:image/svg+xml;utf8, <svg xmlns = \'http://www.w3.org/2000/svg\'><filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"blue-glow\"><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7 0 0 0 1 0 \"></feColorMatrix><feGaussianBlur stdDeviation=\"3\" result=\"coloredBlur\"></feGaussianBlur><feMerge><feMergeNode in=\"coloredBlur\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></svg>#blue-glow");
535}
536.dark.firefox #ov-topo svg .link.selected,
537.dark.firefox #ov-topo svg .link.enhanced {
538 filter: url("data:image/svg+xml;utf8, <svg xmlns = \'http://www.w3.org/2000/svg\'><filter x=\"-50%\" y=\"-50%\" width=\"200%\" height=\"200%\" id=\"yellow-glow\"><feColorMatrix type=\"matrix\" values=\"0 0 0 0 1.0 0 0 0 0 1.0 0 0 0 0 0.3 0 0 0 1 0 \"></feColorMatrix><feGaussianBlur stdDeviation=\"3\" result=\"coloredBlur\"></feGaussianBlur><feMerge><feMergeNode in=\"coloredBlur\"></feMergeNode><feMergeNode in=\"SourceGraphic\"></feMergeNode></feMerge></filter></svg>#yellow-glow");
539
540}
Simon Huntd5264122015-02-25 10:17:43 -0800541
Simon Hunt1894d792015-02-04 17:09:20 -0800542#ov-topo svg .link.inactive {
543 opacity: .5;
544 stroke-dasharray: 8 4;
545}
546
547#ov-topo svg .link.secondary {
548 stroke-width: 3px;
549}
550.light #ov-topo svg .link.secondary {
551 stroke: rgba(0,153,51,0.5);
552}
553.dark #ov-topo svg .link.secondary {
554 stroke: rgba(121,231,158,0.5);
555}
556
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700557/* Port traffic color visualization for Kbps, Mbps, and Gbps */
Simon Hunt96641372015-06-02 15:53:25 -0700558
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700559.light #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700560 stroke: rgb(0,153,51);
561 stroke-width: 5.0;
562}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700563.dark #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700564 stroke: rgb(98, 153, 118);
565 stroke-width: 5.0;
566}
567
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700568.light #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700569 stroke: rgb(128,145,27);
570 stroke-width: 6.5;
571}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700572.dark #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700573 stroke: rgb(91, 109, 54);
574 stroke-width: 6.5;
575}
576
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700577.light #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700578 stroke: rgb(255, 137, 3);
579 stroke-width: 8.0;
580}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700581.dark #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700582 stroke: rgb(174, 119, 55);
583 stroke-width: 8.0;
584}
585
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700586.light #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700587 stroke: rgb(183, 30, 21);
588 stroke-width: 8.0;
589}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700590.dark #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700591 stroke: rgb(127, 40, 39);
592 stroke-width: 8.0;
593}
594
595
Bri Prebilic Cole236ef682015-07-28 16:10:18 -0700596#ov-topo svg .link.animated {
597 stroke-dasharray: 8 5;
598 animation: ants 5s infinite linear;
599 /* below line will be added via Javascript based on path */
600 /*animation-direction: reverse;*/
601}
602@keyframes ants {
603 from {
604 stroke-dashoffset: 0;
605 }
606 to {
607 stroke-dashoffset: 400;
608 }
609}
610
Simon Hunt1894d792015-02-04 17:09:20 -0800611#ov-topo svg .link.primary {
612 stroke-width: 4px;
613}
614.light #ov-topo svg .link.primary {
615 stroke: #ffA300;
616}
617.dark #ov-topo svg .link.primary {
618 stroke: #D58E0F;
619}
620
Simon Hunt1894d792015-02-04 17:09:20 -0800621#ov-topo svg .link.secondary.optical {
622 stroke-width: 4px;
623}
624.light #ov-topo svg .link.secondary.optical {
625 stroke: rgba(128,64,255,0.5);
626}
627.dark #ov-topo svg .link.secondary.optical {
628 stroke: rgba(164,139,215,0.5);
629}
630
631#ov-topo svg .link.primary.optical {
632 stroke-width: 6px;
633}
634.light #ov-topo svg .link.primary.optical {
635 stroke: #74f;
636}
637.dark #ov-topo svg .link.primary.optical {
638 stroke: #7352CD;
639}
640
Simon Hunt1a5301e2015-02-25 15:31:25 -0800641/* Link Labels */
642
Simon Hunt1894d792015-02-04 17:09:20 -0800643#ov-topo svg .linkLabel rect {
644 stroke: none;
645}
646.light #ov-topo svg .linkLabel rect {
647 fill: #eee;
648}
649.dark #ov-topo svg .linkLabel rect {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800650 fill: #555;
Simon Hunt1894d792015-02-04 17:09:20 -0800651}
652
653#ov-topo svg .linkLabel text {
654 text-anchor: middle;
655 stroke-width: 0.1;
656 font-size: 9pt;
657}
658.light #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800659 fill: #444;
Simon Hunt1894d792015-02-04 17:09:20 -0800660}
661.dark #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800662 fill: #eee;
Simon Hunt1894d792015-02-04 17:09:20 -0800663}
Simon Hunteb0fa052015-02-17 19:20:28 -0800664
Simon Hunt1a5301e2015-02-25 15:31:25 -0800665/* Port Labels */
666
667#ov-topo svg .portLabel rect {
668 stroke: none;
669}
670.light #ov-topo svg .portLabel rect {
671 fill: #eee;
672}
673.dark #ov-topo svg .portLabel rect {
Simon Hunt969b3c92015-02-25 18:11:31 -0800674 fill: #222;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800675}
676
677#ov-topo svg .portLabel text {
678 text-anchor: middle;
679 stroke-width: 0.1;
Simon Hunt969b3c92015-02-25 18:11:31 -0800680 font-size: 11pt;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800681}
682.light #ov-topo svg .portLabel text {
683 fill: #444;
684}
685.dark #ov-topo svg .portLabel text {
686 fill: #eee;
687}
688
Bri Prebilic Cole80401762015-07-16 11:36:18 -0700689/* Number of Links Labels */
690#ov-topo line.numLinkHash {
691 stroke-width: 3;
692}
693
694#ov-topo text.numLinkText {
695 font-size: 15pt;
696}
697
698#ov-topo text.numLinkText {
699 text-anchor: middle;
700}
701
702.light #ov-topo text.numLinkText {
703 fill: #444;
704}
705.dark #ov-topo text.numLinkText {
706 fill: #eee;
707}
708
Simon Huntabf66d92015-04-15 12:57:31 -0700709/* ------------------------------------------------- */
Simon Hunt2052e5d2015-04-13 17:40:44 -0700710/* Sprite Layer */
711
Simon Huntabf66d92015-04-15 12:57:31 -0700712#ov-topo svg #topo-sprites use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700713 stroke-width: 2;
Simon Huntabf66d92015-04-15 12:57:31 -0700714}
Simon Hunt2052e5d2015-04-13 17:40:44 -0700715#ov-topo svg #topo-sprites text {
716 text-anchor: middle;
Simon Huntb2c4cc82015-04-15 17:16:28 -0700717 font-size: 20pt;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700718 font-style: italic;
719}
720
Simon Huntabf66d92015-04-15 12:57:31 -0700721.light #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt017a7c32015-04-15 19:23:27 -0700722 stroke: #fda;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700723 fill: none;
724}
Simon Huntabf66d92015-04-15 12:57:31 -0700725.dark #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700726 stroke: #541;
727 fill: none;
728}
Simon Huntabf66d92015-04-15 12:57:31 -0700729.light #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700730 fill: #eda;
731}
Simon Huntabf66d92015-04-15 12:57:31 -0700732.dark #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700733 fill: #543;
734}
735
Simon Huntabf66d92015-04-15 12:57:31 -0700736.light #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700737 stroke: #bbd;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700738 fill: none;
739}
Simon Huntabf66d92015-04-15 12:57:31 -0700740.dark #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700741 stroke: #445;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700742 fill: none;
743}
Simon Huntabf66d92015-04-15 12:57:31 -0700744.light #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700745 fill: #cce;
746}
Simon Huntabf66d92015-04-15 12:57:31 -0700747.dark #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700748 fill: #446;
749}
Simon Huntabf66d92015-04-15 12:57:31 -0700750
751.light #ov-topo svg #topo-sprites .gray1 use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700752 stroke: #ccc;
Simon Huntabf66d92015-04-15 12:57:31 -0700753 fill: none;
754}
755.dark #ov-topo svg #topo-sprites .gray1 use {
756 stroke: #333;
757 fill: none;
758}
759.light #ov-topo svg #topo-sprites .gray1 text {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700760 fill: #ddd;
Simon Huntabf66d92015-04-15 12:57:31 -0700761}
762.dark #ov-topo svg #topo-sprites .gray1 text {
763 fill: #444;
764}
765
Simon Hunt7f62f7c2015-05-11 17:38:02 -0700766/* fills */
767.light #ov-topo svg #topo-sprites use.fill-gray2 {
768 fill: #eee;
769}
770.dark #ov-topo svg #topo-sprites use.fill-gray2 {
771 fill: #444;
772}
773
774.light #ov-topo svg #topo-sprites use.fill-blue2 {
775 fill: #bce;
776}
777.dark #ov-topo svg #topo-sprites use.fill-blue2 {
778 fill: #447;
779}
780