blob: d1d4b4c7863b8e198114902846af49aca2f5a207 [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
308/* --- Topo Nodes --- */
309
Simon Hunta142dd22015-02-12 22:07:51 -0800310#ov-topo svg .suppressed {
311 opacity: 0.2 !important;
312}
313
Simon Huntac4c6f72015-02-03 19:50:53 -0800314#ov-topo svg .node {
315 cursor: pointer;
316}
317
Simon Hunt0ee28682015-02-12 20:48:11 -0800318.light #ov-topo svg .node.selected rect,
319.light #ov-topo svg .node.selected circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800320 fill: #f90;
Simon Hunt0ee28682015-02-12 20:48:11 -0800321 filter: url(#blue-glow);
322}
323.dark #ov-topo svg .node.selected rect,
324.dark #ov-topo svg .node.selected circle {
325 fill: #f90;
326 filter: url(#yellow-glow);
Simon Huntac4c6f72015-02-03 19:50:53 -0800327}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700328.light.firefox #ov-topo svg .node.selected rect,
329.light.firefox #ov-topo svg .node.selected circle {
330 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");
331}
332.dark.firefox #ov-topo svg .node.selected rect,
333.dark.firefox #ov-topo svg .node.selected circle {
334 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");
335}
Simon Huntac4c6f72015-02-03 19:50:53 -0800336
337#ov-topo svg .node text {
338 pointer-events: none;
339}
340
341/* Device Nodes */
342
343#ov-topo svg .node.device {
344}
345
346#ov-topo svg .node.device rect {
347 stroke-width: 1.5;
348}
349
350#ov-topo svg .node.device.fixed rect {
351 stroke-width: 1.5;
Simon Hunt78c10bf2015-02-03 21:18:20 -0800352}
353.light #ov-topo svg .node.device.fixed rect {
354 stroke: #aaa;
355}
356.dark #ov-topo svg .node.device.fixed rect {
Simon Hunt1c367112015-02-05 18:02:46 -0800357 stroke: #999;
Simon Huntac4c6f72015-02-03 19:50:53 -0800358}
359
360/* note: device is offline without the 'online' class */
Simon Hunt1c367112015-02-05 18:02:46 -0800361.light #ov-topo svg .node.device {
Simon Huntac4c6f72015-02-03 19:50:53 -0800362 fill: #777;
363}
Simon Hunt1c367112015-02-05 18:02:46 -0800364.dark #ov-topo svg .node.device {
365 fill: #555;
366}
Simon Huntac4c6f72015-02-03 19:50:53 -0800367
Simon Hunt1c367112015-02-05 18:02:46 -0800368.light #ov-topo svg .node.device rect {
369 stroke: #666;
370}
371.light #ov-topo svg .node.device rect {
372 stroke: #999;
373}
374
375.light #ov-topo svg .node.device.online {
Simon Huntac4c6f72015-02-03 19:50:53 -0800376 fill: #6e7fa3;
377}
Simon Hunt1c367112015-02-05 18:02:46 -0800378.dark #ov-topo svg .node.device.online {
379 fill: #4E5C7F;
380}
Simon Huntac4c6f72015-02-03 19:50:53 -0800381
382/* note: device is offline without the 'online' class */
383#ov-topo svg .node.device text {
384 fill: #bbb;
385 font: 10pt sans-serif;
386}
387
388#ov-topo svg .node.device.online text {
389 fill: white;
390}
391
392#ov-topo svg .node.device .svgIcon rect {
393 fill: #aaa;
394}
395#ov-topo svg .node.device .svgIcon use {
396 fill: #777;
397}
398#ov-topo svg .node.device.selected .svgIcon rect {
399 fill: #f90;
400}
401#ov-topo svg .node.device.online .svgIcon rect {
402 fill: #ccc;
403}
404#ov-topo svg .node.device.online .svgIcon use {
405 fill: #000;
406}
407#ov-topo svg .node.device.online.selected .svgIcon rect {
408 fill: #f90;
409}
410
411
412/* Host Nodes */
413
414#ov-topo svg .node.host {
Simon Huntac4c6f72015-02-03 19:50:53 -0800415}
416
417#ov-topo svg .node.host text {
Simon Huntac4c6f72015-02-03 19:50:53 -0800418 stroke: none;
419 font: 9pt sans-serif;
420}
Simon Hunt1894d792015-02-04 17:09:20 -0800421.light #ov-topo svg .node.host text {
422 fill: #846;
423}
424.dark #ov-topo svg .node.host text {
425 fill: #BB809D;
426}
Simon Huntac4c6f72015-02-03 19:50:53 -0800427
Simon Hunt1894d792015-02-04 17:09:20 -0800428.light svg .node.host circle {
Simon Huntac4c6f72015-02-03 19:50:53 -0800429 stroke: #000;
430 fill: #edb;
431}
Simon Hunt1894d792015-02-04 17:09:20 -0800432.dark svg .node.host circle {
433 stroke: #eee;
434 fill: #B2A180;
435}
Simon Huntac4c6f72015-02-03 19:50:53 -0800436
Simon Hunt1894d792015-02-04 17:09:20 -0800437.light svg .node.host .svgIcon {
438 fill: #444;
439}
440.dark svg .node.host .svgIcon {
441 fill: #222;
442}
Simon Huntac4c6f72015-02-03 19:50:53 -0800443
Simon Hunt1894d792015-02-04 17:09:20 -0800444/* --- Topo Links --- */
Simon Huntac4c6f72015-02-03 19:50:53 -0800445
Simon Hunt1894d792015-02-04 17:09:20 -0800446#ov-topo svg .link {
447 opacity: .9;
448}
449
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700450#ov-topo svg .link.selected,
451#ov-topo svg .link.enhanced {
452 stroke-width: 4.5px;
453}
454.light #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800455.light #ov-topo svg .link.enhanced {
456 filter: url(#blue-glow);
457}
Simon Hunt0c6b2d32015-03-26 17:46:29 -0700458.dark #ov-topo svg .link.selected,
Simon Huntd5264122015-02-25 10:17:43 -0800459.dark #ov-topo svg .link.enhanced {
460 filter: url(#yellow-glow);
461}
Bri Prebilic Coledd805572015-08-04 16:54:08 -0700462.light.firefox #ov-topo svg .link.selected,
463.light.firefox #ov-topo svg .link.enhanced {
464 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");
465}
466.dark.firefox #ov-topo svg .link.selected,
467.dark.firefox #ov-topo svg .link.enhanced {
468 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");
469
470}
Simon Huntd5264122015-02-25 10:17:43 -0800471
Simon Hunt1894d792015-02-04 17:09:20 -0800472#ov-topo svg .link.inactive {
473 opacity: .5;
474 stroke-dasharray: 8 4;
475}
476
477#ov-topo svg .link.secondary {
478 stroke-width: 3px;
479}
480.light #ov-topo svg .link.secondary {
481 stroke: rgba(0,153,51,0.5);
482}
483.dark #ov-topo svg .link.secondary {
484 stroke: rgba(121,231,158,0.5);
485}
486
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700487/* Port traffic color visualization for Kbps, Mbps, and Gbps */
Simon Hunt96641372015-06-02 15:53:25 -0700488
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700489.light #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700490 stroke: rgb(0,153,51);
491 stroke-width: 5.0;
492}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700493.dark #ov-topo svg .link.secondary.port-traffic-Kbps {
Simon Hunt96641372015-06-02 15:53:25 -0700494 stroke: rgb(98, 153, 118);
495 stroke-width: 5.0;
496}
497
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700498.light #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700499 stroke: rgb(128,145,27);
500 stroke-width: 6.5;
501}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700502.dark #ov-topo svg .link.secondary.port-traffic-Mbps {
Simon Hunt96641372015-06-02 15:53:25 -0700503 stroke: rgb(91, 109, 54);
504 stroke-width: 6.5;
505}
506
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700507.light #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700508 stroke: rgb(255, 137, 3);
509 stroke-width: 8.0;
510}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700511.dark #ov-topo svg .link.secondary.port-traffic-Gbps {
Simon Hunt96641372015-06-02 15:53:25 -0700512 stroke: rgb(174, 119, 55);
513 stroke-width: 8.0;
514}
515
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700516.light #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700517 stroke: rgb(183, 30, 21);
518 stroke-width: 8.0;
519}
Srikanth Vavilapalli8c1ccca2015-06-08 19:23:24 -0700520.dark #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
Simon Hunt96641372015-06-02 15:53:25 -0700521 stroke: rgb(127, 40, 39);
522 stroke-width: 8.0;
523}
524
525
Bri Prebilic Cole236ef682015-07-28 16:10:18 -0700526#ov-topo svg .link.animated {
527 stroke-dasharray: 8 5;
528 animation: ants 5s infinite linear;
529 /* below line will be added via Javascript based on path */
530 /*animation-direction: reverse;*/
531}
532@keyframes ants {
533 from {
534 stroke-dashoffset: 0;
535 }
536 to {
537 stroke-dashoffset: 400;
538 }
539}
540
Simon Hunt1894d792015-02-04 17:09:20 -0800541#ov-topo svg .link.primary {
542 stroke-width: 4px;
543}
544.light #ov-topo svg .link.primary {
545 stroke: #ffA300;
546}
547.dark #ov-topo svg .link.primary {
548 stroke: #D58E0F;
549}
550
Simon Hunt1894d792015-02-04 17:09:20 -0800551#ov-topo svg .link.secondary.optical {
552 stroke-width: 4px;
553}
554.light #ov-topo svg .link.secondary.optical {
555 stroke: rgba(128,64,255,0.5);
556}
557.dark #ov-topo svg .link.secondary.optical {
558 stroke: rgba(164,139,215,0.5);
559}
560
561#ov-topo svg .link.primary.optical {
562 stroke-width: 6px;
563}
564.light #ov-topo svg .link.primary.optical {
565 stroke: #74f;
566}
567.dark #ov-topo svg .link.primary.optical {
568 stroke: #7352CD;
569}
570
Simon Hunt1a5301e2015-02-25 15:31:25 -0800571/* Link Labels */
572
Simon Hunt1894d792015-02-04 17:09:20 -0800573#ov-topo svg .linkLabel rect {
574 stroke: none;
575}
576.light #ov-topo svg .linkLabel rect {
577 fill: #eee;
578}
579.dark #ov-topo svg .linkLabel rect {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800580 fill: #555;
Simon Hunt1894d792015-02-04 17:09:20 -0800581}
582
583#ov-topo svg .linkLabel text {
584 text-anchor: middle;
585 stroke-width: 0.1;
586 font-size: 9pt;
587}
588.light #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800589 fill: #444;
Simon Hunt1894d792015-02-04 17:09:20 -0800590}
591.dark #ov-topo svg .linkLabel text {
Simon Hunt8eb4d3a2015-02-23 18:23:29 -0800592 fill: #eee;
Simon Hunt1894d792015-02-04 17:09:20 -0800593}
Simon Hunteb0fa052015-02-17 19:20:28 -0800594
Simon Hunt1a5301e2015-02-25 15:31:25 -0800595/* Port Labels */
596
597#ov-topo svg .portLabel rect {
598 stroke: none;
599}
600.light #ov-topo svg .portLabel rect {
601 fill: #eee;
602}
603.dark #ov-topo svg .portLabel rect {
Simon Hunt969b3c92015-02-25 18:11:31 -0800604 fill: #222;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800605}
606
607#ov-topo svg .portLabel text {
608 text-anchor: middle;
609 stroke-width: 0.1;
Simon Hunt969b3c92015-02-25 18:11:31 -0800610 font-size: 11pt;
Simon Hunt1a5301e2015-02-25 15:31:25 -0800611}
612.light #ov-topo svg .portLabel text {
613 fill: #444;
614}
615.dark #ov-topo svg .portLabel text {
616 fill: #eee;
617}
618
Bri Prebilic Cole80401762015-07-16 11:36:18 -0700619/* Number of Links Labels */
620#ov-topo line.numLinkHash {
621 stroke-width: 3;
622}
623
624#ov-topo text.numLinkText {
625 font-size: 15pt;
626}
627
628#ov-topo text.numLinkText {
629 text-anchor: middle;
630}
631
632.light #ov-topo text.numLinkText {
633 fill: #444;
634}
635.dark #ov-topo text.numLinkText {
636 fill: #eee;
637}
638
Simon Huntabf66d92015-04-15 12:57:31 -0700639/* ------------------------------------------------- */
Simon Hunt2052e5d2015-04-13 17:40:44 -0700640/* Sprite Layer */
641
Simon Huntabf66d92015-04-15 12:57:31 -0700642#ov-topo svg #topo-sprites use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700643 stroke-width: 2;
Simon Huntabf66d92015-04-15 12:57:31 -0700644}
Simon Hunt2052e5d2015-04-13 17:40:44 -0700645#ov-topo svg #topo-sprites text {
646 text-anchor: middle;
Simon Huntb2c4cc82015-04-15 17:16:28 -0700647 font-size: 20pt;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700648 font-style: italic;
649}
650
Simon Huntabf66d92015-04-15 12:57:31 -0700651.light #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt017a7c32015-04-15 19:23:27 -0700652 stroke: #fda;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700653 fill: none;
654}
Simon Huntabf66d92015-04-15 12:57:31 -0700655.dark #ov-topo svg #topo-sprites .gold1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700656 stroke: #541;
657 fill: none;
658}
Simon Huntabf66d92015-04-15 12:57:31 -0700659.light #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700660 fill: #eda;
661}
Simon Huntabf66d92015-04-15 12:57:31 -0700662.dark #ov-topo svg #topo-sprites .gold1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700663 fill: #543;
664}
665
Simon Huntabf66d92015-04-15 12:57:31 -0700666.light #ov-topo svg #topo-sprites .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700667 stroke: #bbd;
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 .blue1 use {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700671 stroke: #445;
Simon Hunt2052e5d2015-04-13 17:40:44 -0700672 fill: none;
673}
Simon Huntabf66d92015-04-15 12:57:31 -0700674.light #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700675 fill: #cce;
676}
Simon Huntabf66d92015-04-15 12:57:31 -0700677.dark #ov-topo svg #topo-sprites .blue1 text {
Simon Hunt2052e5d2015-04-13 17:40:44 -0700678 fill: #446;
679}
Simon Huntabf66d92015-04-15 12:57:31 -0700680
681.light #ov-topo svg #topo-sprites .gray1 use {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700682 stroke: #ccc;
Simon Huntabf66d92015-04-15 12:57:31 -0700683 fill: none;
684}
685.dark #ov-topo svg #topo-sprites .gray1 use {
686 stroke: #333;
687 fill: none;
688}
689.light #ov-topo svg #topo-sprites .gray1 text {
Simon Huntb2c4cc82015-04-15 17:16:28 -0700690 fill: #ddd;
Simon Huntabf66d92015-04-15 12:57:31 -0700691}
692.dark #ov-topo svg #topo-sprites .gray1 text {
693 fill: #444;
694}
695
Simon Hunt7f62f7c2015-05-11 17:38:02 -0700696/* fills */
697.light #ov-topo svg #topo-sprites use.fill-gray2 {
698 fill: #eee;
699}
700.dark #ov-topo svg #topo-sprites use.fill-gray2 {
701 fill: #444;
702}
703
704.light #ov-topo svg #topo-sprites use.fill-blue2 {
705 fill: #bce;
706}
707.dark #ov-topo svg #topo-sprites use.fill-blue2 {
708 fill: #447;
709}
710