blob: fd88ccb8a3b3a006a15f1ccc3cf4de0606e5b65d [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 {
Thomas Vachuska89543292014-11-19 11:28:33 -080028 stroke-width: 2px;
Thomas Vachuskacd2920c2014-11-19 14:49:55 -080029 stroke: #eee;
Paul Greyson6cb8ca02014-11-12 18:09:02 -080030 fill: transparent;
31}
32
Simon Huntc72967b2014-11-20 09:21:42 -080033/* TODO: move glyphs into framework */
Simon Huntac9e24f2014-11-12 10:12:21 -080034
Simon Hunt95908012014-11-20 10:20:26 -080035#topo-oibox svg .glyphIcon,
Simon Huntc72967b2014-11-20 09:21:42 -080036#topo svg .glyphIcon {
37 fill: black;
38 stroke: none;
39 fill-rule: evenodd;
40}
41#topo svg .glyphIcon rect {
42 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -080043 stroke: none;
44}
45
Simon Hunt1a9eff92014-11-07 11:06:34 -080046/* NODES */
47
Simon Huntac9e24f2014-11-12 10:12:21 -080048#topo svg .node {
Simon Hunt99c13842014-11-06 18:23:12 -080049 cursor: pointer;
50}
51
Simon Huntac9e24f2014-11-12 10:12:21 -080052#topo svg .node.selected rect,
53#topo svg .node.selected circle {
Thomas Vachuskaece59ee2014-11-19 19:06:11 -080054 fill: #ffA300;
Simon Huntac9e24f2014-11-12 10:12:21 -080055 filter: url(#blue-glow);
56}
57
58/* for debugging */
59#topo svg .node circle.debug {
60 fill: white;
61 stroke: red;
62}
63
64#topo svg .node text {
65 pointer-events: none;
66}
67
68/* Device Nodes */
69
70#topo svg .node.device {
71}
72
Simon Hunt56d51852014-11-09 13:03:35 -080073#topo svg .node.device rect {
Simon Hunt1a9eff92014-11-07 11:06:34 -080074 stroke-width: 1.5px;
75}
76
Simon Hunt56d51852014-11-09 13:03:35 -080077#topo svg .node.device.fixed rect {
Simon Hunt99c13842014-11-06 18:23:12 -080078 stroke-width: 1.5;
Thomas Vachuska89543292014-11-19 11:28:33 -080079 stroke: #ccc;
Simon Hunt99c13842014-11-06 18:23:12 -080080}
81
Simon Huntbb282f52014-11-10 11:08:19 -080082/* note: device is offline without the 'online' class */
Thomas Vachuska89543292014-11-19 11:28:33 -080083#topo svg .node.device {
84 fill: #777;
85}
86
87#topo svg .node.device.switch.online {
88 fill: #17f;
89}
90
91#topo svg .node.device.roadm.online {
Thomas Vachuskaece59ee2014-11-19 19:06:11 -080092 fill: #335a9a;
Thomas Vachuska89543292014-11-19 11:28:33 -080093}
94
Simon Huntbb282f52014-11-10 11:08:19 -080095/* note: device is offline without the 'online' class */
Simon Hunt7cd48f32014-11-09 23:42:50 -080096#topo svg .node.device text {
Thomas Vachuska89543292014-11-19 11:28:33 -080097 fill: #aaa;
Simon Hunt99c13842014-11-06 18:23:12 -080098 font: 10pt sans-serif;
Simon Hunt99c13842014-11-06 18:23:12 -080099}
100
Thomas Vachuska89543292014-11-19 11:28:33 -0800101#topo svg .node.device.online text {
102 fill: white;
103}
104
105
Simon Huntac9e24f2014-11-12 10:12:21 -0800106/* Host Nodes */
107
Thomas Vachuska89543292014-11-19 11:28:33 -0800108#topo svg .node.host {
109 stroke: #000;
110}
111
Simon Hunt7cd48f32014-11-09 23:42:50 -0800112#topo svg .node.host text {
113 fill: #846;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800114 stroke: none;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800115 font: 9pt sans-serif;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800116}
117
Simon Hunt7fa116d2014-11-17 14:16:55 -0800118svg .node.host circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800119 stroke: #000;
120 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800121}
122
Simon Hunt1a9eff92014-11-07 11:06:34 -0800123/* LINKS */
124
Simon Hunt56d51852014-11-09 13:03:35 -0800125#topo svg .link {
Simon Hunt1a9eff92014-11-07 11:06:34 -0800126 opacity: .7;
Thomas Vachuskaa3148a72014-11-19 21:38:35 -0800127 stroke-width: 1.2px;
Simon Hunt1a9eff92014-11-07 11:06:34 -0800128}
129
Thomas Vachuskae4cebaf2014-11-15 18:49:34 -0800130#topo svg .link.inactive {
131 opacity: .2;
132 stroke-dasharray: 8 4;
133}
134
Simon Hunta255a2c2014-11-13 22:29:35 -0800135#topo svg .link.secondary {
Thomas Vachuskaa3148a72014-11-19 21:38:35 -0800136 stroke: rgba(0,153,51,0.5);
Thomas Vachuskacd2920c2014-11-19 14:49:55 -0800137 stroke-width: 3px;
Simon Hunta255a2c2014-11-13 22:29:35 -0800138}
Thomas Vachuska5fedb7a2014-11-20 00:55:08 -0800139#topo svg .link.primary {
140 stroke: #ffA300;
141 stroke-width: 4px;
142}
Simon Hunta255a2c2014-11-13 22:29:35 -0800143#topo svg .link.animated {
Thomas Vachuskaa3148a72014-11-19 21:38:35 -0800144 stroke: #ffA300;
Simon Hunta255a2c2014-11-13 22:29:35 -0800145}
146
Simon Hunta255a2c2014-11-13 22:29:35 -0800147#topo svg .link.secondary.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800148 stroke: rgba(128,64,255,0.5);
Simon Hunta255a2c2014-11-13 22:29:35 -0800149 stroke-width: 4px;
150}
Thomas Vachuska5fedb7a2014-11-20 00:55:08 -0800151#topo svg .link.primary.optical {
152 stroke: #74f;
153 stroke-width: 6px;
154}
Simon Hunta255a2c2014-11-13 22:29:35 -0800155#topo svg .link.animated.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800156 stroke: #74f;
Simon Hunta255a2c2014-11-13 22:29:35 -0800157 stroke-width: 10px;
158 stroke-dasharray: 8 8
159}
Thomas Vachuska4830d392014-11-09 17:09:56 -0800160
Simon Hunte2575b62014-11-18 15:25:53 -0800161#topo svg .linkLabel rect {
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800162 fill: #eee;
163 stroke: none;
Simon Hunte2575b62014-11-18 15:25:53 -0800164}
165#topo svg .linkLabel text {
166 text-anchor: middle;
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800167 stroke: #777;
168 stroke-width: 0.1px;
169 font-size: 9pt;
Simon Hunte2575b62014-11-18 15:25:53 -0800170}
Simon Hunt61d04042014-11-11 17:27:16 -0800171
Simon Huntac9e24f2014-11-12 10:12:21 -0800172/* Fly-in details pane */
Simon Hunt61d04042014-11-11 17:27:16 -0800173
174#topo-detail {
175/* gets base CSS from .fpanel in floatPanel.css */
176}
177
Simon Hunt61d04042014-11-11 17:27:16 -0800178#topo-detail h2 {
179 margin: 8px 4px;
180 color: black;
181 vertical-align: middle;
182}
183
184#topo-detail h2 img {
185 height: 32px;
186 padding-right: 8px;
187 vertical-align: middle;
188}
189
190#topo-detail p, table {
191 margin: 4px 4px;
192}
193
194#topo-detail td.label {
195 font-style: italic;
196 color: #777;
197 padding-right: 12px;
198}
199
200#topo-detail td.value {
Simon Hunt61d04042014-11-11 17:27:16 -0800201}
202
Simon Huntb53e0682014-11-12 13:32:01 -0800203
Simon Huntd72bc702014-11-13 18:38:04 -0800204#topo-detail .actionBtn {
205 margin: 6px 12px;
206 padding: 2px 6px;
207 font-size: 9pt;
208 cursor: pointer;
209 width: 50%;
210 text-align: center;
Thomas Vachuska89543292014-11-19 11:28:33 -0800211
212 /* theme specific... */
213 border: 1px solid #ddf;
214 color: #99f;
Simon Huntd72bc702014-11-13 18:38:04 -0800215}
216
217#topo-detail .actionBtn:hover {
Thomas Vachuska89543292014-11-19 11:28:33 -0800218 /* theme specific... */
219 border: 1px solid #ddf;
220 background: #eef;
221 color: #77d;
Simon Huntd72bc702014-11-13 18:38:04 -0800222}
223
Simon Huntb53e0682014-11-12 13:32:01 -0800224
Simon Hunt61d04042014-11-11 17:27:16 -0800225#topo-detail hr {
226 height: 1px;
227 color: #ccc;
228 background-color: #ccc;
229 border: 0;
230}
231
Simon Hunta5e89142014-11-14 07:00:33 -0800232/* ONOS instance stuff */
233
234#topo-oibox {
Simon Hunt9b228cb2014-11-19 13:18:57 -0800235 width: 120px;
Simon Hunta5e89142014-11-14 07:00:33 -0800236}
237
238#topo-oibox .onosInst {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800239 position: relative;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800240 width: 88%;
241 left: 4%;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800242 height: 80px;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800243 margin: 8px 0;
Simon Hunta5e89142014-11-14 07:00:33 -0800244 cursor: pointer;
Thomas Vachuska89543292014-11-19 11:28:33 -0800245
Simon Hunt9b228cb2014-11-19 13:18:57 -0800246 -moz-border-radius: 12px;
247 border-radius: 12px;
248
Thomas Vachuska89543292014-11-19 11:28:33 -0800249 /* theme-related */
250 color: #444;
251 background-color: #ccc;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800252 border: 4px solid #aaa;
Thomas Vachuska89543292014-11-19 11:28:33 -0800253}
254
255#topo-oibox .onosInst.online {
256 /* theme-related */
257 color: #113;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800258 background-color: #9cf;
259 border: 4px solid #357;
Simon Hunta5e89142014-11-14 07:00:33 -0800260}
261
Simon Hunt9c15eca2014-11-15 18:37:59 -0800262#topo-oibox .onosInst .onosTitle {
263 text-align: center;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800264 font-size: 10pt;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800265 margin-top: 6px;
Thomas Vachuska89543292014-11-19 11:28:33 -0800266 color: #888;
267}
268
269#topo-oibox .onosInst.online .onosTitle {
270 color: black;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800271}
272
Simon Hunt95908012014-11-20 10:20:26 -0800273#topo-oibox .onosInst svg .glyphIcon {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800274 opacity: 0.5;
Simon Hunt95908012014-11-20 10:20:26 -0800275 fill: black;
276 stroke: none;
277 fill-rule: evenodd;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800278}
Simon Hunt95908012014-11-20 10:20:26 -0800279#topo-oibox .onosInst.online svg .glyphIcon {
280 opacity: 1;
281 fill: black;
282 stroke: none;
283 fill-rule: evenodd;
284}
285
286/*#topo-oibox .onosInst img {*/
287 /*opacity: 0.5;*/
288 /*padding: 3px;*/
289/*}*/
Simon Hunt9c15eca2014-11-15 18:37:59 -0800290
291#topo-oibox .onosInst.online img {
292 opacity: 1.0;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800293 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800294}
295
296#topo-oibox .onosInst img.ui {
297 opacity: 1;
298 position: absolute;
299 top: 3px;
300 right: 3px;
301 width: 20px;
302 height: 20px;
303}
304
Simon Hunt9462e8c2014-11-14 17:28:09 -0800305#topo-oibox .onosInst.mastership {
306 opacity: 0.3;
307}
308#topo-oibox .onosInst.mastership.affinity {
309 opacity: 1.0;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800310 box-shadow: 0 2px 8px #33e;
Simon Hunt9462e8c2014-11-14 17:28:09 -0800311}
312
313
314#topo svg .suppressed {
Simon Hunta5e89142014-11-14 07:00:33 -0800315 opacity: 0.2;
316}
317
Simon Hunt0c6d4192014-11-12 12:07:10 -0800318/* Web Socket Closed Mask (starts hidden) */
319
320#topo-mask {
321 display: none;
322 position: absolute;
323 top: 0;
324 left: 0;
325 width: 10000px;
326 height: 8000px;
327 z-index: 5000;
328 background-color: rgba(0,0,0,0.75);
329 padding: 60px;
330}
331
332#topo-mask p {
333 margin: 8px 20px;
334 color: #ddd;
335 font-size: 14pt;
336 font-style: italic;
337}
338