blob: 9e8948d06e036a29012040d5710a9a4a958e93b5 [file] [log] [blame]
kumaran.m3b4814a2020-05-01 19:48:54 +05301/*
2 Copyright 2020 TATA ELXSI
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 Author: KUMARAN M (kumaran.m@tataelxsi.co.in), RAJESH S (rajesh.s@tataelxsi.co.in), BARATH KUMAR R (barath.r@tataelxsi.co.in)
17 */
18/** Styles for the application **/
19@import "../../assets/scss/mixins/mixin";
20@import "../../assets/scss/variable";
21$customnavbar-padding-x: ($spacer / 0.5) !default;
22* {
23 outline: 0;
24}
Barath Kumar R208bef22020-07-07 12:28:04 +053025button[type="submit"]:focus,
26.sidebar-body button[type="button"]:focus {
kumaran.m3b4814a2020-05-01 19:48:54 +053027 @include box-shadow(0, 0, 0, 0.2rem, lighten($primary, 50%) !important);
28}
Barath Kumar R208bef22020-07-07 12:28:04 +053029.btn-danger:focus {
kumaran.m3b4814a2020-05-01 19:48:54 +053030 @include box-shadow(0, 0, 0, 0.2rem, lighten($danger, 30%) !important);
31}
32body,
33.list-overflow,
34.scroll-box,
35.smarttable-style,
36.modal-body-custom-height,
Barath Kumar R208bef22020-07-07 12:28:04 +053037.layout-wrapper,
38.CodeMirror-vscrollbar,
39.ng-sidebar,
40.runninginstances .popover-body {
kumaran.m3b4814a2020-05-01 19:48:54 +053041 &::-webkit-scrollbar {
42 @include wh-value(10px, null);
43 }
44 &::-webkit-scrollbar-thumb {
45 background-clip: content-box;
46 @include border(all, 3, solid, transparent);
47 @include roundedCorners(7);
48 @include box-shadow(0, 0, 0, 10px, rgba($black, 0.8), inset);
49 }
50 &::-webkit-scrollbar-button {
51 @include wh-value(0, 0);
52 @include flexbox(none, null, null, null, null, null);
53 }
54 &::-webkit-scrollbar-corner {
55 @include background(null, transparent, null, null, null);
56 }
57}
58body {
59 @include font-family("Roboto");
60 @include background(null, $theme-bg-color, null, null, null);
61 overflow-x: hidden;
62 .osm-logo {
63 @include wh-value(100px, auto);
64 }
65 .bg-light {
66 @include background(null, $theme-bg-color !important, null, null, null);
67 }
68 a {
69 color: $primary;
70 &:hover,
71 &:focus {
72 text-decoration: none;
73 }
74 }
75 .badge {
76 @include line-height(normal);
77 &.badge-pill {
78 @include padding-percentage-value(0.2em, 0.6em, 0.2em, 0.6em);
79 }
80 }
81 button {
82 outline: none;
83 @include box-shadow(0, 0, 0, 0, transparent);
84 &:hover,
85 &:focus,
86 &:active {
87 outline: none;
88 @include box-shadow(0, 0, 0, 0, transparent !important);
89 }
90 &.btn-primary,
91 &.btn-default,
92 &.btn-warning,
93 &.btn-outline-primary:hover,
94 &.btn-outline-warning:hover {
95 color: $white;
96 &:hover,
97 &:focus,
98 &:not(:disabled):not(.disabled):active {
99 color: $white;
100 @include background(null, $primary, null, null, null);
101 border-color: $primary;
102 }
103 &:disabled {
104 cursor: not-allowed;
105 }
106 }
107 }
108 .row {
109 margin-left: 0;
110 margin-right: 0;
111 }
112 .navbar {
113 @include padding-percentage-value(
114 $navbar-padding-y,
115 $customnavbar-padding-x,
116 $navbar-padding-y,
117 $customnavbar-padding-x
118 );
119 }
120 .form-control {
121 @include roundedCorners(4);
122 @include font(null, 12px, null);
123 &::placeholder {
124 color: $gray-400;
125 }
126 }
127 .modal-dialog {
128 max-width: 600px;
129 }
130 .header-style {
131 @include font(null, 1.2rem, 700);
132 color: $primary;
133 @include line-height(1.25);
134 }
135 .cursor-default {
136 cursor: default;
137 }
138 .cursor-pointer {
139 cursor: pointer;
140 }
141 .mr-top-5 {
142 @include margin-value-percentage(5px, auto, auto, auto);
143 }
144 .padLeft0 {
145 padding-left: 0px;
146 }
147 .padRight0 {
148 padding-right: 0px;
149 }
150 .mandatory-label {
151 @include font(null, 10px, null);
152 }
153 .dropzone {
154 min-height: 50px;
155 @include flexbox(table, null, null, null, null, null);
156 @include wh-value(100%, 50px);
157 @include border(all, 1, dashed, $secondary);
158 cursor: pointer;
159 .text-wrapper {
160 @include padding-value(5, 5, 5, 5);
161 @include flexbox(table-cell, null, null, null, null, null);
162 vertical-align: middle;
163 }
164 .file-drop-title {
165 @include font(null, 16px, null);
166 }
167 }
168 .close {
169 opacity: 1 !important;
170 }
171 .roles-section {
172 .card {
173 .bg-secondary {
174 @include background(null, $gray-400 !important, null, null, null);
175 }
176 }
177 }
178 .card {
179 margin-bottom: 1rem;
180 }
181 .custom-card {
182 @include border(top, 3, solid, $primary);
183 @include roundedCorners(3);
184 .custom-card-body {
185 @include padding-value(15, 15, 15, 15);
186 }
187 }
188 table-cell-default-editor select-editor select {
189 @include wh-value(null, calc(2rem + 8px) !important);
190 @include padding-value(0, 10, 0, 10);
191 }
Barath Kumar Rd477b852020-07-07 15:24:05 +0530192 .edit-packages .CodeMirror {
kumaran.m3b4814a2020-05-01 19:48:54 +0530193 min-height: 400px !important;
194 }
Barath Kumar Rd477b852020-07-07 15:24:05 +0530195 .new-vim .CodeMirror {
196 @include border(all, 1, solid, #eee !important);
197 }
kumaran.m3b4814a2020-05-01 19:48:54 +0530198 .table-layout-fixed {
199 table-layout: fixed;
200 word-wrap: break-word;
201 }
202 .border-radius-default {
203 @include roundedCorners(3);
204 }
205 /** Model Popup-Design **/
206 .modal-body-custom-height {
207 max-height: 65vh;
208 overflow-y: auto;
209 }
210 /** Hide input clear icon in IE */
211 input::-ms-clear {
212 @include flexbox(none, null, null, null, null, null);
213 }
214 /** Overwrite the tooltip z-index */
215 .tooltip {
216 z-index: 1010;
217 }
218 /** Popover Header **/
219 .popover-header {
220 color: $primary;
221 @include background(null, $theme-bg-color, null, null, null);
222 }
223 /** Vim Show running instance Details **/
Barath Kumar R208bef22020-07-07 12:28:04 +0530224 .runninginstances {
225 width: 200px;
226 .popover-body {
kumaran.m3b4814a2020-05-01 19:48:54 +0530227 max-height: 200px;
228 overflow-y: scroll;
Barath Kumar R208bef22020-07-07 12:28:04 +0530229 }
kumaran.m3b4814a2020-05-01 19:48:54 +0530230 }
231 /****************************************************************************/
232 /************************** Smart table custom design ***********************/
233 /****************************************************************************/
234 ng2-smart-table {
235 @include font(null, 15px, null);
236 color: $gray-700;
237 .form-control {
238 @include wh-value(null, auto);
239 }
240 &.dataTables_empty td {
241 text-align: center;
242 }
243 ng2-smart-table-title {
244 * {
245 @include font(null, 12px, null);
246 }
247 a {
248 color: $gray-700 !important;
249 @include flexbox(block, null, null, null, null, null);
250 text-decoration: none;
251 &::after {
252 content: "\f0dc" !important;
253 @include font-family("Font Awesome 5 Free");
254 float: right;
255 color: $gray-500;
256 @include wh-value(0, 0);
257 }
258 &.asc::after {
259 content: "\f0de" !important;
260 @include font-family("Font Awesome 5 Free");
261 float: right;
262 color: $gray-500;
263 }
264 &.desc::after {
265 content: "\f0dd" !important;
266 @include font-family("Font Awesome 5 Free");
267 float: right;
268 color: $gray-500;
269 }
270 &:hover {
271 text-decoration: none !important;
272 }
273 &.sort.desc::after {
274 transform: none !important;
275 margin-bottom: 0;
276 }
277 &.sort.asc::after,
278 &.sort.desc::after {
279 content: "";
280 @include flexbox(inline-block, null, null, null, null, null);
281 @include wh-value(0, 0);
282 @include border(all, 0, solid, transparent !important);
283 margin-bottom: 0 !important;
284 }
285 }
286 span {
287 color: $gray-700;
288 }
289 }
290 ng2-smart-table-cell {
291 word-break: break-word;
292 table-cell-view-mode {
293 @include font(null, 12px, null);
294 .icon-label {
295 @include font(null, 20px, null);
296 @include flexbox(inline-block, null, null, null, null, null);
297 @include wh-value(100px, 0);
298 text-align: center;
299 cursor: default;
300 }
301 }
302 }
303 .ng2-smart-filter {
304 @include wh-value(null, calc(2rem + 2px) !important);
305 @include font(null, 12px, null);
306 margin-top: 6px;
307 }
308 table.list-data {
309 tr td,
310 tr th {
311 @include padding-value(2, 10, 2, 10);
312 vertical-align: middle !important;
313 }
314 tbody {
315 tr.selected {
316 background: none !important;
317 }
318 }
319 }
320 default-table-filter {
321 select-filter {
322 select.form-control {
323 @include flexbox(inline-block, null, null, null, null, null);
324 @include wh-value(null, calc(1.5rem + 2px) !important);
325 vertical-align: middle;
326 background: $white
327 url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E")
328 no-repeat right 0.75rem center;
329 background-size: 8px 10px;
330 @include border(all, 1, solid, $gray-200);
331 @include roundedCorners(2);
332 -webkit-appearance: none;
333 -moz-appearance: none;
334 appearance: none;
335 &::-ms-expand {
336 visibility: hidden;
337 }
338 }
339 }
340 select-filter {
341 select {
342 @include roundedCorners(4);
343 }
344 }
345 input-filter {
346 input[type="text"] {
347 @include position_value(relative, null, null, null, null);
348 }
349 &:after {
350 @include position_value(relative, -26px, null, null, 100%);
351 content: "\f002";
352 @include font("Font Awesome 5 Free", 10px, null);
353 @include padding-value(0, 0, 0, 2);
354 color: $gray-500;
355 }
356 }
357 }
358 ng2-smart-table-pager {
359 @include flexbox(null, null, row-reverse, null, null, null);
360 @include padding-value(5, 20, 5, 20);
361 .ng2-smart-pagination {
362 .ng2-smart-page-item {
363 @include font(null, 10px, null);
364 a {
365 &:hover {
366 text-decoration: none;
367 }
368 }
369 .ng2-smart-page-link {
370 @include font(null, 12px !important, null);
371 &.page-link {
372 text-align: center;
373 vertical-align: middle;
374 color: $primary;
375 @include border(all, 1, solid, $primary !important);
376 &:hover {
377 @include background(null, $primary !important, null, null, null);
378 color: $white;
379 }
380 }
381 }
382 span.ng2-smart-page-link.page-link {
383 color: $white;
384 @include background(null, $primary !important, null, null, null);
385 @include border(all, 1, solid, $primary !important);
386 }
387 }
388 }
389 }
390 }
391 /****************************************************************************/
392 /*********************** Button styles under list class *********************/
393 /****************************************************************************/
394 .list {
395 &.action {
396 button.btn.btn-primary {
397 @include padding-value(2, 8, 2, 8);
398 }
399 }
400 button:focus {
401 outline: 0;
402 @include box-shadow(0, 0, 0, 0, transparent);
403 }
404 button.btn.btn-primary {
405 color: $primary;
406 @include background(null, $white, null, null, null);
407 &:not(.active:hover) {
408 @include background(null, $white, null, null, null);
409 }
410 &:active {
411 color: $primary;
412 @include background(null, $white, null, null, null);
413 }
414 &.action-button {
415 color: $white;
416 @include background(null, $primary !important, null, null, null);
417 &:hover {
418 @include background(null, $primary, null, null, null);
419 }
420 }
421 }
Barath Kumar R208bef22020-07-07 12:28:04 +0530422 }
423 /****************************************************************************/
424 /*********************** List Action Dropdown section ***********************/
425 /****************************************************************************/
426 .list-action-dropdown {
427 @include border(all, 1, solid, $primary);
428 @include padding-value(0, 0, 0, 0);
429 button.btn.btn-primary {
430 @include background(null, transparent, null, null, null);
431 @include padding-value(8, 8, 8, 8);
432 @include roundedCorners(0);
433 color: $primary;
434 &:hover {
435 @include background(null, $primary, null, null, null);
436 color: $white;
437 }
438 &:not(:last-child) {
439 @include border(bottom, 1, solid, $primary);
kumaran.m3b4814a2020-05-01 19:48:54 +0530440 }
441 }
442 }
443 /****************************************************************************/
444 /*********************** Custom tabel design in topology ********************/
445 /****************************************************************************/
446 .custom-table {
447 td:first-child {
448 @include font(null, null, bold);
449 text-align: right;
450 }
451 th,
452 td {
453 @include padding-value(5, 7, 5, 7);
454 @include font(null, 10px, null);
455 @include line-height(15px);
456 }
457 }
458 /****************************************************************************/
459 /************************** Ng select custom design *************************/
460 /****************************************************************************/
461 .ng-select {
462 &.is-invalid .ng-select-container {
463 @include border(all, 1, solid, $red);
464 }
465 .ng-select-container {
466 @include border(all, 1, solid, $gray-200);
467 .ng-value-container .ng-placeholder {
468 color: $gray-80;
469 }
470 }
471 }
472 /****************************************************************************/
473 /******************** Custom nav section for default status *****************/
474 /****************************************************************************/
475 .list-utilites-actions {
476 @include flexbox(flex, null, row, null, center, null);
477 nav.custom-items-config {
478 @include position_value(relative, null, null, null, null);
479 @include roundedCorners(3);
480 span {
481 @include font(null, 13px, 600);
482 @include flexbox(inline-block, null, null, null, null, null);
483 @include position_value(relative, null, null, null, null);
484 text-decoration: none;
485 text-align: center;
486 @include margin-value(0, 0, 0, 10);
487 &:first-child {
488 @include margin-value(0, 0, 0, 0);
489 }
490 i {
491 @include font(null, 14px, null);
492 @include margin-value(0, 5, 0, 0);
493 }
494 }
495 }
496 }
497 /****************************************************************************/
498 /************************* File upload custom design ************************/
499 /****************************************************************************/
500 .custom-file-label {
501 color: $primary;
502 @include roundedCorners(4);
503 @include border(all, 1, solid, $primary);
504 overflow: hidden;
505 @include margin-value(0, 0, 0, 0);
506 text-overflow: ellipsis;
507 white-space: nowrap;
508 padding-right: 80px;
509 &::after {
510 color: $white;
511 @include background(null, $primary, null, null, null);
512 }
513 }
514 /****************************************************************************/
515 /************************* Notifier Container Design ************************/
516 /****************************************************************************/
517 .notifier__container {
518 ul {
519 @include margin-value(0, 0, 0, 0);
520 }
521 }
522 /***************************************************************************/
523 /************************* Topology Common Design **************************/
524 /****************************************************************************/
525 .ns-composer-form,
526 .vnf-composer-form,
527 .ns-instance-form {
528 @include font(null, 12px, null);
529 .ns-svg,
530 .vnf-svg {
531 @include wh-value(30px, 25px);
532 }
533 .svg-container {
534 min-height: 60vh;
535 }
536 .form-control {
537 @include font(null, 10px, null);
538 }
539 .scroll-box {
540 max-height: 285px;
541 overflow-y: scroll;
542 }
543 .border-all {
544 @include border(all, 1, solid, $primary);
545 }
546 .list-group {
547 &.inside-svg {
548 .list-group-item {
549 @include padding-value(3.2, 8, 3.2, 8);
550 }
551 }
552 &.dragable {
553 .list-group-item {
554 cursor: move;
555 @include padding-value(4.8, 4.8, 4.8, 4.8);
556 @include margin-value(0, 0, 5, 0);
557 @include background(null, $gray-200, null, null, null);
558 @include flexbox(flex, null, null, null, center, null);
559 border: none;
560 .span-overflow-text {
561 @include wh-value(90%, null);
562 white-space: nowrap;
563 overflow: hidden;
564 text-overflow: ellipsis;
565 @include line-height(25px);
566 }
567 }
568 }
569 }
570 .drag-icon {
571 color: $gray-600;
572 @include font(null, 15px, null);
573 }
574 .ctrl {
575 cursor: move;
576 }
577 svg {
578 -webkit-user-select: none;
579 -moz-user-select: none;
580 -ms-user-select: none;
581 -o-user-select: none;
582 user-select: none;
583 image.node:hover,
584 circle.node:hover {
585 opacity: 0.7 !important;
586 }
587 image.active,
588 circle.active {
589 opacity: 0.7 !important;
590 }
591 path.link {
592 stroke: $dark-gray;
593 stroke-width: 2px;
594 fill: none;
595 &:hover {
596 stroke-width: 4px;
597 }
598 .dragline {
599 pointer-events: none;
600 }
601 }
602 .node_text {
603 text-anchor: middle;
604 pointer-events: none;
605 }
606 :not(.ctrl) {
607 cursor: pointer;
608 }
609 }
610 fieldset {
611 @include border(all, 1, solid, $primary);
612 legend {
613 @include padding-value(0, 5, 0, 5);
614 @include font(null, 15px, null);
615 color: $primary;
616 &.vl-legend,
617 &.element-legend {
618 @include wh-value(55%, null);
619 }
620 &.vnfd-legend {
621 @include wh-value(25%, null);
622 }
623 }
624 }
625 .btn-icon {
626 @include wh-value(36px, 36px);
627 text-align: center;
628 @include margin-value(0, 10, 10, 0);
629 }
630 .topology-btn {
631 color: $primary;
632 border-color: $primary;
633 &:hover,
634 &.pinned {
635 color: $white !important;
636 @include background(null, $primary !important, null, null, null);
637 }
638 }
639 .badgegroup {
640 @include flexbox(flex, flex-end, row, center, center, null);
641 }
642 }
643 .ns-topology-sidebar-container,
644 .vnf-topology-sidebar-container,
645 .ns-instance-topology-sidebar-container {
646 @include position_value(absolute !important, 0px, null, null, 0px);
647 .ng-sidebar {
648 @include wh-value(27%, null);
649 @include background(null, $white, null, null, null);
650 @include border(all, 1, solid, $gray-300);
651 .sidebar-header {
652 @include background(null, $modalheader-gray, null, null, null);
653 @include padding-value(5, 10, 5, 10);
654 @include border(bottom, 1, solid, $gray-300);
655 @include flexbox(flex, space-between, null, center, center, null);
656 .topology_title {
657 color: $primary;
658 }
659 }
660 .sidebar-body {
661 @include padding-value(10, 5, 10, 5);
662 }
663 }
664 .ng-sidebar__content {
665 button {
666 @include position_value(absolute, 45%, null, null, 0px);
667 @include background(null, $primary, null, null, null);
668 }
669 .detail-sidebar {
670 @include flexbox(inline-block, null, null, null, null, null);
671 @include position_value(relative, null, null, null, null);
672 animation: push 0.5s infinite linear;
673 }
674 }
675 @keyframes push {
676 0% {
677 right: 0;
678 }
679 50% {
680 right: -0.2em;
681 }
682 70% {
683 right: -0.3em;
684 }
685 100% {
686 right: 0;
687 }
688 }
689 }
690}
691/****************************************************************************/
692/************************** MEDIA QUERIES ***********************************/
693/****************************************************************************/
694@media (max-width: map-get($grid-breakpoints, md)) {
695 .smarttable-style {
Barath Kumar R208bef22020-07-07 12:28:04 +0530696 @include flexbox(block, null, null, null, null, null);
kumaran.m3b4814a2020-05-01 19:48:54 +0530697 overflow-x: auto;
698 white-space: nowrap;
699 }
Barath Kumar Rd477b852020-07-07 15:24:05 +0530700}
701
702.text-captilize {
703 text-transform: capitalize;
704}