blob: 2eb6a8e0f7643d9aa83d4051a9c6f53c1a5b880e [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 {
28 stroke-width: 2px;
29 stroke: #aaaaaa;
30 fill: transparent;
31}
32
Simon Huntac9e24f2014-11-12 10:12:21 -080033
Simon Hunt1a9eff92014-11-07 11:06:34 -080034/* NODES */
35
Simon Huntac9e24f2014-11-12 10:12:21 -080036#topo svg .node {
Simon Hunt99c13842014-11-06 18:23:12 -080037 cursor: pointer;
38}
39
Simon Huntac9e24f2014-11-12 10:12:21 -080040#topo svg .node.selected rect,
41#topo svg .node.selected circle {
42 filter: url(#blue-glow);
43}
44
45/* for debugging */
46#topo svg .node circle.debug {
47 fill: white;
48 stroke: red;
49}
50
51#topo svg .node text {
52 pointer-events: none;
53}
54
55/* Device Nodes */
56
57#topo svg .node.device {
58}
59
Simon Hunt56d51852014-11-09 13:03:35 -080060#topo svg .node.device rect {
Simon Hunt1a9eff92014-11-07 11:06:34 -080061 stroke-width: 1.5px;
62}
63
Simon Hunt56d51852014-11-09 13:03:35 -080064#topo svg .node.device.fixed rect {
Simon Hunt99c13842014-11-06 18:23:12 -080065 stroke-width: 1.5;
66 stroke: #ccc;
67}
68
Simon Huntbb282f52014-11-10 11:08:19 -080069/* note: device is offline without the 'online' class */
70#topo svg .node.device {
71 fill: #777;
72}
73
74#topo svg .node.device.switch.online {
Simon Hunt99c13842014-11-06 18:23:12 -080075 fill: #17f;
76}
77
Simon Huntbb282f52014-11-10 11:08:19 -080078#topo svg .node.device.roadm.online {
Simon Huntc7ee0662014-11-05 16:44:37 -080079 fill: #03c;
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 */
Simon Hunt7cd48f32014-11-09 23:42:50 -080083#topo svg .node.device text {
Simon Huntbb282f52014-11-10 11:08:19 -080084 fill: #aaa;
Simon Hunt99c13842014-11-06 18:23:12 -080085 font: 10pt sans-serif;
Simon Hunt99c13842014-11-06 18:23:12 -080086}
87
Simon Huntbb282f52014-11-10 11:08:19 -080088#topo svg .node.device.online text {
89 fill: white;
90}
91
Simon Huntac9e24f2014-11-12 10:12:21 -080092
93/* Host Nodes */
94
95#topo svg .node.host {
96 fill: #846;
97}
98
Simon Hunt7cd48f32014-11-09 23:42:50 -080099#topo svg .node.host text {
100 fill: #846;
101 font: 9pt sans-serif;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800102}
103
Simon Hunt1a9eff92014-11-07 11:06:34 -0800104
105/* LINKS */
106
Simon Hunt56d51852014-11-09 13:03:35 -0800107#topo svg .link {
Simon Hunt1a9eff92014-11-07 11:06:34 -0800108 opacity: .7;
109}
110
Thomas Vachuskae4cebaf2014-11-15 18:49:34 -0800111#topo svg .link.inactive {
112 opacity: .2;
113 stroke-dasharray: 8 4;
114}
115
Simon Hunta255a2c2014-11-13 22:29:35 -0800116#topo svg .link.primary {
117 stroke: #f11;
Simon Hunt7cd48f32014-11-09 23:42:50 -0800118 stroke-width: 6px;
Thomas Vachuska4830d392014-11-09 17:09:56 -0800119}
Simon Hunta255a2c2014-11-13 22:29:35 -0800120#topo svg .link.secondary {
121 stroke: rgba(255,100,100,0.5);
122 stroke-width: 4px;
123}
124#topo svg .link.animated {
125 stroke: #f11;
126 stroke-width: 10px;
127 stroke-dasharray: 8 8
128}
129
130#topo svg .link.primary.optical {
131 stroke: #74f;
132 stroke-width: 6px;
133}
134#topo svg .link.secondary.optical {
135 stroke: rgba(128,64,255,0.5);
136 stroke-width: 4px;
137}
138#topo svg .link.animated.optical {
139 stroke: #74f;
140 stroke-width: 10px;
141 stroke-dasharray: 8 8
142}
Thomas Vachuska4830d392014-11-09 17:09:56 -0800143
Simon Hunt61d04042014-11-11 17:27:16 -0800144
Simon Huntac9e24f2014-11-12 10:12:21 -0800145/* Fly-in details pane */
Simon Hunt61d04042014-11-11 17:27:16 -0800146
147#topo-detail {
148/* gets base CSS from .fpanel in floatPanel.css */
149}
150
Simon Hunt61d04042014-11-11 17:27:16 -0800151#topo-detail h2 {
152 margin: 8px 4px;
153 color: black;
154 vertical-align: middle;
155}
156
157#topo-detail h2 img {
158 height: 32px;
159 padding-right: 8px;
160 vertical-align: middle;
161}
162
163#topo-detail p, table {
164 margin: 4px 4px;
165}
166
167#topo-detail td.label {
168 font-style: italic;
169 color: #777;
170 padding-right: 12px;
171}
172
173#topo-detail td.value {
Simon Hunt61d04042014-11-11 17:27:16 -0800174}
175
Simon Huntb53e0682014-11-12 13:32:01 -0800176
Simon Huntd72bc702014-11-13 18:38:04 -0800177#topo-detail .actionBtn {
178 margin: 6px 12px;
179 padding: 2px 6px;
180 font-size: 9pt;
181 cursor: pointer;
182 width: 50%;
183 text-align: center;
184
185 /* theme specific... */
186 border: 1px solid #ddf;
187 color: #99f;
188}
189
190#topo-detail .actionBtn:hover {
191 /* theme specific... */
192 border: 1px solid #ddf;
193 background: #eef;
194 color: #77d;
195}
196
Simon Huntb53e0682014-11-12 13:32:01 -0800197
Simon Hunt61d04042014-11-11 17:27:16 -0800198#topo-detail hr {
199 height: 1px;
200 color: #ccc;
201 background-color: #ccc;
202 border: 0;
203}
204
Simon Hunta5e89142014-11-14 07:00:33 -0800205/* ONOS instance stuff */
206
207#topo-oibox {
208 width: 80px;
209}
210
211#topo-oibox .onosInst {
Simon Hunt9c15eca2014-11-15 18:37:59 -0800212 position: relative;
Simon Hunta5e89142014-11-14 07:00:33 -0800213 width: 80%;
214 left: 10%;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800215 height: 80px;
216 margin: 4px 0;
Simon Hunta5e89142014-11-14 07:00:33 -0800217 cursor: pointer;
218
219 /* theme-related */
220 color: #444;
221 background-color: #ccc;
Simon Hunt9c15eca2014-11-15 18:37:59 -0800222 border: 2px solid #aaa;
Simon Hunta5e89142014-11-14 07:00:33 -0800223}
224
Simon Hunta5e89142014-11-14 07:00:33 -0800225#topo-oibox .onosInst.online {
226 /* theme-related */
227 color: #113;
228 background-color: #bbf;
229 border: 2px solid #555;
230}
231
Simon Hunt9c15eca2014-11-15 18:37:59 -0800232#topo-oibox .onosInst .onosTitle {
233 text-align: center;
234 font-size: 11pt;
235 margin-top: 6px;
236 color: #888;
237}
238
239#topo-oibox .onosInst.online .onosTitle {
240 color: black;
241}
242
243#topo-oibox .onosInst img {
244 opacity: 0.5;
245}
246
247#topo-oibox .onosInst.online img {
248 opacity: 1.0;
249}
250
251#topo-oibox .onosInst img.ui {
252 opacity: 1;
253 position: absolute;
254 top: 3px;
255 right: 3px;
256 width: 20px;
257 height: 20px;
258}
259
Simon Hunt9462e8c2014-11-14 17:28:09 -0800260#topo-oibox .onosInst.mastership {
261 opacity: 0.3;
262}
263#topo-oibox .onosInst.mastership.affinity {
264 opacity: 1.0;
265}
266
267
268#topo svg .suppressed {
Simon Hunta5e89142014-11-14 07:00:33 -0800269 opacity: 0.2;
270}
271
Simon Hunt0c6d4192014-11-12 12:07:10 -0800272/* Web Socket Closed Mask (starts hidden) */
273
274#topo-mask {
275 display: none;
276 position: absolute;
277 top: 0;
278 left: 0;
279 width: 10000px;
280 height: 8000px;
281 z-index: 5000;
282 background-color: rgba(0,0,0,0.75);
283 padding: 60px;
284}
285
286#topo-mask p {
287 margin: 8px 20px;
288 color: #ddd;
289 font-size: 14pt;
290 font-style: italic;
291}
292