blob: 03138c15df0777ad3143ada55f87f928a1ebc2d9 [file] [log] [blame]
Simon Huntd5b96732016-07-08 13:22:27 -07001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2016-present Open Networking Foundation
Simon Huntd5b96732016-07-08 13:22:27 -07003 *
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;
Steven Burrows1270c182017-09-14 10:14:58 +0100261 font-size: 13px;
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100262 fill: #846;
263}
264
265#ov-topo2 svg .node.host circle {
266 stroke: #a3a596;
267 fill: #e0dfd6;
268}
Steven Burrows1270c182017-09-14 10:14:58 +0100269
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100270#ov-topo2 svg .node.host.selected .hostIcon > circle {
271 stroke-width: 2.0;
272 stroke: #009fdb;
273}
274
275#ov-topo2 svg .node.host use {
276 fill: #3c3a3a;
277}
278
Steven Burrows1270c182017-09-14 10:14:58 +0100279#ov-topo2 svg .node.host rect {
280 fill: #ffffff;
281}
282
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100283/* --- Topo Links --- */
284
285#ov-topo2 svg .link {
286 opacity: .9;
287}
288
289#ov-topo2 svg .link.selected,
290#ov-topo2 svg .link.enhanced {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100291 stroke: #009fdb;
292}
293
294#ov-topo2 svg .link.inactive {
295 opacity: .5;
Steven Burrows583f4be2016-11-04 14:06:50 +0100296 stroke-dasharray: 4 2;
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100297}
298/* TODO: Review for not-permitted links */
299#ov-topo2 svg .link.not-permitted {
300 stroke: rgb(255,0,0);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100301 stroke-dasharray: 8 4;
302}
303
304#ov-topo2 svg .link.secondary {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100305 stroke: rgba(0,153,51,0.5);
306}
307
Steven Burrowsca1a39c2017-05-08 17:31:08 -0400308#ov-topo2 svg .link.secondary.port-traffic-green {
309 stroke: rgb(0,153,51);
310}
311
312#ov-topo2 svg .link.secondary.port-traffic-yellow {
313 stroke: rgb(128,145,27);
314}
315
316#ov-topo2 svg .link.secondary.port-traffic-orange {
317 stroke: rgb(255, 137, 3);
318}
319
320#ov-topo2 svg .link.secondary.port-traffic-red {
321 stroke: rgb(183, 30, 21);
322}
323
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100324/* Port traffic color visualization for Kbps, Mbps, and Gbps */
325
326#ov-topo2 svg .link.secondary.port-traffic-Kbps {
327 stroke: rgb(0,153,51);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100328}
329
330#ov-topo2 svg .link.secondary.port-traffic-Mbps {
331 stroke: rgb(128,145,27);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100332}
333
334#ov-topo2 svg .link.secondary.port-traffic-Gbps {
335 stroke: rgb(255, 137, 3);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100336}
337
338#ov-topo2 svg .link.secondary.port-traffic-Gbps-choked {
339 stroke: rgb(183, 30, 21);
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100340}
341
342
343
344#ov-topo2 svg .link.animated {
345 stroke-dasharray: 8 5;
346 animation: ants 5s infinite linear;
347 /* below line could be added via Javascript, based on path, if we cared
348 * enough about the direction of ant-flow
349 */
350 /*animation-direction: reverse;*/
351}
352@keyframes ants {
353 from {
354 stroke-dashoffset: 0;
355 }
356 to {
357 stroke-dashoffset: 400;
358 }
359}
360
361#ov-topo2 svg .link.primary {
362 stroke-width: 4px;
363 stroke: #ffA300;
364}
365
366#ov-topo2 svg .link.secondary.optical {
367 stroke-width: 4px;
368 stroke: rgba(128,64,255,0.5);
369}
370
371#ov-topo2 svg .link.primary.optical {
372 stroke-width: 6px;
373 stroke: #74f;
374}
375
376/* Link Labels */
377#ov-topo2 svg .linkLabel rect {
378 stroke: none;
379 fill: #ffffff;
380}
381
382#ov-topo2 svg .linkLabel text {
383 fill: #444;
384}
385
386/* Port Labels */
387
388#ov-topo2 svg .portLabel rect {
389 stroke: #a3a596;
390 fill: #ffffff;
391}
392
393#ov-topo2 svg .portLabel text {
394 fill: #444;
395}
396
397/* Number of Links Labels */
398
399
400#ov-topo2 text.numLinkText {
401 fill: #444;
402}
403
404/* ------------------------------------------------- */
405/* Sprite Layer */
406
Simon Hunt95f4b422017-03-03 13:49:05 -0800407#ov-topo2 svg #topo2-sprites .gold1 use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100408 stroke: #fda;
409 fill: none;
410}
Simon Hunt95f4b422017-03-03 13:49:05 -0800411#ov-topo2 svg #topo2-sprites .gold1 text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100412 fill: #eda;
413}
414
Simon Hunt95f4b422017-03-03 13:49:05 -0800415#ov-topo2 svg #topo2-sprites .blue1 use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100416 stroke: #bbd;
417 fill: none;
418}
Simon Hunt95f4b422017-03-03 13:49:05 -0800419#ov-topo2 svg #topo2-sprites .blue1 text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100420 fill: #cce;
421}
422
Simon Hunt95f4b422017-03-03 13:49:05 -0800423#ov-topo2 svg #topo2-sprites .gray1 use {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100424 stroke: #ccc;
425 fill: none;
426}
Simon Hunt95f4b422017-03-03 13:49:05 -0800427#ov-topo2 svg #topo2-sprites .gray1 text {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100428 fill: #ddd;
429}
430
431/* fills */
Simon Hunt95f4b422017-03-03 13:49:05 -0800432#ov-topo2 svg #topo2-sprites use.fill-gray2 {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100433 fill: #eee;
434}
435
Simon Hunt95f4b422017-03-03 13:49:05 -0800436#ov-topo2 svg #topo2-sprites use.fill-blue2 {
Steven Burrowsec1f45c2016-08-08 16:14:41 +0100437 fill: #bce;
438}
Simon Hunt6e6e80b2017-04-03 12:03:41 -0700439
440
441/* ==================================================================== */
442/* From here are the DARK theme styles - mirroring the above styles */
443/* ==================================================================== */
444
445/* --- Base SVG Layer --- */
446
447.dark #ov-topo2 svg {
448 background-color: #152439;
449}
450
451/* --- "No Devices" Layer --- */
452
453.dark #ov-topo2 svg .noDevsBird {
454 fill: #8f4848;
455}
456
457.dark #ov-topo2 svg #topo-noDevsLayer text {
458 fill: #445461;
459}
460
461/* --- Breadcrumbs --- */
462
463.dark #breadcrumbs {
464 background: #142235;
465 border-bottom: 1px solid #111111;
466}
467
468.dark #breadcrumbs span {
469 color: #777778;
470}
471
472.dark #breadcrumbs .breadcrumb:after {
473 color: #555555;
474}
475
476.dark #breadcrumbs .breadcrumb:last-child a {
477 color: #d0d0d0;
478}
479
480/* --- Topo Map --- */
481
482.dark #ov-topo2 svg #topo2-map {
483 stroke-width: 2px;
484 stroke: #37404d;
485 fill: #212c3a;
486}
487
488/* --- general topo-panel styling --- */
489
490.dark .topo2-p {
491 background-color: #2f313c;
492 color: #c2c2b7;
493}
494.dark .topo2-p svg {
495 background: #8e1e24;
496}
497
498.dark .topo2-p svg .glyph {
499 fill: #c2c2b7;
500}
501
502.dark .topo2-p hr {
503 background-color: #616876;
504}
505
506.dark .topo2-p div.actionBtn svg use.glyph {
507 fill: #5a7f96;
508}
509
510.dark #topo2-p-detail .header svg .glyph {
511 fill: #91292f;
512}
513
514.dark #toolbar-topo2-toolbar .tbar-row.right {
515 color: #666;
516}
517
518/* --- Topo Instance Panel --- */
519
520.dark #topo2-p-instance {
521 background-color: #2f313c;
522 color: #c2c2b7;
523 border: 1px solid #364144;
524
525}
526
527.dark #topo2-p-instance svg rect {
528 stroke-width: 0;
529 fill: #525660;
530}
531
532/* body of an instance */
533.dark #topo2-p-instance .online svg rect {
534 opacity: 1;
535 fill: #838992;
536}
537
538.dark #topo2-p-instance svg .glyph {
539 fill: #ddd;
540}
541.dark #topo2-p-instance .online svg .glyph {
542 fill: #fff;
543}
544.dark #topo2-p-instance .online svg .glyph.overlay {
545 fill: #c7c7c7;
546}
547
548/* offline */
549.dark #topo2-p-instance svg .badgeIcon {
550 opacity: 0.4;
551 fill: #939598;
552}
553
554/* online */
555.dark #topo2-p-instance .online svg .badgeIcon {
556 opacity: 1.0;
557 fill: #939598;
558}
559.dark #topo2-p-instance .online svg .badgeIcon.bird {
560 fill: #ffffff;
561}
562
563.dark #topo2-p-instance svg text {
564 text-anchor: left;
565 opacity: 0.5;
566 fill: #aaa;
567}
568
569.dark #topo2-p-instance .online svg text {
570 opacity: 1.0;
571 fill: #fff;
572}
573
574.dark #topo2-p-instance .onosInst.mastership {
575 opacity: 0.3;
576}
577.dark #topo2-p-instance .onosInst.mastership.affinity {
578 opacity: 1.0;
579}
580.dark #topo2-p-instance .onosInst.mastership.affinity svg rect {
581 filter: url(#blue-glow);
582}
583
584.dark.firefox #topo2-p-instance .onosInst.mastership.affinity svg rect {
585 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");
586}
587
588/* --- Topo Nodes --- */
589
590/* Device Nodes */
591
592/* note: device without the 'online' class is offline */
593.dark #ov-topo2 svg .node.device rect {
594 fill: #707070;
595}
596.dark #ov-topo2 svg .node.device text {
597 fill: #444;
598}
599.dark #ov-topo2 svg .node.device use {
600 fill: #eee;
601}
602
603.dark #ov-topo2 svg .node.device.online rect {
604 fill: #525660;
605}
606.dark #ov-topo2 svg .node.device.online text {
607 fill: #fff;
608}
609.dark #ov-topo2 svg .node.device.online use {
610 fill: #fff;
611}
612
613.dark #ov-topo2 svg .node.device.selected rect {
614 stroke-width: 2.0;
615 stroke: #009fdb;
616}
617
618.dark #ov-topo2 svg .node.sub-region rect {
619 fill: #525660;
620}
621
Simon Huntb3656d42017-04-07 18:15:35 -0700622.dark #ov-topo2 svg .node.sub-region text {
Simon Huntb3656d42017-04-07 18:15:35 -0700623}
624
Simon Hunt6e6e80b2017-04-03 12:03:41 -0700625.dark #ov-topo2 svg .node.sub-region use {
626 /* NOTE: this gets overridden programatically */
627 fill: #eeeeee;
628}
629
630.dark #ov-topo2 svg .node.peer-region rect {
631 fill: #525660;
632}
633
634/* Host Nodes */
635
636.dark #ov-topo2 svg .node.host {
637}
638
639.dark #ov-topo2 svg .node.host text {
640 stroke: none;
Steven Burrows1270c182017-09-14 10:14:58 +0100641 font-size: 13px;
Simon Hunt6e6e80b2017-04-03 12:03:41 -0700642 fill: #ad5781;
643}
644
645.dark #ov-topo2 svg .node.host circle {
646 stroke: #a3a596;
647 fill: #8f8272;
648}
Steven Burrows1270c182017-09-14 10:14:58 +0100649
650.dark #ov-topo2 svg .node.host rect {
651 fill: #525660;
652}
653
Simon Hunt6e6e80b2017-04-03 12:03:41 -0700654.dark #ov-topo2 svg .node.host.selected .hostIcon > circle {
655 stroke-width: 2.0;
656 stroke: #009fdb;
657}
658
659.dark #ov-topo2 svg .node.host use {
660 fill: #000;
661}
662
663
664/* --- Topo Links --- */
665.dark #ov-topo2 svg .link.not-permitted {
666 stroke: rgb(255, 60, 60);
667}
668
669/* Port traffic color visualization for Kbps, Mbps, and Gbps */
670/* .. values good for both light and dark themes */
671
672/* Primary, Secondary (optical too) colors good for both themes */
673
674/* Link Labels */
675.dark #ov-topo svg .linkLabel rect {
676 fill: #555;
677}
678
679.dark #ov-topo svg .linkLabel text {
680 fill: #eee;
681}
682
683/* Port Labels */
684
685.dark #ov-topo svg .portLabel rect {
686 fill: #222;
687}
688
689.dark #ov-topo svg .portLabel text {
690 fill: #eee;
691}
692
693/* Number of Links Labels */
694
695.dark #ov-topo text.numLinkText {
696 fill: #eee;
697}
698
699
700/* Sprite Layer */
701
702.dark #ov-topo2 svg #topo2-sprites .gold1 use {
703 stroke: #541;
704}
705.dark #ov-topo2 svg #topo2-sprites .gold1 text {
706 fill: #543;
707}
708
709.dark #ov-topo2 svg #topo2-sprites .blue1 use {
710 stroke: #445;
711}
712.dark #ov-topo2 svg #topo2-sprites .blue1 text {
713 fill: #446;
714}
715
716.dark #ov-topo2 svg #topo2-sprites .gray1 use {
717 stroke: #333;
718}
719.dark #ov-topo2 svg #topo2-sprites .gray1 text {
720 fill: #444;
721}
722
723/* fills */
724.dark #ov-topo2 svg #topo2-sprites use.fill-gray2 {
725 fill: #444;
726}
727
728.dark #ov-topo2 svg #topo2-sprites use.fill-blue2 {
729 fill: #447;
730}