GUI CSS: Removed snapin styles from py modules and added a _snapins.scss for the...
[check_mk.git] / web / htdocs / themes / classic / scss / _check_mk.scss
blob773ca474cd4529b6fae3ea5f840600aee6a059c7
1 /*
2 +------------------------------------------------------------------+
3 |             ____ _               _        __  __ _  __           |
4 |            / ___| |__   ___  ___| | __   |  \/  | |/ /           |
5 |           | |   | '_ \ / _ \/ __| |/ /   | |\/| | ' /            |
6 |           | |___| | | |  __/ (__|   <    | |  | | . \            |
7 |            \____|_| |_|\___|\___|_|\_\___|_|  |_|_|\_\           |
8 |                                                                  |
9 | Copyright Mathias Kettner 2012             mk@mathias-kettner.de |
10 +------------------------------------------------------------------+
12 This file is part of Check_MK.
13 The official homepage is at http://mathias-kettner.de/check_mk.
15 check_mk is free software;  you can redistribute it and/or modify it
16 under the  terms of the  GNU General Public License  as published by
17 the Free Software Foundation in version 2.  check_mk is  distributed
18 in the hope that it will be useful, but WITHOUT ANY WARRANTY;  with-
19 out even the implied warranty of  MERCHANTABILITY  or  FITNESS FOR A
20 PARTICULAR PURPOSE. See the  GNU General Public License for more de-
21 ails.  You should have  received  a copy of the  GNU  General Public
22 License along with GNU Make; see the file  COPYING.  If  not,  write
23 to the Free Software Foundation, Inc., 51 Franklin St,  Fifth Floor,
24 Boston, MA 02110-1301 USA.
28 /* Global style used by all HTML pages, even by sidebar and
29    mobile interface */
31 /*-------------------------------------------------------------------------.
32 |                ____        __             _ _                            |
33 |               |  _ \  ___ / _| __ _ _   _| | |_ ___                      |
34 |               | | | |/ _ \ |_ / _` | | | | | __/ __|                     |
35 |               | |_| |  __/  _| (_| | |_| | | |_\__ \                     |
36 |               |____/ \___|_|  \__,_|\__,_|_|\__|___/                     |
37 |                                                                          |
38 +--------------------------------------------------------------------------+
39 | Default values for general styles used in all parts of Multisite. These  |
40 | styles are used in the Status-GUI, WATO and other modules based on the   |
41 | basic Multisite layout. They are not used by the Mobile GUI.             |
42 '-------------------------------------------------------------------------*/
44 /* Change some general defaults of HTML that we do not like */
45 td, th {
46     vertical-align: top;
49 div {
50     margin: 0;
51     padding: 0;
54 img {
55     border-style: none;
58 th {
59     white-space: nowrap;
62 body {
63     color: white;
66 body a, body a:link, body a:visited {
67     color: white;
70 body.hidden:after {
71   content: "";
72   background-color: rgba(0, 0, 0, .5);
73   display: block;
74   width: 100%;
75   height: 100%;
76   position: absolute;
77   top: 0;
78   left: 0;
81 /* Default font size for the complete Multisite GUI */
82 button, input, td, th, select, textarea {
83     font-size: 9pt;
86 input.number {
87     text-align: right;
90 /* Styling for input elements */
91 input, select, textarea {
92     padding: 3px;
93     border: 1px #73767A solid;
94     outline-style: none;
95     outline-width: medium;
96     background-color: #fff;
97     font-family: arial, helvetica, sans-serif;
98     vertical-align: middle;
99     margin-top: 0px;
102 /* consistent dropdown field styling for all browsers */
103 select:not([multiple]) {
104     -webkit-appearance: none;  /* Removes default chrome and safari style */
105     -moz-appearance: none;     /* Removes default style Firefox */
106     background: url(images/select_arrow.png) no-repeat right #fff;
107     background-size: 20px 11px;
108     padding-right: 15px;
111 select::-ms-expand {
112     display: none;
115 input[type=file] {
116     color: black;
119 form {
120     margin: 0px;
123 input:hover, select:hover, textarea:hover,
124 input[type="checkbox"]:hover + label:before {
125     background-color: #EDECEB;
128 td.checkbox input[type="checkbox"] + label:before {
129     margin: 0;
132 /* checkbox styling */
133 input[type="checkbox"] {
134     display: none;
137 input[type="checkbox"][disabled] + label:before {
138     display: none;
141 input[type="checkbox"] + label:before {
142     box-shadow: 0.1px 1.0px 1.2px 0 #888 inset;
143     border: 1px #73767A solid;
144     background-color: #fff;
145     content: "\00a0";
146     display: inline-block;
147     font-size: 9pt;
148     height: 9.5pt;
149     margin: 0 .6em 0 0;
150     padding: 0;
151     vertical-align: middle;
152     width: 9.5pt;
155 input[type="checkbox"]:checked + label:before {
156   color: #000;
157   content: "\2716";
158   background-color: #ddd;
159   text-align: center;
162 input[type="checkbox"]:checked + label:after {
163   font-weight: bold;
166 /* Select element with icons */
167 select.icon option {
168     background-repeat: no-repeat;
169     background-position: bottom left;
170     background-size: 18px;
171     padding-left:22px;
172     height: 18px;
175 input.button,
176 table.vs_duallist a.control,
177 .wato div.mainmenu a {
178     border-color: #86A9B8 #22404D #22414D #86A9B8;
179     border-radius: 5px 5px 5px 5px;
180     border-style: solid;
181     border-width: 1px;
182     box-shadow: 0 0 1.5px #000000;
183     margin-left: 5px;
184     padding: 2px 6px;
185     background-color: #497E95;
186     color: white;
187     cursor: pointer;
190 input.button:hover,
191 table.vs_duallist a.control:hover,
192 .wato div.mainmenu a:hover {
193     background-color: #6da1b8;
194     text-decoration: none;
196 input.button:active,
197 table.vs_duallist a.control:active,
198 .wato div.mainmenu a:active {
199     border-color:  #22414d #86a9b8 #86a9b8 #22404d;
200     background-color: #3b6678;
201     box-shadow: inset 0 0 0.5px #444444;
204 input.button[disabled="disabled"]:hover,
205 input.button:disabled:hover {
206     background-color: #497E95;
209 input.button[disabled="disabled"]:active,
210 input.button:disabled:active {
211     border-color: #86A9B8 #22404D #22414D #86A9B8;
212     background-color: #497E95;
213     box-shadow: 0 0 1.5px #000000;
216 input.button.hot {
217     border-color: #d4a466 #633e0d #633e0d #d4a466;
218     background-color: #c37d19;
221 input.button.hot:hover {
222     background-color: #deb548;
225 input.button.hot:active {
226     background-color: #c37d19;
227     border-color: #6d5723 #d9bf81 #d9bf81 #6d5723;
230 /* on/off toggle button */
232 .toggle_switch {
233     border-color: #1b333d #264c18 #1b333d #274141;
234     border-radius: 4px;
235     border-style: solid;
236     border-width: 1px;
237     box-shadow: 0 0 1px rgba(255, 255, 255, 0.8),
238                 1px 1px 0px 0px rgba(0, 0, 0, 0.4) inset;
240     background-color: #427b94;
242     width: 56px;
243     height: 12px;
246 .toggle_switch a,
247 .wato div.globalvars .toggle_switch a {
248     display: block;
250     border-color: #1b333d #264c18 #1b333d #274141;
251     border-radius: 4px;
252     border-style: solid;
253     box-shadow: 1px 1px 1px 0px rgba(255, 255, 255, 0.4) inset;
255     width: 30px;
256     height: 12px;
258     color: #fff;
259     text-decoration: none;
260     font-size: 7pt;
261     text-align: center;
262     line-height: 10px;
264     cursor: pointer;
267 .toggle_switch.on a {
268     float: right;
269     background-color: #54a626;
270     border-width: 0 0 0 1px;
273 .toggle_switch.off a {
274     background-color: #f60000;
275     border-width: 0 1px 0 0;
278 .toggle_switch a:hover {
279     /* TODO: create a better hover effect */
280     text-decoration: none !important;
281     opacity: 0.5;
282     filter: alpha(opacity=50); /* For IE8 and earlier */
285 table.data .toggle_switch a {
286     color: #fff;
289 table.data .toggle_switch {
290     background-color: #999;
294 /* pattern / regex input styling */
296 input.regexp {
297     /* font-family: monospace; */
300 a.button {
301     background-color: #cca;
302     color: #000;
303     text-decoration: none;
304     font-weight: normal;
305     border-width: 1px;
306     border-style: solid;
307     border-color: #ddd #888 #333 #ddd;
308     padding: 0.1ex 1ex;
309     height: 24px;
310     -webkit-border-radius: 4px;
311     border-radius: 4px;
312     border-radius: 4px;
313     margin: 2px;
316 /*for IE8 */
317 input[type="submit"]:focus {
318     outline: none;
321 input:hover, select:hover, textarea:hover {
322     background-color: #EDECEB;
325 /* Images have a native size of 48x48 and are scaled down by the
326    browser. That way if you select a zoom level in the browser,
327    the quality of the images are better */
329 img.icon, div.icon {
330    width: 20px;
331    height: 20px;
334 a.inline img.icon,
335 img.icon.inline, div.icon {
336    vertical-align: middle;
337    width: 16px;
338    height: 16px;
341 h1 {
342     color: #fff;
343     font-size: 17pt;
344     margin-top: 0;
345     margin-bottom: 5px;
346     margin-left: 5px;
349 div.livestatus.message {
350     position: fixed;
351     bottom: -10px;
352     left: 10px;
353     font-size: 8pt;
354     z-index: 20;
355     color: black;
358 /*-------------------------------------------------------------------------.
359 |                _____     _     _       _     _                           |
360 |               |  ___|__ | | __| | __ _| |__ | | ___                      |
361 |               | |_ / _ \| |/ _` |/ _` | '_ \| |/ _ \                     |
362 |               |  _| (_) | | (_| | (_| | |_) | |  __/                     |
363 |               |_|  \___/|_|\__,_|\__,_|_.__/|_|\___|                     |
364 |                                                                          |
365 +--------------------------------------------------------------------------+
366 | These styles are used by the {begin,end}_foldable_container() functions. |
367 '-------------------------------------------------------------------------*/
369 img.treeangle {
370     width: 13px;
371     height: 12px;
372     margin-right: 3px;
373     margin-top: 0px;
374     cursor: pointer;
376     -webkit-transition: -webkit-transform .2s ease-in-out;
377     -moz-transition: -moz-transform .2s ease-in-out;
378     transition: transform .2s ease-in-out;
379     vertical-align: middle;
382 img.treeangle.open {
383     -webkit-transform: rotate(90deg);
384     -moz-transform: rotate(90deg);
385     transform: rotate(90deg);
388 img.treeangle.nform {
389     margin-left: -5px;
392 img.treeangle.title {
393     width: 16px;
394     height: 16px;
395     vertical-align: middle;
396     margin-right: 5px;
399 b.treeangle.title {
400     font-weight: bold;
401     color: #ffffff;
402     cursor: pointer;
405 table.data b.treeangle.title {
406     color: #000000;
409 img.treeangle+.treeangle.title {
410     display: inline-block;
413 ul.treeangle {
414     padding-left: 20px;
415     margin: 8px 0px;
416     position: relative; /* In order for placement of invtablelink */
418 ul.treeangle li {
419     margin: 0px;
420     margin-left: 16px;
421     padding-left: 20px;
422     list-style: disc;
423     display: block;
425 ul.closed {
426     display: none;
431 /*-------------------------------------------------------------------------.
432 |             __  __                                                       |
433 |            |  \/  | ___  ___ ___  __ _  __ _  ___  ___                   |
434 |            | |\/| |/ _ \/ __/ __|/ _` |/ _` |/ _ \/ __|                  |
435 |            | |  | |  __/\__ \__ \ (_| | (_| |  __/\__ \                  |
436 |            |_|  |_|\___||___/___/\__,_|\__, |\___||___/                  |
437 |                                        |___/                             |
438 +--------------------------------------------------------------------------+
439 | Styles for messages-boxes in various situations (called by htmllib.py)   |
440 '-------------------------------------------------------------------------*/
442 div.really, div.success, div.error, div.message, div.warning {
443     margin: 0.25em;
444     border-radius: 1ex;
445     padding: 0.5em 1em;
446     box-shadow: 0 0 3px #444;
449 div.message {
450     color: black;
452 div.really {
453     background-color: #fdc400;
454     border-color: #800;
457 div.success {
458     background-color: #9dbecd;
459     border-color: #080;
462 div.message {
463     background-color: #9dbecd;
464     border-color: #048;
467 div.error {
468     background-color: #e70000;
469     border-color: #e40;
470     color: white;
472 div.error a {
473     color: white;
476 div.warning {
477     background-color: #ff4;
478     border-color: #fc0;
479     color: #000;
481 div.warning a {
482     color: #000;
485 /* Warnings embedded in tables without margins and padding, those are
486    just needed for body */
488 td div.warning, td > div.error {
489     margin-top: 3px;
490     margin-bottom: 3px;
491     padding: 5px 10px;
494 td div.warning ul, td > div.error ul {
495     margin: 5px 10px;
496     padding-left: 0px;
499 /*-ValueSpec---------------------------------------------------------------.
500 |          __     __    _            ____                                  |
501 |          \ \   / /_ _| |_   _  ___/ ___| _ __   ___  ___                 |
502 |           \ \ / / _` | | | | |/ _ \___ \| '_ \ / _ \/ __|                |
503 |            \ V / (_| | | |_| |  __/___) | |_) |  __/ (__                 |
504 |             \_/ \__,_|_|\__,_|\___|____/| .__/ \___|\___|                |
505 |                                         |_|                              |
506 +--------------------------------------------------------------------------+
507 | Styles needed for HTML code produced by valuespec.py.                    |
508 '-------------------------------------------------------------------------*/
510 table.dictionary {
511     width: 100%;
514 table.dictionary b.header {
515     font-size: 80%;
516     font-weight: normal;
519 table.dictionary td.dictright {
520     white-space: nowrap;
521     padding: 0px;
522     border-style: none;
523     width: 99%;
526 table.dictionary td.dictleft {
527     width: 1%;
528     white-space: nowrap;
531 table.dictionary td.dictleft div.popup_menu {
532     white-space: normal;
535 table.dictionary td.dictleft div.help {
536     white-space: normal;
539 td.dictleft div.dictelement * {
540     font-size: 8pt;
542 td.dictleft div.dictelement {
543     font-size: 8pt;
544     margin-bottom: 10px;
545     margin-top: 3px;
546     float: none;
547     margin-left: 0px;
549 td.dictleft div.dictelement.indent {
550     padding-left: 10px;
551     border-left: 2px solid #ccc;
552     margin-left: 8px;
555 table.vs_dict_text {
556     padding: 0px;
557     margin: 0px;
558     border-collapse: collapse;
560 table.vs_dict_text td,
561 table.data tr td table.vs_dict_text > tbody > tr > td {
562     padding: 0px;
563     margin: 0px;
564     vertical-align: top;
567 table.valuespec_tuple {
568     border-spacing: 2px;
571 table.valuespec_tuple td {
572     padding: 0px;
575 table.valuespec_tuple td.tuple_left {
576     vertical-align: middle;
579 table.valuespec_tuple span.title {
580     font-size: 8pt;
583 table.vs_date {
584     border-spacing: 0px;
585     display: inline-block;
586     vertical-align: middle;
589 table.vs_date td {
590     padding-top: 0px;
591     padding-right: 3px;
593 table.vs_date th {
594     text-align: center;
595     font-weight: normal;
596     font-size: 7pt;
597     padding: 0px;
600 table.valuespec_listof {
601     width: 100%;
604 div.valuespec_listof.floating > table > tbody > tr > td:first-child {
605     vertical-align: top;
608 div.valuespec_listof_floating_container > table {
609     float: left;
612 table.valuespec_listof.regular > tbody > tr > td:first-child {
613     padding-bottom: 5px;
615 table.valuespec_listof.regular > tbody > tr > td {
616     padding: 3px 0px 5px 0px;
617     border-bottom: 1px solid #9bc;
619 table.valuespec_listof.regular > tbody > tr:last-child > td {
620     padding-top: 3px;
621     border-bottom-style: none;
624 table.valuespec_listof.regular td.vlof_buttons {
625     margin-right: 5px;
626     white-space: nowrap;
627     vertical-align: middle;
628     width: 1px;
630 table.valuespec_listof.regular td.vlof_content {
632 table.valuespec_listof option[selected] {
633     font-weight: bold;
636 table.valuespec_listof .unused {
637     display: none;
639 table.vs_duallist td {
640     width: 50%;
642 table.vs_duallist td select {
643     width: 100%;
644     height: 200px;
645     resize: both;
647 table.vs_duallist td.head {
648     text-align:center;
651 table.vs_duallist a.control {
652     display: inline-block;
653     width: 14px;
654     text-decoration: none;
655     text-align: center;
656     float: right;
659 table.vs_duallist a.control.add {
660     float: right;
663 table.vs_duallist a.control.del {
664     float: left;
667 div.vs_autocomplete {
668     display: block;
669     width: 160px;
670     background-color: #DFDFDF;
671     border: 1px solid;
672     border-color: #fff #000 #000 #fff;
673     color: #000;
674     box-shadow: 0 0 1.5px #000000;
675     position: absolute;
676     z-index: 20;
679 div.vs_autocomplete ul {
680     margin: 0;
681     list-style-type:none;
682     padding-left:0;
683     max-height: 80px;
684     overflow-y: scroll;
687 div.vs_autocomplete li {
688     padding: 1px 3px;
691 div.vs_autocomplete li:hover {
692     background-color: #2c5766;
693     color: #fff;
694     cursor: default;
697 textarea.tt {
698     font-family: monospace;
701 div.listofstrings.horizontal {
702     clear: left;
705 div.listofstrings > div {
706     margin-bottom: 2px;
709 div.listofstrings.horizontal > div {
710     float: left;
711     margin-right: 2px;
714 table.listchoice {
715     border-collapse: collapse;
717 table.listchoice td span.checkbox {
718     height: 10px;
720 table.listchoice td {
721     height: 12px;
722     padding: 0px;
723     margin: 0px;
725 table.listchoice td input[type=checkbox] {
726     margin: 0px;
727     height: 12px;
730 div.floatfilter.double > div.content > table.listchoice {
731     display: block;
732     height: 80px;
733     overflow: hidden;
734     overflow-y:scroll;
737 div.popup_container {
738     position: relative;
741 div.popup {
742     padding:10px;
743     background-color: #45829D;
745     position: absolute;
746     left: 10px;
747     top: 10px;
748     z-index: 200;
750     width: -moz-max-content;
751     width: intrinsic;
753     -webkit-border-radius: 5px;
754     border-radius: 5px;
755     border-radius: 5px;
756     border: 1px solid #fff;
758     color: #fff;
761 div.popup span {
762     display: block;
763     margin-bottom: 5px;
764     color: white;
767 div#hover_menu {
768     position: absolute;
769     width: auto;
770     /* The hover menu needs to have a higher z-index than the highest element
771        on the pages. In this case it was the perfometer which had 30. */
772     z-index: 40;
773     color: #000;
776 div#hover_menu div.error,
777 div#hover_menu div.message {
778     width:350px;
779     margin: 0;
782 /* Color picker styling */
784 div.popup_trigger.colorpicker div.popup_menu {
785     min-width: auto;
788 .cp-preview {
789     width: 28px;
790     height: 18px;
791     border: 1px solid #000;
792     box-shadow: 1px 1px 2px inset;
795 table.data td .cp-preview {
796     position: relative;
797     top: 2px;
800 .picker-wrapper,
801 .slide-wrapper {
802     position: relative;
803     float: left;
805 .picker-indicator,
806 .slide-indicator {
807     position: absolute;
808     left: 0;
809     top: 0;
810     pointer-events: none;
812 .picker,
813 .slide {
814     cursor: crosshair;
815     float: left;
818 .cp-small {
819     float: left;
820     width: 170px;
822 .cp-small .picker {
823     width: 150px;
824     height: 150px;
825     background-color: white;
827 .cp-small .slide {
828     width: 15px;
829     height: 150px;
831 .cp-small .slide-wrapper {
832     margin-left: 5px;
834 .cp-small .picker-indicator {
835     width: 1px;
836     height: 1px;
837     border: 1px solid black;
838     background-color: white;
840 .cp-small .slide-indicator {
841     width: 100%;
842     height: 2px;
843     left: 0px;
844     background-color: black;
847 .cp-input {
848     float: left;
849     margin-top: 2px;
852 .cp-input input {
853     margin-left: 2px;
854     width: 106px;
857 div.popup_trigger.colorpicker .popup_menu {
858     top: 17px;
859     left: 26px;
862 /*--Werks------------------------------------------------------------------.
863 |                    __        __        _                                 |
864 |                    \ \      / /__ _ __| | _____                          |
865 |                     \ \ /\ / / _ \ '__| |/ / __|                         |
866 |                      \ V  V /  __/ |  |   <\__ \                         |
867 |                       \_/\_/ \___|_|  |_|\_\___/                         |
868 |                                                                          |
869 +--------------------------------------------------------------------------+
870 | Pages showing the Check_MK change log (werks.py)                         |
871 '-------------------------------------------------------------------------*/
873 tr.data td.werklevel, tr.data td.werkclass, tr.data td.werkcomp {
874     text-align: center;
875     white-space: nowrap;
876     width: 100px;
879 table.data.werks tr:nth-child(odd) td.werklevel2 {
880     background-color: #00bbff;
882 table.data.werks tr:nth-child(even) td.werklevel2 {
883     background-color: #44ccff;
885 table.data.werks td.werklevel3 {
886     font-weight: bold;
888 table.data.werks tr:nth-child(odd) td.werklevel3 {
889     background-color: #6cffff;
891 table.data.werks tr:nth-child(even) td.werklevel3 {
892     background-color: #66ffff;
895 table.data.werks tr:nth-child(odd) td.werkclassfeature {
896     background-color: #a8f0a8;
898 table.data.werks tr:nth-child(even) td.werkclassfeature {
899     background-color: #afa;
901 table.data.werks tr:nth-child(even) td.werkclassfix {
902     background-color: #ff9;
904 table.data.werks tr:nth-child(odd) td.werkclassfix {
905     background-color: #f8f877;
907 table.data.werks td.werkclasssecurity {
908     color: white;
909     font-weight: bold;
911 table.data.werks tr:nth-child(odd) td.werkclasssecurity {
912     background-color: #ff0000;
914 table.data.werks tr:nth-child(even) td.werkclasssecurity {
915     background-color: #ff3030;
918 table.data.headerleft.werks td {
919     text-align: left;
922 table.werks td a {
923     color: black;
924     text-decoration: underline;
927 table.data.werks td.werkcompincomp_unack {
928     font-weight: bold;
931 table.data.werks tr:nth-child(odd) td.werkcompincomp_unack {
932     background-color: #ff7777;
934 table.data.werks tr:nth-child(even) td.werkcompincomp_unack {
935     background-color: #ff8888;
938 table.data.werks tr:nth-child(odd) td.werkcompincomp_ack {
939     background-color: #ffbb99;
941 table.data.werks tr:nth-child(even) td.werkcompincomp_ack {
942     background-color: #ffbfaa;
945 /* NOWIKI formatting in Werks */
946 td.nowiki h3 {
947     color: black;
948     font-weight: bold;
949     font-size: 10pt;
952 td.nowiki pre {
953     padding: 3px 8px;
956 td.nowiki pre.code {
957     background-color: white;
959 td.nowiki pre.file {
960     background-color: #fff0b5;
963 td.nowiki div.filename {
964     margin-bottom: -12px;
965     background-color: #E6D8A3;
966     padding: 3px 8px;
967     font-family: Hack, courier;
968     font-weight: bold;
972 td.nowiki table {
973     border: 1px solid black;
974     border-collapse: collapse;
975     margin: 10px 0px;
977 td.nowiki table td, td.nowiki table th {
978     border: 1px solid #888;
981 /* Command for modifying existing downtimes */
982 table.modifydowntimes > tbody > tr > td:nth-child(1) {
983     vertical-align: middle;
984     padding-top: 10px;
986 table.modifydowntimes > tbody > tr:nth-child(1) > td:nth-child(1)  {
987     padding-top: 0px;
990 .select2-container--default .select2-results {
991     color: #000000;