ONOS-4359: continued work on theming UI
- topo view: map and instance panel re-theming.
Change-Id: I8e5b0eda61b78b7d54593d84efccb16c54c1611e
(cherry picked from commit 2d147f6)
diff --git a/web/gui/src/main/webapp/app/view/topo/topo-theme.css b/web/gui/src/main/webapp/app/view/topo/topo-theme.css
index 587fcf6..052ef61 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo-theme.css
+++ b/web/gui/src/main/webapp/app/view/topo/topo-theme.css
@@ -21,40 +21,25 @@
/* --- Base SVG Layer --- */
.light #ov-topo svg {
- background-color: #fff;
-}
-.dark #ov-topo svg {
- background-color: #2b2b2b;
+ background-color: #f4f4f4;
}
/* --- "No Devices" Layer --- */
.light #ov-topo svg .noDevsBird {
- fill: #ecd;
-}
-.dark #ov-topo svg .noDevsBird {
- fill: #683434;
+ fill: #db7773;
}
.light #ov-topo svg #topo-noDevsLayer text {
- fill: #dde;
-}
-.dark #ov-topo svg #topo-noDevsLayer text {
- fill: #3b3b4f;
+ fill: #7e9aa8;
}
/* --- Topo Map --- */
-#ov-topo svg #topo-map {
- stroke-width: 2px;
- fill: transparent;
-}
-
.light #ov-topo svg #topo-map {
- stroke: #ddd;
-}
-.dark #ov-topo svg #topo-map {
- stroke: #444;
+ stroke-width: 2px;
+ stroke: #f4f4f4;
+ fill: #e5e5e6;
}
/* --- general topo-panel styling --- */
@@ -62,30 +47,18 @@
.light .topo-p svg .glyph {
fill: #222;
}
-.dark .topo-p svg .glyph {
- fill: #ddd;
-}
.light .topo-p svg .glyph.overlay {
fill: #fff;
}
-.dark .topo-p svg .glyph.overlay {
- fill: #222;
-}
.light .topo-p h2 {
color: black;
}
-.dark .topo-p h2 {
- color: #ddd;
-}
.light .topo-p h3 {
color: black;
}
-.dark .topo-p h3 {
- color: #ddd;
-}
.topo-p td.label {
/* works for both light and dark themes ... */
@@ -98,85 +71,70 @@
background-color: #ccc;
color: #ccc;
}
-.dark .topo-p hr {
- background-color: #888;
- color: #888;
-}
/* --- Topo Instance Panel --- */
#topo-p-instance svg rect {
- stroke-width: 3.5;
+ stroke-width: 0;
}
#topo-p-instance .online svg rect {
opacity: 1;
}
.light #topo-p-instance svg rect {
- fill: #ccc;
- stroke: #aaa;
+ fill: #fbfbfb;
}
+/* body of an instance */
.light #topo-p-instance .online svg rect {
- fill: #9cf;
- stroke: #555;
-}
-.dark #topo-p-instance svg rect {
- fill: #666;
- stroke: #222;
-}
-.dark #topo-p-instance .online svg rect {
- fill: #9cf;
- stroke: #999;
+ fill: #fbfbfb;
}
#topo-p-instance svg .glyph {
- fill: #888;
- fill-rule: evenodd;
+ fill: #fff;
}
#topo-p-instance .online svg .glyph {
- fill: #000;
+ fill: #fff;
}
+/* offline */
#topo-p-instance svg .badgeIcon {
- fill-rule: evenodd;
opacity: 0.4;
}
.light #topo-p-instance svg .badgeIcon {
- fill: #777;
-}
-.dark #topo-p-instance svg .badgeIcon {
- fill: #555;
+ fill: #939598;
}
+/* online */
#topo-p-instance .online svg .badgeIcon {
opacity: 1.0;
}
.light #topo-p-instance .online svg .badgeIcon {
- fill: #fff;
+ fill: #939598;
}
-.dark #topo-p-instance .online svg .badgeIcon {
- fill: #fff;
+.light #topo-p-instance .online svg .badgeIcon.bird {
+ fill: #ffffff;
+}
+
+#topo-p-instance svg .readyBadge {
+ visibility: hidden;
+}
+#topo-p-instance .ready svg .readyBadge {
+ visibility: visible;
}
#topo-p-instance svg text {
- text-anchor: middle;
- opacity: 0.3;
+ text-anchor: left;
+ opacity: 0.5;
}
#topo-p-instance .online svg text {
opacity: 1.0;
}
.light #topo-p-instance svg text {
- fill: #444;
+ fill: #3c3a3a;
}
.light #topo-p-instance .online svg text {
- fill: #eee;
-}
-.dark #topo-p-instance svg text {
- fill: #aaa;
-}
-.dark #topo-p-instance .online svg text {
- fill: #ccc;
+ fill: #3c3a3a;
}
#topo-p-instance .onosInst.mastership {
@@ -188,15 +146,10 @@
.light #topo-p-instance .onosInst.mastership.affinity svg rect {
filter: url(#blue-glow);
}
-.dark #topo-p-instance .onosInst.mastership.affinity svg rect {
- filter: url(#yellow-glow);
-}
+
.light.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
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");
}
-.dark.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
- 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");
-}
/* --- Topo Nodes --- */
@@ -213,19 +166,19 @@
fill: #f90;
filter: url(#blue-glow);
}
-.dark #ov-topo svg .node.selected rect,
-.dark #ov-topo svg .node.selected circle {
- fill: #f90;
- filter: url(#yellow-glow);
-}
+/*.dark #ov-topo svg .node.selected rect,*/
+/*.dark #ov-topo svg .node.selected circle {*/
+ /*fill: #f90;*/
+ /*filter: url(#yellow-glow);*/
+/*}*/
.light.firefox #ov-topo svg .node.selected rect,
.light.firefox #ov-topo svg .node.selected circle {
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");
}
-.dark.firefox #ov-topo svg .node.selected rect,
-.dark.firefox #ov-topo svg .node.selected circle {
- 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");
-}
+/*.dark.firefox #ov-topo svg .node.selected rect,*/
+/*.dark.firefox #ov-topo svg .node.selected circle {*/
+ /*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");*/
+/*}*/
/* Device Nodes */
@@ -239,17 +192,11 @@
.light #ov-topo svg .node.device.fixed rect {
stroke: #aaa;
}
-.dark #ov-topo svg .node.device.fixed rect {
- stroke: #999;
-}
/* note: device is offline without the 'online' class */
.light #ov-topo svg .node.device {
fill: #777;
}
-.dark #ov-topo svg .node.device {
- fill: #555;
-}
.light #ov-topo svg .node.device rect {
stroke: #666;
@@ -261,14 +208,10 @@
.light #ov-topo svg .node.device.online {
fill: #6e7fa3;
}
-.dark #ov-topo svg .node.device.online {
- fill: #4E5C7F;
-}
/* note: device is offline without the 'online' class */
#ov-topo svg .node.device text {
fill: #bbb;
- font: 10pt sans-serif;
}
#ov-topo svg .node.device.online text {
@@ -340,25 +283,15 @@
.light #ov-topo svg .node.host text {
fill: #846;
}
-.dark #ov-topo svg .node.host text {
- fill: #BB809D;
-}
.light svg .node.host circle {
stroke: #000;
fill: #edb;
}
-.dark svg .node.host circle {
- stroke: #eee;
- fill: #B2A180;
-}
.light svg .node.host .svgIcon {
fill: #444;
}
-.dark svg .node.host .svgIcon {
- fill: #222;
-}
/* --- Topo Links --- */
@@ -374,25 +307,25 @@
.light #ov-topo svg .link.enhanced {
filter: url(#blue-glow);
}
-.dark #ov-topo svg .link.selected,
-.dark #ov-topo svg .link.enhanced {
- filter: url(#yellow-glow);
-}
+/*.dark #ov-topo svg .link.selected,*/
+/*.dark #ov-topo svg .link.enhanced {*/
+ /*filter: url(#yellow-glow);*/
+/*}*/
.light.firefox #ov-topo svg .link.selected,
.light.firefox #ov-topo svg .link.enhanced {
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");
}
-.dark.firefox #ov-topo svg .link.selected,
-.dark.firefox #ov-topo svg .link.enhanced {
- 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");
+/*.dark.firefox #ov-topo svg .link.selected,*/
+/*.dark.firefox #ov-topo svg .link.enhanced {*/
+ /*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");*/
-}
+/*}*/
#ov-topo svg .link.inactive {
opacity: .5;
stroke-dasharray: 8 4;
}
-/* FIXME: Review for not-permitted links */
+/* TODO: Review for not-permitted links */
#ov-topo svg .link.not-permitted {
stroke: rgb(255,0,0);
stroke-width: 5.0;
@@ -405,9 +338,6 @@
.light #ov-topo svg .link.secondary {
stroke: rgba(0,153,51,0.5);
}
-.dark #ov-topo svg .link.secondary {
- stroke: rgba(121,231,158,0.5);
-}
/* Port traffic color visualization for Kbps, Mbps, and Gbps */
@@ -415,37 +345,21 @@
stroke: rgb(0,153,51);
stroke-width: 5.0;
}
-.dark #ov-topo svg .link.secondary.port-traffic-Kbps {
- stroke: rgb(98, 153, 118);
- stroke-width: 5.0;
-}
.light #ov-topo svg .link.secondary.port-traffic-Mbps {
stroke: rgb(128,145,27);
stroke-width: 6.5;
}
-.dark #ov-topo svg .link.secondary.port-traffic-Mbps {
- stroke: rgb(91, 109, 54);
- stroke-width: 6.5;
-}
.light #ov-topo svg .link.secondary.port-traffic-Gbps {
stroke: rgb(255, 137, 3);
stroke-width: 8.0;
}
-.dark #ov-topo svg .link.secondary.port-traffic-Gbps {
- stroke: rgb(174, 119, 55);
- stroke-width: 8.0;
-}
.light #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
stroke: rgb(183, 30, 21);
stroke-width: 8.0;
}
-.dark #ov-topo svg .link.secondary.port-traffic-Gbps-choked {
- stroke: rgb(127, 40, 39);
- stroke-width: 8.0;
-}
@@ -470,9 +384,6 @@
.light #ov-topo svg .link.primary {
stroke: #ffA300;
}
-.dark #ov-topo svg .link.primary {
- stroke: #D58E0F;
-}
#ov-topo svg .link.secondary.optical {
stroke-width: 4px;
@@ -480,9 +391,6 @@
.light #ov-topo svg .link.secondary.optical {
stroke: rgba(128,64,255,0.5);
}
-.dark #ov-topo svg .link.secondary.optical {
- stroke: rgba(164,139,215,0.5);
-}
#ov-topo svg .link.primary.optical {
stroke-width: 6px;
@@ -490,9 +398,6 @@
.light #ov-topo svg .link.primary.optical {
stroke: #74f;
}
-.dark #ov-topo svg .link.primary.optical {
- stroke: #7352CD;
-}
/* Link Labels */
#ov-topo svg .linkLabel rect {
@@ -501,16 +406,10 @@
.light #ov-topo svg .linkLabel rect {
fill: #eee;
}
-.dark #ov-topo svg .linkLabel rect {
- fill: #555;
-}
.light #ov-topo svg .linkLabel text {
fill: #444;
}
-.dark #ov-topo svg .linkLabel text {
- fill: #eee;
-}
/* Port Labels */
@@ -520,16 +419,10 @@
.light #ov-topo svg .portLabel rect {
fill: #eee;
}
-.dark #ov-topo svg .portLabel rect {
- fill: #222;
-}
.light #ov-topo svg .portLabel text {
fill: #444;
}
-.dark #ov-topo svg .portLabel text {
- fill: #eee;
-}
/* Number of Links Labels */
@@ -537,9 +430,6 @@
.light #ov-topo text.numLinkText {
fill: #444;
}
-.dark #ov-topo text.numLinkText {
- fill: #eee;
-}
/* ------------------------------------------------- */
/* Sprite Layer */
@@ -548,60 +438,31 @@
stroke: #fda;
fill: none;
}
-.dark #ov-topo svg #topo-sprites .gold1 use {
- stroke: #541;
- fill: none;
-}
.light #ov-topo svg #topo-sprites .gold1 text {
fill: #eda;
}
-.dark #ov-topo svg #topo-sprites .gold1 text {
- fill: #543;
-}
.light #ov-topo svg #topo-sprites .blue1 use {
stroke: #bbd;
fill: none;
}
-.dark #ov-topo svg #topo-sprites .blue1 use {
- stroke: #445;
- fill: none;
-}
.light #ov-topo svg #topo-sprites .blue1 text {
fill: #cce;
}
-.dark #ov-topo svg #topo-sprites .blue1 text {
- fill: #446;
-}
.light #ov-topo svg #topo-sprites .gray1 use {
stroke: #ccc;
fill: none;
}
-.dark #ov-topo svg #topo-sprites .gray1 use {
- stroke: #333;
- fill: none;
-}
.light #ov-topo svg #topo-sprites .gray1 text {
fill: #ddd;
}
-.dark #ov-topo svg #topo-sprites .gray1 text {
- fill: #444;
-}
/* fills */
.light #ov-topo svg #topo-sprites use.fill-gray2 {
fill: #eee;
}
-.dark #ov-topo svg #topo-sprites use.fill-gray2 {
- fill: #444;
-}
.light #ov-topo svg #topo-sprites use.fill-blue2 {
fill: #bce;
}
-.dark #ov-topo svg #topo-sprites use.fill-blue2 {
- fill: #447;
-}
-
-/* -- MISC -- */