blob: 3f87d476ad2fe7aa07c05e9e2f9d02a1f5d61b93 [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 {
47 filter: url(#blue-glow);
48}
49
50/* for debugging */
51#topo svg .node circle.debug {
52 fill: white;
53 stroke: red;
54}
55
56#topo svg .node text {
57 pointer-events: none;
58}
59
60/* Device Nodes */
61
62#topo svg .node.device {
63}
64
Simon Hunt56d51852014-11-09 13:03:35 -080065#topo svg .node.device rect {
Simon Hunt1a9eff92014-11-07 11:06:34 -080066 stroke-width: 1.5px;
67}
68
Simon Hunt56d51852014-11-09 13:03:35 -080069#topo svg .node.device.fixed rect {
Simon Hunt99c13842014-11-06 18:23:12 -080070 stroke-width: 1.5;
Thomas Vachuska89543292014-11-19 11:28:33 -080071 stroke: #ccc;
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 */
Thomas Vachuska89543292014-11-19 11:28:33 -080075#topo svg .node.device {
76 fill: #777;
77}
78
79#topo svg .node.device.switch.online {
80 fill: #17f;
81}
82
83#topo svg .node.device.roadm.online {
84 fill: #03c;
85}
86
Simon Huntbb282f52014-11-10 11:08:19 -080087/* note: device is offline without the 'online' class */
Simon Hunt7cd48f32014-11-09 23:42:50 -080088#topo svg .node.device text {
Thomas Vachuska89543292014-11-19 11:28:33 -080089 fill: #aaa;
Simon Hunt99c13842014-11-06 18:23:12 -080090 font: 10pt sans-serif;
Simon Hunt99c13842014-11-06 18:23:12 -080091}
92
Thomas Vachuska89543292014-11-19 11:28:33 -080093#topo svg .node.device.online text {
94 fill: white;
95}
96
97
Simon Huntac9e24f2014-11-12 10:12:21 -080098/* Host Nodes */
99
Thomas Vachuska89543292014-11-19 11:28:33 -0800100#topo svg .node.host {
101 stroke: #000;
102}
103
Simon Hunt7cd48f32014-11-09 23:42:50 -0800104#topo svg .node.host text {
105 fill: #846;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800106 stroke: none;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800107 font: 9pt sans-serif;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800108}
109
Simon Hunt7fa116d2014-11-17 14:16:55 -0800110svg .node.host circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800111 stroke: #000;
112 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800113}
114
115#topo svg .node.host.bgpSpeaker circle {
Thomas Vachuska89543292014-11-19 11:28:33 -0800116 stroke: #000;
117 fill: #ddd;
118}
119
120#topo svg .node.host.router circle {
121 stroke: #000;
122 fill: #ddd;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800123}
Simon Hunt1a9eff92014-11-07 11:06:34 -0800124
125/* LINKS */
126
Simon Hunt56d51852014-11-09 13:03:35 -0800127#topo svg .link {
Simon Hunt1a9eff92014-11-07 11:06:34 -0800128 opacity: .7;
129}
130
Thomas Vachuskae4cebaf2014-11-15 18:49:34 -0800131#topo svg .link.inactive {
132 opacity: .2;
133 stroke-dasharray: 8 4;
134}
135
Simon Hunta255a2c2014-11-13 22:29:35 -0800136#topo svg .link.primary {
Thomas Vachuska89543292014-11-19 11:28:33 -0800137 stroke: #f11;
Thomas Vachuskacd2920c2014-11-19 14:49:55 -0800138 stroke-width: 4px;
Thomas Vachuska4830d392014-11-09 17:09:56 -0800139}
Simon Hunta255a2c2014-11-13 22:29:35 -0800140#topo svg .link.secondary {
Thomas Vachuska89543292014-11-19 11:28:33 -0800141 stroke: rgba(255,100,100,0.5);
Thomas Vachuskacd2920c2014-11-19 14:49:55 -0800142 stroke-width: 3px;
Simon Hunta255a2c2014-11-13 22:29:35 -0800143}
144#topo svg .link.animated {
Thomas Vachuska89543292014-11-19 11:28:33 -0800145 stroke: #f11;
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800146 stroke-width: 6px;
Simon Hunta255a2c2014-11-13 22:29:35 -0800147 stroke-dasharray: 8 8
148}
149
150#topo svg .link.primary.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800151 stroke: #74f;
Simon Hunta255a2c2014-11-13 22:29:35 -0800152 stroke-width: 6px;
153}
154#topo svg .link.secondary.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800155 stroke: rgba(128,64,255,0.5);
Simon Hunta255a2c2014-11-13 22:29:35 -0800156 stroke-width: 4px;
157}
158#topo svg .link.animated.optical {
Thomas Vachuska89543292014-11-19 11:28:33 -0800159 stroke: #74f;
Simon Hunta255a2c2014-11-13 22:29:35 -0800160 stroke-width: 10px;
161 stroke-dasharray: 8 8
162}
Thomas Vachuska4830d392014-11-09 17:09:56 -0800163
Simon Hunte2575b62014-11-18 15:25:53 -0800164#topo svg .linkLabel rect {
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800165 stroke: #999;
166 stroke-width: 1.2px;
167 fill: #eee;
168 stroke: none;
Simon Hunte2575b62014-11-18 15:25:53 -0800169}
170#topo svg .linkLabel text {
171 text-anchor: middle;
Thomas Vachuska20322ff2014-11-19 16:22:25 -0800172 stroke: #777;
173 stroke-width: 0.1px;
174 font-size: 9pt;
Simon Hunte2575b62014-11-18 15:25:53 -0800175}
Simon Hunt61d04042014-11-11 17:27:16 -0800176
Simon Huntac9e24f2014-11-12 10:12:21 -0800177/* Fly-in details pane */
Simon Hunt61d04042014-11-11 17:27:16 -0800178
179#topo-detail {
180/* gets base CSS from .fpanel in floatPanel.css */
181}
182
Simon Hunt61d04042014-11-11 17:27:16 -0800183#topo-detail h2 {
184 margin: 8px 4px;
185 color: black;
186 vertical-align: middle;
187}
188
189#topo-detail h2 img {
190 height: 32px;
191 padding-right: 8px;
192 vertical-align: middle;
193}
194
195#topo-detail p, table {
196 margin: 4px 4px;
197}
198
199#topo-detail td.label {
200 font-style: italic;
201 color: #777;
202 padding-right: 12px;
203}
204
205#topo-detail td.value {
Simon Hunt61d04042014-11-11 17:27:16 -0800206}
207
Simon Huntb53e0682014-11-12 13:32:01 -0800208
Simon Huntd72bc702014-11-13 18:38:04 -0800209#topo-detail .actionBtn {
210 margin: 6px 12px;
211 padding: 2px 6px;
212 font-size: 9pt;
213 cursor: pointer;
214 width: 50%;
215 text-align: center;
Thomas Vachuska89543292014-11-19 11:28:33 -0800216
217 /* theme specific... */
218 border: 1px solid #ddf;
219 color: #99f;
Simon Huntd72bc702014-11-13 18:38:04 -0800220}
221
222#topo-detail .actionBtn:hover {
Thomas Vachuska89543292014-11-19 11:28:33 -0800223 /* theme specific... */
224 border: 1px solid #ddf;
225 background: #eef;
226 color: #77d;
Simon Huntd72bc702014-11-13 18:38:04 -0800227}
228
Simon Huntb53e0682014-11-12 13:32:01 -0800229
Simon Hunt61d04042014-11-11 17:27:16 -0800230#topo-detail hr {
231 height: 1px;
232 color: #ccc;
233 background-color: #ccc;
234 border: 0;
235}
236
Simon Hunta5e89142014-11-14 07:00:33 -0800237/* ONOS instance stuff */
238
239#topo-oibox {
Simon Hunt9b228cb2014-11-19 13:18:57 -0800240 width: 120px;
Simon Hunta5e89142014-11-14 07:00:33 -0800241}
242
243#topo-oibox .onosInst {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800244 position: relative;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800245 width: 88%;
246 left: 4%;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800247 height: 80px;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800248 margin: 8px 0;
Simon Hunta5e89142014-11-14 07:00:33 -0800249 cursor: pointer;
Thomas Vachuska89543292014-11-19 11:28:33 -0800250
Simon Hunt9b228cb2014-11-19 13:18:57 -0800251 -moz-border-radius: 12px;
252 border-radius: 12px;
253
Thomas Vachuska89543292014-11-19 11:28:33 -0800254 /* theme-related */
255 color: #444;
256 background-color: #ccc;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800257 border: 4px solid #aaa;
Thomas Vachuska89543292014-11-19 11:28:33 -0800258}
259
260#topo-oibox .onosInst.online {
261 /* theme-related */
262 color: #113;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800263 background-color: #9cf;
264 border: 4px solid #357;
Simon Hunta5e89142014-11-14 07:00:33 -0800265}
266
Simon Hunt9c15eca2014-11-15 18:37:59 -0800267#topo-oibox .onosInst .onosTitle {
268 text-align: center;
Simon Hunt9b228cb2014-11-19 13:18:57 -0800269 font-size: 10pt;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800270 margin-top: 6px;
Thomas Vachuska89543292014-11-19 11:28:33 -0800271 color: #888;
272}
273
274#topo-oibox .onosInst.online .onosTitle {
275 color: black;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800276}
277
278#topo-oibox .onosInst img {
279 opacity: 0.5;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800280 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800281}
282
283#topo-oibox .onosInst.online img {
284 opacity: 1.0;
Simon Huntfcfb46c2014-11-19 12:53:38 -0800285 padding: 3px;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800286}
287
288#topo-oibox .onosInst img.ui {
289 opacity: 1;
290 position: absolute;
291 top: 3px;
292 right: 3px;
293 width: 20px;
294 height: 20px;
295}
296
Simon Hunt9462e8c2014-11-14 17:28:09 -0800297#topo-oibox .onosInst.mastership {
298 opacity: 0.3;
299}
300#topo-oibox .onosInst.mastership.affinity {
301 opacity: 1.0;
Simon Hunt7fa116d2014-11-17 14:16:55 -0800302 box-shadow: 0 2px 8px #33e;
Simon Hunt9462e8c2014-11-14 17:28:09 -0800303}
304
305
306#topo svg .suppressed {
Simon Hunta5e89142014-11-14 07:00:33 -0800307 opacity: 0.2;
308}
309
Simon Hunt0c6d4192014-11-12 12:07:10 -0800310/* Web Socket Closed Mask (starts hidden) */
311
312#topo-mask {
313 display: none;
314 position: absolute;
315 top: 0;
316 left: 0;
317 width: 10000px;
318 height: 8000px;
319 z-index: 5000;
320 background-color: rgba(0,0,0,0.75);
321 padding: 60px;
322}
323
324#topo-mask p {
325 margin: 8px 20px;
326 color: #ddd;
327 font-size: 14pt;
328 font-style: italic;
329}
330