2 @import 'variables-glitch';
4 @mixin fullwidth-gallery {
13 -webkit-overflow-scrolling: touch;
14 -ms-overflow-style: -ms-autohiding-scrollbar;
18 background-color: darken($ui-highlight-color, 3%);
21 box-sizing: border-box;
22 color: $primary-text-color;
24 display: inline-block;
35 text-transform: uppercase;
36 text-decoration: none;
37 text-overflow: ellipsis;
38 transition: all 100ms ease-in;
45 background-color: lighten($ui-highlight-color, 7%);
46 transition: all 200ms ease-out;
50 background-color: $ui-primary-color;
54 &.button-alternative {
58 color: $ui-base-color;
59 background: $ui-primary-color;
66 background-color: lighten($ui-primary-color, 4%);
74 color: $ui-primary-color;
76 background: transparent;
78 border: 1px solid $ui-primary-color;
83 border-color: lighten($ui-primary-color, 4%);
84 color: lighten($ui-primary-color, 4%);
101 background: lighten($ui-base-color, 4%);
102 color: $ui-primary-color;
112 color: lighten($ui-primary-color, 7%);
117 display: inline-block;
119 color: $ui-base-lighter-color;
121 background: transparent;
123 transition: color 100ms ease-in;
128 color: lighten($ui-base-color, 33%);
129 transition: color 200ms ease-out;
133 color: lighten($ui-base-color, 13%);
138 color: $ui-highlight-color;
141 &::-moz-focus-inner {
148 outline: 0 !important;
152 color: lighten($ui-base-color, 33%);
157 color: $ui-base-lighter-color;
161 color: $ui-primary-color;
165 color: $ui-highlight-color;
168 color: lighten($ui-highlight-color, 13%);
174 box-sizing: content-box;
175 background: rgba($base-overlay-background, 0.6);
176 color: rgba($primary-text-color, 0.7);
181 background: rgba($base-overlay-background, 0.9);
187 color: lighten($ui-base-color, 33%);
189 background: transparent;
196 transition: color 100ms ease-in;
201 color: $ui-base-lighter-color;
202 transition: color 200ms ease-out;
206 color: lighten($ui-base-color, 13%);
211 color: $ui-highlight-color;
214 &::-moz-focus-inner {
221 outline: 0 !important;
225 .dropdown--active .icon-button {
226 color: $ui-highlight-color;
229 .dropdown--active::after {
230 @media screen and (min-width: 1025px) {
237 border-width: 0 4.5px 7.8px;
238 border-color: transparent transparent $ui-secondary-color;
247 display: inline-block;
259 .lightbox .icon-button {
260 color: $ui-base-color;
267 .compose-form__warning {
268 color: darken($ui-secondary-color, 65%);
270 background: $ui-primary-color;
271 box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
278 color: darken($ui-secondary-color, 65%);
283 color: darken($ui-primary-color, 33%);
285 text-decoration: underline;
290 text-decoration: none;
295 .compose-form__modifiers {
296 color: $ui-base-color;
297 font-family: inherit;
299 background: $simple-background-color;
300 border-radius: 0 0 4px;
303 .compose-form__buttons-wrapper {
305 justify-content: space-between;
308 .compose-form__buttons {
310 background: darken($simple-background-color, 8%);
311 box-shadow: inset 0 5px 5px rgba($base-shadow-color, 0.05);
312 border-radius: 0 0 4px 4px;
316 box-sizing: content-box;
321 .compose-form__upload-button-icon {
325 .compose-form__sensitive-button {
328 &.compose-form__sensitive-button--visible {
332 .compose-form__sensitive-button__icon {
337 .compose-form__upload-wrapper {
341 .compose-form__uploads-wrapper {
346 .compose-form__upload {
351 .compose-form__upload-thumbnail {
353 background-position: center;
354 background-size: cover;
355 background-repeat: no-repeat;
360 .compose-form__upload-cancel {
361 background-size: cover;
367 .compose-form__label {
370 vertical-align: middle;
373 border-top: 1px solid $ui-base-color;
377 .compose-form__label__text {
378 display: inline-block;
379 vertical-align: middle;
382 color: $ui-primary-color;
386 .compose-form__textarea,
387 .follow-form__input {
388 background: $simple-background-color;
391 background: $ui-secondary-color;
395 .compose-form__autosuggest-wrapper {
398 .emoji-picker__dropdown {
403 &.dropdown--active::after {
404 border-color: transparent transparent $base-border-color;
409 ::-webkit-scrollbar-track:hover,
410 ::-webkit-scrollbar-track:active {
411 background-color: rgba($base-overlay-background, 0.3);
416 .compose-form__publish {
421 .compose-form__publish-button-wrapper {
427 display: inline-block;
429 vertical-align: middle;
430 margin: -.2ex .15em .2ex;
440 border-radius: 4px 4px 0 0;
443 background: $ui-primary-color;
447 .reply-indicator__header {
452 .reply-indicator__cancel {
457 .reply-indicator__display-name {
458 color: $ui-base-color;
464 text-decoration: none;
467 .reply-indicator__display-avatar {
472 .status__content--with-action {
478 .reply-indicator__content {
487 .reply-indicator__content {
493 color: $primary-text-color;
494 word-wrap: break-word;
497 white-space: pre-wrap;
513 color: $ui-secondary-color;
514 text-decoration: none;
517 text-decoration: underline;
520 color: lighten($ui-base-color, 40%);
526 text-decoration: none;
529 text-decoration: underline;
535 color: lighten($ui-base-color, 30%);
539 .status__content__spoiler {
542 &.status__content__spoiler--visible {
548 .status__content__spoiler-link {
549 display: inline-block;
551 background: lighten($ui-base-color, 30%);
553 color: lighten($ui-base-color, 8%);
557 text-transform: uppercase;
558 line-height: inherit;
560 vertical-align: bottom;
563 background: lighten($ui-base-color, 33%);
564 text-decoration: none;
567 .status__content__spoiler-icon {
568 display: inline-block;
570 border-left: 1px solid currentColor;
573 vertical-align: -2px;
577 .status__prepend-icon-wrapper {
579 margin: 0 10px 0 -58px;
585 .status, .notification-follow {
586 padding-right: ($dismiss-overlay-width + 0.5rem);
590 .notification-follow {
594 border-bottom: 1px solid lighten($ui-base-color, 8%);
597 border-bottom: 0 none;
606 border-bottom: 1px solid lighten($ui-base-color, 8%);
615 animation: fade 150ms linear;
618 background: lighten($ui-base-color, 8%);
620 .icon-button.disabled {
621 color: lighten($ui-base-color, 16%);
626 .status__relative-time {
627 color: $ui-primary-color;
630 .status__display-name {
631 color: $ui-base-color;
636 color: $ui-base-color;
640 color: $ui-primary-color;
645 color: $ui-base-color;
648 color: $ui-highlight-color;
651 a.status__content__spoiler-link {
652 color: $primary-text-color;
653 background: $ui-primary-color;
656 background: lighten($ui-primary-color, 8%);
663 background-position: center;
664 background-size: cover;
667 &.has-background::before {
674 background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));
678 .display-name:hover .display-name__html {
679 text-decoration: none;
685 text-overflow: ellipsis;
688 text-decoration: none;
693 .notification__message {
694 margin: -10px -10px 10px;
698 .notification-favourite {
699 .status.status-direct {
700 background: transparent;
702 .icon-button.disabled {
703 color: lighten($ui-base-color, 13%);
708 .status__relative-time {
709 display: inline-block;
713 color: $ui-base-lighter-color;
718 text-overflow: ellipsis;
721 .status__display-name {
723 color: $ui-base-lighter-color;
734 .status__info__icons {
737 color: lighten($ui-base-color, 26%);
739 .status__visibility-icon {
745 border-bottom: 1px solid $ui-secondary-color;
752 text-overflow: ellipsis;
757 .status-check-box-toggle {
761 justify-content: center;
766 margin: -10px -10px 10px;
767 color: $ui-base-lighter-color;
768 padding: 8px 10px 0 68px;
772 .status__display-name strong {
773 color: $ui-base-lighter-color;
777 .status__action-bar {
783 .status__action-bar-button {
789 .status__action-bar-dropdown {
794 // Dropdown style override for centering on the icon
798 .dropdown__content.dropdown__right {
799 left: calc(50% + 3px);
801 transform: translate(-50%, 0);
812 .detailed-status__action-bar-dropdown {
816 justify-content: center;
826 .dropdown__content.dropdown__left {
841 background: lighten($ui-base-color, 4%);
855 .detailed-status__meta {
857 color: $ui-base-lighter-color;
862 .detailed-status__action-bar {
863 background: lighten($ui-base-color, 4%);
864 border-top: 1px solid lighten($ui-base-color, 8%);
865 border-bottom: 1px solid lighten($ui-base-color, 8%);
871 .detailed-status__link {
873 text-decoration: none;
876 .detailed-status__favorites,
877 .detailed-status__reblogs {
878 display: inline-block;
884 .reply-indicator__content {
885 color: $ui-base-color;
889 color: lighten($ui-base-color, 20%);
895 border-bottom: 1px solid lighten($ui-base-color, 8%);
897 .account__display-name {
900 color: $ui-primary-color;
902 text-decoration: none;
911 .account__avatar-wrapper {
913 margin: 6px 16px 6px 6px;
917 @include avatar-radius();
922 display: inline-block;
923 vertical-align: middle;
928 .account__avatar-overlay {
930 @include avatar-size(48px);
933 @include avatar-radius();
934 @include avatar-size(36px);
938 @include avatar-radius();
939 @include avatar-size(24px);
948 .account__relationship {
954 .account__header__wrapper {
956 background: lighten($ui-base-color, 4%);
961 background-size: cover;
962 background-position: center;
966 background: rgba(lighten($ui-base-color, 4%), 0.9);
970 .account__header__content {
971 color: $ui-secondary-color;
974 .account__header__display-name {
975 color: $primary-text-color;
976 display: inline-block;
982 .account__header__username {
983 color: $ui-highlight-color;
991 .account__disclaimer {
993 border-top: 1px solid lighten($ui-base-color, 8%);
994 color: $ui-base-lighter-color;
1003 text-decoration: underline;
1008 text-decoration: none;
1013 .account__header__content {
1014 color: $ui-primary-color;
1019 word-wrap: break-word;
1022 margin-bottom: 20px;
1031 text-decoration: underline;
1034 text-decoration: none;
1039 .account__header__display-name {
1046 .account__metadata {
1051 border-collapse: collapse;
1054 text-decoration: none;
1057 text-decoration: underline;
1062 border-top: 1px solid lighten($ui-base-color, 8%);
1067 vertical-align: middle;
1072 white-space: pre-wrap;
1073 text-overflow: ellipsis;
1078 color: $ui-primary-color;
1079 background: lighten($ui-base-color, 13%);
1080 font-variant: small-caps;
1084 color: $primary-text-color;
1090 color: $primary-text-color;
1091 background: $ui-base-color;
1094 color: $ui-highlight-color;
1099 .account__action-bar {
1100 border-top: 1px solid lighten($ui-base-color, 8%);
1101 border-bottom: 1px solid lighten($ui-base-color, 8%);
1108 .account__action-bar-dropdown {
1113 .dropdown__content.dropdown__right {
1127 .account__action-bar-links {
1133 .account__action-bar__tab {
1134 text-decoration: none;
1137 border-left: 1px solid lighten($ui-base-color, 8%);
1142 text-transform: uppercase;
1144 color: $ui-primary-color;
1151 color: $primary-text-color;
1155 color: $ui-base-lighter-color;
1159 .account__header__avatar {
1160 @include avatar-radius();
1161 @include avatar-size(90px);
1163 margin: 0 auto 10px;
1167 .account-authorize {
1170 .detailed-status__display-name {
1172 margin-bottom: 15px;
1177 .account-authorize__avatar {
1182 .status__display-name,
1183 .status__relative-time,
1184 .detailed-status__display-name,
1185 .detailed-status__datetime,
1186 .detailed-status__application,
1187 .account__display-name {
1188 text-decoration: none;
1191 .status__display-name,
1192 .account__display-name {
1194 color: $primary-text-color;
1198 .account__display-name strong {
1202 .detailed-status__application,
1203 .detailed-status__datetime {
1207 .detailed-status__display-name {
1208 color: $ui-secondary-color;
1211 margin-bottom: 15px;
1217 text-overflow: ellipsis;
1223 color: $primary-text-color;
1227 .detailed-status__display-avatar {
1241 .status__content a {
1242 color: $ui-base-lighter-color;
1245 .status__display-name strong {
1246 color: $ui-base-lighter-color;
1249 .status__avatar, .emojione {
1253 a.status__content__spoiler-link {
1254 background: $ui-base-lighter-color;
1255 color: lighten($ui-base-color, 4%);
1258 background: lighten($ui-base-color, 29%);
1259 text-decoration: none;
1264 .notification__message {
1265 padding: 8px 10px 0 68px;
1267 color: $ui-primary-color;
1272 color: $ui-highlight-color;
1276 .notification__favourite-icon-wrapper {
1278 margin: 0 10px 0 -58px;
1291 .notification__display-name {
1294 text-decoration: none;
1297 color: $primary-text-color;
1298 text-decoration: underline;
1315 text-overflow: ellipsis;
1317 white-space: nowrap;
1325 text-overflow: ellipsis;
1327 white-space: nowrap;
1332 text-decoration: underline;
1337 .status__relative-time,
1338 .detailed-status__datetime {
1340 text-decoration: underline;
1347 &.image-loader--loading {
1348 .image-loader__preview-canvas {
1353 .image-loader__img {
1360 background-image: none;
1363 &.image-loader--amorphous {
1366 .image-loader__preview-canvas {
1370 .image-loader__img {
1383 color: $ui-primary-color;
1386 color: $primary-text-color;
1390 text-decoration: none;
1394 pointer-events: none;
1399 .navigation-bar__profile {
1404 .navigation-bar__profile-account {
1409 .navigation-bar__profile-edit {
1411 text-decoration: none;
1415 display: inline-block;
1418 .dropdown__content {
1424 border-bottom: 1px solid darken($ui-secondary-color, 8%);
1425 margin: 5px 7px 6px;
1429 .dropdown--active .dropdown__content {
1439 background: $ui-secondary-color;
1442 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
1462 box-sizing: border-box;
1463 text-decoration: none;
1464 background: $ui-secondary-color;
1465 color: $ui-base-color;
1467 text-overflow: ellipsis;
1468 white-space: nowrap;
1475 background: $ui-highlight-color;
1476 color: $ui-secondary-color;
1482 vertical-align: middle;
1488 color: $ui-base-lighter-color;
1493 margin-bottom: 40px;
1499 margin-bottom: 20px;
1506 flex-direction: row;
1507 justify-content: flex-start;
1513 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1518 .react-swipeable-view-container .columns-area {
1519 height: calc(100% - 20px) !important;
1523 .react-swipeable-view-container {
1532 .react-swipeable-view-container > * {
1534 align-items: center;
1535 justify-content: center;
1542 box-sizing: border-box;
1544 flex-direction: column;
1554 background: $ui-base-color;
1561 flex-direction: column;
1564 background: darken($ui-base-color, 7%);
1569 box-sizing: border-box;
1571 flex-direction: column;
1584 padding: 15px 5px 13px;
1585 color: $ui-primary-color;
1586 text-decoration: none;
1589 border-bottom: 2px solid transparent;
1596 @supports(display: grid) { // hack to fix Chrome <57
1601 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1611 :root { // Overrides .wide stylings for mobile view
1612 @include single-column('screen and (max-width: 1024px)', $parent: null) {
1623 flex-direction: column;
1627 .autosuggest-textarea__textarea {
1633 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1649 padding-right: 10px;
1653 .columns-area > div {
1663 box-sizing: border-box;
1670 background: lighten($ui-base-color, 13%);
1671 box-sizing: border-box;
1681 background: $ui-base-color;
1688 background: lighten($ui-base-color, 13%);
1696 background: lighten($ui-base-color, 8%);
1697 margin-bottom: 10px;
1699 flex-direction: row;
1702 transition: background 100ms ease-in;
1705 background: lighten($ui-base-color, 3%);
1706 transition: background 200ms ease-out;
1713 background: lighten($ui-base-color, 8%);
1724 color: $primary-text-color;
1725 text-decoration: none;
1729 border-bottom: 2px solid lighten($ui-base-color, 8%);
1730 transition: all 200ms linear;
1738 border-bottom: 2px solid $ui-highlight-color;
1739 color: $ui-highlight-color;
1745 @include multi-columns('screen and (min-width: 1025px)') {
1746 background: lighten($ui-base-color, 14%);
1747 transition: all 100ms linear;
1757 @include limited-single-column('screen and (max-width: 600px)', $parent: null) {
1765 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1775 -webkit-overflow-scrolling: touch;
1776 @supports(display: grid) { // hack to fix Chrome <57
1780 &.optionally-scrollable {
1785 .column-back-button {
1786 background: lighten($ui-base-color, 4%);
1787 color: $ui-highlight-color;
1798 text-decoration: underline;
1802 .column-header__back-button {
1803 background: lighten($ui-base-color, 4%);
1805 font-family: inherit;
1806 color: $ui-highlight-color;
1814 text-decoration: underline;
1818 padding: 0 15px 0 0;
1822 .column-back-button__icon {
1823 display: inline-block;
1827 .column-back-button--slim {
1831 .column-back-button--slim-button {
1842 display: inline-block;
1845 background-color: transparent;
1849 -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
1850 -webkit-tap-highlight-color: transparent;
1853 .react-toggle-screenreader-only {
1855 clip: rect(0 0 0 0);
1864 .react-toggle--disabled {
1865 cursor: not-allowed;
1867 transition: opacity 0.25s;
1870 .react-toggle-track {
1874 border-radius: 30px;
1875 background-color: $ui-base-color;
1876 transition: all 0.2s ease;
1879 .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
1880 background-color: darken($ui-base-color, 10%);
1883 .react-toggle--checked .react-toggle-track {
1884 background-color: $ui-highlight-color;
1887 .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
1888 background-color: lighten($ui-highlight-color, 10%);
1891 .react-toggle-track-check {
1898 margin-bottom: auto;
1902 transition: opacity 0.25s ease;
1905 .react-toggle--checked .react-toggle-track-check {
1907 transition: opacity 0.25s ease;
1910 .react-toggle-track-x {
1917 margin-bottom: auto;
1921 transition: opacity 0.25s ease;
1924 .react-toggle--checked .react-toggle-track-x {
1928 .react-toggle-thumb {
1929 transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
1935 border: 1px solid $ui-base-color;
1937 background-color: darken($simple-background-color, 2%);
1938 box-sizing: border-box;
1939 transition: all 0.25s ease;
1942 .react-toggle--checked .react-toggle-thumb {
1944 border-color: $ui-highlight-color;
1948 background: lighten($ui-base-color, 8%);
1949 color: $primary-text-color;
1953 text-decoration: none;
1958 background: lighten($ui-base-color, 11%);
1962 .column-link__icon {
1963 display: inline-block;
1967 .column-subheading {
1968 background: $ui-base-color;
1969 color: $ui-base-lighter-color;
1973 text-transform: uppercase;
1977 .autosuggest-textarea,
1982 .autosuggest-textarea__textarea,
1983 .spoiler-input__input {
1985 box-sizing: border-box;
1988 color: $ui-base-color;
1989 background: $simple-background-color;
1991 font-family: inherit;
2001 @include limited-single-column('screen and (max-width: 600px)') {
2006 .spoiler-input__input {
2010 .autosuggest-textarea__textarea {
2012 border-radius: 4px 4px 0 0;
2014 padding-right: 10px + 22px;
2017 @include limited-single-column('screen and (max-width: 600px)') {
2018 height: 100px !important; // prevent auto-resize textarea
2023 .autosuggest-textarea__suggestions {
2031 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
2032 background: $ui-secondary-color;
2033 color: $ui-base-color;
2036 &.autosuggest-textarea__suggestions--visible {
2041 .autosuggest-textarea__suggestions__item {
2046 background: darken($ui-secondary-color, 10%);
2050 background: $ui-highlight-color;
2051 color: $base-border-color;
2055 .autosuggest-account {
2059 .autosuggest-account-icon {
2064 .autosuggest-status {
2066 white-space: nowrap;
2067 text-overflow: ellipsis;
2074 .character-counter__wrapper {
2076 margin: 0 16px 0 8px;
2080 .character-counter {
2085 .character-counter--over {
2086 color: $warning-red;
2089 .getting-started__wrapper {
2094 .getting-started__footer {
2096 flex-direction: column;
2100 box-sizing: border-box;
2101 padding-bottom: 235px;
2102 background: url('../images/mastodon-getting-started.png') no-repeat 0 100%;
2106 color: $ui-secondary-color;
2110 color: $ui-base-lighter-color;
2115 color: $ui-primary-color;
2116 background: transparent;
2118 border-bottom: 2px solid $ui-primary-color;
2119 box-sizing: border-box;
2121 font-family: inherit;
2122 margin-bottom: 10px;
2128 color: $primary-text-color;
2129 border-bottom-color: $ui-highlight-color;
2132 @include limited-single-column('screen and (max-width: 600px)') {
2137 color: $ui-base-color;
2138 border-bottom: 2px solid lighten($ui-base-color, 27%);
2142 color: $ui-base-color;
2143 border-bottom-color: $ui-highlight-color;
2150 button.icon-button i.fa-retweet {
2151 background-position: 0 0;
2153 transition: background-position 0.9s steps(10);
2154 transition-duration: 0s;
2155 vertical-align: middle;
2159 display: none !important;
2163 button.icon-button.active i.fa-retweet {
2164 transition-duration: 0.9s;
2165 background-position: 0 100%;
2172 border: 1px solid lighten($ui-base-color, 8%);
2174 color: $ui-base-lighter-color;
2176 text-decoration: none;
2180 background: lighten($ui-base-color, 8%);
2186 .status-card-photo {
2196 .status-card-photo {
2198 text-decoration: none;
2208 .status-card-video {
2212 padding-top: 56.25%;
2228 .status-card__title {
2232 color: $ui-primary-color;
2234 text-overflow: ellipsis;
2235 white-space: nowrap;
2238 .status-card__content {
2241 padding: 14px 14px 14px 8px;
2244 .status-card__description {
2245 color: $ui-primary-color;
2248 .status-card__host {
2254 .status-card__image {
2256 background: lighten($ui-base-color, 8%);
2259 .status-card.horizontal {
2262 .status-card__image {
2266 .status-card__image-image {
2267 border-radius: 4px 4px 0 0;
2271 .status-card__image-image {
2272 border-radius: 4px 0 0 4px;
2281 color: $ui-base-lighter-color;
2282 background-color: transparent;
2286 line-height: inherit;
2293 background: lighten($ui-base-color, 2%);
2297 .missing-indicator {
2301 color: lighten($ui-base-color, 16%);
2302 background: $ui-base-color;
2306 align-items: center;
2307 justify-content: center;
2310 background: url('../images/mastodon-not-found.png') no-repeat center -50px;
2316 .column-header__wrapper {
2330 pointer-events: none;
2333 background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
2341 background: lighten($ui-base-color, 4%);
2349 box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);
2351 .column-header__icon {
2352 color: $ui-highlight-color;
2353 text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);
2363 .column-header__buttons {
2372 .column-header__button {
2373 background: lighten($ui-base-color, 4%);
2375 color: $ui-primary-color;
2381 color: lighten($ui-primary-color, 7%);
2385 color: $primary-text-color;
2386 background: lighten($ui-base-color, 8%);
2389 color: $primary-text-color;
2390 background: lighten($ui-base-color, 8%);
2394 // glitch - added focus ring for keyboard navigation
2396 text-shadow: 0 0 4px darken($ui-highlight-color, 5%);
2400 .scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {
2401 border-top: 1px solid $ui-base-color;
2404 .notification__dismiss-overlay {
2410 padding-left: 15px; // space for the box shadow to be visible
2413 align-items: center;
2414 justify-content: flex-end;
2420 width: $dismiss-overlay-width;
2421 align-self: stretch;
2423 flex-direction: column;
2424 align-items: center;
2425 justify-content: center;
2426 background: lighten($ui-base-color, 8%);
2427 border-left: 1px solid lighten($ui-base-color, 20%);
2428 box-shadow: 0 0 5px black;
2429 border-bottom: 1px solid $ui-base-color;
2433 border: 2px solid $ui-primary-color;
2438 color: $ui-primary-color;
2439 text-shadow: 0 0 5px black;
2441 justify-content: center;
2442 align-items: center;
2446 outline: 0 !important;
2449 box-shadow: 0 0 1px 1px $ui-highlight-color;
2454 .column-header__notif-cleaning-buttons {
2456 align-items: stretch;
2457 justify-content: space-around;
2460 @extend .column-header__button;
2461 background: transparent;
2464 white-space: pre-wrap;
2472 // The notifs drawer with no padding to have more space for the buttons
2473 .column-header__collapsible-inner.nopad-drawer {
2477 .column-header__collapsible {
2481 color: $ui-primary-color;
2482 transition: max-height 150ms ease-in-out, opacity 300ms linear;
2494 // notif cleaning drawer
2504 .column-header__collapsible-inner {
2505 background: lighten($ui-base-color, 8%);
2509 .column-header__setting-btn {
2511 color: lighten($ui-primary-color, 4%);
2512 text-decoration: underline;
2516 .column-header__setting-arrows {
2519 .column-header__setting-btn {
2529 display: inline-block;
2531 font-family: inherit;
2535 background: transparent;
2539 .column-header__icon {
2540 display: inline-block;
2544 .loading-indicator {
2545 color: lighten($ui-base-color, 26%);
2548 text-transform: uppercase;
2553 transform: translate(-50%, -50%);
2559 transform: translateX(-50%);
2560 margin: 82px 0 0 50%;
2561 white-space: nowrap;
2562 animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2566 .loading-indicator__figure {
2570 transform: translate(-50%, -50%);
2573 box-sizing: border-box;
2574 border: 0 solid lighten($ui-base-color, 26%);
2576 animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2579 @keyframes loader-figure {
2583 background-color: lighten($ui-base-color, 26%);
2587 background-color: lighten($ui-base-color, 26%);
2593 background-color: transparent;
2603 background-color: transparent;
2607 @keyframes loader-label {
2608 0% { opacity: 0.25; }
2610 100% { opacity: 0.25; }
2613 .video-error-cover {
2614 align-items: center;
2615 background: $base-overlay-background;
2616 color: $primary-text-color;
2619 flex-direction: column;
2621 justify-content: center;
2629 background: $base-overlay-background;
2630 color: $primary-text-color;
2634 justify-content: center;
2639 flex-direction: column;
2641 .status__content > & {
2642 margin-top: 15px; // Add margin when used bare for NSFW video player
2645 @include fullwidth-gallery;
2648 .media-spoiler__warning {
2653 .media-spoiler__trigger {
2663 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
2667 &.spoiler-button--visible {
2672 .modal-container--preloader {
2673 background: lighten($ui-base-color, 8%);
2677 background: lighten($ui-base-color, 4%);
2678 border-top: 1px solid lighten($ui-base-color, 8%);
2679 border-bottom: 1px solid lighten($ui-base-color, 8%);
2681 flex-direction: row;
2685 .account--panel__button,
2686 .detailed-status__button {
2691 .column-settings__outer {
2692 background: lighten($ui-base-color, 8%);
2696 .column-settings__section {
2697 color: $ui-primary-color;
2701 margin-bottom: 10px;
2704 .column-settings__row {
2706 margin-bottom: 15px;
2710 .modal-container__nav {
2711 align-items: center;
2712 background: rgba($base-overlay-background, 0.5);
2713 box-sizing: border-box;
2715 color: $primary-text-color;
2725 .modal-container__nav--left {
2729 .modal-container__nav--right {
2733 .account--follows-info {
2734 color: $primary-text-color;
2739 display: inline-block;
2740 vertical-align: top;
2741 background-color: rgba($base-overlay-background, 0.4);
2742 text-transform: uppercase;
2749 .account--action-button {
2760 .setting-toggle__label,
2761 .setting-meta__label {
2762 color: $ui-primary-color;
2763 display: inline-block;
2764 margin-bottom: 14px;
2766 vertical-align: middle;
2769 .setting-meta__label {
2770 color: $ui-primary-color;
2774 .empty-column-indicator,
2776 color: lighten($ui-base-color, 20%);
2777 background: $ui-base-color;
2785 align-items: center;
2786 justify-content: center;
2787 @supports(display: grid) { // hack to fix Chrome <57
2792 color: $ui-highlight-color;
2793 text-decoration: none;
2796 text-decoration: underline;
2802 flex-direction: column;
2816 animation: pulse 1s ease-in-out infinite;
2817 animation-direction: alternate;
2823 background: $simple-background-color;
2824 box-sizing: border-box;
2828 box-shadow: 0 0 8px rgba($base-shadow-color, 0.2);
2836 .emoji-dialog-header {
2846 display: inline-block;
2847 box-sizing: border-box;
2850 border-bottom: 2px solid transparent;
2861 filter: grayscale(100%);
2867 filter: grayscale(0);
2872 border-bottom-color: $ui-highlight-color;
2876 filter: grayscale(0);
2883 box-sizing: border-box;
2888 display: inline-block;
2894 .emoji-category-header {
2895 box-sizing: border-box;
2897 padding: 10px 8px 10px 16px;
2901 display: table-cell;
2902 vertical-align: middle;
2906 .emoji-category-title {
2908 text-transform: uppercase;
2910 color: darken($ui-secondary-color, 18%);
2914 .emoji-category-heading-decoration {
2922 vertical-align: middle;
2923 white-space: nowrap;
2927 display: inline-block;
2936 display: inline-block;
2937 border-radius: 10px;
2949 border-radius: 10px;
2950 border: 2px solid $base-border-color;
2957 .emoji-search-wrapper {
2959 border-bottom: 1px solid lighten($ui-secondary-color, 4%);
2966 font-family: inherit;
2969 background: rgba($ui-secondary-color, 0.3);
2970 color: darken($ui-secondary-color, 18%);
2971 border: 1px solid $ui-secondary-color;
2975 .emoji-categories-wrapper {
2983 .emoji-search-wrapper + .emoji-categories-wrapper {
2990 transition: transform 60ms ease-in-out;
2994 background: lighten($ui-secondary-color, 3%);
2998 transform: translateZ(0) scale(1.2);
3015 align-items: center;
3016 background: rgba($base-overlay-background, 0.8);
3019 justify-content: center;
3029 pointer-events: none;
3033 .upload-area__drop {
3037 box-sizing: border-box;
3042 .upload-area__background {
3050 background: $ui-base-color;
3051 box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
3054 .upload-area__content {
3057 align-items: center;
3058 justify-content: center;
3059 color: $ui-secondary-color;
3062 border: 2px dashed $ui-base-lighter-color;
3068 color: $ui-base-lighter-color;
3079 text-transform: uppercase;
3085 .upload-progess__message {
3089 .upload-progress__backdrop {
3093 background: $ui-base-lighter-color;
3098 .upload-progress__tracker {
3103 background: $ui-highlight-color;
3118 outline: 0 !important;
3122 filter: grayscale(100%);
3141 .dropdown--active .emoji-button img {
3150 .privacy-dropdown__dropdown {
3156 background: $simple-background-color;
3157 border-radius: 0 4px 4px;
3162 .privacy-dropdown__option {
3163 color: $ui-base-color;
3170 background: $ui-highlight-color;
3171 color: $primary-text-color;
3173 .privacy-dropdown__option__content {
3174 color: $primary-text-color;
3177 color: $primary-text-color;
3183 background: lighten($ui-highlight-color, 4%);
3187 .privacy-dropdown__option__icon {
3189 align-items: center;
3190 justify-content: center;
3194 .privacy-dropdown__option__content {
3196 color: darken($ui-primary-color, 24%);
3201 color: $ui-base-color;
3205 .privacy-dropdown.active {
3206 .privacy-dropdown__value {
3207 background: $simple-background-color;
3208 border-radius: 4px 4px 0 0;
3209 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
3212 .privacy-dropdown__dropdown {
3214 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3218 .advanced-options-dropdown {
3222 .advanced-options-dropdown__dropdown {
3228 background: $simple-background-color;
3229 border-radius: 0 4px 4px;
3234 .advanced-options-dropdown__option {
3235 color: $ui-base-color;
3242 background: $ui-highlight-color;
3243 color: $primary-text-color;
3245 .advanced-options-dropdown__option__content {
3246 color: $primary-text-color;
3249 color: $primary-text-color;
3255 background: lighten($ui-highlight-color, 4%);
3259 .advanced-options-dropdown__option__toggle {
3261 align-items: center;
3262 justify-content: center;
3266 .advanced-options-dropdown__option__content {
3268 color: darken($ui-primary-color, 24%);
3273 color: $ui-base-color;
3277 .advanced-options-dropdown.open {
3278 .advanced-options-dropdown__value {
3279 background: $simple-background-color;
3280 border-radius: 4px 4px 0 0;
3281 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
3284 .advanced-options-dropdown__dropdown {
3286 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3293 margin-bottom: 10px;
3297 padding-right: 30px;
3298 color: $ui-secondary-color;
3300 box-sizing: border-box;
3305 padding-right: 30px;
3306 font-family: inherit;
3307 background: $ui-base-color;
3308 color: $ui-primary-color;
3312 &::-moz-focus-inner {
3316 &::-moz-focus-inner,
3319 outline: 0 !important;
3323 background: lighten($ui-base-color, 4%);
3326 @include limited-single-column('screen and (max-width: 600px)') {
3337 display: inline-block;
3339 transition: all 100ms linear;
3343 color: $ui-secondary-color;
3345 pointer-events: none;
3348 pointer-events: auto;
3354 transform: translateZ(0) rotate(90deg);
3357 pointer-events: none;
3358 transform: translateZ(0) rotate(0deg);
3364 transform: translateZ(0) rotate(0deg);
3368 transform: translateZ(0) rotate(90deg);
3372 color: $primary-text-color;
3377 .search-results__header {
3378 color: $ui-base-lighter-color;
3379 background: lighten($ui-base-color, 2%);
3380 border-bottom: 1px solid darken($ui-base-color, 4%);
3386 .search-results__section {
3387 background: $ui-base-color;
3390 .search-results__hashtag {
3393 color: $ui-secondary-color;
3394 text-decoration: none;
3399 color: lighten($ui-secondary-color, 4%);
3400 text-decoration: underline;
3404 .modal-root__overlay {
3412 background: rgba($base-overlay-background, 0.7);
3413 transform: translateZ(0);
3416 .modal-root__container {
3423 flex-direction: column;
3424 align-items: center;
3425 justify-content: center;
3426 align-content: space-around;
3429 pointer-events: none;
3433 .modal-root__modal {
3434 pointer-events: auto;
3444 .extended-video-player,
3455 .extended-video-player,
3465 background: url('../images/void.png') repeat;
3466 object-fit: contain;
3469 .react-swipeable-view-container {
3474 .media-modal__content {
3475 background: $base-overlay-background;
3478 .media-modal__close {
3488 background: $ui-secondary-color;
3489 color: $ui-base-color;
3493 flex-direction: column;
3496 .onboarding-modal__pager {
3502 .react-swipeable-view-container > div {
3505 box-sizing: border-box;
3508 flex-direction: column;
3509 align-items: center;
3510 justify-content: center;
3516 .error-modal__body {
3529 box-sizing: border-box;
3532 flex-direction: column;
3533 align-items: center;
3534 justify-content: center;
3541 .error-modal__body {
3543 flex-direction: column;
3544 justify-content: center;
3545 align-items: center;
3549 @media screen and (max-width: 550px) {
3556 .onboarding-modal__pager {
3565 .onboarding-modal__paginator,
3566 .error-modal__footer {
3568 background: darken($ui-secondary-color, 8%);
3576 .onboarding-modal__nav,
3578 color: darken($ui-secondary-color, 34%);
3579 background-color: transparent;
3584 line-height: inherit;
3590 color: darken($ui-secondary-color, 38%);
3593 &.onboarding-modal__done,
3594 &.onboarding-modal__next {
3595 color: $ui-highlight-color;
3600 .error-modal__footer {
3601 justify-content: center;
3604 .onboarding-modal__dots {
3607 align-items: center;
3608 justify-content: center;
3611 .onboarding-modal__dot {
3614 border-radius: 14px;
3615 background: darken($ui-secondary-color, 16%);
3620 background: darken($ui-secondary-color, 18%);
3625 background: darken($ui-secondary-color, 24%);
3629 .onboarding-modal__page__wrapper {
3630 pointer-events: none;
3632 &.onboarding-modal__page__wrapper--active {
3633 pointer-events: auto;
3637 .onboarding-modal__page {
3644 color: $ui-base-color;
3645 margin-bottom: 20px;
3649 color: $ui-highlight-color;
3654 color: lighten($ui-highlight-color, 4%);
3660 color: lighten($ui-base-color, 8%);
3662 margin-bottom: 10px;
3670 background: $ui-base-color;
3671 color: $ui-secondary-color;
3679 .onboarding-modal__page-one {
3681 align-items: center;
3684 .onboarding-modal__page-one__elephant-friend {
3685 background: url('../images/elephant-friend-1.png') no-repeat center center / contain;
3691 @media screen and (max-width: 400px) {
3692 .onboarding-modal__page-one {
3693 flex-direction: column;
3694 align-items: normal;
3697 .onboarding-modal__page-one__elephant-friend {
3705 .onboarding-modal__page-two,
3706 .onboarding-modal__page-three,
3707 .onboarding-modal__page-four,
3708 .onboarding-modal__page-five {
3714 background: darken($ui-base-color, 8%);
3715 color: $ui-secondary-color;
3716 margin-bottom: 20px;
3721 box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
3723 .onboarding-modal__image {
3725 margin-bottom: 10px;
3729 pointer-events: none;
3735 .onboarding-modal__page-four__columns {
3738 margin-bottom: 20px;
3763 color: $primary-text-color;
3767 @media screen and (max-width: 320px) and (max-height: 600px) {
3768 .onboarding-modal__page p {
3773 .onboarding-modal__page-two .figure,
3774 .onboarding-modal__page-three .figure,
3775 .onboarding-modal__page-four .figure,
3776 .onboarding-modal__page-five .figure {
3778 margin-bottom: 10px;
3781 .onboarding-modal__page-four__columns .row {
3782 margin-bottom: 10px;
3785 .onboarding-modal__page-four__columns .column-header {
3791 .onboarding-modal__image {
3798 margin-bottom: 20px;
3802 display: inline-block;
3809 .confirmation-modal,
3813 background: lighten($ui-secondary-color, 8%);
3814 color: $ui-base-color;
3820 flex-direction: column;
3822 .status__display-name {
3830 border-bottom-color: $ui-secondary-color;
3832 padding-bottom: 10px;
3836 .boost-modal__container {
3846 .boost-modal__action-bar,
3847 .confirmation-modal__action-bar,
3848 .mute-modal__action-bar,
3849 .report-modal__action-bar {
3851 justify-content: space-between;
3852 background: $ui-secondary-color;
3859 color: lighten($ui-base-color, 33%);
3860 padding-right: 10px;
3868 .boost-modal__status-header {
3872 .boost-modal__status-time {
3877 .confirmation-modal {
3880 @media screen and (min-width: 480px) {
3885 .report-modal__statuses,
3886 .report-modal__comment {
3890 .report-modal__statuses {
3897 .report-modal__comment {
3922 color: $ui-base-color;
3925 align-items: center;
3926 text-decoration: none;
3931 background: $ui-highlight-color;
3932 color: $primary-text-color;
3936 button:first-child {
3944 .confirmation-modal__action-bar,
3945 .mute-modal__action-bar {
3946 .confirmation-modal__cancel-button,
3947 .mute-modal__cancel-button {
3948 background-color: transparent;
3949 color: darken($ui-secondary-color, 34%);
3956 color: darken($ui-secondary-color, 38%);
3961 .confirmation-modal__container,
3962 .mute-modal__container,
3963 .report-modal__target {
3974 background-color: $ui-highlight-color;
3981 .media-gallery__gifv__label {
3984 color: $primary-text-color;
3985 background: rgba($base-overlay-background, 0.5);
3993 pointer-events: none;
3995 transition: opacity 0.1s ease;
3998 .media-gallery__gifv {
4000 .media-gallery__gifv__label {
4006 .media-gallery__gifv__label {
4015 border: 1px solid lighten($ui-base-color, 8%);
4021 .attachment-list__icon {
4023 color: $ui-base-lighter-color;
4026 border-right: 1px solid lighten($ui-base-color, 8%);
4028 flex-direction: column;
4029 align-items: center;
4030 justify-content: center;
4038 .attachment-list__list {
4043 flex-direction: column;
4044 justify-content: center;
4052 text-decoration: none;
4053 color: $ui-base-lighter-color;
4057 text-decoration: underline;
4064 box-sizing: border-box;
4068 background: $base-shadow-color;
4071 .detailed-status & {
4073 width: calc(100% + 22px);
4076 @include fullwidth-gallery;
4079 .media-gallery__item {
4081 box-sizing: border-box;
4087 .media-gallery__item-thumbnail {
4089 text-decoration: none;
4096 object-fit: contain;
4105 .media-gallery__gifv {
4111 justify-content: center;
4114 .media-gallery__item-gifv-thumbnail {
4119 object-fit: contain;
4127 .media-gallery__item-thumbnail-label {
4128 clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
4129 clip: rect(1px, 1px, 1px, 1px);
4133 /* End Media Gallery */
4135 /* Status Video Player */
4136 .status__video-player {
4138 align-items: center;
4139 background: $base-shadow-color;
4140 box-sizing: border-box;
4141 cursor: default; /* May not be needed */
4147 @include fullwidth-gallery;
4150 .status__video-player-video {
4161 .status__video-player-expand,
4162 .status__video-player-mute {
4163 color: $primary-text-color;
4167 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4170 .status__video-player-spoiler {
4172 color: $primary-text-color;
4175 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4179 &.status__video-player-spoiler--visible {
4184 .status__video-player-expand {
4189 .status__video-player-mute {
4194 .media-spoiler-video {
4195 background-size: cover;
4196 background-repeat: no-repeat;
4197 background-position: center;
4203 @include fullwidth-gallery;
4209 .media-spoiler-video-play-icon {
4210 border-radius: 100px;
4211 color: rgba($primary-text-color, 0.8);
4217 transform: translate(-50%, -50%);
4219 /* End Video Player */
4221 .account-gallery__container {
4226 .account-gallery__item {
4236 background-color: $base-overlay-background;
4237 background-size: cover;
4238 background-position: center;
4243 .account-section-headline {
4244 color: $ui-base-lighter-color;
4245 background: lighten($ui-base-color, 2%);
4246 border-bottom: 1px solid lighten($ui-base-color, 4%);
4262 border-style: solid;
4263 border-width: 0 10px 10px;
4264 border-color: transparent transparent lighten($ui-base-color, 4%);
4269 border-color: transparent transparent $ui-base-color;
4273 ::-webkit-scrollbar-thumb {
4283 animation: flicker 4s infinite;
4289 color: $ui-secondary-color;
4293 color: $ui-highlight-color;
4294 text-decoration: underline;
4297 text-decoration: none;
4303 @keyframes flicker {
4305 30% { opacity: 0.75; }
4306 100% { opacity: 1; }
4309 @media screen and (max-width: 1024px) and (max-height: 400px) {
4315 will-change: margin-top;
4316 transition: margin-top $duration $delay;
4320 will-change: padding-bottom;
4321 transition: padding-bottom $duration $delay;
4326 will-change: margin-top, margin-left, width;
4327 transition: margin-top $duration $delay, margin-left $duration ($duration + $delay);
4330 & > .navigation-bar__profile-edit {
4331 will-change: margin-top;
4332 transition: margin-top $duration $delay;
4336 will-change: opacity;
4337 transition: opacity $duration $delay;
4355 .navigation-bar__profile {
4359 .navigation-bar__profile-edit {
4365 pointer-events: auto;
4371 // fixes for the navbar-under mode
4372 .is-composing.navbar-under {
4375 margin-bottom: -20px;
4383 // more fixes for the navbar-under mode
4384 @mixin fix-margins-for-navbar-under {
4386 margin-top: 0 !important;
4387 margin-bottom: -6px !important;
4391 .single-column.navbar-under {
4392 @include fix-margins-for-navbar-under;
4395 .auto-columns.navbar-under {
4396 @media screen and (max-width: 360px) {
4397 @include fix-margins-for-navbar-under;
4401 .auto-columns.navbar-under .react-swipeable-view-container .columns-area,
4402 .single-column.navbar-under .react-swipeable-view-container .columns-area {
4403 @media screen and (max-width: 360px) {
4404 height: 100% !important;
4419 .embed-modal__container {
4423 margin-bottom: 15px;
4426 .embed-modal__html {
4427 color: $ui-secondary-color;
4429 box-sizing: border-box;
4434 font-family: 'mastodon-font-monospace', monospace;
4435 background: $ui-base-color;
4436 color: $ui-primary-color;
4439 margin-bottom: 15px;
4441 &::-moz-focus-inner {
4445 &::-moz-focus-inner,
4448 outline: 0 !important;
4452 background: lighten($ui-base-color, 4%);
4455 @media screen and (max-width: 600px) {
4460 .embed-modal__iframe {