blob: 6c0b3b6f0c44aff328f557629bcd01fa73161cff [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 Huntc72967b2014-11-20 09:21:42 -080035#topo svg .glyphIcon {
36 fill: black;
37 stroke: none;
38 fill-rule: evenodd;
39}
40#topo svg .glyphIcon rect {
41 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -080042 stroke: none;
43}
44
Simon Hunt1a9eff92014-11-07 11:06:34 -080045/* NODES */
46
Simon Huntac9e24f2014-11-12 10:12:21 -080047#topo svg .node {
Simon Hunt99c13842014-11-06 18:23:12 -080048 cursor: pointer;
49}
50
Simon Huntac9e24f2014-11-12 10:12:21 -080051#topo svg .node.selected rect,
52#topo svg .node.selected circle {
Thomas Vachuskaece59ee2014-11-19 19:06:11 -080053 fill: #ffA300;
Simon Huntac9e24f2014-11-12 10:12:21 -080054 filter: url(#blue-glow);
55}
56
57/* for debugging */
58#topo svg .node circle.debug {
59 fill: white;
60 stroke: red;
61}
62
63#topo svg .node text {
64 pointer-events: none;
65}
66
67/* Device Nodes */
68
69#topo svg .node.device {
70}
71
Simon Hunt56d51852014-11-09 13:03:35 -080072#topo svg .node.device rect {
Simon Hunt1a9eff92014-11-07 11:06:34 -080073 stroke-width: 1.5px;
74}
75
Simon Hunt56d51852014-11-09 13:03:35 -080076#topo svg .node.device.fixed rect {
Simon Hunt99c13842014-11-06 18:23:12 -080077 stroke-width: 1.5;
Thomas Vachuska89543292014-11-19 11:28:33 -080078 stroke: #ccc;
Simon Hunt99c13842014-11-06 18:23:12 -080079}
80
Simon Huntbb282f52014-11-10 11:08:19 -080081/* note: device is offline without the 'online' class */
Thomas Vachuska89543292014-11-19 11:28:33 -080082#topo svg .node.device {
83 fill: #777;
84}
85
86#topo svg .node.device.switch.online {
87 fill: #17f;
88}
89
90#topo svg .node.device.roadm.online {
Thomas Vachuskaece59ee2014-11-19 19:06:11 -080091 fill: #335a9a;
Thomas Vachuska89543292014-11-19 11:28:33 -080092}
93
Simon Huntbb282f52014-11-10 11:08:19 -080094/* note: device is offline without the 'online' class */
Simon Hunt7cd48f32014-11-09 23:42:50 -080095#topo svg .node.device text {
Thomas Vachuska89543292014-11-19 11:28:33 -080096 fill: #aaa;
Simon Hunt99c13842014-11-06 18:23:12 -080097 font: 10pt sans-serif;
Simon Hunt99c13842014-11-06 18:23:12 -080098}
99
Thomas Vachuska89543292014-11-19 11:28:33 -0800100#topo svg .node.device.online text {
101 fill: white;
102}
103
104
Simon Huntac9e24f2014-11-12 10:12:21 -0800105/* Host Nodes */
106
Thomas Vachuska89543292014-11-19 11:28:33 -0800107#topo svg .node.host {
108 stroke: #000;
109}
110
Simon Hunt7cd48f32014-11-09 23:42:50 -0800111#topo svg .node.host text {
112 fill: #846;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800113 stroke: none;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800114 font: 9pt sans-serif;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800115}
116
Simon Hunt7fa116d2014-11-17 14:16:55 -0800117svg .node.host circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800118 stroke: #000;
119 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800120}
121
122#topo svg .node.host.bgpSpeaker circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800123 stroke: #000;
124 fill: #ddd;
125}
126
127#topo svg .node.host.router circle {
128 stroke: #000;
129 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800130}
Simon Hunt1a9eff92014-11-07 11:06:34 -0800131
132/* LINKS */
133
Simon Hunt56d51852014-11-09 13:03:35 -0800134#topo svg .link {
Simon Hunt1a9eff92014-11-07 11:06:34 -0800135 opacity: .7;
Thomas Vachuskaa3148a72014-11-19 21:38:35 -0800136 stroke-width: 1.2px;
Simon Hunt1a9eff92014-11-07 11:06:34 -0800137}
138
Thomas Vachuskae4cebaf2014-11-15 18:49:34 -0800139#topo svg .link.inactive {
140 opacity: .2;
141 stroke-dasharray: 8 4;
142}
143
Simon Hunta255a2c2014-11-13 22:29:35 -0800144#topo svg .link.secondary {
Thomas Vachuskaa3148a72014-11-19 21:38:35 -0800145 stroke: rgba(0,153,51,0.5);
Thomas Vachuskacd2920c2014-11-19 14:49:55 -0800146 stroke-width: 3px;
Simon Hunta255a2c2014-11-13 22:29:35 -0800147}
Thomas Vachuska5fedb7a2014-11-20 00:55:08 -0800148#topo svg .link.primary {
149 stroke: #ffA300;
150 stroke-width: 4px;
151}
Simon Hunta255a2c2014-11-13 22:29:35 -0800152#topo svg .link.animated {
Thomas Vachuskaa3148a72014-11-19 21:38:35 -0800153 stroke: #ffA300;
Simon Hunta255a2c2014-11-13 22:29:35 -0800154}
155
Simon Hunta255a2c2014-11-13 22:29:35 -0800156#topo svg .link.secondary.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800157 stroke: rgba(128,64,255,0.5);
Simon Hunta255a2c2014-11-13 22:29:35 -0800158 stroke-width: 4px;
159}
Thomas Vachuska5fedb7a2014-11-20 00:55:08 -0800160#topo svg .link.primary.optical {
161 stroke: #74f;
162 stroke-width: 6px;
163}
Simon Hunta255a2c2014-11-13 22:29:35 -0800164#topo svg .link.animated.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800165 stroke: #74f;
Simon Hunta255a2c2014-11-13 22:29:35 -0800166 stroke-width: 10px;
167 stroke-dasharray: 8 8
168}
Thomas Vachuska4830d392014-11-09 17:09:56 -0800169
Simon Hunte2575b62014-11-18 15:25:53 -0800170#topo svg .linkLabel rect {
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800171 fill: #eee;
172 stroke: none;
Simon Hunte2575b62014-11-18 15:25:53 -0800173}
174#topo svg .linkLabel text {
175 text-anchor: middle;
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800176 stroke: #777;
177 stroke-width: 0.1px;
178 font-size: 9pt;
Simon Hunte2575b62014-11-18 15:25:53 -0800179}
Simon Hunt61d04042014-11-11 17:27:16 -0800180
Simon Huntac9e24f2014-11-12 10:12:21 -0800181/* Fly-in details pane */
Simon Hunt61d04042014-11-11 17:27:16 -0800182
183#topo-detail {
184/* gets base CSS from .fpanel in floatPanel.css */
185}
186
Simon Hunt61d04042014-11-11 17:27:16 -0800187#topo-detail h2 {
188 margin: 8px 4px;
189 color: black;
190 vertical-align: middle;
191}
192
193#topo-detail h2 img {
194 height: 32px;
195 padding-right: 8px;
196 vertical-align: middle;
197}
198
199#topo-detail p, table {
200 margin: 4px 4px;
201}
202
203#topo-detail td.label {
204 font-style: italic;
205 color: #777;
206 padding-right: 12px;
207}
208
209#topo-detail td.value {
Simon Hunt61d04042014-11-11 17:27:16 -0800210}
211
Simon Huntb53e0682014-11-12 13:32:01 -0800212
Simon Huntd72bc702014-11-13 18:38:04 -0800213#topo-detail .actionBtn {
214 margin: 6px 12px;
215 padding: 2px 6px;
216 font-size: 9pt;
217 cursor: pointer;
218 width: 50%;
219 text-align: center;
Thomas Vachuska89543292014-11-19 11:28:33 -0800220
221 /* theme specific... */
222 border: 1px solid #ddf;
223 color: #99f;
Simon Huntd72bc702014-11-13 18:38:04 -0800224}
225
226#topo-detail .actionBtn:hover {
Thomas Vachuska89543292014-11-19 11:28:33 -0800227 /* theme specific... */
228 border: 1px solid #ddf;
229 background: #eef;
230 color: #77d;
Simon Huntd72bc702014-11-13 18:38:04 -0800231}
232
Simon Huntb53e0682014-11-12 13:32:01 -0800233
Simon Hunt61d04042014-11-11 17:27:16 -0800234#topo-detail hr {
235 height: 1px;
236 color: #ccc;
237 background-color: #ccc;
238 border: 0;
239}
240
Simon Hunta5e89142014-11-14 07:00:33 -0800241/* ONOS instance stuff */
242
243#topo-oibox {
Simon Hunt9b228cb2014-11-19 13:18:57 -0800244 width: 120px;
Simon Hunta5e89142014-11-14 07:00:33 -0800245}
246
247#topo-oibox .onosInst {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800248 position: relative;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800249 width: 88%;
250 left: 4%;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800251 height: 80px;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800252 margin: 8px 0;
Simon Hunta5e89142014-11-14 07:00:33 -0800253 cursor: pointer;
Thomas Vachuska89543292014-11-19 11:28:33 -0800254
Simon Hunt9b228cb2014-11-19 13:18:57 -0800255 -moz-border-radius: 12px;
256 border-radius: 12px;
257
Thomas Vachuska89543292014-11-19 11:28:33 -0800258 /* theme-related */
259 color: #444;
260 background-color: #ccc;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800261 border: 4px solid #aaa;
Thomas Vachuska89543292014-11-19 11:28:33 -0800262}
263
264#topo-oibox .onosInst.online {
265 /* theme-related */
266 color: #113;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800267 background-color: #9cf;
268 border: 4px solid #357;
Simon Hunta5e89142014-11-14 07:00:33 -0800269}
270
Simon Hunt9c15eca2014-11-15 18:37:59 -0800271#topo-oibox .onosInst .onosTitle {
272 text-align: center;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800273 font-size: 10pt;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800274 margin-top: 6px;
Thomas Vachuska89543292014-11-19 11:28:33 -0800275 color: #888;
276}
277
278#topo-oibox .onosInst.online .onosTitle {
279 color: black;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800280}
281
282#topo-oibox .onosInst img {
283 opacity: 0.5;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800284 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800285}
286
287#topo-oibox .onosInst.online img {
288 opacity: 1.0;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800289 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800290}
291
292#topo-oibox .onosInst img.ui {
293 opacity: 1;
294 position: absolute;
295 top: 3px;
296 right: 3px;
297 width: 20px;
298 height: 20px;
299}
300
Simon Hunt9462e8c2014-11-14 17:28:09 -0800301#topo-oibox .onosInst.mastership {
302 opacity: 0.3;
303}
304#topo-oibox .onosInst.mastership.affinity {
305 opacity: 1.0;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800306 box-shadow: 0 2px 8px #33e;
Simon Hunt9462e8c2014-11-14 17:28:09 -0800307}
308
309
310#topo svg .suppressed {
Simon Hunta5e89142014-11-14 07:00:33 -0800311 opacity: 0.2;
312}
313
Simon Hunt0c6d4192014-11-12 12:07:10 -0800314/* Web Socket Closed Mask (starts hidden) */
315
316#topo-mask {
317 display: none;
318 position: absolute;
319 top: 0;
320 left: 0;
321 width: 10000px;
322 height: 8000px;
323 z-index: 5000;
324 background-color: rgba(0,0,0,0.75);
325 padding: 60px;
326}
327
328#topo-mask p {
329 margin: 8px 20px;
330 color: #ddd;
331 font-size: 14pt;
332 font-style: italic;
333}
334