]> cat aescling's git repositories - mastodon.git/blob - app/javascript/styles/components.scss
2437d5a910a9cd09886b66ccda7504697b56f742
[mastodon.git] / app / javascript / styles / components.scss
1 @import 'variables';
2 @import 'variables-glitch';
3
4 .app-body {
5 -webkit-overflow-scrolling: touch;
6 -ms-overflow-style: -ms-autohiding-scrollbar;
7 }
8
9 .button {
10 background-color: darken($ui-highlight-color, 3%);
11 border: 10px none;
12 border-radius: 4px;
13 box-sizing: border-box;
14 color: $primary-text-color;
15 cursor: pointer;
16 display: inline-block;
17 font-family: inherit;
18 font-size: 14px;
19 font-weight: 500;
20 height: 36px;
21 letter-spacing: 0;
22 line-height: 36px;
23 overflow: hidden;
24 padding: 0 16px;
25 position: relative;
26 text-align: center;
27 text-transform: uppercase;
28 text-decoration: none;
29 text-overflow: ellipsis;
30 transition: all 100ms ease-in;
31 white-space: nowrap;
32 width: auto;
33
34 &:active,
35 &:focus,
36 &:hover {
37 background-color: lighten($ui-highlight-color, 7%);
38 transition: all 200ms ease-out;
39 }
40
41 &:disabled {
42 background-color: $ui-primary-color;
43 cursor: default;
44 }
45
46 &.button-alternative {
47 font-size: 16px;
48 line-height: 36px;
49 height: auto;
50 color: $ui-base-color;
51 background: $ui-primary-color;
52 text-transform: none;
53 padding: 4px 16px;
54
55 &:active,
56 &:focus,
57 &:hover {
58 background-color: lighten($ui-primary-color, 4%);
59 }
60 }
61
62 &.button-secondary {
63 font-size: 16px;
64 line-height: 36px;
65 height: auto;
66 color: $ui-primary-color;
67 text-transform: none;
68 background: transparent;
69 padding: 3px 15px;
70 border: 1px solid $ui-primary-color;
71
72 &:active,
73 &:focus,
74 &:hover {
75 border-color: lighten($ui-primary-color, 4%);
76 color: lighten($ui-primary-color, 4%);
77 }
78 }
79
80 &.button--block {
81 display: block;
82 width: 100%;
83 }
84 }
85
86 .column__wrapper {
87 display: flex;
88 flex: 1 1 auto;
89 position: relative;
90 }
91
92 .column-icon {
93 background: lighten($ui-base-color, 4%);
94 color: $ui-primary-color;
95 cursor: pointer;
96 font-size: 16px;
97 padding: 15px;
98 position: absolute;
99 right: 0;
100 top: -48px;
101 z-index: 3;
102
103 &:hover {
104 color: lighten($ui-primary-color, 7%);
105 }
106 }
107
108 .icon-button {
109 display: inline-block;
110 padding: 0;
111 color: $ui-base-lighter-color;
112 border: none;
113 background: transparent;
114 cursor: pointer;
115 transition: color 100ms ease-in;
116
117 &:hover,
118 &:active,
119 &:focus {
120 color: lighten($ui-base-color, 33%);
121 transition: color 200ms ease-out;
122 }
123
124 &.disabled {
125 color: lighten($ui-base-color, 13%);
126 cursor: default;
127 }
128
129 &.active {
130 color: $ui-highlight-color;
131 }
132
133 &::-moz-focus-inner {
134 border: 0;
135 }
136
137 &::-moz-focus-inner,
138 &:focus,
139 &:active {
140 outline: 0 !important;
141 }
142
143 &.inverted {
144 color: lighten($ui-base-color, 33%);
145
146 &:hover,
147 &:active,
148 &:focus {
149 color: $ui-base-lighter-color;
150 }
151
152 &.disabled {
153 color: $ui-primary-color;
154 }
155
156 &.active {
157 color: $ui-highlight-color;
158
159 &.disabled {
160 color: lighten($ui-highlight-color, 13%);
161 }
162 }
163 }
164
165 &.overlayed {
166 box-sizing: content-box;
167 background: rgba($base-overlay-background, 0.6);
168 color: rgba($primary-text-color, 0.7);
169 border-radius: 4px;
170 padding: 2px;
171
172 &:hover {
173 background: rgba($base-overlay-background, 0.9);
174 }
175 }
176 }
177
178 .text-icon-button {
179 color: lighten($ui-base-color, 33%);
180 border: none;
181 background: transparent;
182 cursor: pointer;
183 font-weight: 600;
184 font-size: 11px;
185 padding: 0 3px;
186 line-height: 27px;
187 outline: 0;
188 transition: color 100ms ease-in;
189
190 &:hover,
191 &:active,
192 &:focus {
193 color: $ui-base-lighter-color;
194 transition: color 200ms ease-out;
195 }
196
197 &.disabled {
198 color: lighten($ui-base-color, 13%);
199 cursor: default;
200 }
201
202 &.active {
203 color: $ui-highlight-color;
204 }
205
206 &::-moz-focus-inner {
207 border: 0;
208 }
209
210 &::-moz-focus-inner,
211 &:focus,
212 &:active {
213 outline: 0 !important;
214 }
215 }
216
217 .dropdown--active .icon-button {
218 color: $ui-highlight-color;
219 }
220
221 .dropdown--active::after {
222 @media screen and (min-width: 1025px) {
223 content: "";
224 display: block;
225 position: absolute;
226 width: 0;
227 height: 0;
228 border-style: solid;
229 border-width: 0 4.5px 7.8px;
230 border-color: transparent transparent $ui-secondary-color;
231 bottom: 8px;
232 right: 104px;
233 }
234 }
235
236 .invisible {
237 font-size: 0;
238 line-height: 0;
239 display: inline-block;
240 width: 0;
241 height: 0;
242 position: absolute;
243 }
244
245 .ellipsis {
246 &::after {
247 content: "…";
248 }
249 }
250
251 .lightbox .icon-button {
252 color: $ui-base-color;
253 }
254
255 .compose-form {
256 padding: 10px;
257 }
258
259 .compose-form__warning {
260 color: darken($ui-secondary-color, 65%);
261 margin-bottom: 15px;
262 background: $ui-primary-color;
263 box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
264 padding: 8px 10px;
265 border-radius: 4px;
266 font-size: 13px;
267 font-weight: 400;
268
269 strong {
270 color: darken($ui-secondary-color, 65%);
271 font-weight: 500;
272 }
273
274 a {
275 color: darken($ui-primary-color, 33%);
276 font-weight: 500;
277 text-decoration: underline;
278
279 &:hover,
280 &:active,
281 &:focus {
282 text-decoration: none;
283 }
284 }
285 }
286
287 .compose-form__modifiers {
288 color: $ui-base-color;
289 font-family: inherit;
290 font-size: 14px;
291 background: $simple-background-color;
292 border-radius: 0 0 4px;
293 }
294
295 .compose-form__buttons-wrapper {
296 display: flex;
297 justify-content: space-between;
298 }
299
300 .compose-form__buttons {
301 padding: 10px;
302 background: darken($simple-background-color, 8%);
303 box-shadow: inset 0 5px 5px rgba($base-shadow-color, 0.05);
304 border-radius: 0 0 4px 4px;
305 display: flex;
306
307 .icon-button {
308 box-sizing: content-box;
309 padding: 0 3px;
310 }
311 }
312
313 .compose-form__upload-button-icon {
314 line-height: 27px;
315 }
316
317 .compose-form__sensitive-button {
318 display: none;
319
320 &.compose-form__sensitive-button--visible {
321 display: block;
322 }
323
324 .compose-form__sensitive-button__icon {
325 line-height: 27px;
326 }
327 }
328
329 .compose-form__upload-wrapper {
330 overflow: hidden;
331 }
332
333 .compose-form__uploads-wrapper {
334 display: flex;
335 padding: 5px;
336 }
337
338 .compose-form__upload {
339 flex: 1 1 0;
340 margin: 5px;
341 }
342
343 .compose-form__upload-thumbnail {
344 border-radius: 4px;
345 background-position: center;
346 background-size: cover;
347 background-repeat: no-repeat;
348 height: 100px;
349 width: 100%;
350 }
351
352 .compose-form__upload-cancel {
353 background-size: cover;
354 border-radius: 4px;
355 height: 100px;
356 width: 100px;
357 }
358
359 .compose-form__label {
360 display: block;
361 line-height: 24px;
362 vertical-align: middle;
363
364 &.with-border {
365 border-top: 1px solid $ui-base-color;
366 padding-top: 10px;
367 }
368
369 .compose-form__label__text {
370 display: inline-block;
371 vertical-align: middle;
372 margin-bottom: 14px;
373 margin-left: 8px;
374 color: $ui-primary-color;
375 }
376 }
377
378 .compose-form__textarea,
379 .follow-form__input {
380 background: $simple-background-color;
381
382 &:disabled {
383 background: $ui-secondary-color;
384 }
385 }
386
387 .compose-form__autosuggest-wrapper {
388 position: relative;
389
390 .emoji-picker__dropdown {
391 position: absolute;
392 right: 5px;
393 top: 5px;
394
395 &.dropdown--active::after {
396 border-color: transparent transparent $base-border-color;
397 bottom: -1px;
398 right: 8px;
399 }
400
401 ::-webkit-scrollbar-track:hover,
402 ::-webkit-scrollbar-track:active {
403 background-color: rgba($base-overlay-background, 0.3);
404 }
405 }
406 }
407
408 .compose-form__publish {
409 display: flex;
410 min-width: 0;
411 }
412
413 .compose-form__publish-button-wrapper {
414 overflow: hidden;
415 padding-top: 10px;
416 }
417
418 .emojione {
419 display: inline-block;
420 font-size: inherit;
421 vertical-align: middle;
422 margin: -.2ex .15em .2ex;
423 width: 16px;
424 height: 16px;
425
426 img {
427 width: auto;
428 }
429 }
430
431 .reply-indicator {
432 border-radius: 4px 4px 0 0;
433 position: relative;
434 bottom: -2px;
435 background: $ui-primary-color;
436 padding: 10px;
437 }
438
439 .reply-indicator__header {
440 margin-bottom: 5px;
441 overflow: hidden;
442 }
443
444 .reply-indicator__cancel {
445 float: right;
446 line-height: 24px;
447 }
448
449 .reply-indicator__display-name {
450 color: $ui-base-color;
451 display: block;
452 max-width: 100%;
453 line-height: 24px;
454 overflow: hidden;
455 padding-right: 25px;
456 text-decoration: none;
457 }
458
459 .reply-indicator__display-avatar {
460 float: left;
461 margin-right: 5px;
462 }
463
464 .status__content--with-action {
465 cursor: pointer;
466 }
467
468 // --- Extra clickable area in the status gutter ---
469 .ui.wide {
470 @mixin xtraspaces-full {
471 height: calc(100% + 10px);
472 bottom: -40px;
473 }
474 @mixin xtraspaces-short {
475 height: calc(100% - 35px);
476 bottom: 0;
477 }
478
479 // Avi must go on top if the toot is too short
480 .status__avatar {
481 z-index: 10;
482 }
483
484 // Base styles
485 .status__content--with-action > div::after {
486 content: '';
487 display: block;
488 width: 64px;
489 position: absolute;
490 left: -68px;
491
492 // more than 4 never fit on FullHD, short
493 @include xtraspaces-short;
494 }
495
496 @media screen and (min-width: 1800px) {
497 // 4, very wide screen
498 .column:nth-child(2):nth-last-child(4) {
499 &, & ~ .column {
500 .status__content--with-action > div::after {
501 @include xtraspaces-full;
502 }
503 }
504 }
505 }
506
507 // 1 or 2, always fit
508 .column:nth-child(2):nth-last-child(1),
509 .column:nth-child(2):nth-last-child(2),
510 .column:nth-child(2):nth-last-child(3) {
511 &, & ~ .column {
512 .status__content--with-action > div::after {
513 @include xtraspaces-full;
514 }
515 }
516 }
517
518 @media screen and (max-width: 1440px) {
519 // 3, small screen
520 .column:nth-child(2):nth-last-child(3) {
521 &, & ~ .column {
522 .status__content--with-action > div::after {
523 @include xtraspaces-short;
524 }
525 }
526 }
527 }
528
529 // Phone or iPad
530 @media screen and (max-width: 1060px) {
531 .status__content--with-action > div::after {
532 display: none;
533 }
534 }
535
536 // I am very sorry
537 }
538 // --- end extra clickable spaces ---
539
540 .status-check-box {
541 .status__content,
542 .reply-indicator__content {
543 color: #3a3a3a;
544 a {
545 color: #005aa9;
546 }
547 }
548 }
549
550 .status__content,
551 .reply-indicator__content {
552 position: relative;
553 font-size: 15px;
554 line-height: 20px;
555 color: $primary-text-color;
556 word-wrap: break-word;
557 font-weight: 400;
558 overflow: visible;
559 white-space: pre-wrap;
560
561 .emojione {
562 width: 18px;
563 height: 18px;
564 }
565
566 p {
567 margin-bottom: 20px;
568
569 &:last-child {
570 margin-bottom: 0;
571 }
572 }
573
574 a {
575 color: $ui-secondary-color;
576 text-decoration: none;
577
578 &:hover {
579 text-decoration: underline;
580
581 .fa {
582 color: lighten($ui-base-color, 40%);
583 }
584 }
585
586 &.mention {
587 &:hover {
588 text-decoration: none;
589
590 span {
591 text-decoration: underline;
592 }
593 }
594 }
595
596 .fa {
597 color: lighten($ui-base-color, 30%);
598 }
599 }
600
601 .status__content__spoiler {
602 display: none;
603
604 &.status__content__spoiler--visible {
605 display: block;
606 }
607 }
608 }
609
610 .status__content__spoiler-link {
611 display: inline-block;
612 border-radius: 2px;
613 background: lighten($ui-base-color, 30%);
614 border: none;
615 color: lighten($ui-base-color, 8%);
616 font-weight: 500;
617 font-size: 11px;
618 padding: 0 5px;
619 text-transform: uppercase;
620 line-height: inherit;
621 cursor: pointer;
622 vertical-align: bottom;
623
624 &:hover {
625 background: lighten($ui-base-color, 33%);
626 text-decoration: none;
627 }
628
629 .status__content__spoiler-icon {
630 display: inline-block;
631 margin: 0 0 0 5px;
632 border-left: 1px solid currentColor;
633 padding: 0 0 0 4px;
634 font-size: 16px;
635 vertical-align: -2px;
636 }
637 }
638
639 .status__prepend-icon-wrapper {
640 left: -26px;
641 position: absolute;
642 }
643
644 .notif-cleaning {
645 .status, .notification-follow {
646 padding-right: ($dismiss-overlay-width + 0.5rem);
647 }
648 }
649
650 .notification-follow {
651 position: relative;
652
653 // same like Status
654 border-bottom: 1px solid lighten($ui-base-color, 8%);
655
656 .account {
657 border-bottom: 0 none;
658 }
659 }
660
661 .status {
662 padding: 8px 10px;
663 padding-left: 68px;
664 position: relative;
665 height: auto;
666 min-height: 48px;
667 border-bottom: 1px solid lighten($ui-base-color, 8%);
668 cursor: default;
669
670 @keyframes fade {
671 0% { opacity: 0; }
672 100% { opacity: 1; }
673 }
674
675 opacity: 1;
676 animation: fade 150ms linear;
677
678 &.status-direct {
679 background: lighten($ui-base-color, 8%);
680
681 .icon-button.disabled {
682 color: lighten($ui-base-color, 16%);
683 }
684 }
685
686 &.light {
687 .status__relative-time {
688 color: $ui-primary-color;
689 }
690
691 .status__display-name {
692 color: $ui-base-color;
693 }
694
695 .display-name {
696 strong {
697 color: $ui-base-color;
698 }
699
700 span {
701 color: $ui-primary-color;
702 }
703 }
704
705 .status__content {
706 color: $ui-base-color;
707
708 a {
709 color: $ui-highlight-color;
710 }
711
712 a.status__content__spoiler-link {
713 color: $primary-text-color;
714 background: $ui-primary-color;
715
716 &:hover {
717 background: lighten($ui-primary-color, 8%);
718 }
719 }
720 }
721 }
722
723 &.collapsed {
724 background-position: center;
725 background-size: cover;
726 user-select: none;
727
728 &.has-background::before {
729 display: block;
730 position: absolute;
731 left: 0;
732 right: 0;
733 top: 0;
734 bottom: 0;
735 background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));
736 content: "";
737 }
738
739 .status__display-name:hover strong {
740 text-decoration: none;
741 }
742
743 .status__content {
744 height: 20px;
745 overflow: hidden;
746 text-overflow: ellipsis;
747
748 a:hover {
749 text-decoration: none;
750 }
751 }
752 }
753
754 .notification__message {
755 margin: -10px 0 10px;
756 }
757 }
758
759 .notification-favourite {
760 .status.status-direct {
761 background: transparent;
762
763 .icon-button.disabled {
764 color: lighten($ui-base-color, 13%);
765 }
766 }
767 }
768
769 .status__relative-time {
770 display: inline-block;
771 margin-left: auto;
772 padding-left: 18px;
773 width: 120px;
774 color: $ui-base-lighter-color;
775 font-size: 14px;
776 text-align: right;
777 white-space: nowrap;
778 overflow: hidden;
779 text-overflow: ellipsis;
780 }
781
782 .status__display-name {
783 color: $ui-base-lighter-color;
784 }
785
786 .status__info .status__display-name {
787 display: block;
788 max-width: 100%;
789 }
790
791 .status__info {
792 margin: 2px 0 0;
793 font-size: 15px;
794 line-height: 24px;
795 }
796
797 .status__info__icons {
798 display: inline-block;
799 position: relative;
800 float: right;
801 color: lighten($ui-base-color, 26%);
802 z-index: 5; // to make it clickable
803
804 .status__visibility-icon {
805 padding-left: 6px;
806 }
807 }
808
809 .status-check-box {
810 border-bottom: 1px solid $ui-secondary-color;
811 display: flex;
812
813 .status__content {
814 flex: 1 1 auto;
815 padding: 10px;
816 overflow: hidden;
817 text-overflow: ellipsis;
818 white-space: nowrap;
819 }
820 }
821
822 .status-check-box-toggle {
823 align-items: center;
824 display: flex;
825 flex: 0 0 auto;
826 justify-content: center;
827 padding: 10px;
828 }
829
830 .status__prepend {
831 margin: -10px 0 10px;
832 color: $ui-base-lighter-color;
833 padding: 8px 0 2px;
834 font-size: 14px;
835 position: relative;
836
837 .status__display-name strong {
838 color: $ui-base-lighter-color;
839 }
840 }
841
842 .status__action-bar {
843 align-items: center;
844 display: flex;
845 margin-top: 10px;
846 margin-left: -58px;
847
848 &::before {
849 display: block;
850 flex: 1 1 0;
851 max-width: 58px;
852 content: "";
853 }
854 }
855
856 .status__action-bar-button {
857 float: left;
858 margin-right: 18px;
859 flex: 0 0 auto;
860 }
861
862 .status__action-bar-dropdown {
863 float: left;
864 height: 18px;
865 width: 18px;
866
867 // Dropdown style override for centering on the icon
868 .dropdown--active {
869 position: relative;
870
871 .dropdown__content.dropdown__right {
872 left: calc(50% + 3px);
873 right: initial;
874 transform: translate(-50%, 0);
875 top: 22px;
876 }
877
878 &::after {
879 right: 1px;
880 bottom: -2px;
881 }
882 }
883 }
884
885 .detailed-status__action-bar-dropdown {
886 flex: 1 1 auto;
887 display: flex;
888 align-items: center;
889 justify-content: center;
890 position: relative;
891
892 .dropdown {
893 display: block;
894 width: 18px;
895 height: 18px;
896 }
897
898 .dropdown--active {
899 .dropdown__content.dropdown__left {
900 left: 20px;
901 right: initial;
902 }
903
904 &::after {
905 bottom: initial;
906 margin-left: 7px;
907 margin-top: -7px;
908 right: initial;
909 }
910 }
911 }
912
913 .detailed-status {
914 background: lighten($ui-base-color, 4%);
915 padding: 14px 10px;
916
917 .status__content {
918 font-size: 19px;
919 line-height: 24px;
920
921 .emojione {
922 width: 22px;
923 height: 22px;
924 }
925 }
926 }
927
928 .detailed-status__meta {
929 margin-top: 15px;
930 color: $ui-base-lighter-color;
931 font-size: 14px;
932 line-height: 18px;
933 }
934
935 .detailed-status__action-bar {
936 background: lighten($ui-base-color, 4%);
937 border-top: 1px solid lighten($ui-base-color, 8%);
938 border-bottom: 1px solid lighten($ui-base-color, 8%);
939 display: flex;
940 flex-direction: row;
941 padding: 10px 0;
942 }
943
944 .detailed-status__link {
945 color: inherit;
946 text-decoration: none;
947 }
948
949 .detailed-status__favorites,
950 .detailed-status__reblogs {
951 display: inline-block;
952 font-weight: 500;
953 font-size: 12px;
954 margin-left: 6px;
955 }
956
957 .reply-indicator__content {
958 color: $ui-base-color;
959 font-size: 14px;
960
961 a {
962 color: lighten($ui-base-color, 20%);
963 }
964 }
965
966 .account {
967 padding: 10px;
968 border-bottom: 1px solid lighten($ui-base-color, 8%);
969
970 .account__display-name {
971 flex: 1 1 auto;
972 display: block;
973 color: $ui-primary-color;
974 overflow: hidden;
975 text-decoration: none;
976 font-size: 14px;
977 }
978 }
979
980 .account__wrapper {
981 display: flex;
982 }
983
984 .account__avatar-wrapper {
985 float: left;
986 margin-left: 12px;
987 margin-right: 12px;
988 }
989
990 .account__avatar {
991 @include avatar-radius();
992 position: relative;
993 cursor: pointer;
994
995 &-inline {
996 display: inline-block;
997 vertical-align: middle;
998 margin-right: 5px;
999 }
1000 }
1001
1002 .account__avatar-overlay {
1003 @include avatar-size(48px);
1004
1005 &-base {
1006 @include avatar-radius();
1007 @include avatar-size(36px);
1008 }
1009
1010 &-overlay {
1011 @include avatar-radius();
1012 @include avatar-size(24px);
1013
1014 position: absolute;
1015 bottom: 0;
1016 right: 0;
1017 z-index: 1;
1018 }
1019 }
1020
1021 .account__relationship {
1022 height: 18px;
1023 padding: 10px;
1024 white-space: nowrap;
1025 }
1026
1027 .account__header__wrapper {
1028 flex: 0 0 auto;
1029 background: lighten($ui-base-color, 4%);
1030 }
1031
1032 .account__header {
1033 text-align: center;
1034 background-size: cover;
1035 background-position: center;
1036 position: relative;
1037
1038 & > div {
1039 background: rgba(lighten($ui-base-color, 4%), 0.9);
1040 padding: 20px 10px;
1041 }
1042
1043 .account__header__content {
1044 color: $ui-secondary-color;
1045 }
1046
1047 .account__header__display-name {
1048 color: $primary-text-color;
1049 display: inline-block;
1050 font-size: 20px;
1051 line-height: 27px;
1052 font-weight: 500;
1053 }
1054
1055 .account__header__username {
1056 color: $ui-highlight-color;
1057 font-size: 14px;
1058 font-weight: 400;
1059 display: block;
1060 margin-bottom: 10px;
1061 }
1062 }
1063
1064 .account__disclaimer {
1065 padding: 10px;
1066 border-top: 1px solid lighten($ui-base-color, 8%);
1067 color: $ui-base-lighter-color;
1068
1069 strong {
1070 font-weight: 500;
1071 }
1072
1073 a {
1074 font-weight: 500;
1075 color: inherit;
1076 text-decoration: underline;
1077
1078 &:hover,
1079 &:focus,
1080 &:active {
1081 text-decoration: none;
1082 }
1083 }
1084 }
1085
1086 .account__header__content {
1087 color: $ui-primary-color;
1088 font-size: 14px;
1089 font-weight: 400;
1090 overflow: hidden;
1091 word-break: normal;
1092 word-wrap: break-word;
1093
1094 p {
1095 margin-bottom: 20px;
1096
1097 &:last-child {
1098 margin-bottom: 0;
1099 }
1100 }
1101
1102 a {
1103 color: inherit;
1104 text-decoration: underline;
1105
1106 &:hover {
1107 text-decoration: none;
1108 }
1109 }
1110 }
1111
1112 .account__header__display-name {
1113 .emojione {
1114 width: 25px;
1115 height: 25px;
1116 }
1117 }
1118
1119 .account__metadata {
1120 width: 100%;
1121 font-size: 15px;
1122 line-height: 20px;
1123 overflow: hidden;
1124 border-collapse: collapse;
1125
1126 a {
1127 text-decoration: none;
1128
1129 &:hover{
1130 text-decoration: underline;
1131 }
1132 }
1133
1134 tr {
1135 border-top: 1px solid lighten($ui-base-color, 8%);
1136 }
1137
1138 th, td {
1139 padding: 14px 20px;
1140 vertical-align: middle;
1141
1142 & > div {
1143 max-height: 40px;
1144 overflow-y: auto;
1145 white-space: pre-wrap;
1146 text-overflow: ellipsis;
1147 }
1148 }
1149
1150 th {
1151 color: $ui-primary-color;
1152 background: lighten($ui-base-color, 13%);
1153 font-variant: small-caps;
1154 max-width: 120px;
1155
1156 a {
1157 color: $primary-text-color;
1158 }
1159 }
1160
1161 td {
1162 flex: auto;
1163 color: $primary-text-color;
1164 background: $ui-base-color;
1165
1166 a {
1167 color: $ui-highlight-color;
1168 }
1169 }
1170 }
1171
1172 .account__action-bar {
1173 border-top: 1px solid lighten($ui-base-color, 8%);
1174 border-bottom: 1px solid lighten($ui-base-color, 8%);
1175 line-height: 36px;
1176 overflow: hidden;
1177 flex: 0 0 auto;
1178 display: flex;
1179 }
1180
1181 .account__action-bar-dropdown {
1182 flex: 1 1 auto;
1183 padding: 10px;
1184
1185 .dropdown--active {
1186 .dropdown__content.dropdown__right {
1187 left: 6px;
1188 right: initial;
1189 }
1190
1191 &::after {
1192 bottom: initial;
1193 margin-left: 11px;
1194 margin-top: -7px;
1195 right: initial;
1196 }
1197 }
1198 }
1199
1200 .account__action-bar-links {
1201 display: flex;
1202 flex: 1 1 auto;
1203 line-height: 18px;
1204 }
1205
1206 .account__action-bar__tab {
1207 text-decoration: none;
1208 overflow: hidden;
1209 width: 80px;
1210 border-left: 1px solid lighten($ui-base-color, 8%);
1211 padding: 10px 5px;
1212
1213 & > span {
1214 display: block;
1215 text-transform: uppercase;
1216 font-size: 11px;
1217 color: $ui-primary-color;
1218 }
1219
1220 strong {
1221 display: block;
1222 font-size: 15px;
1223 font-weight: 500;
1224 color: $primary-text-color;
1225 }
1226
1227 abbr {
1228 color: $ui-base-lighter-color;
1229 }
1230 }
1231
1232 .account__header__avatar {
1233 @include avatar-radius();
1234 @include avatar-size(90px);
1235 display: block;
1236 margin: 0 auto 10px;
1237 overflow: hidden;
1238 }
1239
1240 .account-authorize {
1241 padding: 14px 10px;
1242
1243 .detailed-status__display-name {
1244 display: block;
1245 margin-bottom: 15px;
1246 overflow: hidden;
1247 }
1248 }
1249
1250 .account-authorize__avatar {
1251 float: left;
1252 margin-right: 10px;
1253 }
1254
1255 .status__display-name,
1256 .status__relative-time,
1257 .detailed-status__display-name,
1258 .detailed-status__datetime,
1259 .detailed-status__application,
1260 .account__display-name {
1261 text-decoration: none;
1262 }
1263
1264 .status__display-name,
1265 .account__display-name {
1266 strong {
1267 color: $primary-text-color;
1268 }
1269 }
1270
1271 .status__display-name,
1272 .reply-indicator__display-name,
1273 .detailed-status__display-name,
1274 .account__display-name {
1275 &:hover strong {
1276 text-decoration: underline;
1277 }
1278 }
1279
1280 .account__display-name strong {
1281 display: block;
1282 }
1283
1284 .detailed-status__application,
1285 .detailed-status__datetime {
1286 color: inherit;
1287 }
1288
1289 .detailed-status__display-name {
1290 color: $ui-secondary-color;
1291 display: block;
1292 line-height: 24px;
1293 margin-bottom: 15px;
1294 overflow: hidden;
1295
1296 strong,
1297 span {
1298 display: block;
1299 text-overflow: ellipsis;
1300 overflow: hidden;
1301 }
1302
1303 strong {
1304 font-size: 16px;
1305 color: $primary-text-color;
1306 }
1307 }
1308
1309 .detailed-status__display-avatar {
1310 float: left;
1311 margin-right: 10px;
1312 }
1313
1314 .status__avatar {
1315 position: absolute;
1316 margin-left: -58px;
1317 height: 48px;
1318 width: 48px;
1319 }
1320
1321 .muted {
1322 .status__content p,
1323 .status__content a {
1324 color: $ui-base-lighter-color;
1325 }
1326
1327 .status__display-name strong {
1328 color: $ui-base-lighter-color;
1329 }
1330
1331 .status__avatar, .emojione {
1332 opacity: 0.5;
1333 }
1334
1335 a.status__content__spoiler-link {
1336 background: $ui-base-lighter-color;
1337 color: lighten($ui-base-color, 4%);
1338
1339 &:hover {
1340 background: lighten($ui-base-color, 29%);
1341 text-decoration: none;
1342 }
1343 }
1344 }
1345
1346 .notification__message {
1347 margin-left: 68px;
1348 padding: 8px 0;
1349 padding-bottom: 0;
1350 cursor: default;
1351 color: $ui-primary-color;
1352 font-size: 15px;
1353 position: relative;
1354
1355 .fa {
1356 color: $ui-highlight-color;
1357 }
1358 }
1359
1360 .notification__favourite-icon-wrapper {
1361 left: -26px;
1362 position: absolute;
1363
1364 .star-icon {
1365 color: $gold-star;
1366 }
1367 }
1368
1369 .star-icon.active {
1370 color: $gold-star;
1371 }
1372
1373 .notification__display-name {
1374 color: inherit;
1375 font-weight: 500;
1376 text-decoration: none;
1377
1378 &:hover {
1379 color: $primary-text-color;
1380 text-decoration: underline;
1381 }
1382 }
1383
1384 .display-name {
1385 display: block;
1386 position: relative;
1387 max-width: 100%;
1388 //overflow: hidden;
1389 //text-overflow: ellipsis;
1390 //white-space: nowrap;
1391 }
1392
1393 .display-name__html {
1394 font-weight: 500;
1395 }
1396
1397 .display-name__account {
1398 font-size: 14px;
1399 display: block;
1400 line-height: 1.1; // reduce the distance from the display name
1401 padding-bottom: 3px;
1402
1403 // block ellipsis
1404 max-width: 100%;
1405 overflow: hidden;
1406 text-overflow: ellipsis;
1407 white-space: nowrap;
1408 }
1409
1410 .status__relative-time,
1411 .detailed-status__datetime {
1412 &:hover {
1413 text-decoration: underline;
1414 }
1415 }
1416
1417 .image-loader {
1418 position: relative;
1419
1420 &.image-loader--loading {
1421 .image-loader__preview-canvas {
1422 filter: blur(2px);
1423 }
1424 }
1425
1426 .image-loader__img {
1427 position: absolute;
1428 top: 0;
1429 left: 0;
1430 right: 0;
1431 max-width: 100%;
1432 max-height: 100%;
1433 background-image: none;
1434 }
1435
1436 &.image-loader--amorphous {
1437 position: static;
1438
1439 .image-loader__preview-canvas {
1440 display: none;
1441 }
1442
1443 .image-loader__img {
1444 position: static;
1445 width: auto;
1446 height: auto;
1447 }
1448 }
1449 }
1450
1451 .navigation-bar {
1452 padding: 10px;
1453 display: flex;
1454 flex-shrink: 0;
1455 cursor: default;
1456 color: $ui-primary-color;
1457
1458 strong {
1459 color: $primary-text-color;
1460 }
1461
1462 .permalink {
1463 text-decoration: none;
1464 }
1465
1466 .icon-button {
1467 pointer-events: none;
1468 opacity: 0;
1469 }
1470 }
1471
1472 .navigation-bar__profile {
1473 flex: 1 1 auto;
1474 margin-left: 8px;
1475 }
1476
1477 .navigation-bar__profile-account {
1478 display: block;
1479 font-weight: 500;
1480 }
1481
1482 .navigation-bar__profile-edit {
1483 color: inherit;
1484 text-decoration: none;
1485 }
1486
1487 .dropdown {
1488 display: inline-block;
1489 }
1490
1491 .dropdown__content {
1492 display: none;
1493 position: absolute;
1494 }
1495
1496 .dropdown__sep {
1497 border-bottom: 1px solid darken($ui-secondary-color, 8%);
1498 margin: 5px 7px 6px;
1499 padding-top: 1px;
1500 }
1501
1502 .dropdown--active .dropdown__content {
1503 display: block;
1504 line-height: 18px;
1505 max-width: 311px;
1506 right: 0;
1507 text-align: left;
1508 z-index: 9999;
1509
1510 & > ul {
1511 list-style: none;
1512 background: $ui-secondary-color;
1513 padding: 4px 0;
1514 border-radius: 4px;
1515 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
1516 min-width: 140px;
1517 position: relative;
1518 }
1519
1520 &.dropdown__right {
1521 right: 0;
1522 }
1523
1524 &.dropdown__left {
1525 & > ul {
1526 left: -98px;
1527 }
1528 }
1529
1530 & > ul > li > a {
1531 font-size: 13px;
1532 line-height: 18px;
1533 display: block;
1534 padding: 4px 14px;
1535 box-sizing: border-box;
1536 text-decoration: none;
1537 background: $ui-secondary-color;
1538 color: $ui-base-color;
1539 overflow: hidden;
1540 text-overflow: ellipsis;
1541 white-space: nowrap;
1542
1543 &:focus {
1544 outline: 0;
1545 }
1546
1547 &:hover {
1548 background: $ui-highlight-color;
1549 color: $ui-secondary-color;
1550 }
1551 }
1552 }
1553
1554 .dropdown__icon {
1555 vertical-align: middle;
1556 }
1557
1558 .static-content {
1559 padding: 10px;
1560 padding-top: 20px;
1561 color: $ui-base-lighter-color;
1562
1563 h1 {
1564 font-size: 16px;
1565 font-weight: 500;
1566 margin-bottom: 40px;
1567 text-align: center;
1568 }
1569
1570 p {
1571 font-size: 13px;
1572 margin-bottom: 20px;
1573 }
1574 }
1575
1576 .columns-area {
1577 display: flex;
1578 flex: 1 1 auto;
1579 flex-direction: row;
1580 justify-content: flex-start;
1581 overflow-x: auto;
1582 position: relative;
1583 padding: 10px;
1584 }
1585
1586 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1587 .columns-area {
1588 padding: 0;
1589 }
1590
1591 .react-swipeable-view-container .columns-area {
1592 height: calc(100% - 20px) !important;
1593 }
1594 }
1595
1596 .react-swipeable-view-container {
1597 &,
1598 .columns-area,
1599 .drawer,
1600 .column {
1601 height: 100%;
1602 }
1603 }
1604
1605 .react-swipeable-view-container > * {
1606 display: flex;
1607 align-items: center;
1608 justify-content: center;
1609 height: 100%;
1610 }
1611
1612 .column {
1613 width: 330px;
1614 position: relative;
1615 box-sizing: border-box;
1616 display: flex;
1617 flex-direction: column;
1618 overflow: hidden;
1619
1620 .wide & {
1621 flex: auto;
1622 min-width: 330px;
1623 max-width: 400px;
1624 }
1625
1626 > .scrollable {
1627 background: $ui-base-color;
1628 }
1629 }
1630
1631 .ui {
1632 flex: 0 0 auto;
1633 display: flex;
1634 flex-direction: column;
1635 width: 100%;
1636 height: 100%;
1637 background: darken($ui-base-color, 7%);
1638 }
1639
1640 .drawer {
1641 width: 300px;
1642 box-sizing: border-box;
1643 display: flex;
1644 flex-direction: column;
1645 overflow-y: auto;
1646
1647 .wide & {
1648 flex: 1 1 200px;
1649 min-width: 300px;
1650 max-width: 400px;
1651 }
1652 }
1653
1654 .drawer__tab {
1655 display: block;
1656 flex: 1 1 auto;
1657 padding: 15px 5px 13px;
1658 color: $ui-primary-color;
1659 text-decoration: none;
1660 text-align: center;
1661 font-size: 16px;
1662 border-bottom: 2px solid transparent;
1663 outline: none;
1664 cursor: pointer;
1665 }
1666
1667 .column,
1668 .drawer {
1669 @supports(display: grid) { // hack to fix Chrome <57
1670 contain: strict;
1671 }
1672 }
1673
1674 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1675 .tabs-bar {
1676 margin: 0;
1677 }
1678
1679 .search {
1680 margin-bottom: 0;
1681 }
1682 }
1683
1684 :root { // Overrides .wide stylings for mobile view
1685 @include single-column('screen and (max-width: 1024px)', $parent: null) {
1686 .column,
1687 .drawer {
1688 flex: auto;
1689 width: 100%;
1690 min-width: 0;
1691 max-width: none;
1692 padding: 0;
1693 }
1694
1695 .columns-area {
1696 flex-direction: column;
1697 }
1698
1699 .search__input,
1700 .autosuggest-textarea__textarea {
1701 font-size: 16px;
1702 }
1703 }
1704 }
1705
1706 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1707 .columns-area {
1708 padding: 0;
1709 }
1710
1711 .column,
1712 .drawer {
1713 padding: 10px;
1714 padding-left: 5px;
1715 padding-right: 5px;
1716
1717 &:first-child {
1718 padding-left: 10px;
1719 }
1720
1721 &:last-child {
1722 padding-right: 10px;
1723 }
1724 }
1725
1726 .columns-area > div {
1727 .column,
1728 .drawer {
1729 padding-left: 5px;
1730 padding-right: 5px;
1731 }
1732 }
1733 }
1734
1735 .drawer__pager {
1736 box-sizing: border-box;
1737 padding: 0;
1738 flex: 1 1 auto;
1739 position: relative;
1740 }
1741
1742 .drawer__inner {
1743 background: lighten($ui-base-color, 13%);
1744 box-sizing: border-box;
1745 padding: 0;
1746 position: absolute;
1747 height: 100%;
1748 width: 100%;
1749
1750 &.darker {
1751 position: absolute;
1752 top: 0;
1753 left: 0;
1754 background: $ui-base-color;
1755 width: 100%;
1756 height: 100%;
1757 }
1758 }
1759
1760 .pseudo-drawer {
1761 background: lighten($ui-base-color, 13%);
1762 font-size: 13px;
1763 text-align: left;
1764 }
1765
1766 .drawer__header {
1767 flex: 0 0 auto;
1768 font-size: 16px;
1769 background: lighten($ui-base-color, 8%);
1770 margin-bottom: 10px;
1771 display: flex;
1772 flex-direction: row;
1773
1774 a {
1775 transition: background 100ms ease-in;
1776
1777 &:hover {
1778 background: lighten($ui-base-color, 3%);
1779 transition: background 200ms ease-out;
1780 }
1781 }
1782 }
1783
1784 .tabs-bar {
1785 display: flex;
1786 background: lighten($ui-base-color, 8%);
1787 flex: 0 0 auto;
1788 overflow-y: auto;
1789 margin: 10px;
1790 margin-bottom: 0;
1791 }
1792
1793 .tabs-bar__link {
1794 display: block;
1795 flex: 1 1 auto;
1796 padding: 15px 10px;
1797 color: $primary-text-color;
1798 text-decoration: none;
1799 text-align: center;
1800 font-size: 14px;
1801 font-weight: 500;
1802 border-bottom: 2px solid lighten($ui-base-color, 8%);
1803 transition: all 200ms linear;
1804
1805 .fa {
1806 font-weight: 400;
1807 font-size: 16px;
1808 }
1809
1810 &.active {
1811 border-bottom: 2px solid $ui-highlight-color;
1812 color: $ui-highlight-color;
1813 }
1814
1815 &:hover,
1816 &:focus,
1817 &:active {
1818 @include multi-columns('screen and (min-width: 1025px)') {
1819 background: lighten($ui-base-color, 14%);
1820 transition: all 100ms linear;
1821 }
1822 }
1823
1824 span {
1825 margin-left: 5px;
1826 display: none;
1827 }
1828 }
1829
1830 @include limited-single-column('screen and (max-width: 600px)', $parent: null) {
1831 .tabs-bar__link {
1832 span {
1833 display: inline;
1834 }
1835 }
1836 }
1837
1838 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1839 .tabs-bar {
1840 display: none;
1841 }
1842 }
1843
1844 .scrollable {
1845 overflow-y: scroll;
1846 overflow-x: hidden;
1847 flex: 1 1 auto;
1848 -webkit-overflow-scrolling: touch;
1849 @supports(display: grid) { // hack to fix Chrome <57
1850 contain: strict;
1851 }
1852
1853 &.optionally-scrollable {
1854 overflow-y: auto;
1855 }
1856 }
1857
1858 .column-back-button {
1859 background: lighten($ui-base-color, 4%);
1860 color: $ui-highlight-color;
1861 cursor: pointer;
1862 flex: 0 0 auto;
1863 font-size: 16px;
1864 border: 0;
1865 text-align: unset;
1866 padding: 15px;
1867 margin: 0;
1868 z-index: 3;
1869
1870 &:hover {
1871 text-decoration: underline;
1872 }
1873 }
1874
1875 .column-header__back-button {
1876 background: lighten($ui-base-color, 4%);
1877 border: 0;
1878 font-family: inherit;
1879 color: $ui-highlight-color;
1880 cursor: pointer;
1881 flex: 0 0 auto;
1882 font-size: 16px;
1883 padding: 0 5px 0 0;
1884 z-index: 3;
1885
1886 &:hover {
1887 text-decoration: underline;
1888 }
1889
1890 &:last-child {
1891 padding: 0 15px 0 0;
1892 }
1893 }
1894
1895 .column-back-button__icon {
1896 display: inline-block;
1897 margin-right: 5px;
1898 }
1899
1900 .column-back-button--slim {
1901 position: relative;
1902 }
1903
1904 .column-back-button--slim-button {
1905 cursor: pointer;
1906 flex: 0 0 auto;
1907 font-size: 16px;
1908 padding: 15px;
1909 position: absolute;
1910 right: 0;
1911 top: -48px;
1912 }
1913
1914 .react-toggle {
1915 display: inline-block;
1916 position: relative;
1917 cursor: pointer;
1918 background-color: transparent;
1919 border: 0;
1920 padding: 0;
1921 user-select: none;
1922 -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
1923 -webkit-tap-highlight-color: transparent;
1924 }
1925
1926 .react-toggle-screenreader-only {
1927 border: 0;
1928 clip: rect(0 0 0 0);
1929 height: 1px;
1930 margin: -1px;
1931 overflow: hidden;
1932 padding: 0;
1933 position: absolute;
1934 width: 1px;
1935 }
1936
1937 .react-toggle--disabled {
1938 cursor: not-allowed;
1939 opacity: 0.5;
1940 transition: opacity 0.25s;
1941 }
1942
1943 .react-toggle-track {
1944 width: 50px;
1945 height: 24px;
1946 padding: 0;
1947 border-radius: 30px;
1948 background-color: $ui-base-color;
1949 transition: all 0.2s ease;
1950 }
1951
1952 .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
1953 background-color: darken($ui-base-color, 10%);
1954 }
1955
1956 .react-toggle--checked .react-toggle-track {
1957 background-color: $ui-highlight-color;
1958 }
1959
1960 .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
1961 background-color: lighten($ui-highlight-color, 10%);
1962 }
1963
1964 .react-toggle-track-check {
1965 position: absolute;
1966 width: 14px;
1967 height: 10px;
1968 top: 0;
1969 bottom: 0;
1970 margin-top: auto;
1971 margin-bottom: auto;
1972 line-height: 0;
1973 left: 8px;
1974 opacity: 0;
1975 transition: opacity 0.25s ease;
1976 }
1977
1978 .react-toggle--checked .react-toggle-track-check {
1979 opacity: 1;
1980 transition: opacity 0.25s ease;
1981 }
1982
1983 .react-toggle-track-x {
1984 position: absolute;
1985 width: 10px;
1986 height: 10px;
1987 top: 0;
1988 bottom: 0;
1989 margin-top: auto;
1990 margin-bottom: auto;
1991 line-height: 0;
1992 right: 10px;
1993 opacity: 1;
1994 transition: opacity 0.25s ease;
1995 }
1996
1997 .react-toggle--checked .react-toggle-track-x {
1998 opacity: 0;
1999 }
2000
2001 .react-toggle-thumb {
2002 transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
2003 position: absolute;
2004 top: 1px;
2005 left: 1px;
2006 width: 22px;
2007 height: 22px;
2008 border: 1px solid $ui-base-color;
2009 border-radius: 50%;
2010 background-color: darken($simple-background-color, 2%);
2011 box-sizing: border-box;
2012 transition: all 0.25s ease;
2013 }
2014
2015 .react-toggle--checked .react-toggle-thumb {
2016 left: 27px;
2017 border-color: $ui-highlight-color;
2018 }
2019
2020 .column-link {
2021 background: lighten($ui-base-color, 8%);
2022 color: $primary-text-color;
2023 display: block;
2024 font-size: 16px;
2025 padding: 15px;
2026 text-decoration: none;
2027 cursor: pointer;
2028 outline: none;
2029
2030 &:hover {
2031 background: lighten($ui-base-color, 11%);
2032 }
2033 }
2034
2035 .column-link__icon {
2036 display: inline-block;
2037 margin-right: 5px;
2038 }
2039
2040 .column-subheading {
2041 background: $ui-base-color;
2042 color: $ui-base-lighter-color;
2043 padding: 8px 20px;
2044 font-size: 12px;
2045 font-weight: 500;
2046 text-transform: uppercase;
2047 cursor: default;
2048 }
2049
2050 .autosuggest-textarea,
2051 .spoiler-input {
2052 position: relative;
2053 }
2054
2055 .autosuggest-textarea__textarea,
2056 .spoiler-input__input {
2057 display: block;
2058 box-sizing: border-box;
2059 width: 100%;
2060 margin: 0;
2061 color: $ui-base-color;
2062 background: $simple-background-color;
2063 padding: 10px;
2064 font-family: inherit;
2065 font-size: 14px;
2066 resize: vertical;
2067 border: 0;
2068 outline: 0;
2069
2070 &:focus {
2071 outline: 0;
2072 }
2073
2074 @include limited-single-column('screen and (max-width: 600px)') {
2075 font-size: 16px;
2076 }
2077 }
2078
2079 .spoiler-input__input {
2080 border-radius: 4px;
2081 }
2082
2083 .autosuggest-textarea__textarea {
2084 min-height: 100px;
2085 border-radius: 4px 4px 0 0;
2086 padding-bottom: 0;
2087 padding-right: 10px + 22px;
2088 resize: none;
2089
2090 @include limited-single-column('screen and (max-width: 600px)') {
2091 height: 100px !important; // prevent auto-resize textarea
2092 resize: vertical;
2093 }
2094 }
2095
2096 .autosuggest-textarea__suggestions {
2097 display: none;
2098 position: absolute;
2099 top: 100%;
2100 width: 100%;
2101 z-index: 99;
2102 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
2103 background: $ui-secondary-color;
2104 color: $ui-base-color;
2105 font-size: 14px;
2106
2107 &.autosuggest-textarea__suggestions--visible {
2108 display: block;
2109 }
2110 }
2111
2112 .autosuggest-textarea__suggestions__item {
2113 padding: 10px;
2114 cursor: pointer;
2115
2116 &:hover {
2117 background: darken($ui-secondary-color, 10%);
2118 }
2119
2120 &.selected {
2121 background: $ui-highlight-color;
2122 color: $base-border-color;
2123 }
2124 }
2125
2126 .autosuggest-account {
2127 overflow: hidden;
2128 }
2129
2130 .autosuggest-account-icon {
2131 float: left;
2132 margin-right: 5px;
2133 }
2134
2135 .autosuggest-status {
2136 overflow: hidden;
2137 white-space: nowrap;
2138 text-overflow: ellipsis;
2139
2140 strong {
2141 font-weight: 500;
2142 }
2143 }
2144
2145 .character-counter__wrapper {
2146 line-height: 36px;
2147 margin: 0 16px 0 8px;
2148 padding-top: 10px;
2149 }
2150
2151 .character-counter {
2152 cursor: default;
2153 font-size: 16px;
2154 }
2155
2156 .character-counter--over {
2157 color: $warning-red;
2158 }
2159
2160 .getting-started__wrapper {
2161 position: relative;
2162 overflow-y: auto;
2163 }
2164
2165 .getting-started__footer {
2166 display: flex;
2167 flex-direction: column;
2168 }
2169
2170 .getting-started {
2171 box-sizing: border-box;
2172 padding-bottom: 235px;
2173 background: url('../images/mastodon-getting-started.png') no-repeat 0 100%;
2174 flex: 1 0 auto;
2175
2176 p {
2177 color: $ui-secondary-color;
2178 }
2179
2180 a {
2181 color: $ui-base-lighter-color;
2182 }
2183 }
2184
2185 .setting-text {
2186 color: $ui-primary-color;
2187 background: transparent;
2188 border: none;
2189 border-bottom: 2px solid $ui-primary-color;
2190 box-sizing: border-box;
2191 display: block;
2192 font-family: inherit;
2193 margin-bottom: 10px;
2194 padding: 7px 0;
2195 width: 100%;
2196
2197 &:focus,
2198 &:active {
2199 color: $primary-text-color;
2200 border-bottom-color: $ui-highlight-color;
2201 }
2202
2203 @include limited-single-column('screen and (max-width: 600px)') {
2204 font-size: 16px;
2205 }
2206
2207 &.light {
2208 color: $ui-base-color;
2209 border-bottom: 2px solid lighten($ui-base-color, 27%);
2210
2211 &:focus,
2212 &:active {
2213 color: $ui-base-color;
2214 border-bottom-color: $ui-highlight-color;
2215 }
2216 }
2217 }
2218
2219 @import 'boost';
2220
2221 button.icon-button i.fa-retweet {
2222 background-position: 0 0;
2223 height: 19px;
2224 transition: background-position 0.9s steps(10);
2225 transition-duration: 0s;
2226 vertical-align: middle;
2227 width: 22px;
2228
2229 &::before {
2230 display: none !important;
2231 }
2232 }
2233
2234 button.icon-button.active i.fa-retweet {
2235 transition-duration: 0.9s;
2236 background-position: 0 100%;
2237 }
2238
2239 .status-card {
2240 display: flex;
2241 cursor: pointer;
2242 font-size: 14px;
2243 border: 1px solid lighten($ui-base-color, 8%);
2244 border-radius: 4px;
2245 color: $ui-base-lighter-color;
2246 margin-top: 14px;
2247 text-decoration: none;
2248 overflow: hidden;
2249
2250 &:hover {
2251 background: lighten($ui-base-color, 8%);
2252 }
2253 }
2254
2255 .status-card-video,
2256 .status-card-rich,
2257 .status-card-photo {
2258 margin-top: 14px;
2259 overflow: hidden;
2260
2261 iframe {
2262 width: 100%;
2263 height: auto;
2264 }
2265 }
2266
2267 .status-card-photo {
2268 display: block;
2269 text-decoration: none;
2270
2271 img {
2272 display: block;
2273 width: 100%;
2274 height: auto;
2275 margin: 0;
2276 }
2277 }
2278
2279 .status-card-video {
2280 position: relative;
2281 width: 100%;
2282 height: auto;
2283 padding-top: 56.25%;
2284
2285 iframe {
2286 position: absolute;
2287 top: 0;
2288 left: 0;
2289 bottom: 0;
2290 right: 0;
2291 width: 1px;
2292 min-width: 100%;
2293 height: 1px;
2294 min-height: 100%;
2295 margin: auto;
2296 }
2297 }
2298
2299 .status-card__title {
2300 display: block;
2301 font-weight: 500;
2302 margin-bottom: 5px;
2303 color: $ui-primary-color;
2304 overflow: hidden;
2305 text-overflow: ellipsis;
2306 white-space: nowrap;
2307 }
2308
2309 .status-card__content {
2310 flex: 1 1 auto;
2311 overflow: hidden;
2312 padding: 14px 14px 14px 8px;
2313 }
2314
2315 .status-card__description {
2316 color: $ui-primary-color;
2317 }
2318
2319 .status-card__host {
2320 display: block;
2321 margin-top: 5px;
2322 font-size: 13px;
2323 }
2324
2325 .status-card__image {
2326 flex: 0 0 100px;
2327 background: lighten($ui-base-color, 8%);
2328 }
2329
2330 .status-card.horizontal {
2331 display: block;
2332
2333 .status-card__image {
2334 width: 100%;
2335 }
2336
2337 .status-card__image-image {
2338 border-radius: 4px 4px 0 0;
2339 }
2340 }
2341
2342 .status-card__image-image {
2343 border-radius: 4px 0 0 4px;
2344 display: block;
2345 height: auto;
2346 margin: 0;
2347 width: 100%;
2348 }
2349
2350 .load-more {
2351 display: block;
2352 color: $ui-base-lighter-color;
2353 background-color: transparent;
2354 border: 0;
2355 font-size: inherit;
2356 text-align: center;
2357 line-height: inherit;
2358 margin: 0;
2359 padding: 15px;
2360 width: 100%;
2361 clear: both;
2362
2363 &:hover {
2364 background: lighten($ui-base-color, 2%);
2365 }
2366 }
2367
2368 .missing-indicator {
2369 text-align: center;
2370 font-size: 16px;
2371 font-weight: 500;
2372 color: lighten($ui-base-color, 16%);
2373 background: $ui-base-color;
2374 cursor: default;
2375 display: flex;
2376 flex: 1 1 auto;
2377 align-items: center;
2378 justify-content: center;
2379
2380 & > div {
2381 background: url('../images/mastodon-not-found.png') no-repeat center -50px;
2382 padding-top: 210px;
2383 width: 100%;
2384 }
2385 }
2386
2387 .column-header__wrapper {
2388 position: relative;
2389 flex: 0 0 auto;
2390
2391 &.active {
2392 &::before {
2393 display: block;
2394 content: "";
2395 position: absolute;
2396 top: 35px;
2397 left: 0;
2398 right: 0;
2399 margin: 0 auto;
2400 width: 60%;
2401 pointer-events: none;
2402 height: 28px;
2403 z-index: 1;
2404 background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
2405 }
2406 }
2407 }
2408
2409 .column-header {
2410 padding: 15px;
2411 font-size: 16px;
2412 background: lighten($ui-base-color, 4%);
2413 flex: 0 0 auto;
2414 cursor: pointer;
2415 position: relative;
2416 z-index: 2;
2417 outline: 0;
2418
2419 &.active {
2420 box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);
2421
2422 .column-header__icon {
2423 color: $ui-highlight-color;
2424 text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);
2425 }
2426 }
2427
2428 &:focus,
2429 &:active {
2430 outline: 0;
2431 }
2432 }
2433
2434 .column-header__buttons {
2435 position: absolute;
2436 right: 0;
2437 top: 0;
2438 height: 100%;
2439 display: flex;
2440 height: 48px;
2441 }
2442
2443 .column-header__button {
2444 background: lighten($ui-base-color, 4%);
2445 border: 0;
2446 color: $ui-primary-color;
2447 cursor: pointer;
2448 font-size: 16px;
2449 padding: 0 15px;
2450
2451 &:hover {
2452 color: lighten($ui-primary-color, 7%);
2453 }
2454
2455 &.active {
2456 color: $primary-text-color;
2457 background: lighten($ui-base-color, 8%);
2458
2459 &:hover {
2460 color: $primary-text-color;
2461 background: lighten($ui-base-color, 8%);
2462 }
2463 }
2464
2465 // glitch - added focus ring for keyboard navigation
2466 &:focus {
2467 text-shadow: 0 0 4px darken($ui-highlight-color, 5%);
2468 }
2469 }
2470
2471 .scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {
2472 border-top: 1px solid $ui-base-color;
2473 }
2474
2475 .notification__dismiss-overlay {
2476 overflow: hidden;
2477 position: absolute;
2478 top: 0;
2479 right: 0;
2480 bottom: -1px;
2481 padding-left: 15px; // space for the box shadow to be visible
2482
2483 z-index: 999;
2484 align-items: center;
2485 justify-content: flex-end;
2486 cursor: pointer;
2487
2488 display: flex;
2489
2490 .wrappy {
2491 width: $dismiss-overlay-width;
2492 align-self: stretch;
2493 display: flex;
2494 flex-direction: column;
2495 align-items: center;
2496 justify-content: center;
2497 background: lighten($ui-base-color, 8%);
2498 border-left: 1px solid lighten($ui-base-color, 20%);
2499 box-shadow: 0 0 5px black;
2500 border-bottom: 1px solid $ui-base-color;
2501 }
2502
2503 .ckbox {
2504 border: 2px solid $ui-primary-color;
2505 border-radius: 2px;
2506 width: 30px;
2507 height: 30px;
2508 font-size: 20px;
2509 color: $ui-primary-color;
2510 text-shadow: 0 0 5px black;
2511 display: flex;
2512 justify-content: center;
2513 align-items: center;
2514 }
2515
2516 &:focus {
2517 outline: 0 !important;
2518
2519 .ckbox {
2520 box-shadow: 0 0 1px 1px $ui-highlight-color;
2521 }
2522 }
2523 }
2524
2525 .column-header__notif-cleaning-buttons {
2526 display: flex;
2527 align-items: stretch;
2528 justify-content: space-around;
2529
2530 button {
2531 @extend .column-header__button;
2532 background: transparent;
2533 text-align: center;
2534 padding: 10px 0;
2535 white-space: pre-wrap;
2536 }
2537
2538 b {
2539 font-weight: bold;
2540 }
2541 }
2542
2543 // The notifs drawer with no padding to have more space for the buttons
2544 .column-header__collapsible-inner.nopad-drawer {
2545 padding: 0;
2546 }
2547
2548 .column-header__collapsible {
2549 max-height: 70vh;
2550 overflow: hidden;
2551 overflow-y: auto;
2552 color: $ui-primary-color;
2553 transition: max-height 150ms ease-in-out, opacity 300ms linear;
2554 opacity: 1;
2555
2556 &.collapsed {
2557 max-height: 0;
2558 opacity: 0.5;
2559 }
2560
2561 &.animating {
2562 overflow-y: hidden;
2563 }
2564
2565 // notif cleaning drawer
2566 &.ncd {
2567 transition: none;
2568 &.collapsed {
2569 max-height: 0;
2570 opacity: 0.7;
2571 }
2572 }
2573 }
2574
2575 .column-header__collapsible-inner {
2576 background: lighten($ui-base-color, 8%);
2577 padding: 15px;
2578 }
2579
2580 .column-header__setting-btn {
2581 &:hover {
2582 color: lighten($ui-primary-color, 4%);
2583 text-decoration: underline;
2584 }
2585 }
2586
2587 .column-header__setting-arrows {
2588 float: right;
2589
2590 .column-header__setting-btn {
2591 padding: 0 10px;
2592
2593 &:last-child {
2594 padding-right: 0;
2595 }
2596 }
2597 }
2598
2599 .text-btn {
2600 display: inline-block;
2601 padding: 0;
2602 font-family: inherit;
2603 font-size: inherit;
2604 color: inherit;
2605 border: 0;
2606 background: transparent;
2607 cursor: pointer;
2608 }
2609
2610 .column-header__icon {
2611 display: inline-block;
2612 margin-right: 5px;
2613 }
2614
2615 .loading-indicator {
2616 color: lighten($ui-base-color, 26%);
2617 font-size: 12px;
2618 font-weight: 400;
2619 text-transform: uppercase;
2620 overflow: visible;
2621 position: absolute;
2622 top: 50%;
2623 left: 50%;
2624 transform: translate(-50%, -50%);
2625
2626 span {
2627 display: block;
2628 float: left;
2629 margin-left: 50%;
2630 transform: translateX(-50%);
2631 margin: 82px 0 0 50%;
2632 white-space: nowrap;
2633 animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2634 }
2635 }
2636
2637 .loading-indicator__figure {
2638 position: absolute;
2639 top: 50%;
2640 left: 50%;
2641 transform: translate(-50%, -50%);
2642 width: 0;
2643 height: 0;
2644 box-sizing: border-box;
2645 border: 0 solid lighten($ui-base-color, 26%);
2646 border-radius: 50%;
2647 animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2648 }
2649
2650 @keyframes loader-figure {
2651 0% {
2652 width: 0;
2653 height: 0;
2654 background-color: lighten($ui-base-color, 26%);
2655 }
2656
2657 29% {
2658 background-color: lighten($ui-base-color, 26%);
2659 }
2660
2661 30% {
2662 width: 42px;
2663 height: 42px;
2664 background-color: transparent;
2665 border-width: 21px;
2666 opacity: 1;
2667 }
2668
2669 100% {
2670 width: 42px;
2671 height: 42px;
2672 border-width: 0;
2673 opacity: 0;
2674 background-color: transparent;
2675 }
2676 }
2677
2678 @keyframes loader-label {
2679 0% { opacity: 0.25; }
2680 30% { opacity: 1; }
2681 100% { opacity: 0.25; }
2682 }
2683
2684 .video-error-cover {
2685 align-items: center;
2686 background: $base-overlay-background;
2687 color: $primary-text-color;
2688 cursor: pointer;
2689 display: flex;
2690 flex-direction: column;
2691 height: 100%;
2692 justify-content: center;
2693 margin-top: 8px;
2694 position: relative;
2695 text-align: center;
2696 z-index: 100;
2697 }
2698
2699 .media-spoiler {
2700 background: $base-overlay-background;
2701 color: $primary-text-color;
2702 border: 0;
2703 width: 100%;
2704 height: 100%;
2705 justify-content: center;
2706 position: relative;
2707 text-align: center;
2708 z-index: 100;
2709 display: flex;
2710 flex-direction: column;
2711
2712 .status__content > & {
2713 margin-top: 15px; // Add margin when used bare for NSFW video player
2714 }
2715
2716 &.full-width {
2717 margin-left: -68px;
2718 width: calc(100% + 80px);
2719 }
2720 }
2721
2722 .media-spoiler__warning {
2723 display: block;
2724 font-size: 14px;
2725 }
2726
2727 .media-spoiler__trigger {
2728 display: block;
2729 font-size: 11px;
2730 font-weight: 500;
2731 }
2732
2733 .spoiler-button {
2734 display: none;
2735 left: 4px;
2736 position: absolute;
2737 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
2738 top: 4px;
2739 z-index: 100;
2740
2741 &.spoiler-button--visible {
2742 display: block;
2743 }
2744 }
2745
2746 .modal-container--preloader {
2747 background: lighten($ui-base-color, 8%);
2748 }
2749
2750 .account--panel {
2751 background: lighten($ui-base-color, 4%);
2752 border-top: 1px solid lighten($ui-base-color, 8%);
2753 border-bottom: 1px solid lighten($ui-base-color, 8%);
2754 display: flex;
2755 flex-direction: row;
2756 padding: 10px 0;
2757 }
2758
2759 .account--panel__button,
2760 .detailed-status__button {
2761 flex: 1 1 auto;
2762 text-align: center;
2763 }
2764
2765 .column-settings__outer {
2766 background: lighten($ui-base-color, 8%);
2767 padding: 15px;
2768 }
2769
2770 .column-settings__section {
2771 color: $ui-primary-color;
2772 cursor: default;
2773 display: block;
2774 font-weight: 500;
2775 margin-bottom: 10px;
2776 }
2777
2778 .column-settings__row {
2779 .text-btn {
2780 margin-bottom: 15px;
2781 }
2782 }
2783
2784 .modal-container__nav {
2785 align-items: center;
2786 background: rgba($base-overlay-background, 0.5);
2787 box-sizing: border-box;
2788 border: 0;
2789 color: $primary-text-color;
2790 cursor: pointer;
2791 display: flex;
2792 font-size: 24px;
2793 height: 100%;
2794 padding: 30px 15px;
2795 position: absolute;
2796 top: 0;
2797 }
2798
2799 .modal-container__nav--left {
2800 left: -61px;
2801 }
2802
2803 .modal-container__nav--right {
2804 right: -61px;
2805 }
2806
2807 .account--follows-info {
2808 color: $primary-text-color;
2809 position: absolute;
2810 top: 10px;
2811 right: 10px;
2812 opacity: 0.7;
2813 display: inline-block;
2814 vertical-align: top;
2815 background-color: rgba($base-overlay-background, 0.4);
2816 text-transform: uppercase;
2817 font-size: 11px;
2818 font-weight: 500;
2819 padding: 4px;
2820 border-radius: 4px;
2821 }
2822
2823 .account--action-button {
2824 position: absolute;
2825 top: 10px;
2826 left: 20px;
2827 }
2828
2829 .setting-toggle {
2830 display: block;
2831 line-height: 24px;
2832 }
2833
2834 .setting-toggle__label,
2835 .setting-meta__label {
2836 color: $ui-primary-color;
2837 display: inline-block;
2838 margin-bottom: 14px;
2839 margin-left: 8px;
2840 vertical-align: middle;
2841 }
2842
2843 .setting-meta__label {
2844 color: $ui-primary-color;
2845 float: right;
2846 }
2847
2848 .empty-column-indicator,
2849 .error-column {
2850 color: lighten($ui-base-color, 20%);
2851 background: $ui-base-color;
2852 text-align: center;
2853 padding: 20px;
2854 font-size: 15px;
2855 font-weight: 400;
2856 cursor: default;
2857 display: flex;
2858 flex: 1 1 auto;
2859 align-items: center;
2860 justify-content: center;
2861 @supports(display: grid) { // hack to fix Chrome <57
2862 contain: strict;
2863 }
2864
2865 a {
2866 color: $ui-highlight-color;
2867 text-decoration: none;
2868
2869 &:hover {
2870 text-decoration: underline;
2871 }
2872 }
2873 }
2874
2875 .error-column {
2876 flex-direction: column;
2877 }
2878
2879 @keyframes pulse {
2880 0% {
2881 opacity: 1;
2882 }
2883
2884 100% {
2885 opacity: 0.5;
2886 }
2887 }
2888
2889 .pulse-loading {
2890 animation: pulse 1s ease-in-out infinite;
2891 animation-direction: alternate;
2892 }
2893
2894 .emoji-dialog {
2895 width: 245px;
2896 height: 270px;
2897 background: $simple-background-color;
2898 box-sizing: border-box;
2899 border-radius: 4px;
2900 overflow: hidden;
2901 position: relative;
2902 box-shadow: 0 0 8px rgba($base-shadow-color, 0.2);
2903
2904 .emojione {
2905 margin: 0;
2906 width: 100%;
2907 height: auto;
2908 }
2909
2910 .emoji-dialog-header {
2911 padding: 0 10px;
2912
2913 ul {
2914 padding: 0;
2915 margin: 0;
2916 list-style: none;
2917 }
2918
2919 li {
2920 display: inline-block;
2921 box-sizing: border-box;
2922 padding: 10px 5px;
2923 cursor: pointer;
2924 border-bottom: 2px solid transparent;
2925
2926 .emoji {
2927 width: 18px;
2928 height: 18px;
2929 }
2930
2931 img,
2932 svg {
2933 width: 18px;
2934 height: 18px;
2935 filter: grayscale(100%);
2936 }
2937
2938 &:hover {
2939 img,
2940 svg {
2941 filter: grayscale(0);
2942 }
2943 }
2944
2945 &.active {
2946 border-bottom-color: $ui-highlight-color;
2947
2948 img,
2949 svg {
2950 filter: grayscale(0);
2951 }
2952 }
2953 }
2954 }
2955
2956 .emoji-row {
2957 box-sizing: border-box;
2958 overflow-y: hidden;
2959 padding-left: 10px;
2960
2961 .emoji {
2962 display: inline-block;
2963 padding: 2.5px;
2964 border-radius: 4px;
2965 }
2966 }
2967
2968 .emoji-category-header {
2969 box-sizing: border-box;
2970 overflow-y: hidden;
2971 padding: 10px 8px 10px 16px;
2972 display: table;
2973
2974 > * {
2975 display: table-cell;
2976 vertical-align: middle;
2977 }
2978 }
2979
2980 .emoji-category-title {
2981 font-size: 12px;
2982 text-transform: uppercase;
2983 font-weight: 500;
2984 color: darken($ui-secondary-color, 18%);
2985 cursor: default;
2986 }
2987
2988 .emoji-category-heading-decoration {
2989 text-align: right;
2990 }
2991
2992 .modifiers {
2993 list-style: none;
2994 padding: 0;
2995 margin: 0;
2996 vertical-align: middle;
2997 white-space: nowrap;
2998 margin-top: 4px;
2999
3000 li {
3001 display: inline-block;
3002 padding: 0 2px;
3003
3004 &:last-of-type {
3005 padding-right: 0;
3006 }
3007 }
3008
3009 .modifier {
3010 display: inline-block;
3011 border-radius: 10px;
3012 width: 15px;
3013 height: 15px;
3014 position: relative;
3015 cursor: pointer;
3016
3017 &.active::after {
3018 content: "";
3019 display: block;
3020 position: absolute;
3021 width: 7px;
3022 height: 7px;
3023 border-radius: 10px;
3024 border: 2px solid $base-border-color;
3025 top: 2px;
3026 left: 2px;
3027 }
3028 }
3029 }
3030
3031 .emoji-search-wrapper {
3032 padding: 10px;
3033 border-bottom: 1px solid lighten($ui-secondary-color, 4%);
3034 }
3035
3036 .emoji-search {
3037 font-size: 14px;
3038 font-weight: 400;
3039 padding: 7px 9px;
3040 font-family: inherit;
3041 display: block;
3042 width: 100%;
3043 background: rgba($ui-secondary-color, 0.3);
3044 color: darken($ui-secondary-color, 18%);
3045 border: 1px solid $ui-secondary-color;
3046 border-radius: 4px;
3047 }
3048
3049 .emoji-categories-wrapper {
3050 position: absolute;
3051 top: 42px;
3052 bottom: 0;
3053 left: 0;
3054 right: 0;
3055 }
3056
3057 .emoji-search-wrapper + .emoji-categories-wrapper {
3058 top: 93px;
3059 }
3060
3061 .emoji-row .emoji {
3062 img,
3063 svg {
3064 transition: transform 60ms ease-in-out;
3065 }
3066
3067 &:hover {
3068 background: lighten($ui-secondary-color, 3%);
3069
3070 img,
3071 svg {
3072 transform: translateZ(0) scale(1.2);
3073 }
3074 }
3075 }
3076
3077 .emoji {
3078 width: 22px;
3079 height: 22px;
3080 cursor: pointer;
3081
3082 &:focus {
3083 outline: 0;
3084 }
3085 }
3086 }
3087
3088 .upload-area {
3089 align-items: center;
3090 background: rgba($base-overlay-background, 0.8);
3091 display: flex;
3092 height: 100%;
3093 justify-content: center;
3094 left: 0;
3095 opacity: 0;
3096 position: absolute;
3097 top: 0;
3098 visibility: hidden;
3099 width: 100%;
3100 z-index: 2000;
3101
3102 * {
3103 pointer-events: none;
3104 }
3105 }
3106
3107 .upload-area__drop {
3108 width: 320px;
3109 height: 160px;
3110 display: flex;
3111 box-sizing: border-box;
3112 position: relative;
3113 padding: 8px;
3114 }
3115
3116 .upload-area__background {
3117 position: absolute;
3118 top: 0;
3119 right: 0;
3120 bottom: 0;
3121 left: 0;
3122 z-index: -1;
3123 border-radius: 4px;
3124 background: $ui-base-color;
3125 box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
3126 }
3127
3128 .upload-area__content {
3129 flex: 1;
3130 display: flex;
3131 align-items: center;
3132 justify-content: center;
3133 color: $ui-secondary-color;
3134 font-size: 18px;
3135 font-weight: 500;
3136 border: 2px dashed $ui-base-lighter-color;
3137 border-radius: 4px;
3138 }
3139
3140 .upload-progress {
3141 padding: 10px;
3142 color: $ui-base-lighter-color;
3143 overflow: hidden;
3144 display: flex;
3145
3146 .fa {
3147 font-size: 34px;
3148 margin-right: 10px;
3149 }
3150
3151 span {
3152 font-size: 12px;
3153 text-transform: uppercase;
3154 font-weight: 500;
3155 display: block;
3156 }
3157 }
3158
3159 .upload-progess__message {
3160 flex: 1 1 auto;
3161 }
3162
3163 .upload-progress__backdrop {
3164 width: 100%;
3165 height: 6px;
3166 border-radius: 6px;
3167 background: $ui-base-lighter-color;
3168 position: relative;
3169 margin-top: 5px;
3170 }
3171
3172 .upload-progress__tracker {
3173 position: absolute;
3174 left: 0;
3175 top: 0;
3176 height: 6px;
3177 background: $ui-highlight-color;
3178 border-radius: 6px;
3179 }
3180
3181 .emoji-button {
3182 display: block;
3183 font-size: 24px;
3184 line-height: 24px;
3185 margin-left: 2px;
3186 width: 24px;
3187 outline: 0;
3188 cursor: pointer;
3189
3190 &:active,
3191 &:focus {
3192 outline: 0 !important;
3193 }
3194
3195 img {
3196 filter: grayscale(100%);
3197 opacity: 0.8;
3198 display: block;
3199 margin: 0;
3200 width: 22px;
3201 height: 22px;
3202 margin-top: 2px;
3203 }
3204
3205 &:hover,
3206 &:active,
3207 &:focus {
3208 img {
3209 opacity: 1;
3210 filter: none;
3211 }
3212 }
3213 }
3214
3215 .dropdown--active .emoji-button img {
3216 opacity: 1;
3217 filter: none;
3218 }
3219
3220 .privacy-dropdown {
3221 position: relative;
3222 }
3223
3224 .privacy-dropdown__dropdown {
3225 display: none;
3226 position: absolute;
3227 left: 0;
3228 top: 27px;
3229 width: 230px;
3230 background: $simple-background-color;
3231 border-radius: 0 4px 4px;
3232 z-index: 2;
3233 overflow: hidden;
3234 }
3235
3236 .privacy-dropdown__option {
3237 color: $ui-base-color;
3238 padding: 10px;
3239 cursor: pointer;
3240 display: flex;
3241
3242 &:hover,
3243 &.active {
3244 background: $ui-highlight-color;
3245 color: $primary-text-color;
3246
3247 .privacy-dropdown__option__content {
3248 color: $primary-text-color;
3249
3250 strong {
3251 color: $primary-text-color;
3252 }
3253 }
3254 }
3255
3256 &.active:hover {
3257 background: lighten($ui-highlight-color, 4%);
3258 }
3259 }
3260
3261 .privacy-dropdown__option__icon {
3262 display: flex;
3263 align-items: center;
3264 justify-content: center;
3265 margin-right: 10px;
3266 }
3267
3268 .privacy-dropdown__option__content {
3269 flex: 1 1 auto;
3270 color: darken($ui-primary-color, 24%);
3271
3272 strong {
3273 font-weight: 500;
3274 display: block;
3275 color: $ui-base-color;
3276 }
3277 }
3278
3279 .privacy-dropdown.active {
3280 .privacy-dropdown__value {
3281 background: $simple-background-color;
3282 border-radius: 4px 4px 0 0;
3283 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
3284 }
3285
3286 .privacy-dropdown__dropdown {
3287 display: block;
3288 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3289 }
3290 }
3291
3292 .advanced-options-dropdown {
3293 position: relative;
3294 }
3295
3296 .advanced-options-dropdown__dropdown {
3297 display: none;
3298 position: absolute;
3299 left: 0;
3300 top: 27px;
3301 width: 210px;
3302 background: $simple-background-color;
3303 border-radius: 0 4px 4px;
3304 z-index: 2;
3305 overflow: hidden;
3306 }
3307
3308 .advanced-options-dropdown__option {
3309 color: $ui-base-color;
3310 padding: 10px;
3311 cursor: pointer;
3312 display: flex;
3313
3314 &:hover,
3315 &.active {
3316 background: $ui-highlight-color;
3317 color: $primary-text-color;
3318
3319 .advanced-options-dropdown__option__content {
3320 color: $primary-text-color;
3321
3322 strong {
3323 color: $primary-text-color;
3324 }
3325 }
3326 }
3327
3328 &.active:hover {
3329 background: lighten($ui-highlight-color, 4%);
3330 }
3331 }
3332
3333 .advanced-options-dropdown__option__toggle {
3334 display: flex;
3335 align-items: center;
3336 justify-content: center;
3337 margin-right: 10px;
3338 }
3339
3340 .advanced-options-dropdown__option__content {
3341 flex: 1 1 auto;
3342 color: darken($ui-primary-color, 24%);
3343
3344 strong {
3345 font-weight: 500;
3346 display: block;
3347 color: $ui-base-color;
3348 }
3349 }
3350
3351 .advanced-options-dropdown.open {
3352 .advanced-options-dropdown__value {
3353 background: $simple-background-color;
3354 border-radius: 4px 4px 0 0;
3355 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
3356 }
3357
3358 .advanced-options-dropdown__dropdown {
3359 display: block;
3360 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3361 }
3362 }
3363
3364
3365 .search {
3366 position: relative;
3367 margin-bottom: 10px;
3368 }
3369
3370 .search__input {
3371 padding-right: 30px;
3372 color: $ui-secondary-color;
3373 outline: 0;
3374 box-sizing: border-box;
3375 display: block;
3376 width: 100%;
3377 border: none;
3378 padding: 10px;
3379 padding-right: 30px;
3380 font-family: inherit;
3381 background: $ui-base-color;
3382 color: $ui-primary-color;
3383 font-size: 14px;
3384 margin: 0;
3385
3386 &::-moz-focus-inner {
3387 border: 0;
3388 }
3389
3390 &::-moz-focus-inner,
3391 &:focus,
3392 &:active {
3393 outline: 0 !important;
3394 }
3395
3396 &:focus {
3397 background: lighten($ui-base-color, 4%);
3398 }
3399
3400 @include limited-single-column('screen and (max-width: 600px)') {
3401 font-size: 16px;
3402 }
3403 }
3404
3405 .search__icon {
3406 .fa {
3407 position: absolute;
3408 top: 10px;
3409 right: 10px;
3410 z-index: 2;
3411 display: inline-block;
3412 opacity: 0;
3413 transition: all 100ms linear;
3414 font-size: 18px;
3415 width: 18px;
3416 height: 18px;
3417 color: $ui-secondary-color;
3418 cursor: default;
3419 pointer-events: none;
3420
3421 &.active {
3422 pointer-events: auto;
3423 opacity: 0.3;
3424 }
3425 }
3426
3427 .fa-search {
3428 transform: translateZ(0) rotate(90deg);
3429
3430 &.active {
3431 pointer-events: none;
3432 transform: translateZ(0) rotate(0deg);
3433 }
3434 }
3435
3436 .fa-times-circle {
3437 top: 11px;
3438 transform: translateZ(0) rotate(0deg);
3439 cursor: pointer;
3440
3441 &.active {
3442 transform: translateZ(0) rotate(90deg);
3443 }
3444
3445 &:hover {
3446 color: $primary-text-color;
3447 }
3448 }
3449 }
3450
3451 .search-results__header {
3452 color: $ui-base-lighter-color;
3453 background: lighten($ui-base-color, 2%);
3454 border-bottom: 1px solid darken($ui-base-color, 4%);
3455 padding: 15px 10px;
3456 font-size: 14px;
3457 font-weight: 500;
3458 }
3459
3460 .search-results__section {
3461 background: $ui-base-color;
3462 }
3463
3464 .search-results__hashtag {
3465 display: block;
3466 padding: 10px;
3467 color: $ui-secondary-color;
3468 text-decoration: none;
3469
3470 &:hover,
3471 &:active,
3472 &:focus {
3473 color: lighten($ui-secondary-color, 4%);
3474 text-decoration: underline;
3475 }
3476 }
3477
3478 .modal-root__overlay {
3479 position: absolute;
3480 top: 0;
3481 left: 0;
3482 right: 0;
3483 bottom: 0;
3484 z-index: 9999;
3485 opacity: 0;
3486 background: rgba($base-overlay-background, 0.7);
3487 transform: translateZ(0);
3488 }
3489
3490 .modal-root__container {
3491 position: absolute;
3492 top: 0;
3493 left: 0;
3494 width: 100%;
3495 height: 100%;
3496 display: flex;
3497 flex-direction: column;
3498 align-items: center;
3499 justify-content: center;
3500 align-content: space-around;
3501 z-index: 9999;
3502 opacity: 0;
3503 pointer-events: none;
3504 user-select: none;
3505 }
3506
3507 .modal-root__modal {
3508 pointer-events: auto;
3509 display: flex;
3510 z-index: 9999;
3511 }
3512
3513 .media-modal {
3514 max-width: 80vw;
3515 max-height: 80vh;
3516 position: relative;
3517
3518 .extended-video-player,
3519 img,
3520 canvas,
3521 video {
3522 max-width: 80vw;
3523 max-height: 80vh;
3524 width: auto;
3525 height: auto;
3526 margin: auto;
3527 }
3528
3529 .extended-video-player,
3530 video {
3531 display: flex;
3532 width: 80vw;
3533 height: 80vh;
3534 }
3535
3536 img,
3537 canvas {
3538 display: block;
3539 background: url('../images/void.png') repeat;
3540 object-fit: contain;
3541 }
3542
3543 .react-swipeable-view-container {
3544 max-width: 80vw;
3545 }
3546 }
3547
3548 .media-modal__content {
3549 background: $base-overlay-background;
3550 }
3551
3552 .media-modal__close {
3553 position: absolute;
3554 right: 4px;
3555 top: 4px;
3556 z-index: 100;
3557 }
3558
3559 .onboarding-modal,
3560 .error-modal,
3561 .embed-modal {
3562 background: $ui-secondary-color;
3563 color: $ui-base-color;
3564 border-radius: 8px;
3565 overflow: hidden;
3566 display: flex;
3567 flex-direction: column;
3568 }
3569
3570 .onboarding-modal__pager {
3571 height: 80vh;
3572 width: 80vw;
3573 max-width: 520px;
3574 max-height: 420px;
3575
3576 .react-swipeable-view-container > div {
3577 width: 100%;
3578 height: 100%;
3579 box-sizing: border-box;
3580 padding: 25px;
3581 display: none;
3582 flex-direction: column;
3583 align-items: center;
3584 justify-content: center;
3585 display: flex;
3586 user-select: text;
3587 }
3588 }
3589
3590 .error-modal__body {
3591 height: 80vh;
3592 width: 80vw;
3593 max-width: 520px;
3594 max-height: 420px;
3595 position: relative;
3596
3597 & > div {
3598 position: absolute;
3599 top: 0;
3600 left: 0;
3601 width: 100%;
3602 height: 100%;
3603 box-sizing: border-box;
3604 padding: 25px;
3605 display: none;
3606 flex-direction: column;
3607 align-items: center;
3608 justify-content: center;
3609 display: flex;
3610 opacity: 0;
3611 user-select: text;
3612 }
3613 }
3614
3615 .error-modal__body {
3616 display: flex;
3617 flex-direction: column;
3618 justify-content: center;
3619 align-items: center;
3620 text-align: center;
3621 }
3622
3623 @media screen and (max-width: 550px) {
3624 .onboarding-modal {
3625 width: 100%;
3626 height: 100%;
3627 border-radius: 0;
3628 }
3629
3630 .onboarding-modal__pager {
3631 width: 100%;
3632 height: auto;
3633 max-width: none;
3634 max-height: none;
3635 flex: 1 1 auto;
3636 }
3637 }
3638
3639 .onboarding-modal__paginator,
3640 .error-modal__footer {
3641 flex: 0 0 auto;
3642 background: darken($ui-secondary-color, 8%);
3643 display: flex;
3644 padding: 25px;
3645
3646 & > div {
3647 min-width: 33px;
3648 }
3649
3650 .onboarding-modal__nav,
3651 .error-modal__nav {
3652 color: darken($ui-secondary-color, 34%);
3653 background-color: transparent;
3654 border: 0;
3655 font-size: 14px;
3656 font-weight: 500;
3657 padding: 0;
3658 line-height: inherit;
3659 height: auto;
3660
3661 &:hover,
3662 &:focus,
3663 &:active {
3664 color: darken($ui-secondary-color, 38%);
3665 }
3666
3667 &.onboarding-modal__done,
3668 &.onboarding-modal__next {
3669 color: $ui-highlight-color;
3670 }
3671 }
3672 }
3673
3674 .error-modal__footer {
3675 justify-content: center;
3676 }
3677
3678 .onboarding-modal__dots {
3679 flex: 1 1 auto;
3680 display: flex;
3681 align-items: center;
3682 justify-content: center;
3683 }
3684
3685 .onboarding-modal__dot {
3686 width: 14px;
3687 height: 14px;
3688 border-radius: 14px;
3689 background: darken($ui-secondary-color, 16%);
3690 margin: 0 3px;
3691 cursor: pointer;
3692
3693 &:hover {
3694 background: darken($ui-secondary-color, 18%);
3695 }
3696
3697 &.active {
3698 cursor: default;
3699 background: darken($ui-secondary-color, 24%);
3700 }
3701 }
3702
3703 .onboarding-modal__page__wrapper {
3704 pointer-events: none;
3705
3706 &.onboarding-modal__page__wrapper--active {
3707 pointer-events: auto;
3708 }
3709 }
3710
3711 .onboarding-modal__page {
3712 cursor: default;
3713 line-height: 21px;
3714
3715 h1 {
3716 font-size: 18px;
3717 font-weight: 500;
3718 color: $ui-base-color;
3719 margin-bottom: 20px;
3720 }
3721
3722 a {
3723 color: $ui-highlight-color;
3724
3725 &:hover,
3726 &:focus,
3727 &:active {
3728 color: lighten($ui-highlight-color, 4%);
3729 }
3730 }
3731
3732 p {
3733 font-size: 16px;
3734 color: lighten($ui-base-color, 8%);
3735 margin-top: 10px;
3736 margin-bottom: 10px;
3737
3738 &:last-child {
3739 margin-bottom: 0;
3740 }
3741
3742 strong {
3743 font-weight: 500;
3744 background: $ui-base-color;
3745 color: $ui-secondary-color;
3746 border-radius: 4px;
3747 font-size: 14px;
3748 padding: 3px 6px;
3749 }
3750 }
3751 }
3752
3753 .onboarding-modal__page-one {
3754 display: flex;
3755 align-items: center;
3756 }
3757
3758 .onboarding-modal__page-one__elephant-friend {
3759 background: url('../images/elephant-friend-1.png') no-repeat center center / contain;
3760 width: 155px;
3761 height: 193px;
3762 margin-right: 15px;
3763 }
3764
3765 @media screen and (max-width: 400px) {
3766 .onboarding-modal__page-one {
3767 flex-direction: column;
3768 align-items: normal;
3769 }
3770
3771 .onboarding-modal__page-one__elephant-friend {
3772 width: 100%;
3773 height: 30vh;
3774 max-height: 160px;
3775 margin-bottom: 5vh;
3776 }
3777 }
3778
3779 .onboarding-modal__page-two,
3780 .onboarding-modal__page-three,
3781 .onboarding-modal__page-four,
3782 .onboarding-modal__page-five {
3783 p {
3784 text-align: left;
3785 }
3786
3787 .figure {
3788 background: darken($ui-base-color, 8%);
3789 color: $ui-secondary-color;
3790 margin-bottom: 20px;
3791 border-radius: 4px;
3792 padding: 10px;
3793 text-align: center;
3794 font-size: 14px;
3795 box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
3796
3797 .onboarding-modal__image {
3798 border-radius: 4px;
3799 margin-bottom: 10px;
3800 }
3801
3802 &.non-interactive {
3803 pointer-events: none;
3804 text-align: left;
3805 }
3806 }
3807 }
3808
3809 .onboarding-modal__page-four__columns {
3810 .row {
3811 display: flex;
3812 margin-bottom: 20px;
3813
3814 & > div {
3815 flex: 1 1 0;
3816 margin: 0 10px;
3817
3818 &:first-child {
3819 margin-left: 0;
3820 }
3821
3822 &:last-child {
3823 margin-right: 0;
3824 }
3825
3826 p {
3827 text-align: center;
3828 }
3829 }
3830
3831 &:last-child {
3832 margin-bottom: 0;
3833 }
3834 }
3835
3836 .column-header {
3837 color: $primary-text-color;
3838 }
3839 }
3840
3841 @media screen and (max-width: 320px) and (max-height: 600px) {
3842 .onboarding-modal__page p {
3843 font-size: 14px;
3844 line-height: 20px;
3845 }
3846
3847 .onboarding-modal__page-two .figure,
3848 .onboarding-modal__page-three .figure,
3849 .onboarding-modal__page-four .figure,
3850 .onboarding-modal__page-five .figure {
3851 font-size: 12px;
3852 margin-bottom: 10px;
3853 }
3854
3855 .onboarding-modal__page-four__columns .row {
3856 margin-bottom: 10px;
3857 }
3858
3859 .onboarding-modal__page-four__columns .column-header {
3860 padding: 5px;
3861 font-size: 12px;
3862 }
3863 }
3864
3865 .onboarding-modal__image {
3866 border-radius: 8px;
3867 width: 70vw;
3868 max-width: 450px;
3869 max-height: auto;
3870 display: block;
3871 margin: auto;
3872 margin-bottom: 20px;
3873 }
3874
3875 .onboard-sliders {
3876 display: inline-block;
3877 max-width: 30px;
3878 max-height: auto;
3879 margin-left: 10px;
3880 }
3881
3882 .boost-modal,
3883 .confirmation-modal,
3884 .report-modal,
3885 .actions-modal,
3886 .mute-modal {
3887 background: lighten($ui-secondary-color, 8%);
3888 color: $ui-base-color;
3889 border-radius: 8px;
3890 overflow: hidden;
3891 max-width: 90vw;
3892 width: 480px;
3893 position: relative;
3894 flex-direction: column;
3895
3896 .status__display-name {
3897 display: block;
3898 max-width: 100%;
3899 padding-right: 25px;
3900 }
3901
3902 .status__avatar {
3903 height: 28px;
3904 left: 10px;
3905 position: absolute;
3906 top: 10px;
3907 width: 48px;
3908 }
3909 }
3910
3911 .actions-modal {
3912 .status {
3913 background: $white;
3914 border-bottom-color: $ui-secondary-color;
3915 padding-top: 10px;
3916 padding-bottom: 10px;
3917 }
3918 }
3919
3920 .boost-modal__container {
3921 overflow-x: scroll;
3922 padding: 10px;
3923
3924 .status {
3925 user-select: text;
3926 border-bottom: 0;
3927 }
3928 }
3929
3930 .boost-modal__action-bar,
3931 .confirmation-modal__action-bar,
3932 .mute-modal__action-bar,
3933 .report-modal__action-bar {
3934 display: flex;
3935 justify-content: space-between;
3936 background: $ui-secondary-color;
3937 padding: 10px;
3938 line-height: 36px;
3939
3940 & > div {
3941 flex: 1 1 auto;
3942 text-align: right;
3943 color: lighten($ui-base-color, 33%);
3944 padding-right: 10px;
3945 }
3946
3947 .button {
3948 flex: 0 0 auto;
3949 }
3950 }
3951
3952 .boost-modal__status-header {
3953 font-size: 15px;
3954 }
3955
3956 .boost-modal__status-time {
3957 float: right;
3958 font-size: 14px;
3959 }
3960
3961 .confirmation-modal {
3962 max-width: 85vw;
3963
3964 @media screen and (min-width: 480px) {
3965 max-width: 380px;
3966 }
3967 }
3968
3969 .report-modal__statuses,
3970 .report-modal__comment {
3971 padding: 10px;
3972 }
3973
3974 .report-modal__statuses {
3975 min-height: 20vh;
3976 max-height: 40vh;
3977 overflow-y: auto;
3978 overflow-x: hidden;
3979 }
3980
3981 .report-modal__comment {
3982 .setting-text {
3983 margin-top: 10px;
3984 }
3985 }
3986
3987 .actions-modal {
3988 .status {
3989 overflow-y: auto;
3990 max-height: 300px;
3991 }
3992
3993 max-height: 80vh;
3994 max-width: 80vw;
3995
3996 ul {
3997 overflow-y: auto;
3998 flex-shrink: 0;
3999
4000 li:empty {
4001 margin: 0;
4002 }
4003
4004 li:not(:empty) {
4005 a {
4006 color: $ui-base-color;
4007 display: flex;
4008 padding: 10px;
4009 align-items: center;
4010 text-decoration: none;
4011
4012 &.active {
4013 &,
4014 button {
4015 background: $ui-highlight-color;
4016 color: $primary-text-color;
4017 }
4018 }
4019
4020 button:first-child {
4021 margin-right: 10px;
4022 }
4023 }
4024 }
4025 }
4026 }
4027
4028 .confirmation-modal__action-bar,
4029 .mute-modal__action-bar {
4030 .confirmation-modal__cancel-button,
4031 .mute-modal__cancel-button {
4032 background-color: transparent;
4033 color: darken($ui-secondary-color, 34%);
4034 font-size: 14px;
4035 font-weight: 500;
4036
4037 &:hover,
4038 &:focus,
4039 &:active {
4040 color: darken($ui-secondary-color, 38%);
4041 }
4042 }
4043 }
4044
4045 .confirmation-modal__container,
4046 .mute-modal__container,
4047 .report-modal__target {
4048 padding: 30px;
4049 font-size: 16px;
4050 text-align: center;
4051
4052 strong {
4053 font-weight: 500;
4054 }
4055 }
4056
4057 .loading-bar {
4058 background-color: $ui-highlight-color;
4059 height: 3px;
4060 position: absolute;
4061 top: 0;
4062 left: 0;
4063 }
4064
4065 .media-gallery__gifv__label {
4066 display: block;
4067 position: absolute;
4068 color: $primary-text-color;
4069 background: rgba($base-overlay-background, 0.5);
4070 bottom: 6px;
4071 left: 6px;
4072 padding: 2px 6px;
4073 border-radius: 2px;
4074 font-size: 11px;
4075 font-weight: 600;
4076 z-index: 1;
4077 pointer-events: none;
4078 opacity: 0.9;
4079 transition: opacity 0.1s ease;
4080 }
4081
4082 .media-gallery__gifv {
4083 &.autoplay {
4084 .media-gallery__gifv__label {
4085 display: none;
4086 }
4087 }
4088
4089 &:hover {
4090 .media-gallery__gifv__label {
4091 opacity: 1;
4092 }
4093 }
4094 }
4095
4096 .attachment-list {
4097 display: flex;
4098 font-size: 14px;
4099 border: 1px solid lighten($ui-base-color, 8%);
4100 border-radius: 4px;
4101 margin-top: 14px;
4102 overflow: hidden;
4103 }
4104
4105 .attachment-list__icon {
4106 flex: 0 0 auto;
4107 color: $ui-base-lighter-color;
4108 padding: 8px 18px;
4109 cursor: default;
4110 border-right: 1px solid lighten($ui-base-color, 8%);
4111 display: flex;
4112 flex-direction: column;
4113 align-items: center;
4114 justify-content: center;
4115 font-size: 26px;
4116
4117 .fa {
4118 display: block;
4119 }
4120 }
4121
4122 .attachment-list__list {
4123 list-style: none;
4124 padding: 4px 0;
4125 padding-left: 8px;
4126 display: flex;
4127 flex-direction: column;
4128 justify-content: center;
4129
4130 li {
4131 display: block;
4132 padding: 4px 0;
4133 }
4134
4135 a {
4136 text-decoration: none;
4137 color: $ui-base-lighter-color;
4138 font-weight: 500;
4139
4140 &:hover {
4141 text-decoration: underline;
4142 }
4143 }
4144 }
4145
4146 /* Media Gallery */
4147 .media-gallery {
4148 box-sizing: border-box;
4149 margin-top: 15px;
4150 overflow: hidden;
4151 position: relative;
4152 background: $base-shadow-color;
4153 width: 100%;
4154
4155 &.full-width {
4156 margin-left: -68px;
4157 width: calc(100% + 80px);
4158 }
4159
4160 .detailed-status & {
4161 margin-left:-10px;
4162 width: calc(100% + 22px);
4163 }
4164 }
4165
4166 .media-gallery__item {
4167 border: none;
4168 box-sizing: border-box;
4169 display: block;
4170 float: left;
4171 position: relative;
4172 }
4173
4174 .media-gallery__item-thumbnail {
4175 cursor: zoom-in;
4176 text-decoration: none;
4177 width: 100%;
4178 height: 100%;
4179 display: flex;
4180
4181 img {
4182 width: 100%;
4183 object-fit: contain;
4184
4185 &:not(.letterbox) {
4186 height: 100%;
4187 object-fit: cover;
4188 }
4189 }
4190 }
4191
4192 .media-gallery__gifv {
4193 height: 100%;
4194 overflow: hidden;
4195 position: relative;
4196 width: 100%;
4197 display: flex;
4198 justify-content: center;
4199 }
4200
4201 .media-gallery__item-gifv-thumbnail {
4202 cursor: zoom-in;
4203 height: 100%;
4204 position: relative;
4205 z-index: 1;
4206 object-fit: contain;
4207
4208 &:not(.letterbox) {
4209 height: 100%;
4210 object-fit: cover;
4211 }
4212 }
4213
4214 .media-gallery__item-thumbnail-label {
4215 clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
4216 clip: rect(1px, 1px, 1px, 1px);
4217 overflow: hidden;
4218 position: absolute;
4219 }
4220 /* End Media Gallery */
4221
4222 /* Status Video Player */
4223 .status__video-player {
4224 display: flex;
4225 align-items: center;
4226 background: $base-shadow-color;
4227 box-sizing: border-box;
4228 cursor: default; /* May not be needed */
4229 margin-top: 15px;
4230 overflow: hidden;
4231 position: relative;
4232 width: 100%;
4233
4234 &.full-width {
4235 margin-left: -68px;
4236 width: calc(100% + 80px);
4237 }
4238 }
4239
4240 .status__video-player-video {
4241 position: relative;
4242 width: 100%;
4243 z-index: 1;
4244
4245 &:not(.letterbox) {
4246 height: 100%;
4247 object-fit: cover;
4248 }
4249 }
4250
4251 .status__video-player-expand,
4252 .status__video-player-mute {
4253 color: $primary-text-color;
4254 opacity: 0.8;
4255 position: absolute;
4256 right: 4px;
4257 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4258 }
4259
4260 .status__video-player-spoiler {
4261 display: none;
4262 color: $primary-text-color;
4263 left: 4px;
4264 position: absolute;
4265 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4266 top: 4px;
4267 z-index: 100;
4268
4269 &.status__video-player-spoiler--visible {
4270 display: block;
4271 }
4272 }
4273
4274 .status__video-player-expand {
4275 bottom: 4px;
4276 z-index: 100;
4277 }
4278
4279 .status__video-player-mute {
4280 top: 4px;
4281 z-index: 5;
4282 }
4283
4284 .media-spoiler-video {
4285 background-size: cover;
4286 background-repeat: no-repeat;
4287 background-position: center;
4288 cursor: pointer;
4289 margin-top: 15px;
4290 position: relative;
4291 width: 100%;
4292
4293 &.full-width {
4294 margin-left: -68px;
4295 width: calc(100% + 80px);
4296 }
4297
4298 border: 0;
4299 display: block;
4300 }
4301
4302 .media-spoiler-video-play-icon {
4303 border-radius: 100px;
4304 color: rgba($primary-text-color, 0.8);
4305 font-size: 36px;
4306 left: 50%;
4307 padding: 5px;
4308 position: absolute;
4309 top: 50%;
4310 transform: translate(-50%, -50%);
4311 }
4312 /* End Video Player */
4313
4314 .account-gallery__container {
4315 margin: -2px;
4316 padding: 4px;
4317 }
4318
4319 .account-gallery__item {
4320 float: left;
4321 width: 96px;
4322 height: 96px;
4323 margin: 2px;
4324
4325 a {
4326 display: block;
4327 width: 100%;
4328 height: 100%;
4329 background-color: $base-overlay-background;
4330 background-size: cover;
4331 background-position: center;
4332 position: relative;
4333 }
4334 }
4335
4336 .account-section-headline {
4337 color: $ui-base-lighter-color;
4338 background: lighten($ui-base-color, 2%);
4339 border-bottom: 1px solid lighten($ui-base-color, 4%);
4340 padding: 15px 10px;
4341 font-size: 14px;
4342 font-weight: 500;
4343 position: relative;
4344 cursor: default;
4345
4346 &::before,
4347 &::after {
4348 display: block;
4349 content: "";
4350 position: absolute;
4351 bottom: 0;
4352 left: 18px;
4353 width: 0;
4354 height: 0;
4355 border-style: solid;
4356 border-width: 0 10px 10px;
4357 border-color: transparent transparent lighten($ui-base-color, 4%);
4358 }
4359
4360 &::after {
4361 bottom: -1px;
4362 border-color: transparent transparent $ui-base-color;
4363 }
4364 }
4365
4366 ::-webkit-scrollbar-thumb {
4367 border-radius: 0;
4368 }
4369
4370 noscript {
4371 text-align: center;
4372
4373 img {
4374 width: 200px;
4375 opacity: 0.5;
4376 animation: flicker 4s infinite;
4377 }
4378
4379 div {
4380 font-size: 14px;
4381 margin: 30px auto;
4382 color: $ui-secondary-color;
4383 max-width: 400px;
4384
4385 a {
4386 color: $ui-highlight-color;
4387 text-decoration: underline;
4388
4389 &:hover {
4390 text-decoration: none;
4391 }
4392 }
4393 }
4394 }
4395
4396 @keyframes flicker {
4397 0% { opacity: 1; }
4398 30% { opacity: 0.75; }
4399 100% { opacity: 1; }
4400 }
4401
4402 @media screen and (max-width: 1024px) and (max-height: 400px) {
4403 $duration: 400ms;
4404 $delay: 100ms;
4405
4406 .tabs-bar,
4407 .search {
4408 will-change: margin-top;
4409 transition: margin-top $duration $delay;
4410 }
4411
4412 .navigation-bar {
4413 will-change: padding-bottom;
4414 transition: padding-bottom $duration $delay;
4415 }
4416
4417 .navigation-bar {
4418 & > a:first-child {
4419 will-change: margin-top, margin-left, width;
4420 transition: margin-top $duration $delay, margin-left $duration ($duration + $delay);
4421 }
4422
4423 & > .navigation-bar__profile-edit {
4424 will-change: margin-top;
4425 transition: margin-top $duration $delay;
4426 }
4427
4428 & > .icon-button {
4429 will-change: opacity;
4430 transition: opacity $duration $delay;
4431 }
4432 }
4433
4434 .is-composing {
4435 .tabs-bar,
4436 .search {
4437 margin-top: -50px;
4438 }
4439
4440 .navigation-bar {
4441 padding-bottom: 0;
4442
4443 & > a:first-child {
4444 margin-top: -50px;
4445 margin-left: -40px;
4446 }
4447
4448 .navigation-bar__profile {
4449 padding-top: 2px;
4450 }
4451
4452 .navigation-bar__profile-edit {
4453 position: absolute;
4454 margin-top: -50px;
4455 }
4456
4457 .icon-button {
4458 pointer-events: auto;
4459 opacity: 1;
4460 }
4461 }
4462 }
4463
4464 // fixes for the navbar-under mode
4465 .is-composing.navbar-under {
4466 .search {
4467 margin-top: -20px;
4468 margin-bottom: -20px;
4469 .search__icon {
4470 display: none;
4471 }
4472 }
4473 }
4474 }
4475
4476 // more fixes for the navbar-under mode
4477 @mixin fix-margins-for-navbar-under {
4478 .tabs-bar {
4479 margin-top: 0 !important;
4480 margin-bottom: -6px !important;
4481 }
4482 }
4483
4484 .single-column.navbar-under {
4485 @include fix-margins-for-navbar-under;
4486 }
4487
4488 .auto-columns.navbar-under {
4489 @media screen and (max-width: 360px) {
4490 @include fix-margins-for-navbar-under;
4491 }
4492 }
4493
4494 .auto-columns.navbar-under .react-swipeable-view-container .columns-area,
4495 .single-column.navbar-under .react-swipeable-view-container .columns-area {
4496 @media screen and (max-width: 360px) {
4497 height: 100% !important;
4498 }
4499 }
4500
4501 .embed-modal {
4502 max-width: 80vw;
4503 max-height: 80vh;
4504
4505 h4 {
4506 padding: 30px;
4507 font-weight: 500;
4508 font-size: 16px;
4509 text-align: center;
4510 }
4511
4512 .embed-modal__container {
4513 padding: 10px;
4514
4515 .hint {
4516 margin-bottom: 15px;
4517 }
4518
4519 .embed-modal__html {
4520 color: $ui-secondary-color;
4521 outline: 0;
4522 box-sizing: border-box;
4523 display: block;
4524 width: 100%;
4525 border: none;
4526 padding: 10px;
4527 font-family: 'mastodon-font-monospace', monospace;
4528 background: $ui-base-color;
4529 color: $ui-primary-color;
4530 font-size: 14px;
4531 margin: 0;
4532 margin-bottom: 15px;
4533
4534 &::-moz-focus-inner {
4535 border: 0;
4536 }
4537
4538 &::-moz-focus-inner,
4539 &:focus,
4540 &:active {
4541 outline: 0 !important;
4542 }
4543
4544 &:focus {
4545 background: lighten($ui-base-color, 4%);
4546 }
4547
4548 @media screen and (max-width: 600px) {
4549 font-size: 16px;
4550 }
4551 }
4552
4553 .embed-modal__iframe {
4554 width: 400px;
4555 max-width: 100%;
4556 overflow: hidden;
4557 border: 0;
4558 }
4559 }
4560 }
This page took 0.502503 seconds and 2 git commands to generate.