blob: f26f478e2e8104169025d21060031e07004f321e [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 {
326 opacity: 0.2 !important;
327}
328
Simon Huntac4c6f72015-02-03 19:50:53 -0800329#ov-topo svg .node {
330 cursor: pointer;
331}
332
Simon Hunt0ee28682015-02-12 20:48:11 -0800333.light #ov-topo svg .node.selected rect,
334.light #ov-topo svg .node.selected circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800335 fill: #f90;
Simon Hunt0ee28682015-02-12 20:48:11 -0800336 filter: url(#blue-glow);
337}
338.dark #ov-topo svg .node.selected rect,
339.dark #ov-topo svg .node.selected circle {
340 fill: #f90;
341 filter: url(#yellow-glow);
Simon Huntac4c6f72015-02-03 19:50:53 -0800342}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700343.light.firefox #ov-topo svg .node.selected rect,
344.light.firefox #ov-topo svg .node.selected circle {
345 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");
346}
347.dark.firefox #ov-topo svg .node.selected rect,
348.dark.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=\"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");
350}
Simon Huntac4c6f72015-02-03 19:50:53 -0800351
352#ov-topo svg .node text {
353 pointer-events: none;
354}
355
356/* Device Nodes */
357
358#ov-topo svg .node.device {
359}
360
361#ov-topo svg .node.device rect {
362 stroke-width: 1.5;
363}
364
365#ov-topo svg .node.device.fixed rect {
366 stroke-width: 1.5;
Simon Hunt78c10bf2015-02-03 21:18:20 -0800367}
368.light #ov-topo svg .node.device.fixed rect {
369 stroke: #aaa;
370}
371.dark #ov-topo svg .node.device.fixed rect {
Simon Hunt1c367112015-02-05 18:02:46 -0800372 stroke: #999;
Simon Huntac4c6f72015-02-03 19:50:53 -0800373}
374
375/* note: device is offline without the 'online' class */
Simon Hunt1c367112015-02-05 18:02:46 -0800376.light #ov-topo svg .node.device {
Simon Huntac4c6f72015-02-03 19:50:53 -0800377 fill: #777;
378}
Simon Hunt1c367112015-02-05 18:02:46 -0800379.dark #ov-topo svg .node.device {
380 fill: #555;
381}
Simon Huntac4c6f72015-02-03 19:50:53 -0800382
Simon Hunt1c367112015-02-05 18:02:46 -0800383.light #ov-topo svg .node.device rect {
384 stroke: #666;
385}
386.light #ov-topo svg .node.device rect {
387 stroke: #999;
388}
389
390.light #ov-topo svg .node.device.online {
Simon Huntac4c6f72015-02-03 19:50:53 -0800391 fill: #6e7fa3;
392}
Simon Hunt1c367112015-02-05 18:02:46 -0800393.dark #ov-topo svg .node.device.online {
394 fill: #4E5C7F;
395}
Simon Huntac4c6f72015-02-03 19:50:53 -0800396
397/* note: device is offline without the 'online' class */
398#ov-topo svg .node.device text {
399 fill: #bbb;
400 font: 10pt sans-serif;
401}
402
403#ov-topo svg .node.device.online text {
404 fill: white;
405}
406
407#ov-topo svg .node.device .svgIcon rect {
408 fill: #aaa;
409}
410#ov-topo svg .node.device .svgIcon use {
411 fill: #777;
412}
413#ov-topo svg .node.device.selected .svgIcon rect {
414 fill: #f90;
415}
416#ov-topo svg .node.device.online .svgIcon rect {
417 fill: #ccc;
418}
419#ov-topo svg .node.device.online .svgIcon use {
420 fill: #000;
421}
422#ov-topo svg .node.device.online.selected .svgIcon rect {
423 fill: #f90;
424}
425
426
427/* Host Nodes */
428
429#ov-topo svg .node.host {
Simon Huntac4c6f72015-02-03 19:50:53 -0800430}
431
432#ov-topo svg .node.host text {
Simon Huntac4c6f72015-02-03 19:50:53 -0800433 stroke: none;
434 font: 9pt sans-serif;
435}
Simon Hunt1894d792015-02-04 17:09:20 -0800436.light #ov-topo svg .node.host text {
437 fill: #846;
438}
439.dark #ov-topo svg .node.host text {
440 fill: #BB809D;
441}
Simon Huntac4c6f72015-02-03 19:50:53 -0800442
Simon Hunt1894d792015-02-04 17:09:20 -0800443.light svg .node.host circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800444 stroke: #000;
445 fill: #edb;
446}
Simon Hunt1894d792015-02-04 17:09:20 -0800447.dark svg .node.host circle {
448 stroke: #eee;
449 fill: #B2A180;
450}
Simon Huntac4c6f72015-02-03 19:50:53 -0800451
Simon Hunt1894d792015-02-04 17:09:20 -0800452.light svg .node.host .svgIcon {
453 fill: #444;
454}
455.dark svg .node.host .svgIcon {
456 fill: #222;
457}
Simon Huntac4c6f72015-02-03 19:50:53 -0800458
Simon Hunt1894d792015-02-04 17:09:20 -0800459/* --- Topo Links --- */
Simon Huntac4c6f72015-02-03 19:50:53 -0800460
Simon Hunt1894d792015-02-04 17:09:20 -0800461#ov-topo svg .link {
462 opacity: .9;
463}
464
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700465#ov-topo svg .link.selected,
466#ov-topo svg .link.enhanced {
467 stroke-width: 4.5px;
468}
469.light #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800470.light #ov-topo svg .link.enhanced {
471 filter: url(#blue-glow);
472}
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700473.dark #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800474.dark #ov-topo svg .link.enhanced {
475 filter: url(#yellow-glow);
476}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700477.light.firefox #ov-topo svg .link.selected,
478.light.firefox #ov-topo svg .link.enhanced {
479 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");
480}
481.dark.firefox #ov-topo svg .link.selected,
482.dark.firefox #ov-topo svg .link.enhanced {
483 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");
484
485}
Simon Huntd5264122015-02-25 10:17:43 -0800486
Simon Hunt1894d792015-02-04 17:09:20 -0800487#ov-topo svg .link.inactive {
488 opacity: .5;
489 stroke-dasharray: 8 4;
490}
491
492#ov-topo svg .link.secondary {
493 stroke-width: 3px;
494}
495.light #ov-topo svg .link.secondary {
496 stroke: rgba(0,153,51,0.5);
497}
498.dark #ov-topo svg .link.secondary {
499 stroke: rgba(121,231,158,0.5);
500}
501
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700502/* Port traffic color visualization for Kbps, Mbps, and Gbps */
Simon Hunt96641372015-06-02 15:53:25 -0700503
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700504.light #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700505 stroke: rgb(0,153,51);
506 stroke-width: 5.0;
507}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700508.dark #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700509 stroke: rgb(98, 153, 118);
510 stroke-width: 5.0;
511}
512
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700513.light #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700514 stroke: rgb(128,145,27);
515 stroke-width: 6.5;
516}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700517.dark #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700518 stroke: rgb(91, 109, 54);
519 stroke-width: 6.5;
520}
521
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700522.light #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700523 stroke: rgb(255, 137, 3);
524 stroke-width: 8.0;
525}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700526.dark #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700527 stroke: rgb(174, 119, 55);
528 stroke-width: 8.0;
529}
530
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700531.light #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700532 stroke: rgb(183, 30, 21);
533 stroke-width: 8.0;
534}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700535.dark #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700536 stroke: rgb(127, 40, 39);
537 stroke-width: 8.0;
538}
539
540
Bri Prebilic Cole236ef682015-07-28 16:10:18 -0700541#ov-topo svg .link.animated {
542 stroke-dasharray: 8 5;
543 animation: ants 5s infinite linear;
544 /* below line will be added via Javascript based on path */
545 /*animation-direction: reverse;*/
546}
547@keyframes ants {
548 from {
549 stroke-dashoffset: 0;
550 }
551 to {
552 stroke-dashoffset: 400;
553 }
554}
555
Simon Hunt1894d792015-02-04 17:09:20 -0800556#ov-topo svg .link.primary {
557 stroke-width: 4px;
558}
559.light #ov-topo svg .link.primary {
560 stroke: #ffA300;
561}
562.dark #ov-topo svg .link.primary {
563 stroke: #D58E0F;
564}
565
Simon Hunt1894d792015-02-04 17:09:20 -0800566#ov-topo svg .link.secondary.optical {
567 stroke-width: 4px;
568}
569.light #ov-topo svg .link.secondary.optical {
570 stroke: rgba(128,64,255,0.5);
571}
572.dark #ov-topo svg .link.secondary.optical {
573 stroke: rgba(164,139,215,0.5);
574}
575
576#ov-topo svg .link.primary.optical {
577 stroke-width: 6px;
578}
579.light #ov-topo svg .link.primary.optical {
580 stroke: #74f;
581}
582.dark #ov-topo svg .link.primary.optical {
583 stroke: #7352CD;
584}
585
Simon Hunt1a5301e2015-02-25 15:31:25 -0800586/* Link Labels */
587
Simon Hunt1894d792015-02-04 17:09:20 -0800588#ov-topo svg .linkLabel rect {
589 stroke: none;
590}
591.light #ov-topo svg .linkLabel rect {
592 fill: #eee;
593}
594.dark #ov-topo svg .linkLabel rect {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800595 fill: #555;
Simon Hunt1894d792015-02-04 17:09:20 -0800596}
597
598#ov-topo svg .linkLabel text {
599 text-anchor: middle;
600 stroke-width: 0.1;
601 font-size: 9pt;
602}
603.light #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800604 fill: #444;
Simon Hunt1894d792015-02-04 17:09:20 -0800605}
606.dark #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800607 fill: #eee;
Simon Hunt1894d792015-02-04 17:09:20 -0800608}
Simon Hunteb0fa052015-02-17 19:20:28 -0800609
Simon Hunt1a5301e2015-02-25 15:31:25 -0800610/* Port Labels */
611
612#ov-topo svg .portLabel rect {
613 stroke: none;
614}
615.light #ov-topo svg .portLabel rect {
616 fill: #eee;
617}
618.dark #ov-topo svg .portLabel rect {
Simon Hunt969b3c92015-02-25 18:11:31 -0800619 fill: #222;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800620}
621
622#ov-topo svg .portLabel text {
623 text-anchor: middle;
624 stroke-width: 0.1;
Simon Hunt969b3c92015-02-25 18:11:31 -0800625 font-size: 11pt;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800626}
627.light #ov-topo svg .portLabel text {
628 fill: #444;
629}
630.dark #ov-topo svg .portLabel text {
631 fill: #eee;
632}
633
Bri Prebilic Cole80401762015-07-16 11:36:18 -0700634/* Number of Links Labels */
635#ov-topo line.numLinkHash {
636 stroke-width: 3;
637}
638
639#ov-topo text.numLinkText {
640 font-size: 15pt;
641}
642
643#ov-topo text.numLinkText {
644 text-anchor: middle;
645}
646
647.light #ov-topo text.numLinkText {
648 fill: #444;
649}
650.dark #ov-topo text.numLinkText {
651 fill: #eee;
652}
653
Simon Huntabf66d92015-04-15 12:57:31 -0700654/* ------------------------------------------------- */
Simon Hunt2052e5d2015-04-13 17:40:44 -0700655/* Sprite Layer */
656
Simon Huntabf66d92015-04-15 12:57:31 -0700657#ov-topo svg #topo-sprites use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700658 stroke-width: 2;
Simon Huntabf66d92015-04-15 12:57:31 -0700659}
Simon Hunt2052e5d2015-04-13 17:40:44 -0700660#ov-topo svg #topo-sprites text {
661 text-anchor: middle;
Simon Huntb2c4cc82015-04-15 17:16:28 -0700662 font-size: 20pt;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700663 font-style: italic;
664}
665
Simon Huntabf66d92015-04-15 12:57:31 -0700666.light #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt017a7c32015-04-15 19:23:27 -0700667 stroke: #fda;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700668 fill: none;
669}
Simon Huntabf66d92015-04-15 12:57:31 -0700670.dark #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700671 stroke: #541;
672 fill: none;
673}
Simon Huntabf66d92015-04-15 12:57:31 -0700674.light #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700675 fill: #eda;
676}
Simon Huntabf66d92015-04-15 12:57:31 -0700677.dark #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700678 fill: #543;
679}
680
Simon Huntabf66d92015-04-15 12:57:31 -0700681.light #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700682 stroke: #bbd;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700683 fill: none;
684}
Simon Huntabf66d92015-04-15 12:57:31 -0700685.dark #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700686 stroke: #445;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700687 fill: none;
688}
Simon Huntabf66d92015-04-15 12:57:31 -0700689.light #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700690 fill: #cce;
691}
Simon Huntabf66d92015-04-15 12:57:31 -0700692.dark #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700693 fill: #446;
694}
Simon Huntabf66d92015-04-15 12:57:31 -0700695
696.light #ov-topo svg #topo-sprites .gray1 use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700697 stroke: #ccc;
Simon Huntabf66d92015-04-15 12:57:31 -0700698 fill: none;
699}
700.dark #ov-topo svg #topo-sprites .gray1 use {
701 stroke: #333;
702 fill: none;
703}
704.light #ov-topo svg #topo-sprites .gray1 text {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700705 fill: #ddd;
Simon Huntabf66d92015-04-15 12:57:31 -0700706}
707.dark #ov-topo svg #topo-sprites .gray1 text {
708 fill: #444;
709}
710
Simon Hunt7f62f7c2015-05-11 17:38:02 -0700711/* fills */
712.light #ov-topo svg #topo-sprites use.fill-gray2 {
713 fill: #eee;
714}
715.dark #ov-topo svg #topo-sprites use.fill-gray2 {
716 fill: #444;
717}
718
719.light #ov-topo svg #topo-sprites use.fill-blue2 {
720 fill: #bce;
721}
722.dark #ov-topo svg #topo-sprites use.fill-blue2 {
723 fill: #447;
724}
725