blob: c2b81f3faf68ceab6b7adc5de1fe6507803a5f34 [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 */
Thomas Vachuskae50b6212015-12-02 08:00:09 -080085 top: 338px;
Simon Hunt08f841d02015-02-10 14:39:20 -080086}
Bri Prebilic Coled8745462015-06-01 16:08:57 -070087html[data-platform='iPad'] #topo-p-detail {
Thomas Vachuskae50b6212015-12-02 08:00:09 -080088 top: 354px;
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
Simon Hunt08f841d02015-02-10 14:39:20 -0800100/* --- general topo-panel styling --- */
101
Bri Prebilic Cole8d3de3d2015-05-15 16:02:59 -0700102.topo-p div.header div.icon {
103 vertical-align: middle;
104 display: inline-block;
105}
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700106.topo-p div.body {
107 overflow-y: scroll;
108}
109
Bri Prebilic Cole0a6ffb62015-06-04 09:32:12 -0700110.topo-p div.body::-webkit-scrollbar {
111 display: none;
112}
113
Simon Hunt08f841d02015-02-10 14:39:20 -0800114.topo-p svg {
Simon Hunt626d2102015-01-29 11:54:50 -0800115 display: inline-block;
116 width: 42px;
117 height: 42px;
118}
119
Simon Hunt08f841d02015-02-10 14:39:20 -0800120.light .topo-p svg .glyph {
121 fill: #222;
122}
123
124.dark .topo-p svg .glyph.overlay {
125 fill: #222;
126}
127
128.dark .topo-p svg .glyph {
129 fill: #ddd;
130}
131.light .topo-p svg .glyph.overlay {
132 fill: #fff;
133}
134
135
136.topo-p h2 {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700137 padding: 0 4px;
138 margin: 0;
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700139 word-wrap: break-word;
Bri Prebilic Cole8d3de3d2015-05-15 16:02:59 -0700140 display: inline-block;
141 width: 210px;
142 vertical-align: middle;
Simon Hunt626d2102015-01-29 11:54:50 -0800143}
Simon Hunt08f841d02015-02-10 14:39:20 -0800144.light .topo-p h2 {
Simon Hunt626d2102015-01-29 11:54:50 -0800145 color: black;
146}
Simon Hunt08f841d02015-02-10 14:39:20 -0800147.dark .topo-p h2 {
Simon Hunt626d2102015-01-29 11:54:50 -0800148 color: #ddd;
149}
150
Simon Hunt08f841d02015-02-10 14:39:20 -0800151.topo-p h3 {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700152 padding: 0 4px;
153 margin: 0;
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700154 word-wrap: break-word;
Simon Hunt626d2102015-01-29 11:54:50 -0800155 top: 20px;
156 left: 50px;
157}
Simon Hunt08f841d02015-02-10 14:39:20 -0800158.light .topo-p h3 {
Simon Hunt626d2102015-01-29 11:54:50 -0800159 color: black;
160}
Simon Hunt08f841d02015-02-10 14:39:20 -0800161.dark .topo-p h3 {
Simon Hunt626d2102015-01-29 11:54:50 -0800162 color: #ddd;
163}
164
Simon Hunt08f841d02015-02-10 14:39:20 -0800165.topo-p p, table {
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700166 padding: 4px;
167 margin: 0;
Simon Hunt626d2102015-01-29 11:54:50 -0800168}
169
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700170.topo-p td {
Bri Prebilic Coleb3a6afe2015-06-24 14:10:41 -0700171 word-wrap: break-word;
Bri Prebilic Cole684bcb72015-05-11 12:00:24 -0700172}
Simon Hunt08f841d02015-02-10 14:39:20 -0800173.topo-p td.label {
Simon Hunt626d2102015-01-29 11:54:50 -0800174 font-style: italic;
175 padding-right: 12px;
176 /* works for both light and dark themes ... */
177 color: #777;
178}
Simon Hunt08f841d02015-02-10 14:39:20 -0800179.topo-p td.value {
Simon Hunt626d2102015-01-29 11:54:50 -0800180}
181
Simon Hunt08f841d02015-02-10 14:39:20 -0800182.topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800183 height: 1px;
184 border: 0;
185}
Simon Hunt08f841d02015-02-10 14:39:20 -0800186.light .topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800187 background-color: #ccc;
188 color: #ccc;
189}
Simon Hunt08f841d02015-02-10 14:39:20 -0800190.dark .topo-p hr {
Simon Hunt626d2102015-01-29 11:54:50 -0800191 background-color: #888;
192 color: #888;
193}
Simon Hunt4b668592015-01-29 17:33:53 -0800194
Simon Hunt4b668592015-01-29 17:33:53 -0800195/* --- Topo Instance Panel --- */
196
197#topo-p-instance {
198 height: 100px;
199}
200
201#topo-p-instance div.onosInst {
202 display: inline-block;
203 width: 170px;
204 height: 85px;
205 cursor: pointer;
206}
207
208#topo-p-instance svg rect {
Simon Hunt4b668592015-01-29 17:33:53 -0800209 stroke-width: 3.5;
210}
211#topo-p-instance .online svg rect {
212 opacity: 1;
Simon Hunta57d6812015-02-02 18:34:04 -0800213}
214.light #topo-p-instance svg rect {
215 fill: #ccc;
216 stroke: #aaa;
217}
218.light #topo-p-instance .online svg rect {
Simon Hunt4b668592015-01-29 17:33:53 -0800219 fill: #9cf;
220 stroke: #555;
221}
Simon Hunta57d6812015-02-02 18:34:04 -0800222.dark #topo-p-instance svg rect {
223 fill: #666;
224 stroke: #222;
225}
226.dark #topo-p-instance .online svg rect {
227 fill: #9cf;
228 stroke: #999;
229}
230
Simon Hunt4b668592015-01-29 17:33:53 -0800231
232#topo-p-instance svg .glyph {
233 fill: #888;
234 fill-rule: evenodd;
235}
236#topo-p-instance .online svg .glyph {
237 fill: #000;
238}
239
240#topo-p-instance svg .badgeIcon {
Simon Hunt4b668592015-01-29 17:33:53 -0800241 fill-rule: evenodd;
Simon Hunta57d6812015-02-02 18:34:04 -0800242 opacity: 0.4;
243}
244.light #topo-p-instance svg .badgeIcon {
245 fill: #777;
246}
247.dark #topo-p-instance svg .badgeIcon {
248 fill: #555;
Simon Hunt4b668592015-01-29 17:33:53 -0800249}
250
251#topo-p-instance .online svg .badgeIcon {
Simon Hunta57d6812015-02-02 18:34:04 -0800252 opacity: 1.0;
253}
254.light #topo-p-instance .online svg .badgeIcon {
255 fill: #fff;
256}
257.dark #topo-p-instance .online svg .badgeIcon {
Simon Hunt4b668592015-01-29 17:33:53 -0800258 fill: #fff;
259}
260
261#topo-p-instance svg text {
262 text-anchor: middle;
Simon Hunta57d6812015-02-02 18:34:04 -0800263 opacity: 0.3;
Simon Hunt4b668592015-01-29 17:33:53 -0800264}
265#topo-p-instance .online svg text {
Simon Hunta57d6812015-02-02 18:34:04 -0800266 opacity: 1.0;
267}
268.light #topo-p-instance svg text {
269 fill: #444;
270}
271.light #topo-p-instance .online svg text {
Simon Hunt4b668592015-01-29 17:33:53 -0800272 fill: #eee;
273}
Simon Hunta57d6812015-02-02 18:34:04 -0800274.dark #topo-p-instance svg text {
275 fill: #aaa;
276}
277.dark #topo-p-instance .online svg text {
278 fill: #ccc;
279}
Simon Hunt4b668592015-01-29 17:33:53 -0800280
281#topo-p-instance svg text.instTitle {
282 font-size: 11pt;
283 font-weight: bold;
284}
285#topo-p-instance svg text.instLabel {
286 font-size: 9pt;
287 font-style: italic;
288}
289
290#topo-p-instance .onosInst.mastership {
291 opacity: 0.3;
292}
293#topo-p-instance .onosInst.mastership.affinity {
294 opacity: 1.0;
295}
Simon Hunt0ee28682015-02-12 20:48:11 -0800296.light #topo-p-instance .onosInst.mastership.affinity svg rect {
297 filter: url(#blue-glow);
298}
299.dark #topo-p-instance .onosInst.mastership.affinity svg rect {
300 filter: url(#yellow-glow);
Simon Hunt4b668592015-01-29 17:33:53 -0800301}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700302.light.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
303 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");
304}
305.dark.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
306 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");
307}
Simon Huntac4c6f72015-02-03 19:50:53 -0800308
Simon Hunt8d22c4b2015-08-06 16:24:43 -0700309
310/* --- Toolbar --- */
311
312#toolbar-topo-tbar .tbar-row.right {
313 width: 100%;
314}
315
316#toolbar-topo-tbar .tbar-row-text {
317 height: 21px;
318 text-align: right;
319 padding: 8px 60px 0 0;
320 font-style: italic;
321}
322
323
Simon Huntac4c6f72015-02-03 19:50:53 -0800324/* --- Topo Nodes --- */
325
Simon Hunta142dd22015-02-12 22:07:51 -0800326#ov-topo svg .suppressed {
Simon Hunt743a8492015-08-25 16:18:19 -0700327 opacity: 0.5 !important;
328}
329
330#ov-topo svg .suppressedmax {
Simon Hunta142dd22015-02-12 22:07:51 -0800331 opacity: 0.2 !important;
332}
333
Simon Huntac4c6f72015-02-03 19:50:53 -0800334#ov-topo svg .node {
335 cursor: pointer;
336}
337
Simon Hunt0ee28682015-02-12 20:48:11 -0800338.light #ov-topo svg .node.selected rect,
339.light #ov-topo svg .node.selected circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800340 fill: #f90;
Simon Hunt0ee28682015-02-12 20:48:11 -0800341 filter: url(#blue-glow);
342}
343.dark #ov-topo svg .node.selected rect,
344.dark #ov-topo svg .node.selected circle {
345 fill: #f90;
346 filter: url(#yellow-glow);
Simon Huntac4c6f72015-02-03 19:50:53 -0800347}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700348.light.firefox #ov-topo svg .node.selected rect,
349.light.firefox #ov-topo svg .node.selected circle {
350 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");
351}
352.dark.firefox #ov-topo svg .node.selected rect,
353.dark.firefox #ov-topo svg .node.selected circle {
354 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");
355}
Simon Huntac4c6f72015-02-03 19:50:53 -0800356
357#ov-topo svg .node text {
358 pointer-events: none;
359}
360
361/* Device Nodes */
362
363#ov-topo svg .node.device {
364}
365
366#ov-topo svg .node.device rect {
367 stroke-width: 1.5;
368}
369
370#ov-topo svg .node.device.fixed rect {
371 stroke-width: 1.5;
Simon Hunt78c10bf2015-02-03 21:18:20 -0800372}
373.light #ov-topo svg .node.device.fixed rect {
374 stroke: #aaa;
375}
376.dark #ov-topo svg .node.device.fixed rect {
Simon Hunt1c367112015-02-05 18:02:46 -0800377 stroke: #999;
Simon Huntac4c6f72015-02-03 19:50:53 -0800378}
379
380/* note: device is offline without the 'online' class */
Simon Hunt1c367112015-02-05 18:02:46 -0800381.light #ov-topo svg .node.device {
Simon Huntac4c6f72015-02-03 19:50:53 -0800382 fill: #777;
383}
Simon Hunt1c367112015-02-05 18:02:46 -0800384.dark #ov-topo svg .node.device {
385 fill: #555;
386}
Simon Huntac4c6f72015-02-03 19:50:53 -0800387
Simon Hunt1c367112015-02-05 18:02:46 -0800388.light #ov-topo svg .node.device rect {
389 stroke: #666;
390}
391.light #ov-topo svg .node.device rect {
392 stroke: #999;
393}
394
395.light #ov-topo svg .node.device.online {
Simon Huntac4c6f72015-02-03 19:50:53 -0800396 fill: #6e7fa3;
397}
Simon Hunt1c367112015-02-05 18:02:46 -0800398.dark #ov-topo svg .node.device.online {
399 fill: #4E5C7F;
400}
Simon Huntac4c6f72015-02-03 19:50:53 -0800401
402/* note: device is offline without the 'online' class */
403#ov-topo svg .node.device text {
404 fill: #bbb;
405 font: 10pt sans-serif;
406}
407
408#ov-topo svg .node.device.online text {
409 fill: white;
410}
411
412#ov-topo svg .node.device .svgIcon rect {
413 fill: #aaa;
414}
415#ov-topo svg .node.device .svgIcon use {
416 fill: #777;
417}
418#ov-topo svg .node.device.selected .svgIcon rect {
419 fill: #f90;
420}
421#ov-topo svg .node.device.online .svgIcon rect {
422 fill: #ccc;
423}
424#ov-topo svg .node.device.online .svgIcon use {
425 fill: #000;
426}
427#ov-topo svg .node.device.online.selected .svgIcon rect {
428 fill: #f90;
429}
430
Simon Hunt004fc2c2015-10-23 11:55:58 -0700431/* Badges */
432/* (... works for both light and dark themes...) */
433#ov-topo svg .node .badge circle {
434 stroke: #aaa;
435}
436
437#ov-topo svg .node .badge.badgeInfo circle {
Simon Huntc2bfe332015-12-04 11:01:24 -0800438 fill: #99d;
Simon Hunt004fc2c2015-10-23 11:55:58 -0700439}
440
441#ov-topo svg .node .badge.badgeWarn circle {
442 fill: #da2;
443}
444
445#ov-topo svg .node .badge.badgeError circle {
446 fill: #e44;
447}
448
449#ov-topo svg .node .badge use {
Simon Huntc2bfe332015-12-04 11:01:24 -0800450 fill: white !important;
Simon Hunt004fc2c2015-10-23 11:55:58 -0700451}
452
453#ov-topo svg .node .badge.badgeInfo use {
454 fill: #448;
455}
456
457#ov-topo svg .node .badge text {
Simon Huntc2bfe332015-12-04 11:01:24 -0800458 fill: white !important;
Simon Hunt004fc2c2015-10-23 11:55:58 -0700459}
460
461#ov-topo svg .node .badge.badgeInfo text {
462 fill: #448;
463}
Simon Huntac4c6f72015-02-03 19:50:53 -0800464
465/* Host Nodes */
466
467#ov-topo svg .node.host {
Simon Huntac4c6f72015-02-03 19:50:53 -0800468}
469
470#ov-topo svg .node.host text {
Simon Huntac4c6f72015-02-03 19:50:53 -0800471 stroke: none;
472 font: 9pt sans-serif;
473}
Simon Hunt1894d792015-02-04 17:09:20 -0800474.light #ov-topo svg .node.host text {
475 fill: #846;
476}
477.dark #ov-topo svg .node.host text {
478 fill: #BB809D;
479}
Simon Huntac4c6f72015-02-03 19:50:53 -0800480
Simon Hunt1894d792015-02-04 17:09:20 -0800481.light svg .node.host circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800482 stroke: #000;
483 fill: #edb;
484}
Simon Hunt1894d792015-02-04 17:09:20 -0800485.dark svg .node.host circle {
486 stroke: #eee;
487 fill: #B2A180;
488}
Simon Huntac4c6f72015-02-03 19:50:53 -0800489
Simon Hunt1894d792015-02-04 17:09:20 -0800490.light svg .node.host .svgIcon {
491 fill: #444;
492}
493.dark svg .node.host .svgIcon {
494 fill: #222;
495}
Simon Huntac4c6f72015-02-03 19:50:53 -0800496
Simon Hunt1894d792015-02-04 17:09:20 -0800497/* --- Topo Links --- */
Simon Huntac4c6f72015-02-03 19:50:53 -0800498
Simon Hunt1894d792015-02-04 17:09:20 -0800499#ov-topo svg .link {
500 opacity: .9;
501}
502
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700503#ov-topo svg .link.selected,
504#ov-topo svg .link.enhanced {
505 stroke-width: 4.5px;
506}
507.light #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800508.light #ov-topo svg .link.enhanced {
509 filter: url(#blue-glow);
510}
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700511.dark #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800512.dark #ov-topo svg .link.enhanced {
513 filter: url(#yellow-glow);
514}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700515.light.firefox #ov-topo svg .link.selected,
516.light.firefox #ov-topo svg .link.enhanced {
517 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");
518}
519.dark.firefox #ov-topo svg .link.selected,
520.dark.firefox #ov-topo svg .link.enhanced {
521 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");
522
523}
Simon Huntd5264122015-02-25 10:17:43 -0800524
Simon Hunt1894d792015-02-04 17:09:20 -0800525#ov-topo svg .link.inactive {
526 opacity: .5;
527 stroke-dasharray: 8 4;
528}
Ray Milkeyb7f0f642016-01-22 16:08:14 -0800529/* FIXME: Review for not-permitted links */
530#ov-topo svg .link.not-permitted {
531 stroke: rgb(255,0,0);
532 stroke-width: 5.0;
533 stroke-dasharray: 8 4;
534}
Simon Hunt1894d792015-02-04 17:09:20 -0800535
536#ov-topo svg .link.secondary {
537 stroke-width: 3px;
538}
539.light #ov-topo svg .link.secondary {
540 stroke: rgba(0,153,51,0.5);
541}
542.dark #ov-topo svg .link.secondary {
543 stroke: rgba(121,231,158,0.5);
544}
545
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700546/* Port traffic color visualization for Kbps, Mbps, and Gbps */
Simon Hunt96641372015-06-02 15:53:25 -0700547
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700548.light #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700549 stroke: rgb(0,153,51);
550 stroke-width: 5.0;
551}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700552.dark #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700553 stroke: rgb(98, 153, 118);
554 stroke-width: 5.0;
555}
556
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700557.light #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700558 stroke: rgb(128,145,27);
559 stroke-width: 6.5;
560}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700561.dark #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700562 stroke: rgb(91, 109, 54);
563 stroke-width: 6.5;
564}
565
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700566.light #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700567 stroke: rgb(255, 137, 3);
568 stroke-width: 8.0;
569}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700570.dark #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700571 stroke: rgb(174, 119, 55);
572 stroke-width: 8.0;
573}
574
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700575.light #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700576 stroke: rgb(183, 30, 21);
577 stroke-width: 8.0;
578}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700579.dark #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700580 stroke: rgb(127, 40, 39);
581 stroke-width: 8.0;
582}
583
584
Bri Prebilic Cole236ef682015-07-28 16:10:18 -0700585#ov-topo svg .link.animated {
586 stroke-dasharray: 8 5;
587 animation: ants 5s infinite linear;
588 /* below line will be added via Javascript based on path */
589 /*animation-direction: reverse;*/
590}
591@keyframes ants {
592 from {
593 stroke-dashoffset: 0;
594 }
595 to {
596 stroke-dashoffset: 400;
597 }
598}
599
Simon Hunt1894d792015-02-04 17:09:20 -0800600#ov-topo svg .link.primary {
601 stroke-width: 4px;
602}
603.light #ov-topo svg .link.primary {
604 stroke: #ffA300;
605}
606.dark #ov-topo svg .link.primary {
607 stroke: #D58E0F;
608}
609
Simon Hunt1894d792015-02-04 17:09:20 -0800610#ov-topo svg .link.secondary.optical {
611 stroke-width: 4px;
612}
613.light #ov-topo svg .link.secondary.optical {
614 stroke: rgba(128,64,255,0.5);
615}
616.dark #ov-topo svg .link.secondary.optical {
617 stroke: rgba(164,139,215,0.5);
618}
619
620#ov-topo svg .link.primary.optical {
621 stroke-width: 6px;
622}
623.light #ov-topo svg .link.primary.optical {
624 stroke: #74f;
625}
626.dark #ov-topo svg .link.primary.optical {
627 stroke: #7352CD;
628}
629
Simon Hunt1a5301e2015-02-25 15:31:25 -0800630/* Link Labels */
631
Simon Hunt1894d792015-02-04 17:09:20 -0800632#ov-topo svg .linkLabel rect {
633 stroke: none;
634}
635.light #ov-topo svg .linkLabel rect {
636 fill: #eee;
637}
638.dark #ov-topo svg .linkLabel rect {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800639 fill: #555;
Simon Hunt1894d792015-02-04 17:09:20 -0800640}
641
642#ov-topo svg .linkLabel text {
643 text-anchor: middle;
644 stroke-width: 0.1;
645 font-size: 9pt;
646}
647.light #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800648 fill: #444;
Simon Hunt1894d792015-02-04 17:09:20 -0800649}
650.dark #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800651 fill: #eee;
Simon Hunt1894d792015-02-04 17:09:20 -0800652}
Simon Hunteb0fa052015-02-17 19:20:28 -0800653
Simon Hunt1a5301e2015-02-25 15:31:25 -0800654/* Port Labels */
655
656#ov-topo svg .portLabel rect {
657 stroke: none;
658}
659.light #ov-topo svg .portLabel rect {
660 fill: #eee;
661}
662.dark #ov-topo svg .portLabel rect {
Simon Hunt969b3c92015-02-25 18:11:31 -0800663 fill: #222;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800664}
665
666#ov-topo svg .portLabel text {
667 text-anchor: middle;
668 stroke-width: 0.1;
Simon Hunt969b3c92015-02-25 18:11:31 -0800669 font-size: 11pt;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800670}
671.light #ov-topo svg .portLabel text {
672 fill: #444;
673}
674.dark #ov-topo svg .portLabel text {
675 fill: #eee;
676}
677
Bri Prebilic Cole80401762015-07-16 11:36:18 -0700678/* Number of Links Labels */
679#ov-topo line.numLinkHash {
680 stroke-width: 3;
681}
682
683#ov-topo text.numLinkText {
684 font-size: 15pt;
685}
686
687#ov-topo text.numLinkText {
688 text-anchor: middle;
689}
690
691.light #ov-topo text.numLinkText {
692 fill: #444;
693}
694.dark #ov-topo text.numLinkText {
695 fill: #eee;
696}
697
Simon Huntabf66d92015-04-15 12:57:31 -0700698/* ------------------------------------------------- */
Simon Hunt2052e5d2015-04-13 17:40:44 -0700699/* Sprite Layer */
700
Simon Huntabf66d92015-04-15 12:57:31 -0700701#ov-topo svg #topo-sprites use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700702 stroke-width: 2;
Simon Huntabf66d92015-04-15 12:57:31 -0700703}
Simon Hunt2052e5d2015-04-13 17:40:44 -0700704#ov-topo svg #topo-sprites text {
705 text-anchor: middle;
Simon Huntb2c4cc82015-04-15 17:16:28 -0700706 font-size: 20pt;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700707 font-style: italic;
708}
709
Simon Huntabf66d92015-04-15 12:57:31 -0700710.light #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt017a7c32015-04-15 19:23:27 -0700711 stroke: #fda;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700712 fill: none;
713}
Simon Huntabf66d92015-04-15 12:57:31 -0700714.dark #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700715 stroke: #541;
716 fill: none;
717}
Simon Huntabf66d92015-04-15 12:57:31 -0700718.light #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700719 fill: #eda;
720}
Simon Huntabf66d92015-04-15 12:57:31 -0700721.dark #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700722 fill: #543;
723}
724
Simon Huntabf66d92015-04-15 12:57:31 -0700725.light #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700726 stroke: #bbd;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700727 fill: none;
728}
Simon Huntabf66d92015-04-15 12:57:31 -0700729.dark #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700730 stroke: #445;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700731 fill: none;
732}
Simon Huntabf66d92015-04-15 12:57:31 -0700733.light #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700734 fill: #cce;
735}
Simon Huntabf66d92015-04-15 12:57:31 -0700736.dark #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700737 fill: #446;
738}
Simon Huntabf66d92015-04-15 12:57:31 -0700739
740.light #ov-topo svg #topo-sprites .gray1 use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700741 stroke: #ccc;
Simon Huntabf66d92015-04-15 12:57:31 -0700742 fill: none;
743}
744.dark #ov-topo svg #topo-sprites .gray1 use {
745 stroke: #333;
746 fill: none;
747}
748.light #ov-topo svg #topo-sprites .gray1 text {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700749 fill: #ddd;
Simon Huntabf66d92015-04-15 12:57:31 -0700750}
751.dark #ov-topo svg #topo-sprites .gray1 text {
752 fill: #444;
753}
754
Simon Hunt7f62f7c2015-05-11 17:38:02 -0700755/* fills */
756.light #ov-topo svg #topo-sprites use.fill-gray2 {
757 fill: #eee;
758}
759.dark #ov-topo svg #topo-sprites use.fill-gray2 {
760 fill: #444;
761}
762
763.light #ov-topo svg #topo-sprites use.fill-blue2 {
764 fill: #bce;
765}
766.dark #ov-topo svg #topo-sprites use.fill-blue2 {
767 fill: #447;
768}
769
Thomas Vachuskafba7f3d2016-03-23 15:46:25 -0700770.notReady .readyBadge {
771 visibility: hidden;
772}
773
Thomas Vachuska26be4f32016-03-31 01:10:27 -0700774.map-list {
775 padding: 10px;
776}
777
778.map-list select {
779 font-size: 20px;
780}
781