Merge branch '2.1'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / style / layout / box.scss
CommitLineData
bb6ef47e
MW
1/* default styling for all boxes */
2.box {
3 box-sizing: border-box;
4}
5
6.boxImage {
7 img {
8 max-width: 100%;
9 }
10}
11
12.boxTitle {
5908f54f 13 @include wcfFontHeadline;
bb6ef47e
MW
14
15 & + .boxContent {
95961bdf
MW
16 margin-top: 20px;
17 }
18
19 .badge {
20 top: -2px;
bb6ef47e
MW
21 }
22}
23
24.boxContent {
0b6161c6
MW
25 & + .boxContent {
26 margin-top: 20px;
27 }
28}
29
30.boxContent {
bb6ef47e 31 & + .boxTitle {
b4e94f83 32 margin-top: 30px;
bb6ef47e
MW
33 }
34}
35
0b6161c6
MW
36.boxContentSeparator {
37 background: $wcfContentBorderInner;
38 border: 0;
39 height: 1px;
40 margin: 30px auto;
41 width: 60%;
42}
43
bb6ef47e
MW
44/* styling for boxes in <hero> position */
45.boxesHero {
fd94097c
MW
46 .boxContainer {
47 @include screen-md-down {
48 padding: 40px 0;
49 }
50
51 @include screen-lg {
52 padding: 60px 0;
53 }
54 }
55
bb6ef47e 56 .box {
bb6ef47e 57 text-align: center;
fd94097c
MW
58
59 &:not(:last-child) {
60 @include screen-md-down {
61 margin-bottom: 40px;
62 }
63
64 @include screen-lg {
65 margin-bottom: 60px;
66 }
c5dd767e 67 }
bb6ef47e
MW
68 }
69
70 .boxTitle {
5908f54f 71 @include wcfFontTitle;
bb6ef47e
MW
72 }
73
74 .boxWithImage {
75 display: flex;
76 flex-wrap: wrap;
77
78 .boxImage,
79 .boxTitle,
80 .boxContent {
81 flex: 0 0 100%;
82 }
83
84 .boxImage {
fd94097c
MW
85 align-items: center;
86 display: flex;
87 justify-content: center;
88 max-height: 750px;
bb6ef47e 89 order: 3;
fd94097c
MW
90 overflow: hidden;
91
92 @include screen-md-down {
93 margin-top: 20px;
94 }
95
96 @include screen-lg {
97 margin-top: 30px;
98 }
bb6ef47e
MW
99 }
100 }
101}
102
103/* styling for boxes in <headerBoxes> position */
104.boxesHeaderBoxes {
0b6161c6
MW
105 background-color: $wcfFooterBoxBackground;
106 color: $wcfFooterBoxText;
107
108 a {
109 color: $wcfFooterBoxLink;
110
111 &:hover {
112 color: $wcfFooterBoxLinkActive;
0b6161c6
MW
113 }
114 }
115
116 .icon {
8b59f5ea 117 color: $wcfFooterBoxText;
0b6161c6 118 }
bb6ef47e 119
c734a302 120 .boxContainer {
fd94097c 121 @include screen-sm-up {
0b6161c6
MW
122 display: flex;
123 flex-wrap: wrap;
fd94097c
MW
124 }
125
126 @include screen-md-down {
0b6161c6 127 padding: 40px 0;
fd94097c 128 margin-bottom: -40px;
7102d090
AE
129 margin-left: -10px;
130 margin-right: -10px;
fd94097c
MW
131 }
132
133 @include screen-lg {
134 padding: 60px 0;
135 margin-bottom: -60px;
7102d090
AE
136 margin-left: -15px;
137 margin-right: -15px;
0b6161c6 138 }
bb6ef47e
MW
139 }
140
141 .box {
95961bdf 142 overflow: hidden;
fd94097c
MW
143 padding-left: 15px;
144 padding-right: 15px;
95961bdf 145
fd94097c
MW
146 @include screen-md-down {
147 margin-bottom: 40px;
148 }
149
150 @include screen-sm-md {
151 flex: 0 0 50%;
ce280017 152 max-width: 50%;
fd94097c
MW
153
154 &.boxFullWidth {
155 flex-basis: 100%;
2003a082 156 max-width: 100%;
fd94097c
MW
157 }
158
159 /* one item */
160 &:first-child:nth-last-child(1) {
161 flex-basis: 100%;
2003a082 162 max-width: 100%;
0b6161c6 163 }
bb6ef47e 164 }
937f57cf 165
fd94097c 166 @include screen-lg {
0b6161c6 167 flex: 0 0 25%;
fd94097c 168 margin-bottom: 60px;
ce280017 169 max-width: 25%;
0b6161c6
MW
170
171 &.boxFullWidth {
172 flex-basis: 100%;
2003a082 173 max-width: 100%;
0b6161c6
MW
174 }
175
176 /* one item */
177 &:first-child:nth-last-child(1) {
178 flex-basis: 100%;
2003a082 179 max-width: 100%;
0b6161c6
MW
180 }
181
182 /* two items */
183 &:first-child:nth-last-child(2),
184 &:first-child:nth-last-child(2) ~ .box {
185 flex-basis: 50%;
ce280017 186 max-width: 50%;
0b6161c6
MW
187 }
188
189 /* three items */
190 &:first-child:nth-last-child(3),
191 &:first-child:nth-last-child(3) ~ .box {
192 flex-basis: 33.3333%;
ce280017 193 max-width: 33.3333%;
0b6161c6 194 }
937f57cf 195 }
bb6ef47e
MW
196 }
197
198 .boxImage {
fd94097c
MW
199 align-items: center;
200 display: flex;
201 justify-content: center;
202 margin-bottom: 20px;
203 max-height: 100px;
204 overflow: hidden;
bb6ef47e
MW
205 }
206}
207
208/* styling for boxes in <top>/<bottom> position */
209.boxesTop,
210.boxesBottom {
bb6ef47e 211 .box {
fd94097c
MW
212 @include screen-md-down {
213 margin-bottom: 40px;
214 margin-top: 40px;
215 }
216
217 @include screen-lg {
218 margin-bottom: 60px;
219 margin-top: 60px;
220 }
bb6ef47e
MW
221 }
222
10ff3d63
MW
223 .boxTitle {
224 color: $wcfContentHeadlineText;
225
5908f54f 226 @include wcfFontSection;
10ff3d63
MW
227
228 a {
229 color: $wcfContentHeadlineLink;
230
231 &:hover {
232 color: $wcfContentHeadlineLinkActive;
233 }
234 }
235 }
236
fd94097c
MW
237 @include screen-xs {
238 .boxImage {
239 align-items: center;
240 display: flex;
241 justify-content: center;
242 margin-bottom: 20px;
243 max-height: 100px;
244 overflow: hidden;
bb6ef47e
MW
245 }
246 }
247
fd94097c
MW
248 @include screen-sm-up {
249 .boxImage {
250 width: 30%;
251 }
252
253 .boxWithImage {
254 @include clearfix;
255
256 &:nth-child(odd) {
257 .boxImage {
258 float: left;
259 }
260
261 .boxTitle,
262 .boxContent {
263 @include screen-md-down {
264 margin-left: calc(30% + 15px);
265 }
266
267 @include screen-lg {
268 margin-left: calc(30% + 30px);
269 }
270 }
271 }
272
273 &:nth-child(even) {
274 .boxImage {
275 float: right;
276 }
277
278 .boxTitle,
279 .boxContent {
280 @include screen-md-down {
281 margin-right: calc(30% + 15px);
282 }
283
284 @include screen-lg {
285 margin-right: calc(30% + 30px);
286 }
287 }
288 }
289 }
c5dd767e 290 }
bb6ef47e
MW
291}
292
293.boxesTop {
294 border-bottom: 1px solid $wcfContentBorderInner;
c5dd767e
MS
295}
296
bb6ef47e
MW
297.boxesBottom {
298 border-top: 1px solid $wcfContentBorderInner;
299}
300
301/* styling for boxes in <sidebarLeft>/<sidebarRight> position */
302.boxesSidebarLeft,
303.boxesSidebarRight {
304 color: $wcfSidebarText;
305
306 a {
307 color: $wcfSidebarLink;
308
bb6ef47e
MW
309 &:hover {
310 color: $wcfSidebarLinkActive;
8b59f5ea 311
bb6ef47e
MW
312 }
313 }
314
e4c07d67
AE
315 > .boxContainer {
316 @include screen-sm {
317 -webkit-columns: 2;
318 -moz-columns: 2;
319 columns: 2;
320 }
321
322 @include screen-md {
323 -webkit-columns: 3;
324 -moz-columns: 3;
325 columns: 3;
326 }
327
328 @include screen-sm-md {
fdf34eae 329 margin-bottom: -30px;
e4c07d67
AE
330
331 -webkit-column-gap: 30px;
332 -moz-column-gap: 30px;
333 column-gap: 30px;
334
335 > .box {
336 /* Sections should never be split, but Firefox, IE and Edge don't seem
337 to care about this despite advertising the support for it. We can work
338 around this by using `overflow: hidden` which magically does the job,
339 but doesn't affect Chrome which properly breaks anyway. */
340 overflow: hidden; /* Fix for Firefox, IE and Edge */
341
342 // WebKit fix
fdf34eae
AE
343 background-clip: padding-box;
344 border-bottom: 30px solid transparent;
345 display: block;
346 margin: 0 !important;
e4c07d67
AE
347 width: 100%;
348
349 -webkit-column-break-inside: avoid; /* Chrome, Safari, Opera */
350 page-break-inside: avoid; /* Firefox */
351 break-inside: avoid; /* IE 10+ */
352 }
353 }
354 }
355
8b59f5ea
MW
356 .icon {
357 color: $wcfSidebarText;
358 }
359
bb6ef47e
MW
360 small,
361 .dimmed {
362 color: $wcfSidebarDimmedText;
363
364 a {
365 color: $wcfSidebarDimmedLink;
366
367 &:hover {
368 color: $wcfSidebarDimmedLinkActive;
369 }
370 }
371 }
372
e9f3957f 373 .boxTitle {
d3925b67 374 color: $wcfSidebarHeadlineText;
e9f3957f 375
d3925b67
MW
376 a {
377 color: $wcfSidebarHeadlineLink;
378
379 &:hover {
380 color: $wcfSidebarHeadlineLinkActive;
381
382 }
e9f3957f
MW
383 }
384 }
385
bb6ef47e 386 .box {
0e8421c9
MW
387 &:not(.boxBorderless) {
388 background-color: $wcfSidebarBackground;
0e8421c9 389
f216765b
AE
390 @include screen-md-down {
391 padding: 20px 10px;
63e2f52f
AE
392
393 .boxMenu {
f216765b
AE
394 margin-left: -10px;
395 margin-right: -10px;
63e2f52f
AE
396 }
397 }
398
f216765b
AE
399 @include screen-lg {
400 padding: 20px;
63e2f52f
AE
401
402 .boxMenu {
f216765b
AE
403 margin-left: -20px;
404 margin-right: -20px;
63e2f52f 405 }
0e8421c9
MW
406 }
407 }
bb6ef47e
MW
408
409 &:not(:first-child) {
95961bdf 410 margin-top: 30px;
bb6ef47e 411 }
487db634 412
77fc8c83
MW
413 &.boxError,
414 &.boxInfo,
415 &.boxSuccess,
416 &.boxWarning {
417 a:not(.button) {
418 @include wcfFontBold;
419
420 &:hover {
421 text-decoration: underline;
422 }
423 }
424 }
425
487db634
MW
426 &.boxError {
427 background-color: $wcfStatusErrorBackground;
428 color: $wcfStatusErrorText;
77fc8c83
MW
429
430 a:not(.button) {
431 color: $wcfStatusErrorLink;
432
433 &:hover {
434 color: $wcfStatusErrorLinkActive;
435 }
436 }
487db634
MW
437 }
438
439 &.boxInfo {
440 background-color: $wcfStatusInfoBackground;
441 color: $wcfStatusInfoText;
77fc8c83
MW
442
443 a:not(.button) {
444 color: $wcfStatusInfoLink;
445
446 &:hover {
447 color: $wcfStatusInfoLinkActive;
448 }
449 }
487db634
MW
450 }
451
452 &.boxSuccess {
453 background-color: $wcfStatusSuccessBackground;
454 color: $wcfStatusSuccessText;
77fc8c83
MW
455
456 a:not(.button) {
457 color: $wcfStatusSuccessLink;
458
459 &:hover {
460 color: $wcfStatusSuccessLinkActive;
461 }
462 }
487db634
MW
463 }
464
465 &.boxWarning {
466 background-color: $wcfStatusWarningBackground;
467 color: $wcfStatusWarningText;
77fc8c83
MW
468
469 a:not(.button) {
470 color: $wcfStatusWarningLink;
471
472 &:hover {
473 color: $wcfStatusWarningLinkActive;
474 }
475 }
487db634 476 }
0e8421c9
MW
477
478 .boxMenu {
479 .boxMenuLink {
47115034
MW
480 align-items: flex-start;
481 display: flex;
0e8421c9
MW
482 padding: 5px 20px;
483
47115034
MW
484 .boxMenuLinkTitle {
485 flex: 1 1 auto;
486 }
487
0e8421c9 488 .badge {
47115034 489 flex: 0 0 auto;
0e8421c9
MW
490 }
491 }
492
493 li.active > .boxMenuLink {
494 background-color: $wcfContentBackground;
495 }
496
497 .boxMenuDepth1 .boxMenuLink {
498 padding-left: 40px;
499 }
500
501 .boxMenuDepth2 .boxMenuLink {
502 padding-left: 60px;
503 }
d9a5604a
AE
504
505 @include screen-md-down {
4af25ab6
MW
506 position: relative;
507
2003a082
MW
508 .boxMenuLink,
509 .boxMenuLinkTitle {
4af25ab6
MW
510 overflow: hidden;
511 text-overflow: ellipsis;
512 white-space: nowrap;
513 }
514
9384e330 515 &:not(.open):not(.forceOpen) {
4af25ab6
MW
516 > li:first-child,
517 > li.active:not(:first-child) {
518 pointer-events: none;
519
520 > a::after {
521 content: $fa-var-caret-down;
522 font-family: FontAwesome;
523 font-size: 14px;
524 margin-left: 7px;
525 }
dc6f1f37
AE
526
527 .boxMenuDepth1,
528 .boxMenuDepth2 {
529 position: relative;
530
531 > li {
532 &:not(.active) {
533 display: none;
534 }
535
536 &.active {
537 left: 0;
538 position: absolute;
539 right: 0;
540 top: 0;
541 transform: translateY(-100%);
542
543 > a::after {
544 content: $fa-var-caret-down;
545 font-family: FontAwesome;
546 font-size: 14px;
547 margin-left: 7px;
548 }
549 }
550 }
551 }
4af25ab6
MW
552 }
553
554 > li:first-child ~ li {
555 display: none;
556 }
557
558 > li.active:not(:first-child) {
559 display: block;
560 position: absolute;
561 left: 0;
562 right: 0;
563 top: 0;
564 }
565 }
d9a5604a 566 }
0e8421c9 567 }
bb6ef47e
MW
568 }
569
fd94097c
MW
570 @include screen-xs {
571 .boxImage {
572 align-items: center;
573 display: flex;
574 justify-content: center;
575 margin-bottom: 20px;
576 max-height: 100px;
577 overflow: hidden;
bb6ef47e
MW
578 }
579 }
580
fd94097c
MW
581 @include screen-sm-md {
582 .boxWithImage {
583 @include clearfix;
584
585 .boxTitle,
586 .boxContent {
587 margin-left: calc(30% + 15px);
588 }
589 }
590
591 .boxImage {
592 float: left;
593 width: 30%;
594 }
bb6ef47e 595 }
fd94097c
MW
596
597 @include screen-lg {
598 .boxImage {
599 align-items: center;
600 display: flex;
601 justify-content: center;
602 margin-bottom: 20px;
603 max-height: 100px;
604 overflow: hidden;
605 }
c5dd767e 606 }
bb6ef47e
MW
607}
608
cb49ffdb
AE
609.boxesSidebarLeft .box .boxMenu li.active > .boxMenuLink {
610 margin-left: 10px;
611 padding-left: 10px;
612}
613
614.boxesSidebarRight .box .boxMenu li.active > .boxMenuLink {
615 margin-right: 10px;
616 padding-right: 10px;
617}
618
bb6ef47e
MW
619/* styling for boxes in <contentTop>/<contentBottom> position */
620.boxesContentTop,
621.boxesContentBottom {
bb6ef47e
MW
622 .box {
623 &:not(:first-child) {
10ff3d63 624 margin-top: 40px;
bb6ef47e
MW
625 }
626 }
627
72a7f9cd
MW
628 .boxTitle {
629 color: $wcfContentHeadlineText;
630
5908f54f 631 @include wcfFontSection;
fd94097c 632
72a7f9cd
MW
633 a {
634 color: $wcfContentHeadlineLink;
635
636 &:hover {
637 color: $wcfContentHeadlineLinkActive;
638 }
639 }
640 }
641
fd94097c
MW
642 @include screen-xs {
643 .boxImage {
644 align-items: center;
645 display: flex;
646 justify-content: center;
647 margin-bottom: 20px;
648 max-height: 100px;
649 overflow: hidden;
650 }
bb6ef47e 651 }
fd94097c
MW
652
653 @include screen-sm-up {
654 .boxWithImage {
655 @include clearfix;
656
657 .boxTitle,
658 .boxContent {
659 @include screen-md-down {
660 margin-left: calc(30% + 15px);
661 }
662
663 @include screen-lg {
664 margin-left: calc(30% + 30px);
665 }
666 }
667 }
668
669 .boxImage {
670 float: left;
671 width: 30%;
672 }
c5dd767e 673 }
bb6ef47e
MW
674}
675
0b6161c6
MW
676.boxesContentTop:not(:first-child) {
677 margin-top: 40px;
bb6ef47e
MW
678}
679
680.boxesContentBottom {
10ff3d63 681 margin-top: 40px;
bb6ef47e
MW
682}
683
684/* styling for boxes in <footerBoxes> position */
685.boxesFooterBoxes {
686 background-color: $wcfFooterBoxBackground;
687 color: $wcfFooterBoxText;
bb6ef47e
MW
688
689 a {
690 color: $wcfFooterBoxLink;
691
bb6ef47e
MW
692 &:hover {
693 color: $wcfFooterBoxLinkActive;
bb6ef47e
MW
694 }
695 }
696
697 .icon {
698 color: $wcfFooterBoxText;
699 }
700
c734a302 701 .boxContainer {
f216765b 702 @include screen-sm-down {
fd94097c 703 padding: 40px 0;
f216765b
AE
704 }
705
7102d090
AE
706 @include screen-md-down {
707 margin-left: -10px;
708 margin-right: -10px;
709 }
710
f216765b 711 @include screen-md-up {
63e2f52f
AE
712 display: flex;
713 flex-wrap: wrap;
fd94097c
MW
714 margin-bottom: -60px;
715 padding: 60px 0;
c3d0938e 716 }
7102d090
AE
717
718 @include screen-lg {
719 margin-left: -15px;
720 margin-right: -15px;
721 }
bb6ef47e
MW
722 }
723
724 .box {
95961bdf 725 overflow: hidden;
fd94097c
MW
726 padding-left: 15px;
727 padding-right: 15px;
bb6ef47e 728
f216765b 729 @include screen-sm-down {
fd94097c
MW
730 &:not(:last-child) {
731 margin-bottom: 40px;
c5dd767e 732 }
f216765b
AE
733 }
734
735 @include screen-md-up {
63e2f52f 736 flex: 0 0 50%;
fd94097c 737 margin-bottom: 60px;
ce280017 738 max-width: 50%;
63e2f52f
AE
739
740 &.boxFullWidth {
741 flex-basis: 100%;
2003a082 742 max-width: 100%;
63e2f52f
AE
743 }
744 }
bb6ef47e
MW
745 }
746
72a7f9cd
MW
747 .boxTitle {
748 color: $wcfFooterBoxHeadlineText;
749
750 a {
751 color: $wcfFooterBoxHeadlineLink;
752
753 &:hover {
754 color: $wcfFooterBoxHeadlineLinkActive;
755 }
756 }
757 }
758
bb6ef47e 759 .boxImage {
fd94097c
MW
760 align-items: center;
761 display: flex;
762 justify-content: center;
763 margin-bottom: 20px;
764 max-height: 100px;
765 overflow: hidden;
bb6ef47e
MW
766 }
767}
768
769/* styling for boxes in <footer> position */
770.boxesFooter {
0b6161c6
MW
771 background-color: $wcfFooterBackground;
772 color: $wcfFooterText;
11f96819 773 padding: 20px 0;
0b6161c6
MW
774
775 .icon {
776 color: $wcfFooterText;
777 }
778
779 a {
780 color: $wcfFooterLink;
781
782 &:hover {
783 color: $wcfFooterLinkActive;
2a5ae89f 784 text-decoration: underline;
0b6161c6
MW
785 }
786 }
787
bb6ef47e
MW
788 .box {
789 &:not(:first-child) {
95961bdf 790 margin-top: 20px;
bb6ef47e
MW
791 }
792 }
793
25896feb
MW
794 .boxTitle {
795 color: $wcfFooterHeadlineText;
796
797 a {
798 color: $wcfFooterHeadlineLink;
799
800 &:hover {
801 color: $wcfFooterHeadlineLinkActive;
802 }
803 }
804 }
805
fd94097c
MW
806 @include screen-xs {
807 .boxImage {
808 align-items: center;
809 display: flex;
810 justify-content: center;
811 margin-bottom: 20px;
812 max-height: 100px;
813 overflow: hidden;
bb6ef47e
MW
814 }
815 }
816
fd94097c
MW
817 @include screen-sm-up {
818 .boxWithImage {
819 @include clearfix;
820
821 .boxTitle,
822 .boxContent {
823 @include screen-md-down {
824 margin-left: calc(30% + 15px);
825 }
826
827 @include screen-lg {
828 margin-left: calc(30% + 30px);
829 }
830 }
831 }
832
833 .boxImage {
834 float: left;
835 width: 30%;
836 }
bb6ef47e 837 }
948d7051 838
10159160
MW
839 .boxMenuLinkGroup {
840 .boxMenu {
841 > li {
842 > ol {
843 a {
844 // use text color instead
845 color: $wcfFooterText;
846 }
847 }
848 }
849 }
850 }
851
852 .styleChanger {
853 @include screen-sm-down {
854 display: none;
855 }
856
857 @include screen-md-up {
858 float: right;
859 padding-left: 20px;
860 }
861 }
862}
863
864.boxesTop,
865.boxesBottom,
866.boxesFooter {
948d7051 867 .boxMenu {
f2e6770c 868 display: inline-flex;
1ec71078 869 flex-wrap: wrap;
948d7051
MW
870 margin-left: -10px;
871 margin-right: -10px;
872
948d7051 873 > li {
f2e6770c 874 flex: 0 0 auto;
948d7051
MW
875 padding-left: 10px;
876 padding-right: 10px;
f2e6770c
MW
877 }
878 }
879
10159160 880 .boxMenuLinkGroup {
6063a7ec
AE
881 &:not(:first-child) {
882 margin-top: 40px;
883 }
884
f2e6770c
MW
885 .boxMenu {
886 display: flex;
887 flex-wrap: wrap;
888 margin-bottom: -20px;
948d7051 889
f2e6770c
MW
890 .boxMenuLink {
891 display: inline-block;
892 }
893
894 > li {
19275bb6
MW
895 @include screen-md-up {
896 flex: 0 0 25%;
897 max-width: 25%;
898 }
899
900 @include screen-sm-down {
901 flex: 1 1 100%;
902 }
903
f2e6770c
MW
904 margin-bottom: 20px;
905
948d7051 906 > .boxMenuLink {
5908f54f 907 @include wcfFontHeadline;
948d7051
MW
908
909 margin-bottom: 10px;
910 }
948d7051
MW
911 }
912 }
913 }
bb6ef47e 914}