blob: 34422f7bd687a8ce44cc72f69efab772ef2c8e5b [file] [log] [blame]
Simon Huntd5b96732016-07-08 13:22:27 -07001/*
2 * Copyright 2016-present Open Networking Laboratory
3 *
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
Simon Huntd5b96732016-07-08 13:22:27 -070017/*
18 ONOS GUI -- Topology View (theme) -- CSS file
19 */
20
21/* --- Base SVG Layer --- */
22
23#ov-topo2 svg {
Steven Burrowsec1f45c2016-08-08 16:14:41 +010024 background-color: #f4f4f4;
Simon Huntd5b96732016-07-08 13:22:27 -070025}
26
27/* --- "No Devices" Layer --- */
28
29#ov-topo2 svg .noDevsBird {
30 fill: #db7773;
31}
32
Simon Hunt95f4b422017-03-03 13:49:05 -080033#ov-topo2 svg #topo2-noDevsLayer text {
Simon Huntd5b96732016-07-08 13:22:27 -070034 fill: #7e9aa8;
35}
36
Simon Hunt6e6e80b2017-04-03 12:03:41 -070037/* --- Breadcrumbs --- */
38
39.light #breadcrumbs {
40 background: #f5f5f5;
41 border-bottom: 1px solid #c7c7c0;
42}
43
44.light #breadcrumbs .breadcrumb:after {
45 color: #353535;
46}
47
48.light #breadcrumbs .breadcrumb:last-child a {
49 color: #757575;
50}
51
52
Simon Huntd5b96732016-07-08 13:22:27 -070053/* --- Topo Map --- */
54
Simon Hunt95f4b422017-03-03 13:49:05 -080055#ov-topo2 svg #topo2-map {
Simon Huntd5b96732016-07-08 13:22:27 -070056 stroke-width: 2px;
57 stroke: #f4f4f4;
58 fill: #e5e5e6;
59}
60
Simon Hunt95f4b422017-03-03 13:49:05 -080061/* --- general topo2-panel styling --- */
Steven Burrowsec1f45c2016-08-08 16:14:41 +010062
Simon Hunt95f4b422017-03-03 13:49:05 -080063.topo2-p h2 {
64 display: inline-block;
65 padding: 6px;
Steven Burrowsec1f45c2016-08-08 16:14:41 +010066}
67
Simon Hunt95f4b422017-03-03 13:49:05 -080068.topo2-p svg {
69 background: #c0242b;
70 width: 28px;
71 height: 28px;
72}
73
74.topo2-p svg .glyph {
Steven Burrowsec1f45c2016-08-08 16:14:41 +010075 fill: #ffffff;
76}
77
Simon Hunt95f4b422017-03-03 13:49:05 -080078.topo2-p hr {
Steven Burrowsec1f45c2016-08-08 16:14:41 +010079 background-color: #cccccc;
80}
81
Steven Burrows7a9d04e2016-09-26 17:05:37 -070082#topo2-p-detail svg {
Steven Burrowsec1f45c2016-08-08 16:14:41 +010083 background: none;
84}
85
Steven Burrows7a9d04e2016-09-26 17:05:37 -070086#topo2-p-detail .header svg .glyph {
Steven Burrowsec1f45c2016-08-08 16:14:41 +010087 fill: #c0242b;
88}
89
90
91/* --- Topo Instance Panel --- */
92
Steven Burrows7a9d04e2016-09-26 17:05:37 -070093#topo2-p-instance svg rect {
Steven Burrowsec1f45c2016-08-08 16:14:41 +010094 stroke-width: 0;
95 fill: #fbfbfb;
96}
97
98/* body of an instance */
Steven Burrows7a9d04e2016-09-26 17:05:37 -070099#topo2-p-instance .online svg rect {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100100 opacity: 1;
101 fill: #fbfbfb;
102}
103
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700104#topo2-p-instance svg .glyph {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100105 fill: #fff;
106}
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700107#topo2-p-instance .online svg .glyph {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100108 fill: #fff;
109}
110
111
112/* offline */
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700113#topo2-p-instance svg .badgeIcon {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100114 opacity: 0.4;
115 fill: #939598;
116}
117
118/* online */
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700119#topo2-p-instance .online svg .badgeIcon {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100120 opacity: 1.0;
121 fill: #939598;
122}
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700123#topo2-p-instance .online svg .badgeIcon.bird {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100124 fill: #ffffff;
125}
126
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700127#topo2-p-instance svg .readyBadge {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100128 visibility: hidden;
129}
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700130#topo2-p-instance .ready svg .readyBadge {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100131 visibility: visible;
132}
133
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700134#topo2-p-instance svg text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100135 text-anchor: left;
136 opacity: 0.5;
137 fill: #3c3a3a;
138}
139
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700140#topo2-p-instance .online svg text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100141 opacity: 1.0;
142 fill: #3c3a3a;
143}
144
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700145#topo2-p-instance .onosInst.mastership {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100146 opacity: 0.3;
147}
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700148#topo2-p-instance .onosInst.mastership.affinity {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100149 opacity: 1.0;
150}
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700151#topo2-p-instance .onosInst.mastership.affinity svg rect {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100152 filter: url(#blue-glow);
153}
154
Steven Burrows7a9d04e2016-09-26 17:05:37 -0700155.firefox #topo2-p-instance .onosInst.mastership.affinity svg rect {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100156 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");
157}
158
159/* --- Topo Nodes --- */
160
161#ov-topo2 svg .suppressed {
162 opacity: 0.5 !important;
163}
164
165#ov-topo2 svg .suppressedmax {
166 opacity: 0.2 !important;
167}
168
169/* Device Nodes */
170
171/* note: device without the 'online' class is offline */
172#ov-topo2 svg .node.device rect {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100173 fill: #f0f0f0;
174}
175#ov-topo2 svg .node.device text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100176 fill: #bbb;
177}
178#ov-topo2 svg .node.device use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100179 fill: #777;
180}
181
182
183#ov-topo2 svg .node.device.online rect {
184 fill: #ffffff;
185}
186#ov-topo2 svg .node.device.online text {
187 fill: #3c3a3a;
188}
189#ov-topo2 svg .node.device.online use {
190 /* NOTE: this gets overridden programatically */
191 fill: #454545;
192}
193
Steven Burrows6deb4ce2016-08-26 16:06:23 +0100194#ov-topo2 svg .node.sub-region rect {
195 fill: #ffffff;
196}
197
Simon Huntb3656d42017-04-07 18:15:35 -0700198#ov-topo2 svg .node.sub-region text {
Simon Huntb3656d42017-04-07 18:15:35 -0700199}
200
Steven Burrows6deb4ce2016-08-26 16:06:23 +0100201#ov-topo2 svg .node.sub-region use {
202 /* NOTE: this gets overridden programatically */
203 fill: #454545;
204}
205
Steven Burrows68d6f952017-03-10 13:53:35 +0000206#ov-topo2 svg .node.peer-region rect {
207 fill: #ffffff;
208}
209
Steven Burrows86af4352016-11-16 18:19:12 -0600210#ov-topo2 svg .node.selected .node-container {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100211 stroke-width: 2.0;
212 stroke: #009fdb;
213}
214
Steven Burrowsb11a8b82017-03-10 16:00:31 +0000215#ov-topo2 svg .node.hovered .node-container {
216 stroke-width: 2.0;
217 stroke: #454545;
218}
219
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100220/* Badges */
221/* (... works for bothand dark themes...) */
222#ov-topo2 svg .node .badge circle {
223 stroke: #aaa;
224}
225
226#ov-topo2 svg .node .badge.badgeInfo circle {
227 fill: #99d;
228}
229
230#ov-topo2 svg .node .badge.badgeWarn circle {
231 fill: #da2;
232}
233
234#ov-topo2 svg .node .badge.badgeError circle {
235 fill: #e44;
236}
237
238#ov-topo2 svg .node .badge use {
239 fill: white !important;
240}
241
242#ov-topo2 svg .node .badge.badgeInfo use {
243 fill: #448;
244}
245
246#ov-topo2 svg .node .badge text {
247 fill: white !important;
248}
249
250#ov-topo2 svg .node .badge.badgeInfo text {
251 fill: #448;
252}
253
254/* Host Nodes */
255
256#ov-topo2 svg .node.host {
257}
258
259#ov-topo2 svg .node.host text {
260 stroke: none;
261 font: 9pt sans-serif;
262 fill: #846;
263}
264
265#ov-topo2 svg .node.host circle {
266 stroke: #a3a596;
267 fill: #e0dfd6;
268}
269#ov-topo2 svg .node.host.selected .hostIcon > circle {
270 stroke-width: 2.0;
271 stroke: #009fdb;
272}
273
274#ov-topo2 svg .node.host use {
275 fill: #3c3a3a;
276}
277
278/* --- Topo Links --- */
279
280#ov-topo2 svg .link {
281 opacity: .9;
282}
283
284#ov-topo2 svg .link.selected,
285#ov-topo2 svg .link.enhanced {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100286 stroke: #009fdb;
287}
288
289#ov-topo2 svg .link.inactive {
290 opacity: .5;
Steven Burrows583f4be2016-11-04 14:06:50 +0100291 stroke-dasharray: 4 2;
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100292}
293/* TODO: Review for not-permitted links */
294#ov-topo2 svg .link.not-permitted {
295 stroke: rgb(255,0,0);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100296 stroke-dasharray: 8 4;
297}
298
299#ov-topo2 svg .link.secondary {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100300 stroke: rgba(0,153,51,0.5);
301}
302
Steven Burrowsca1a39c2017-05-08 17:31:08 -0400303#ov-topo2 svg .link.secondary.port-traffic-green {
304 stroke: rgb(0,153,51);
305}
306
307#ov-topo2 svg .link.secondary.port-traffic-yellow {
308 stroke: rgb(128,145,27);
309}
310
311#ov-topo2 svg .link.secondary.port-traffic-orange {
312 stroke: rgb(255, 137, 3);
313}
314
315#ov-topo2 svg .link.secondary.port-traffic-red {
316 stroke: rgb(183, 30, 21);
317}
318
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100319/* Port traffic color visualization for Kbps, Mbps, and Gbps */
320
321#ov-topo2 svg .link.secondary.port-traffic-Kbps {
322 stroke: rgb(0,153,51);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100323}
324
325#ov-topo2 svg .link.secondary.port-traffic-Mbps {
326 stroke: rgb(128,145,27);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100327}
328
329#ov-topo2 svg .link.secondary.port-traffic-Gbps {
330 stroke: rgb(255, 137, 3);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100331}
332
333#ov-topo2 svg .link.secondary.port-traffic-Gbps-choked {
334 stroke: rgb(183, 30, 21);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100335}
336
337
338
339#ov-topo2 svg .link.animated {
340 stroke-dasharray: 8 5;
341 animation: ants 5s infinite linear;
342 /* below line could be added via Javascript, based on path, if we cared
343 * enough about the direction of ant-flow
344 */
345 /*animation-direction: reverse;*/
346}
347@keyframes ants {
348 from {
349 stroke-dashoffset: 0;
350 }
351 to {
352 stroke-dashoffset: 400;
353 }
354}
355
356#ov-topo2 svg .link.primary {
357 stroke-width: 4px;
358 stroke: #ffA300;
359}
360
361#ov-topo2 svg .link.secondary.optical {
362 stroke-width: 4px;
363 stroke: rgba(128,64,255,0.5);
364}
365
366#ov-topo2 svg .link.primary.optical {
367 stroke-width: 6px;
368 stroke: #74f;
369}
370
371/* Link Labels */
372#ov-topo2 svg .linkLabel rect {
373 stroke: none;
374 fill: #ffffff;
375}
376
377#ov-topo2 svg .linkLabel text {
378 fill: #444;
379}
380
381/* Port Labels */
382
383#ov-topo2 svg .portLabel rect {
384 stroke: #a3a596;
385 fill: #ffffff;
386}
387
388#ov-topo2 svg .portLabel text {
389 fill: #444;
390}
391
392/* Number of Links Labels */
393
394
395#ov-topo2 text.numLinkText {
396 fill: #444;
397}
398
399/* ------------------------------------------------- */
400/* Sprite Layer */
401
Simon Hunt95f4b422017-03-03 13:49:05 -0800402#ov-topo2 svg #topo2-sprites .gold1 use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100403 stroke: #fda;
404 fill: none;
405}
Simon Hunt95f4b422017-03-03 13:49:05 -0800406#ov-topo2 svg #topo2-sprites .gold1 text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100407 fill: #eda;
408}
409
Simon Hunt95f4b422017-03-03 13:49:05 -0800410#ov-topo2 svg #topo2-sprites .blue1 use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100411 stroke: #bbd;
412 fill: none;
413}
Simon Hunt95f4b422017-03-03 13:49:05 -0800414#ov-topo2 svg #topo2-sprites .blue1 text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100415 fill: #cce;
416}
417
Simon Hunt95f4b422017-03-03 13:49:05 -0800418#ov-topo2 svg #topo2-sprites .gray1 use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100419 stroke: #ccc;
420 fill: none;
421}
Simon Hunt95f4b422017-03-03 13:49:05 -0800422#ov-topo2 svg #topo2-sprites .gray1 text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100423 fill: #ddd;
424}
425
426/* fills */
Simon Hunt95f4b422017-03-03 13:49:05 -0800427#ov-topo2 svg #topo2-sprites use.fill-gray2 {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100428 fill: #eee;
429}
430
Simon Hunt95f4b422017-03-03 13:49:05 -0800431#ov-topo2 svg #topo2-sprites use.fill-blue2 {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100432 fill: #bce;
433}
Simon Hunt6e6e80b2017-04-03 12:03:41 -0700434
435
436/* ==================================================================== */
437/* From here are the DARK theme styles - mirroring the above styles */
438/* ==================================================================== */
439
440/* --- Base SVG Layer --- */
441
442.dark #ov-topo2 svg {
443 background-color: #152439;
444}
445
446/* --- "No Devices" Layer --- */
447
448.dark #ov-topo2 svg .noDevsBird {
449 fill: #8f4848;
450}
451
452.dark #ov-topo2 svg #topo-noDevsLayer text {
453 fill: #445461;
454}
455
456/* --- Breadcrumbs --- */
457
458.dark #breadcrumbs {
459 background: #142235;
460 border-bottom: 1px solid #111111;
461}
462
463.dark #breadcrumbs span {
464 color: #777778;
465}
466
467.dark #breadcrumbs .breadcrumb:after {
468 color: #555555;
469}
470
471.dark #breadcrumbs .breadcrumb:last-child a {
472 color: #d0d0d0;
473}
474
475/* --- Topo Map --- */
476
477.dark #ov-topo2 svg #topo2-map {
478 stroke-width: 2px;
479 stroke: #37404d;
480 fill: #212c3a;
481}
482
483/* --- general topo-panel styling --- */
484
485.dark .topo2-p {
486 background-color: #2f313c;
487 color: #c2c2b7;
488}
489.dark .topo2-p svg {
490 background: #8e1e24;
491}
492
493.dark .topo2-p svg .glyph {
494 fill: #c2c2b7;
495}
496
497.dark .topo2-p hr {
498 background-color: #616876;
499}
500
501.dark .topo2-p div.actionBtn svg use.glyph {
502 fill: #5a7f96;
503}
504
505.dark #topo2-p-detail .header svg .glyph {
506 fill: #91292f;
507}
508
509.dark #toolbar-topo2-toolbar .tbar-row.right {
510 color: #666;
511}
512
513/* --- Topo Instance Panel --- */
514
515.dark #topo2-p-instance {
516 background-color: #2f313c;
517 color: #c2c2b7;
518 border: 1px solid #364144;
519
520}
521
522.dark #topo2-p-instance svg rect {
523 stroke-width: 0;
524 fill: #525660;
525}
526
527/* body of an instance */
528.dark #topo2-p-instance .online svg rect {
529 opacity: 1;
530 fill: #838992;
531}
532
533.dark #topo2-p-instance svg .glyph {
534 fill: #ddd;
535}
536.dark #topo2-p-instance .online svg .glyph {
537 fill: #fff;
538}
539.dark #topo2-p-instance .online svg .glyph.overlay {
540 fill: #c7c7c7;
541}
542
543/* offline */
544.dark #topo2-p-instance svg .badgeIcon {
545 opacity: 0.4;
546 fill: #939598;
547}
548
549/* online */
550.dark #topo2-p-instance .online svg .badgeIcon {
551 opacity: 1.0;
552 fill: #939598;
553}
554.dark #topo2-p-instance .online svg .badgeIcon.bird {
555 fill: #ffffff;
556}
557
558.dark #topo2-p-instance svg text {
559 text-anchor: left;
560 opacity: 0.5;
561 fill: #aaa;
562}
563
564.dark #topo2-p-instance .online svg text {
565 opacity: 1.0;
566 fill: #fff;
567}
568
569.dark #topo2-p-instance .onosInst.mastership {
570 opacity: 0.3;
571}
572.dark #topo2-p-instance .onosInst.mastership.affinity {
573 opacity: 1.0;
574}
575.dark #topo2-p-instance .onosInst.mastership.affinity svg rect {
576 filter: url(#blue-glow);
577}
578
579.dark.firefox #topo2-p-instance .onosInst.mastership.affinity svg rect {
580 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");
581}
582
583/* --- Topo Nodes --- */
584
585/* Device Nodes */
586
587/* note: device without the 'online' class is offline */
588.dark #ov-topo2 svg .node.device rect {
589 fill: #707070;
590}
591.dark #ov-topo2 svg .node.device text {
592 fill: #444;
593}
594.dark #ov-topo2 svg .node.device use {
595 fill: #eee;
596}
597
598.dark #ov-topo2 svg .node.device.online rect {
599 fill: #525660;
600}
601.dark #ov-topo2 svg .node.device.online text {
602 fill: #fff;
603}
604.dark #ov-topo2 svg .node.device.online use {
605 fill: #fff;
606}
607
608.dark #ov-topo2 svg .node.device.selected rect {
609 stroke-width: 2.0;
610 stroke: #009fdb;
611}
612
613.dark #ov-topo2 svg .node.sub-region rect {
614 fill: #525660;
615}
616
Simon Huntb3656d42017-04-07 18:15:35 -0700617.dark #ov-topo2 svg .node.sub-region text {
Simon Huntb3656d42017-04-07 18:15:35 -0700618}
619
Simon Hunt6e6e80b2017-04-03 12:03:41 -0700620.dark #ov-topo2 svg .node.sub-region use {
621 /* NOTE: this gets overridden programatically */
622 fill: #eeeeee;
623}
624
625.dark #ov-topo2 svg .node.peer-region rect {
626 fill: #525660;
627}
628
629/* Host Nodes */
630
631.dark #ov-topo2 svg .node.host {
632}
633
634.dark #ov-topo2 svg .node.host text {
635 stroke: none;
636 font: 9pt sans-serif;
637 fill: #ad5781;
638}
639
640.dark #ov-topo2 svg .node.host circle {
641 stroke: #a3a596;
642 fill: #8f8272;
643}
644.dark #ov-topo2 svg .node.host.selected .hostIcon > circle {
645 stroke-width: 2.0;
646 stroke: #009fdb;
647}
648
649.dark #ov-topo2 svg .node.host use {
650 fill: #000;
651}
652
653
654/* --- Topo Links --- */
655.dark #ov-topo2 svg .link.not-permitted {
656 stroke: rgb(255, 60, 60);
657}
658
659/* Port traffic color visualization for Kbps, Mbps, and Gbps */
660/* .. values good for both light and dark themes */
661
662/* Primary, Secondary (optical too) colors good for both themes */
663
664/* Link Labels */
665.dark #ov-topo svg .linkLabel rect {
666 fill: #555;
667}
668
669.dark #ov-topo svg .linkLabel text {
670 fill: #eee;
671}
672
673/* Port Labels */
674
675.dark #ov-topo svg .portLabel rect {
676 fill: #222;
677}
678
679.dark #ov-topo svg .portLabel text {
680 fill: #eee;
681}
682
683/* Number of Links Labels */
684
685.dark #ov-topo text.numLinkText {
686 fill: #eee;
687}
688
689
690/* Sprite Layer */
691
692.dark #ov-topo2 svg #topo2-sprites .gold1 use {
693 stroke: #541;
694}
695.dark #ov-topo2 svg #topo2-sprites .gold1 text {
696 fill: #543;
697}
698
699.dark #ov-topo2 svg #topo2-sprites .blue1 use {
700 stroke: #445;
701}
702.dark #ov-topo2 svg #topo2-sprites .blue1 text {
703 fill: #446;
704}
705
706.dark #ov-topo2 svg #topo2-sprites .gray1 use {
707 stroke: #333;
708}
709.dark #ov-topo2 svg #topo2-sprites .gray1 text {
710 fill: #444;
711}
712
713/* fills */
714.dark #ov-topo2 svg #topo2-sprites use.fill-gray2 {
715 fill: #444;
716}
717
718.dark #ov-topo2 svg #topo2-sprites use.fill-blue2 {
719 fill: #447;
720}