blob: 7ee73c6b4980f596002f864273269f9e0ef9dd64 [file] [log] [blame]
Simon Hunt195cb382014-11-03 17:50:51 -08001/*
2 * Copyright 2014 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
17/*
18 ONOS GUI -- Topology view -- CSS file
19
20 @author Simon Hunt
21 */
22
Simon Hunt56d51852014-11-09 13:03:35 -080023#topo svg #topo-bg {
Simon Hunt142d0032014-11-04 20:13:09 -080024 opacity: 0.5;
25}
26
Paul Greyson6cb8ca02014-11-12 18:09:02 -080027#topo #map {
Paul Greyson6cb8ca02014-11-12 18:09:02 -080028 fill: transparent;
29}
30
Simon Huntac9e24f2014-11-12 10:12:21 -080031
Simon Hunt7fa116d2014-11-17 14:16:55 -080032#topo svg .glyph {
Simon Hunt7fa116d2014-11-17 14:16:55 -080033 stroke: none;
34}
35
Simon Hunt1a9eff92014-11-07 11:06:34 -080036/* NODES */
37
Simon Huntac9e24f2014-11-12 10:12:21 -080038#topo svg .node {
Simon Hunt99c13842014-11-06 18:23:12 -080039 cursor: pointer;
40}
41
Simon Huntac9e24f2014-11-12 10:12:21 -080042#topo svg .node.selected rect,
43#topo svg .node.selected circle {
44 filter: url(#blue-glow);
45}
46
47/* for debugging */
48#topo svg .node circle.debug {
49 fill: white;
50 stroke: red;
51}
52
53#topo svg .node text {
54 pointer-events: none;
55}
56
57/* Device Nodes */
58
59#topo svg .node.device {
60}
61
Simon Hunt56d51852014-11-09 13:03:35 -080062#topo svg .node.device rect {
Simon Hunt1a9eff92014-11-07 11:06:34 -080063 stroke-width: 1.5px;
64}
65
Simon Hunt56d51852014-11-09 13:03:35 -080066#topo svg .node.device.fixed rect {
Simon Hunt99c13842014-11-06 18:23:12 -080067 stroke-width: 1.5;
Paul Greyson29cd58f2014-11-18 13:14:57 -080068}
69
70#topo .node text {
71 font-weight: 100;
Simon Hunt99c13842014-11-06 18:23:12 -080072}
73
Simon Huntbb282f52014-11-10 11:08:19 -080074/* note: device is offline without the 'online' class */
Simon Huntbb282f52014-11-10 11:08:19 -080075/* note: device is offline without the 'online' class */
Simon Hunt7cd48f32014-11-09 23:42:50 -080076#topo svg .node.device text {
Simon Hunt99c13842014-11-06 18:23:12 -080077 font: 10pt sans-serif;
Simon Hunt99c13842014-11-06 18:23:12 -080078}
79
Simon Huntac9e24f2014-11-12 10:12:21 -080080/* Host Nodes */
81
Simon Hunt7cd48f32014-11-09 23:42:50 -080082#topo svg .node.host text {
83 fill: #846;
Simon Hunt7fa116d2014-11-17 14:16:55 -080084 stroke: none;
Simon Hunt7cd48f32014-11-09 23:42:50 -080085 font: 9pt sans-serif;
Simon Hunt7cd48f32014-11-09 23:42:50 -080086}
87
Simon Hunt7fa116d2014-11-17 14:16:55 -080088svg .node.host circle {
89 fill: #c96;
90}
91
92#topo svg .node.host.bgpSpeaker circle {
93 fill: #853;
94}
Simon Hunt1a9eff92014-11-07 11:06:34 -080095
96/* LINKS */
97
Simon Hunt56d51852014-11-09 13:03:35 -080098#topo svg .link {
Simon Hunt1a9eff92014-11-07 11:06:34 -080099 opacity: .7;
100}
101
Thomas Vachuskae4cebaf2014-11-15 18:49:34 -0800102#topo svg .link.inactive {
103 opacity: .2;
104 stroke-dasharray: 8 4;
105}
106
Simon Hunta255a2c2014-11-13 22:29:35 -0800107#topo svg .link.primary {
Simon Hunt7cd48f32014-11-09 23:42:50 -0800108 stroke-width: 6px;
Thomas Vachuska4830d392014-11-09 17:09:56 -0800109}
Simon Hunta255a2c2014-11-13 22:29:35 -0800110#topo svg .link.secondary {
Simon Hunta255a2c2014-11-13 22:29:35 -0800111 stroke-width: 4px;
112}
113#topo svg .link.animated {
Simon Hunta255a2c2014-11-13 22:29:35 -0800114 stroke-width: 10px;
115 stroke-dasharray: 8 8
116}
117
118#topo svg .link.primary.optical {
Simon Hunta255a2c2014-11-13 22:29:35 -0800119 stroke-width: 6px;
120}
121#topo svg .link.secondary.optical {
Simon Hunta255a2c2014-11-13 22:29:35 -0800122 stroke-width: 4px;
123}
124#topo svg .link.animated.optical {
Simon Hunta255a2c2014-11-13 22:29:35 -0800125 stroke-width: 10px;
126 stroke-dasharray: 8 8
127}
Thomas Vachuska4830d392014-11-09 17:09:56 -0800128
Simon Hunte2575b62014-11-18 15:25:53 -0800129#topo svg .linkLabel rect {
130 fill: #eef;
131 stroke: blue;
132 stroke-width: 0.3;
133}
134#topo svg .linkLabel text {
135 text-anchor: middle;
136 fill: #a13d11;
137 stroke: none;
138 font-size: 8pt;
139}
Simon Hunt61d04042014-11-11 17:27:16 -0800140
Simon Huntac9e24f2014-11-12 10:12:21 -0800141/* Fly-in details pane */
Simon Hunt61d04042014-11-11 17:27:16 -0800142
143#topo-detail {
144/* gets base CSS from .fpanel in floatPanel.css */
145}
146
Simon Hunt61d04042014-11-11 17:27:16 -0800147#topo-detail h2 {
148 margin: 8px 4px;
149 color: black;
150 vertical-align: middle;
151}
152
153#topo-detail h2 img {
154 height: 32px;
155 padding-right: 8px;
156 vertical-align: middle;
157}
158
159#topo-detail p, table {
160 margin: 4px 4px;
161}
162
163#topo-detail td.label {
164 font-style: italic;
165 color: #777;
166 padding-right: 12px;
167}
168
169#topo-detail td.value {
Simon Hunt61d04042014-11-11 17:27:16 -0800170}
171
Simon Huntb53e0682014-11-12 13:32:01 -0800172
Simon Huntd72bc702014-11-13 18:38:04 -0800173#topo-detail .actionBtn {
174 margin: 6px 12px;
175 padding: 2px 6px;
176 font-size: 9pt;
177 cursor: pointer;
178 width: 50%;
179 text-align: center;
Paul Greyson29cd58f2014-11-18 13:14:57 -0800180 border-width: 1px;
181 borer-style: solid;
Simon Huntd72bc702014-11-13 18:38:04 -0800182}
183
184#topo-detail .actionBtn:hover {
Paul Greyson29cd58f2014-11-18 13:14:57 -0800185 border-width: 1px;
186 border-style: solid;
Simon Huntd72bc702014-11-13 18:38:04 -0800187}
188
Simon Huntb53e0682014-11-12 13:32:01 -0800189
Simon Hunt61d04042014-11-11 17:27:16 -0800190#topo-detail hr {
191 height: 1px;
192 color: #ccc;
193 background-color: #ccc;
194 border: 0;
195}
196
Simon Hunta5e89142014-11-14 07:00:33 -0800197/* ONOS instance stuff */
198
199#topo-oibox {
200 width: 80px;
201}
202
203#topo-oibox .onosInst {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800204 position: relative;
Simon Hunta5e89142014-11-14 07:00:33 -0800205 width: 80%;
206 left: 10%;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800207 height: 80px;
208 margin: 4px 0;
Simon Hunta5e89142014-11-14 07:00:33 -0800209 cursor: pointer;
Paul Greyson29cd58f2014-11-18 13:14:57 -0800210 border-width: 2px;
211 border-style: solid;
Simon Hunta5e89142014-11-14 07:00:33 -0800212}
213
Simon Hunt9c15eca2014-11-15 18:37:59 -0800214#topo-oibox .onosInst .onosTitle {
215 text-align: center;
216 font-size: 11pt;
217 margin-top: 6px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800218}
219
220#topo-oibox .onosInst img {
221 opacity: 0.5;
222}
223
224#topo-oibox .onosInst.online img {
225 opacity: 1.0;
226}
227
228#topo-oibox .onosInst img.ui {
229 opacity: 1;
230 position: absolute;
231 top: 3px;
232 right: 3px;
233 width: 20px;
234 height: 20px;
235}
236
Simon Hunt9462e8c2014-11-14 17:28:09 -0800237#topo-oibox .onosInst.mastership {
238 opacity: 0.3;
239}
240#topo-oibox .onosInst.mastership.affinity {
241 opacity: 1.0;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800242 box-shadow: 0 2px 8px #33e;
Simon Hunt9462e8c2014-11-14 17:28:09 -0800243}
244
245
246#topo svg .suppressed {
Simon Hunta5e89142014-11-14 07:00:33 -0800247 opacity: 0.2;
248}
249
Simon Hunt0c6d4192014-11-12 12:07:10 -0800250/* Web Socket Closed Mask (starts hidden) */
251
252#topo-mask {
253 display: none;
254 position: absolute;
255 top: 0;
256 left: 0;
257 width: 10000px;
258 height: 8000px;
259 z-index: 5000;
260 background-color: rgba(0,0,0,0.75);
261 padding: 60px;
262}
263
264#topo-mask p {
265 margin: 8px 20px;
266 color: #ddd;
267 font-size: 14pt;
268 font-style: italic;
269}
270