blob: 255ddbc76aaccc3605b70d97dc1447726d6a48e1 [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 Hunt08f841d02015-02-10 14:39:20 -080099/* --- general topo-panel styling --- */
100
Bri Prebilic Cole8d3de3d2015-05-15 16:02:59 -0700101.topo-p div.header div.icon {
102 vertical-align: middle;
103 display: inline-block;
104}
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700105.topo-p div.body {
106 overflow-y: scroll;
107}
108
Bri Prebilic Cole0a6ffb62015-06-04 09:32:12 -0700109.topo-p div.body::-webkit-scrollbar {
110 display: none;
111}
112
Simon Hunt08f841d02015-02-10 14:39:20 -0800113.topo-p svg {
Simon Hunt626d2102015-01-29 11:54:50 -0800114 display: inline-block;
115 width: 42px;
116 height: 42px;
117}
118
Simon Hunt08f841d02015-02-10 14:39:20 -0800119.light .topo-p svg .glyph {
120 fill: #222;
121}
122
123.dark .topo-p svg .glyph.overlay {
124 fill: #222;
125}
126
127.dark .topo-p svg .glyph {
128 fill: #ddd;
129}
130.light .topo-p svg .glyph.overlay {
131 fill: #fff;
132}
133
134
135.topo-p h2 {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700136 padding: 0 4px;
137 margin: 0;
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700138 word-wrap: break-word;
Bri Prebilic Cole8d3de3d2015-05-15 16:02:59 -0700139 display: inline-block;
140 width: 210px;
141 vertical-align: middle;
Simon Hunt626d2102015-01-29 11:54:50 -0800142}
Simon Hunt08f841d02015-02-10 14:39:20 -0800143.light .topo-p h2 {
Simon Hunt626d2102015-01-29 11:54:50 -0800144 color: black;
145}
Simon Hunt08f841d02015-02-10 14:39:20 -0800146.dark .topo-p h2 {
Simon Hunt626d2102015-01-29 11:54:50 -0800147 color: #ddd;
148}
149
Simon Hunt08f841d02015-02-10 14:39:20 -0800150.topo-p h3 {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700151 padding: 0 4px;
152 margin: 0;
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700153 word-wrap: break-word;
Simon Hunt626d2102015-01-29 11:54:50 -0800154 top: 20px;
155 left: 50px;
156}
Simon Hunt08f841d02015-02-10 14:39:20 -0800157.light .topo-p h3 {
Simon Hunt626d2102015-01-29 11:54:50 -0800158 color: black;
159}
Simon Hunt08f841d02015-02-10 14:39:20 -0800160.dark .topo-p h3 {
Simon Hunt626d2102015-01-29 11:54:50 -0800161 color: #ddd;
162}
163
Simon Hunt08f841d02015-02-10 14:39:20 -0800164.topo-p p, table {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700165 padding: 4px;
166 margin: 0;
Simon Hunt626d2102015-01-29 11:54:50 -0800167}
168
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700169.topo-p td {
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700170 word-wrap: break-word;
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700171}
Simon Hunt08f841d02015-02-10 14:39:20 -0800172.topo-p td.label {
Simon Hunt626d2102015-01-29 11:54:50 -0800173 font-style: italic;
174 padding-right: 12px;
175 /* works for both light and dark themes ... */
176 color: #777;
177}
Simon Hunt08f841d02015-02-10 14:39:20 -0800178.topo-p td.value {
Simon Hunt626d2102015-01-29 11:54:50 -0800179}
180
Simon Hunt08f841d02015-02-10 14:39:20 -0800181.topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800182 height: 1px;
183 border: 0;
184}
Simon Hunt08f841d02015-02-10 14:39:20 -0800185.light .topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800186 background-color: #ccc;
187 color: #ccc;
188}
Simon Hunt08f841d02015-02-10 14:39:20 -0800189.dark .topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800190 background-color: #888;
191 color: #888;
192}
Simon Hunt4b668592015-01-29 17:33:53 -0800193
Simon Hunt4b668592015-01-29 17:33:53 -0800194/* --- Topo Instance Panel --- */
195
196#topo-p-instance {
197 height: 100px;
198}
199
200#topo-p-instance div.onosInst {
201 display: inline-block;
202 width: 170px;
203 height: 85px;
204 cursor: pointer;
205}
206
207#topo-p-instance svg rect {
Simon Hunt4b668592015-01-29 17:33:53 -0800208 stroke-width: 3.5;
209}
210#topo-p-instance .online svg rect {
211 opacity: 1;
Simon Hunta57d6812015-02-02 18:34:04 -0800212}
213.light #topo-p-instance svg rect {
214 fill: #ccc;
215 stroke: #aaa;
216}
217.light #topo-p-instance .online svg rect {
Simon Hunt4b668592015-01-29 17:33:53 -0800218 fill: #9cf;
219 stroke: #555;
220}
Simon Hunta57d6812015-02-02 18:34:04 -0800221.dark #topo-p-instance svg rect {
222 fill: #666;
223 stroke: #222;
224}
225.dark #topo-p-instance .online svg rect {
226 fill: #9cf;
227 stroke: #999;
228}
229
Simon Hunt4b668592015-01-29 17:33:53 -0800230
231#topo-p-instance svg .glyph {
232 fill: #888;
233 fill-rule: evenodd;
234}
235#topo-p-instance .online svg .glyph {
236 fill: #000;
237}
238
239#topo-p-instance svg .badgeIcon {
Simon Hunt4b668592015-01-29 17:33:53 -0800240 fill-rule: evenodd;
Simon Hunta57d6812015-02-02 18:34:04 -0800241 opacity: 0.4;
242}
243.light #topo-p-instance svg .badgeIcon {
244 fill: #777;
245}
246.dark #topo-p-instance svg .badgeIcon {
247 fill: #555;
Simon Hunt4b668592015-01-29 17:33:53 -0800248}
249
250#topo-p-instance .online svg .badgeIcon {
Simon Hunta57d6812015-02-02 18:34:04 -0800251 opacity: 1.0;
252}
253.light #topo-p-instance .online svg .badgeIcon {
254 fill: #fff;
255}
256.dark #topo-p-instance .online svg .badgeIcon {
Simon Hunt4b668592015-01-29 17:33:53 -0800257 fill: #fff;
258}
259
260#topo-p-instance svg text {
261 text-anchor: middle;
Simon Hunta57d6812015-02-02 18:34:04 -0800262 opacity: 0.3;
Simon Hunt4b668592015-01-29 17:33:53 -0800263}
264#topo-p-instance .online svg text {
Simon Hunta57d6812015-02-02 18:34:04 -0800265 opacity: 1.0;
266}
267.light #topo-p-instance svg text {
268 fill: #444;
269}
270.light #topo-p-instance .online svg text {
Simon Hunt4b668592015-01-29 17:33:53 -0800271 fill: #eee;
272}
Simon Hunta57d6812015-02-02 18:34:04 -0800273.dark #topo-p-instance svg text {
274 fill: #aaa;
275}
276.dark #topo-p-instance .online svg text {
277 fill: #ccc;
278}
Simon Hunt4b668592015-01-29 17:33:53 -0800279
280#topo-p-instance svg text.instTitle {
281 font-size: 11pt;
282 font-weight: bold;
283}
284#topo-p-instance svg text.instLabel {
285 font-size: 9pt;
286 font-style: italic;
287}
288
289#topo-p-instance .onosInst.mastership {
290 opacity: 0.3;
291}
292#topo-p-instance .onosInst.mastership.affinity {
293 opacity: 1.0;
294}
Simon Hunt0ee28682015-02-12 20:48:11 -0800295.light #topo-p-instance .onosInst.mastership.affinity svg rect {
296 filter: url(#blue-glow);
297}
298.dark #topo-p-instance .onosInst.mastership.affinity svg rect {
299 filter: url(#yellow-glow);
Simon Hunt4b668592015-01-29 17:33:53 -0800300}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700301.light.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
302 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");
303}
304.dark.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
305 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");
306}
Simon Huntac4c6f72015-02-03 19:50:53 -0800307
Simon Hunt8d22c4b2015-08-06 16:24:43 -0700308
309/* --- Toolbar --- */
310
311#toolbar-topo-tbar .tbar-row.right {
312 width: 100%;
313}
314
315#toolbar-topo-tbar .tbar-row-text {
316 height: 21px;
317 text-align: right;
318 padding: 8px 60px 0 0;
319 font-style: italic;
320}
321
322
Simon Huntac4c6f72015-02-03 19:50:53 -0800323/* --- Topo Nodes --- */
324
Simon Hunta142dd22015-02-12 22:07:51 -0800325#ov-topo svg .suppressed {
Simon Hunt743a8492015-08-25 16:18:19 -0700326 opacity: 0.5 !important;
327}
328
329#ov-topo svg .suppressedmax {
Simon Hunta142dd22015-02-12 22:07:51 -0800330 opacity: 0.2 !important;
331}
332
Simon Huntac4c6f72015-02-03 19:50:53 -0800333#ov-topo svg .node {
334 cursor: pointer;
335}
336
Simon Hunt0ee28682015-02-12 20:48:11 -0800337.light #ov-topo svg .node.selected rect,
338.light #ov-topo svg .node.selected circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800339 fill: #f90;
Simon Hunt0ee28682015-02-12 20:48:11 -0800340 filter: url(#blue-glow);
341}
342.dark #ov-topo svg .node.selected rect,
343.dark #ov-topo svg .node.selected circle {
344 fill: #f90;
345 filter: url(#yellow-glow);
Simon Huntac4c6f72015-02-03 19:50:53 -0800346}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700347.light.firefox #ov-topo svg .node.selected rect,
348.light.firefox #ov-topo svg .node.selected circle {
349 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");
350}
351.dark.firefox #ov-topo svg .node.selected rect,
352.dark.firefox #ov-topo svg .node.selected circle {
353 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");
354}
Simon Huntac4c6f72015-02-03 19:50:53 -0800355
356#ov-topo svg .node text {
357 pointer-events: none;
358}
359
360/* Device Nodes */
361
362#ov-topo svg .node.device {
363}
364
365#ov-topo svg .node.device rect {
366 stroke-width: 1.5;
367}
368
369#ov-topo svg .node.device.fixed rect {
370 stroke-width: 1.5;
Simon Hunt78c10bf2015-02-03 21:18:20 -0800371}
372.light #ov-topo svg .node.device.fixed rect {
373 stroke: #aaa;
374}
375.dark #ov-topo svg .node.device.fixed rect {
Simon Hunt1c367112015-02-05 18:02:46 -0800376 stroke: #999;
Simon Huntac4c6f72015-02-03 19:50:53 -0800377}
378
379/* note: device is offline without the 'online' class */
Simon Hunt1c367112015-02-05 18:02:46 -0800380.light #ov-topo svg .node.device {
Simon Huntac4c6f72015-02-03 19:50:53 -0800381 fill: #777;
382}
Simon Hunt1c367112015-02-05 18:02:46 -0800383.dark #ov-topo svg .node.device {
384 fill: #555;
385}
Simon Huntac4c6f72015-02-03 19:50:53 -0800386
Simon Hunt1c367112015-02-05 18:02:46 -0800387.light #ov-topo svg .node.device rect {
388 stroke: #666;
389}
390.light #ov-topo svg .node.device rect {
391 stroke: #999;
392}
393
394.light #ov-topo svg .node.device.online {
Simon Huntac4c6f72015-02-03 19:50:53 -0800395 fill: #6e7fa3;
396}
Simon Hunt1c367112015-02-05 18:02:46 -0800397.dark #ov-topo svg .node.device.online {
398 fill: #4E5C7F;
399}
Simon Huntac4c6f72015-02-03 19:50:53 -0800400
401/* note: device is offline without the 'online' class */
402#ov-topo svg .node.device text {
403 fill: #bbb;
404 font: 10pt sans-serif;
405}
406
407#ov-topo svg .node.device.online text {
408 fill: white;
409}
410
411#ov-topo svg .node.device .svgIcon rect {
412 fill: #aaa;
413}
414#ov-topo svg .node.device .svgIcon use {
415 fill: #777;
416}
417#ov-topo svg .node.device.selected .svgIcon rect {
418 fill: #f90;
419}
420#ov-topo svg .node.device.online .svgIcon rect {
421 fill: #ccc;
422}
423#ov-topo svg .node.device.online .svgIcon use {
424 fill: #000;
425}
426#ov-topo svg .node.device.online.selected .svgIcon rect {
427 fill: #f90;
428}
429
Simon Hunt004fc2c2015-10-23 11:55:58 -0700430/* Badges */
431/* (... works for both light and dark themes...) */
432#ov-topo svg .node .badge circle {
433 stroke: #aaa;
434}
435
436#ov-topo svg .node .badge.badgeInfo circle {
437 fill: #ccf;
438}
439
440#ov-topo svg .node .badge.badgeWarn circle {
441 fill: #da2;
442}
443
444#ov-topo svg .node .badge.badgeError circle {
445 fill: #e44;
446}
447
448#ov-topo svg .node .badge use {
449 fill: white;
450}
451
452#ov-topo svg .node .badge.badgeInfo use {
453 fill: #448;
454}
455
456#ov-topo svg .node .badge text {
457 fill: white;
458}
459
460#ov-topo svg .node .badge.badgeInfo text {
461 fill: #448;
462}
Simon Huntac4c6f72015-02-03 19:50:53 -0800463
464/* Host Nodes */
465
466#ov-topo svg .node.host {
Simon Huntac4c6f72015-02-03 19:50:53 -0800467}
468
469#ov-topo svg .node.host text {
Simon Huntac4c6f72015-02-03 19:50:53 -0800470 stroke: none;
471 font: 9pt sans-serif;
472}
Simon Hunt1894d792015-02-04 17:09:20 -0800473.light #ov-topo svg .node.host text {
474 fill: #846;
475}
476.dark #ov-topo svg .node.host text {
477 fill: #BB809D;
478}
Simon Huntac4c6f72015-02-03 19:50:53 -0800479
Simon Hunt1894d792015-02-04 17:09:20 -0800480.light svg .node.host circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800481 stroke: #000;
482 fill: #edb;
483}
Simon Hunt1894d792015-02-04 17:09:20 -0800484.dark svg .node.host circle {
485 stroke: #eee;
486 fill: #B2A180;
487}
Simon Huntac4c6f72015-02-03 19:50:53 -0800488
Simon Hunt1894d792015-02-04 17:09:20 -0800489.light svg .node.host .svgIcon {
490 fill: #444;
491}
492.dark svg .node.host .svgIcon {
493 fill: #222;
494}
Simon Huntac4c6f72015-02-03 19:50:53 -0800495
Simon Hunt1894d792015-02-04 17:09:20 -0800496/* --- Topo Links --- */
Simon Huntac4c6f72015-02-03 19:50:53 -0800497
Simon Hunt1894d792015-02-04 17:09:20 -0800498#ov-topo svg .link {
499 opacity: .9;
500}
501
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700502#ov-topo svg .link.selected,
503#ov-topo svg .link.enhanced {
504 stroke-width: 4.5px;
505}
506.light #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800507.light #ov-topo svg .link.enhanced {
508 filter: url(#blue-glow);
509}
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700510.dark #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800511.dark #ov-topo svg .link.enhanced {
512 filter: url(#yellow-glow);
513}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700514.light.firefox #ov-topo svg .link.selected,
515.light.firefox #ov-topo svg .link.enhanced {
516 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");
517}
518.dark.firefox #ov-topo svg .link.selected,
519.dark.firefox #ov-topo svg .link.enhanced {
520 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");
521
522}
Simon Huntd5264122015-02-25 10:17:43 -0800523
Simon Hunt1894d792015-02-04 17:09:20 -0800524#ov-topo svg .link.inactive {
525 opacity: .5;
526 stroke-dasharray: 8 4;
527}
528
529#ov-topo svg .link.secondary {
530 stroke-width: 3px;
531}
532.light #ov-topo svg .link.secondary {
533 stroke: rgba(0,153,51,0.5);
534}
535.dark #ov-topo svg .link.secondary {
536 stroke: rgba(121,231,158,0.5);
537}
538
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700539/* Port traffic color visualization for Kbps, Mbps, and Gbps */
Simon Hunt96641372015-06-02 15:53:25 -0700540
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700541.light #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700542 stroke: rgb(0,153,51);
543 stroke-width: 5.0;
544}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700545.dark #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700546 stroke: rgb(98, 153, 118);
547 stroke-width: 5.0;
548}
549
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700550.light #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700551 stroke: rgb(128,145,27);
552 stroke-width: 6.5;
553}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700554.dark #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700555 stroke: rgb(91, 109, 54);
556 stroke-width: 6.5;
557}
558
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700559.light #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700560 stroke: rgb(255, 137, 3);
561 stroke-width: 8.0;
562}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700563.dark #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700564 stroke: rgb(174, 119, 55);
565 stroke-width: 8.0;
566}
567
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700568.light #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700569 stroke: rgb(183, 30, 21);
570 stroke-width: 8.0;
571}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700572.dark #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700573 stroke: rgb(127, 40, 39);
574 stroke-width: 8.0;
575}
576
577
Bri Prebilic Cole236ef682015-07-28 16:10:18 -0700578#ov-topo svg .link.animated {
579 stroke-dasharray: 8 5;
580 animation: ants 5s infinite linear;
581 /* below line will be added via Javascript based on path */
582 /*animation-direction: reverse;*/
583}
584@keyframes ants {
585 from {
586 stroke-dashoffset: 0;
587 }
588 to {
589 stroke-dashoffset: 400;
590 }
591}
592
Simon Hunt1894d792015-02-04 17:09:20 -0800593#ov-topo svg .link.primary {
594 stroke-width: 4px;
595}
596.light #ov-topo svg .link.primary {
597 stroke: #ffA300;
598}
599.dark #ov-topo svg .link.primary {
600 stroke: #D58E0F;
601}
602
Simon Hunt1894d792015-02-04 17:09:20 -0800603#ov-topo svg .link.secondary.optical {
604 stroke-width: 4px;
605}
606.light #ov-topo svg .link.secondary.optical {
607 stroke: rgba(128,64,255,0.5);
608}
609.dark #ov-topo svg .link.secondary.optical {
610 stroke: rgba(164,139,215,0.5);
611}
612
613#ov-topo svg .link.primary.optical {
614 stroke-width: 6px;
615}
616.light #ov-topo svg .link.primary.optical {
617 stroke: #74f;
618}
619.dark #ov-topo svg .link.primary.optical {
620 stroke: #7352CD;
621}
622
Simon Hunt1a5301e2015-02-25 15:31:25 -0800623/* Link Labels */
624
Simon Hunt1894d792015-02-04 17:09:20 -0800625#ov-topo svg .linkLabel rect {
626 stroke: none;
627}
628.light #ov-topo svg .linkLabel rect {
629 fill: #eee;
630}
631.dark #ov-topo svg .linkLabel rect {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800632 fill: #555;
Simon Hunt1894d792015-02-04 17:09:20 -0800633}
634
635#ov-topo svg .linkLabel text {
636 text-anchor: middle;
637 stroke-width: 0.1;
638 font-size: 9pt;
639}
640.light #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800641 fill: #444;
Simon Hunt1894d792015-02-04 17:09:20 -0800642}
643.dark #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800644 fill: #eee;
Simon Hunt1894d792015-02-04 17:09:20 -0800645}
Simon Hunteb0fa052015-02-17 19:20:28 -0800646
Simon Hunt1a5301e2015-02-25 15:31:25 -0800647/* Port Labels */
648
649#ov-topo svg .portLabel rect {
650 stroke: none;
651}
652.light #ov-topo svg .portLabel rect {
653 fill: #eee;
654}
655.dark #ov-topo svg .portLabel rect {
Simon Hunt969b3c92015-02-25 18:11:31 -0800656 fill: #222;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800657}
658
659#ov-topo svg .portLabel text {
660 text-anchor: middle;
661 stroke-width: 0.1;
Simon Hunt969b3c92015-02-25 18:11:31 -0800662 font-size: 11pt;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800663}
664.light #ov-topo svg .portLabel text {
665 fill: #444;
666}
667.dark #ov-topo svg .portLabel text {
668 fill: #eee;
669}
670
Bri Prebilic Cole80401762015-07-16 11:36:18 -0700671/* Number of Links Labels */
672#ov-topo line.numLinkHash {
673 stroke-width: 3;
674}
675
676#ov-topo text.numLinkText {
677 font-size: 15pt;
678}
679
680#ov-topo text.numLinkText {
681 text-anchor: middle;
682}
683
684.light #ov-topo text.numLinkText {
685 fill: #444;
686}
687.dark #ov-topo text.numLinkText {
688 fill: #eee;
689}
690
Simon Huntabf66d92015-04-15 12:57:31 -0700691/* ------------------------------------------------- */
Simon Hunt2052e5d2015-04-13 17:40:44 -0700692/* Sprite Layer */
693
Simon Huntabf66d92015-04-15 12:57:31 -0700694#ov-topo svg #topo-sprites use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700695 stroke-width: 2;
Simon Huntabf66d92015-04-15 12:57:31 -0700696}
Simon Hunt2052e5d2015-04-13 17:40:44 -0700697#ov-topo svg #topo-sprites text {
698 text-anchor: middle;
Simon Huntb2c4cc82015-04-15 17:16:28 -0700699 font-size: 20pt;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700700 font-style: italic;
701}
702
Simon Huntabf66d92015-04-15 12:57:31 -0700703.light #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt017a7c32015-04-15 19:23:27 -0700704 stroke: #fda;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700705 fill: none;
706}
Simon Huntabf66d92015-04-15 12:57:31 -0700707.dark #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700708 stroke: #541;
709 fill: none;
710}
Simon Huntabf66d92015-04-15 12:57:31 -0700711.light #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700712 fill: #eda;
713}
Simon Huntabf66d92015-04-15 12:57:31 -0700714.dark #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700715 fill: #543;
716}
717
Simon Huntabf66d92015-04-15 12:57:31 -0700718.light #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700719 stroke: #bbd;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700720 fill: none;
721}
Simon Huntabf66d92015-04-15 12:57:31 -0700722.dark #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700723 stroke: #445;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700724 fill: none;
725}
Simon Huntabf66d92015-04-15 12:57:31 -0700726.light #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700727 fill: #cce;
728}
Simon Huntabf66d92015-04-15 12:57:31 -0700729.dark #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700730 fill: #446;
731}
Simon Huntabf66d92015-04-15 12:57:31 -0700732
733.light #ov-topo svg #topo-sprites .gray1 use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700734 stroke: #ccc;
Simon Huntabf66d92015-04-15 12:57:31 -0700735 fill: none;
736}
737.dark #ov-topo svg #topo-sprites .gray1 use {
738 stroke: #333;
739 fill: none;
740}
741.light #ov-topo svg #topo-sprites .gray1 text {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700742 fill: #ddd;
Simon Huntabf66d92015-04-15 12:57:31 -0700743}
744.dark #ov-topo svg #topo-sprites .gray1 text {
745 fill: #444;
746}
747
Simon Hunt7f62f7c2015-05-11 17:38:02 -0700748/* fills */
749.light #ov-topo svg #topo-sprites use.fill-gray2 {
750 fill: #eee;
751}
752.dark #ov-topo svg #topo-sprites use.fill-gray2 {
753 fill: #444;
754}
755
756.light #ov-topo svg #topo-sprites use.fill-blue2 {
757 fill: #bce;
758}
759.dark #ov-topo svg #topo-sprites use.fill-blue2 {
760 fill: #447;
761}
762