blob: 40d2f8b8aab9db69cc2cf8528cd54f7631073882 [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 Huntac9e24f2014-11-12 10:12:21 -080033
Simon Hunt7fa116d2014-11-17 14:16:55 -080034#topo svg .glyph {
Thomas Vachuska89543292014-11-19 11:28:33 -080035 fill: white;
Simon Hunt7fa116d2014-11-17 14:16:55 -080036 stroke: none;
37}
38
Simon Hunt1a9eff92014-11-07 11:06:34 -080039/* NODES */
40
Simon Huntac9e24f2014-11-12 10:12:21 -080041#topo svg .node {
Simon Hunt99c13842014-11-06 18:23:12 -080042 cursor: pointer;
43}
44
Simon Huntac9e24f2014-11-12 10:12:21 -080045#topo svg .node.selected rect,
46#topo svg .node.selected circle {
Thomas Vachuskaece59ee2014-11-19 19:06:11 -080047 fill: #ffA300;
Simon Huntac9e24f2014-11-12 10:12:21 -080048 filter: url(#blue-glow);
49}
50
51/* for debugging */
52#topo svg .node circle.debug {
53 fill: white;
54 stroke: red;
55}
56
57#topo svg .node text {
58 pointer-events: none;
59}
60
61/* Device Nodes */
62
63#topo svg .node.device {
64}
65
Simon Hunt56d51852014-11-09 13:03:35 -080066#topo svg .node.device rect {
Simon Hunt1a9eff92014-11-07 11:06:34 -080067 stroke-width: 1.5px;
68}
69
Simon Hunt56d51852014-11-09 13:03:35 -080070#topo svg .node.device.fixed rect {
Simon Hunt99c13842014-11-06 18:23:12 -080071 stroke-width: 1.5;
Thomas Vachuska89543292014-11-19 11:28:33 -080072 stroke: #ccc;
Simon Hunt99c13842014-11-06 18:23:12 -080073}
74
Simon Huntbb282f52014-11-10 11:08:19 -080075/* note: device is offline without the 'online' class */
Thomas Vachuska89543292014-11-19 11:28:33 -080076#topo svg .node.device {
77 fill: #777;
78}
79
80#topo svg .node.device.switch.online {
81 fill: #17f;
82}
83
84#topo svg .node.device.roadm.online {
Thomas Vachuskaece59ee2014-11-19 19:06:11 -080085 fill: #335a9a;
Thomas Vachuska89543292014-11-19 11:28:33 -080086}
87
Simon Huntbb282f52014-11-10 11:08:19 -080088/* note: device is offline without the 'online' class */
Simon Hunt7cd48f32014-11-09 23:42:50 -080089#topo svg .node.device text {
Thomas Vachuska89543292014-11-19 11:28:33 -080090 fill: #aaa;
Simon Hunt99c13842014-11-06 18:23:12 -080091 font: 10pt sans-serif;
Simon Hunt99c13842014-11-06 18:23:12 -080092}
93
Thomas Vachuska89543292014-11-19 11:28:33 -080094#topo svg .node.device.online text {
95 fill: white;
96}
97
98
Simon Huntac9e24f2014-11-12 10:12:21 -080099/* Host Nodes */
100
Thomas Vachuska89543292014-11-19 11:28:33 -0800101#topo svg .node.host {
102 stroke: #000;
103}
104
Simon Hunt7cd48f32014-11-09 23:42:50 -0800105#topo svg .node.host text {
106 fill: #846;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800107 stroke: none;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800108 font: 9pt sans-serif;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800109}
110
Simon Hunt7fa116d2014-11-17 14:16:55 -0800111svg .node.host circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800112 stroke: #000;
113 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800114}
115
116#topo svg .node.host.bgpSpeaker circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800117 stroke: #000;
118 fill: #ddd;
119}
120
121#topo svg .node.host.router circle {
122 stroke: #000;
123 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800124}
Simon Hunt1a9eff92014-11-07 11:06:34 -0800125
126/* LINKS */
127
Simon Hunt56d51852014-11-09 13:03:35 -0800128#topo svg .link {
Simon Hunt1a9eff92014-11-07 11:06:34 -0800129 opacity: .7;
130}
131
Thomas Vachuskae4cebaf2014-11-15 18:49:34 -0800132#topo svg .link.inactive {
133 opacity: .2;
134 stroke-dasharray: 8 4;
135}
136
Simon Hunta255a2c2014-11-13 22:29:35 -0800137#topo svg .link.primary {
Thomas Vachuska89543292014-11-19 11:28:33 -0800138 stroke: #f11;
Thomas Vachuskacd2920c2014-11-19 14:49:55 -0800139 stroke-width: 4px;
Thomas Vachuska4830d392014-11-09 17:09:56 -0800140}
Simon Hunta255a2c2014-11-13 22:29:35 -0800141#topo svg .link.secondary {
Thomas Vachuska89543292014-11-19 11:28:33 -0800142 stroke: rgba(255,100,100,0.5);
Thomas Vachuskacd2920c2014-11-19 14:49:55 -0800143 stroke-width: 3px;
Simon Hunta255a2c2014-11-13 22:29:35 -0800144}
145#topo svg .link.animated {
Thomas Vachuska89543292014-11-19 11:28:33 -0800146 stroke: #f11;
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800147 stroke-width: 6px;
Simon Hunta255a2c2014-11-13 22:29:35 -0800148 stroke-dasharray: 8 8
149}
150
151#topo svg .link.primary.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800152 stroke: #74f;
Simon Hunta255a2c2014-11-13 22:29:35 -0800153 stroke-width: 6px;
154}
155#topo svg .link.secondary.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800156 stroke: rgba(128,64,255,0.5);
Simon Hunta255a2c2014-11-13 22:29:35 -0800157 stroke-width: 4px;
158}
159#topo svg .link.animated.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800160 stroke: #74f;
Simon Hunta255a2c2014-11-13 22:29:35 -0800161 stroke-width: 10px;
162 stroke-dasharray: 8 8
163}
Thomas Vachuska4830d392014-11-09 17:09:56 -0800164
Simon Hunte2575b62014-11-18 15:25:53 -0800165#topo svg .linkLabel rect {
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800166 stroke: #999;
167 stroke-width: 1.2px;
168 fill: #eee;
169 stroke: none;
Simon Hunte2575b62014-11-18 15:25:53 -0800170}
171#topo svg .linkLabel text {
172 text-anchor: middle;
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800173 stroke: #777;
174 stroke-width: 0.1px;
175 font-size: 9pt;
Simon Hunte2575b62014-11-18 15:25:53 -0800176}
Simon Hunt61d04042014-11-11 17:27:16 -0800177
Simon Huntac9e24f2014-11-12 10:12:21 -0800178/* Fly-in details pane */
Simon Hunt61d04042014-11-11 17:27:16 -0800179
180#topo-detail {
181/* gets base CSS from .fpanel in floatPanel.css */
182}
183
Simon Hunt61d04042014-11-11 17:27:16 -0800184#topo-detail h2 {
185 margin: 8px 4px;
186 color: black;
187 vertical-align: middle;
188}
189
190#topo-detail h2 img {
191 height: 32px;
192 padding-right: 8px;
193 vertical-align: middle;
194}
195
196#topo-detail p, table {
197 margin: 4px 4px;
198}
199
200#topo-detail td.label {
201 font-style: italic;
202 color: #777;
203 padding-right: 12px;
204}
205
206#topo-detail td.value {
Simon Hunt61d04042014-11-11 17:27:16 -0800207}
208
Simon Huntb53e0682014-11-12 13:32:01 -0800209
Simon Huntd72bc702014-11-13 18:38:04 -0800210#topo-detail .actionBtn {
211 margin: 6px 12px;
212 padding: 2px 6px;
213 font-size: 9pt;
214 cursor: pointer;
215 width: 50%;
216 text-align: center;
Thomas Vachuska89543292014-11-19 11:28:33 -0800217
218 /* theme specific... */
219 border: 1px solid #ddf;
220 color: #99f;
Simon Huntd72bc702014-11-13 18:38:04 -0800221}
222
223#topo-detail .actionBtn:hover {
Thomas Vachuska89543292014-11-19 11:28:33 -0800224 /* theme specific... */
225 border: 1px solid #ddf;
226 background: #eef;
227 color: #77d;
Simon Huntd72bc702014-11-13 18:38:04 -0800228}
229
Simon Huntb53e0682014-11-12 13:32:01 -0800230
Simon Hunt61d04042014-11-11 17:27:16 -0800231#topo-detail hr {
232 height: 1px;
233 color: #ccc;
234 background-color: #ccc;
235 border: 0;
236}
237
Simon Hunta5e89142014-11-14 07:00:33 -0800238/* ONOS instance stuff */
239
240#topo-oibox {
Simon Hunt9b228cb2014-11-19 13:18:57 -0800241 width: 120px;
Simon Hunta5e89142014-11-14 07:00:33 -0800242}
243
244#topo-oibox .onosInst {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800245 position: relative;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800246 width: 88%;
247 left: 4%;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800248 height: 80px;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800249 margin: 8px 0;
Simon Hunta5e89142014-11-14 07:00:33 -0800250 cursor: pointer;
Thomas Vachuska89543292014-11-19 11:28:33 -0800251
Simon Hunt9b228cb2014-11-19 13:18:57 -0800252 -moz-border-radius: 12px;
253 border-radius: 12px;
254
Thomas Vachuska89543292014-11-19 11:28:33 -0800255 /* theme-related */
256 color: #444;
257 background-color: #ccc;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800258 border: 4px solid #aaa;
Thomas Vachuska89543292014-11-19 11:28:33 -0800259}
260
261#topo-oibox .onosInst.online {
262 /* theme-related */
263 color: #113;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800264 background-color: #9cf;
265 border: 4px solid #357;
Simon Hunta5e89142014-11-14 07:00:33 -0800266}
267
Simon Hunt9c15eca2014-11-15 18:37:59 -0800268#topo-oibox .onosInst .onosTitle {
269 text-align: center;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800270 font-size: 10pt;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800271 margin-top: 6px;
Thomas Vachuska89543292014-11-19 11:28:33 -0800272 color: #888;
273}
274
275#topo-oibox .onosInst.online .onosTitle {
276 color: black;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800277}
278
279#topo-oibox .onosInst img {
280 opacity: 0.5;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800281 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800282}
283
284#topo-oibox .onosInst.online img {
285 opacity: 1.0;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800286 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800287}
288
289#topo-oibox .onosInst img.ui {
290 opacity: 1;
291 position: absolute;
292 top: 3px;
293 right: 3px;
294 width: 20px;
295 height: 20px;
296}
297
Simon Hunt9462e8c2014-11-14 17:28:09 -0800298#topo-oibox .onosInst.mastership {
299 opacity: 0.3;
300}
301#topo-oibox .onosInst.mastership.affinity {
302 opacity: 1.0;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800303 box-shadow: 0 2px 8px #33e;
Simon Hunt9462e8c2014-11-14 17:28:09 -0800304}
305
306
307#topo svg .suppressed {
Simon Hunta5e89142014-11-14 07:00:33 -0800308 opacity: 0.2;
309}
310
Simon Hunt0c6d4192014-11-12 12:07:10 -0800311/* Web Socket Closed Mask (starts hidden) */
312
313#topo-mask {
314 display: none;
315 position: absolute;
316 top: 0;
317 left: 0;
318 width: 10000px;
319 height: 8000px;
320 z-index: 5000;
321 background-color: rgba(0,0,0,0.75);
322 padding: 60px;
323}
324
325#topo-mask p {
326 margin: 8px 20px;
327 color: #ddd;
328 font-size: 14pt;
329 font-style: italic;
330}
331