4 -webkit-overflow-scrolling: touch;
5 -ms-overflow-style: -ms-autohiding-scrollbar;
9 background-color: darken($ui-highlight-color, 3%);
12 box-sizing: border-box;
13 color: $primary-text-color;
15 display: inline-block;
26 text-transform: uppercase;
27 text-decoration: none;
28 text-overflow: ellipsis;
29 transition: all 100ms ease-in;
36 background-color: lighten($ui-highlight-color, 7%);
37 transition: all 200ms ease-out;
41 background-color: $ui-primary-color;
45 &.button-alternative {
49 color: $ui-base-color;
50 background: $ui-primary-color;
57 background-color: lighten($ui-primary-color, 4%);
65 color: $ui-primary-color;
67 background: transparent;
69 border: 1px solid $ui-primary-color;
74 border-color: lighten($ui-primary-color, 4%);
75 color: lighten($ui-primary-color, 4%);
92 background: lighten($ui-base-color, 4%);
93 color: $ui-primary-color;
103 color: lighten($ui-primary-color, 7%);
108 display: inline-block;
110 color: $ui-base-lighter-color;
112 background: transparent;
114 transition: color 100ms ease-in;
119 color: lighten($ui-base-color, 33%);
120 transition: color 200ms ease-out;
124 color: lighten($ui-base-color, 13%);
129 color: $ui-highlight-color;
132 &::-moz-focus-inner {
139 outline: 0 !important;
143 color: lighten($ui-base-color, 33%);
148 color: $ui-base-lighter-color;
152 color: $ui-primary-color;
156 color: $ui-highlight-color;
159 color: lighten($ui-highlight-color, 13%);
165 box-sizing: content-box;
166 background: rgba($base-overlay-background, 0.6);
167 color: rgba($primary-text-color, 0.7);
172 background: rgba($base-overlay-background, 0.9);
178 color: lighten($ui-base-color, 33%);
180 background: transparent;
187 transition: color 100ms ease-in;
192 color: $ui-base-lighter-color;
193 transition: color 200ms ease-out;
197 color: lighten($ui-base-color, 13%);
202 color: $ui-highlight-color;
205 &::-moz-focus-inner {
212 outline: 0 !important;
220 .dropdown--active .icon-button {
221 color: $ui-highlight-color;
224 .dropdown--active::after {
225 @media screen and (min-width: 631px) {
232 border-width: 0 4.5px 7.8px;
233 border-color: transparent transparent $ui-secondary-color;
242 display: inline-block;
254 .lightbox .icon-button {
255 color: $ui-base-color;
262 .compose-form__warning {
263 color: darken($ui-secondary-color, 65%);
265 background: $ui-primary-color;
266 box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
273 color: darken($ui-secondary-color, 65%);
278 color: darken($ui-primary-color, 33%);
280 text-decoration: underline;
285 text-decoration: none;
290 .compose-form__modifiers {
291 color: $ui-base-color;
292 font-family: inherit;
294 background: $simple-background-color;
295 border-radius: 0 0 4px;
298 .compose-form__buttons-wrapper {
300 justify-content: space-between;
303 .compose-form__buttons {
305 background: darken($simple-background-color, 8%);
306 box-shadow: inset 0 5px 5px rgba($base-shadow-color, 0.05);
307 border-radius: 0 0 4px 4px;
311 box-sizing: content-box;
316 .compose-form__upload-button-icon {
320 .compose-form__sensitive-button {
323 &.compose-form__sensitive-button--visible {
327 .compose-form__sensitive-button__icon {
332 .compose-form__upload-wrapper {
336 .compose-form__uploads-wrapper {
341 .compose-form__upload {
346 .compose-form__upload-thumbnail {
348 background-position: center;
349 background-size: cover;
350 background-repeat: no-repeat;
355 .compose-form__upload-cancel {
356 background-size: cover;
362 .compose-form__label {
365 vertical-align: middle;
368 border-top: 1px solid $ui-base-color;
372 .compose-form__label__text {
373 display: inline-block;
374 vertical-align: middle;
377 color: $ui-primary-color;
381 .compose-form__textarea,
382 .follow-form__input {
383 background: $simple-background-color;
386 background: $ui-secondary-color;
390 .compose-form__autosuggest-wrapper {
393 .emoji-picker-dropdown {
398 ::-webkit-scrollbar-track:hover,
399 ::-webkit-scrollbar-track:active {
400 background-color: rgba($base-overlay-background, 0.3);
405 .compose-form__publish {
410 .compose-form__publish-button-wrapper {
416 display: inline-block;
418 vertical-align: middle;
420 margin: -.2ex .15em .2ex;
430 border-radius: 4px 4px 0 0;
433 background: $ui-primary-color;
437 .reply-indicator__header {
442 .reply-indicator__cancel {
447 .reply-indicator__display-name {
448 color: $ui-base-color;
454 text-decoration: none;
457 .reply-indicator__display-avatar {
462 .status__content--with-action {
467 .reply-indicator__content {
470 word-wrap: break-word;
473 white-space: pre-wrap;
489 color: $ui-secondary-color;
490 text-decoration: none;
493 text-decoration: underline;
496 color: lighten($ui-base-color, 40%);
502 text-decoration: none;
505 text-decoration: underline;
511 color: lighten($ui-base-color, 30%);
515 .status__content__spoiler-link {
516 background: lighten($ui-base-color, 30%);
519 background: lighten($ui-base-color, 33%);
520 text-decoration: none;
524 .status__content__text {
527 &.status__content__text--visible {
533 .status__content__spoiler-link {
534 display: inline-block;
536 background: transparent;
538 color: lighten($ui-base-color, 8%);
542 text-transform: uppercase;
543 line-height: inherit;
547 .status__prepend-icon-wrapper {
557 border-bottom: 1px solid lighten($ui-base-color, 8%);
566 animation: fade 150ms linear;
573 background: lighten($ui-base-color, 8%);
575 .icon-button.disabled {
576 color: lighten($ui-base-color, 16%);
581 .status__relative-time {
582 color: $ui-primary-color;
585 .status__display-name {
586 color: $ui-base-color;
591 color: $ui-base-color;
595 color: $ui-primary-color;
600 color: $ui-base-color;
603 color: $ui-highlight-color;
606 a.status__content__spoiler-link {
607 color: $primary-text-color;
608 background: $ui-primary-color;
611 background: lighten($ui-primary-color, 8%);
618 .notification-favourite {
619 .status.status-direct {
620 background: transparent;
622 .icon-button.disabled {
623 color: lighten($ui-base-color, 13%);
628 .status__relative-time {
629 color: $ui-base-lighter-color;
634 .status__display-name {
635 color: $ui-base-lighter-color;
638 .status__info .status__display-name {
649 border-bottom: 1px solid $ui-secondary-color;
656 text-overflow: ellipsis;
661 .status-check-box-toggle {
665 justify-content: center;
671 color: $ui-base-lighter-color;
677 .status__display-name strong {
678 color: $ui-base-lighter-color;
682 .status__action-bar {
688 .status__action-bar-button {
693 .status__action-bar-dropdown {
699 .detailed-status__action-bar-dropdown {
703 justify-content: center;
708 background: lighten($ui-base-color, 4%);
726 .detailed-status__meta {
728 color: $ui-base-lighter-color;
733 .detailed-status__action-bar {
734 background: lighten($ui-base-color, 4%);
735 border-top: 1px solid lighten($ui-base-color, 8%);
736 border-bottom: 1px solid lighten($ui-base-color, 8%);
742 .detailed-status__link {
744 text-decoration: none;
747 .detailed-status__favorites,
748 .detailed-status__reblogs {
749 display: inline-block;
755 .reply-indicator__content {
756 color: $ui-base-color;
760 color: lighten($ui-base-color, 20%);
766 border-bottom: 1px solid lighten($ui-base-color, 8%);
768 .account__display-name {
771 color: $ui-primary-color;
773 text-decoration: none;
782 .account__avatar-wrapper {
789 @include avatar-radius();
794 display: inline-block;
795 vertical-align: middle;
800 .account__avatar-overlay {
801 @include avatar-size(48px);
804 @include avatar-radius();
805 @include avatar-size(36px);
809 @include avatar-radius();
810 @include avatar-size(24px);
819 .account__relationship {
826 background: lighten($ui-base-color, 4%);
828 background-size: cover;
829 background-position: center;
833 background: rgba(lighten($ui-base-color, 4%), 0.9);
837 .account__header__content {
838 color: $ui-secondary-color;
841 .account__header__display-name {
842 color: $primary-text-color;
843 display: inline-block;
849 .account__header__username {
850 color: $ui-highlight-color;
858 .account__disclaimer {
860 border-top: 1px solid lighten($ui-base-color, 8%);
861 color: $ui-base-lighter-color;
870 text-decoration: underline;
875 text-decoration: none;
880 .account__header__content {
881 color: $ui-primary-color;
886 word-wrap: break-word;
898 text-decoration: underline;
901 text-decoration: none;
906 .account__header__display-name {
913 .account__action-bar {
914 border-top: 1px solid lighten($ui-base-color, 8%);
915 border-bottom: 1px solid lighten($ui-base-color, 8%);
922 .account__action-bar-dropdown {
923 flex: 0 1 calc(50% - 140px);
927 .dropdown__content.dropdown__right {
941 .account__action-bar-links {
947 .account__action-bar__tab {
948 text-decoration: none;
951 border-left: 1px solid lighten($ui-base-color, 8%);
956 text-transform: uppercase;
958 color: $ui-primary-color;
965 color: $primary-text-color;
969 color: $ui-base-lighter-color;
973 .account__header__avatar {
974 background-size: 90px 90px;
985 .detailed-status__display-name {
992 .account-authorize__avatar {
997 .status__display-name,
998 .status__relative-time,
999 .detailed-status__display-name,
1000 .detailed-status__datetime,
1001 .detailed-status__application,
1002 .account__display-name {
1003 text-decoration: none;
1006 .status__display-name,
1007 .account__display-name {
1009 color: $primary-text-color;
1019 .status__display-name,
1020 .reply-indicator__display-name,
1021 .detailed-status__display-name,
1022 .account__display-name {
1024 text-decoration: underline;
1028 .account__display-name strong {
1032 .detailed-status__application,
1033 .detailed-status__datetime {
1037 .detailed-status__display-name {
1038 color: $ui-secondary-color;
1041 margin-bottom: 15px;
1047 text-overflow: ellipsis;
1053 color: $primary-text-color;
1057 .detailed-status__display-avatar {
1072 .status__content a {
1073 color: $ui-base-lighter-color;
1076 .status__display-name strong {
1077 color: $ui-base-lighter-color;
1084 a.status__content__spoiler-link {
1085 background: $ui-base-lighter-color;
1086 color: lighten($ui-base-color, 4%);
1089 background: lighten($ui-base-color, 29%);
1090 text-decoration: none;
1095 .notification__message {
1100 color: $ui-primary-color;
1105 color: $ui-highlight-color;
1109 .notification__favourite-icon-wrapper {
1122 .notification__display-name {
1125 text-decoration: none;
1128 color: $primary-text-color;
1129 text-decoration: underline;
1137 text-overflow: ellipsis;
1138 white-space: nowrap;
1141 .display-name__html {
1145 .display-name__account {
1149 .status__relative-time,
1150 .detailed-status__datetime {
1152 text-decoration: underline;
1159 &.image-loader--loading {
1160 .image-loader__preview-canvas {
1165 .image-loader__img {
1172 background-image: none;
1175 &.image-loader--amorphous {
1178 .image-loader__preview-canvas {
1182 .image-loader__img {
1195 color: $ui-primary-color;
1198 color: $primary-text-color;
1202 text-decoration: none;
1206 pointer-events: none;
1211 .navigation-bar__profile {
1216 .navigation-bar__profile-account {
1221 .navigation-bar__profile-edit {
1223 text-decoration: none;
1227 display: inline-block;
1230 .dropdown__content {
1235 .dropdown-menu__separator {
1236 border-bottom: 1px solid darken($ui-secondary-color, 8%);
1237 margin: 5px 7px 6px;
1242 background: $ui-secondary-color;
1245 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
1252 .dropdown-menu__arrow {
1256 border: 0 solid transparent;
1261 border-width: 5px 0 5px 5px;
1262 border-left-color: $ui-secondary-color;
1268 border-width: 5px 7px 0;
1269 border-top-color: $ui-secondary-color;
1275 border-width: 0 7px 5px;
1276 border-bottom-color: $ui-secondary-color;
1282 border-width: 5px 5px 5px 0;
1283 border-right-color: $ui-secondary-color;
1287 .dropdown-menu__item {
1293 box-sizing: border-box;
1294 text-decoration: none;
1295 background: $ui-secondary-color;
1296 color: $ui-base-color;
1298 text-overflow: ellipsis;
1299 white-space: nowrap;
1304 background: $ui-highlight-color;
1305 color: $ui-secondary-color;
1311 .dropdown--active .dropdown__content {
1321 background: $ui-secondary-color;
1324 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
1344 box-sizing: border-box;
1345 text-decoration: none;
1346 background: $ui-secondary-color;
1347 color: $ui-base-color;
1349 text-overflow: ellipsis;
1350 white-space: nowrap;
1357 background: $ui-highlight-color;
1358 color: $ui-secondary-color;
1364 vertical-align: middle;
1370 color: $ui-base-lighter-color;
1375 margin-bottom: 40px;
1381 margin-bottom: 20px;
1388 flex-direction: row;
1389 justify-content: flex-start;
1394 @media screen and (min-width: 360px) {
1399 .react-swipeable-view-container .columns-area {
1400 height: calc(100% - 20px) !important;
1404 .react-swipeable-view-container {
1413 .react-swipeable-view-container > * {
1415 align-items: center;
1416 justify-content: center;
1423 box-sizing: border-box;
1425 flex-direction: column;
1428 background: $ui-base-color;
1435 flex-direction: column;
1438 background: darken($ui-base-color, 7%);
1443 box-sizing: border-box;
1445 flex-direction: column;
1452 padding: 15px 5px 13px;
1453 color: $ui-primary-color;
1454 text-decoration: none;
1457 border-bottom: 2px solid transparent;
1466 @media screen and (min-width: 360px) {
1473 margin-bottom: 10px;
1477 @media screen and (max-width: 630px) {
1485 flex-direction: column;
1489 .autosuggest-textarea__textarea {
1494 @media screen and (min-width: 631px) {
1511 padding-right: 10px;
1515 .columns-area > div {
1525 box-sizing: border-box;
1537 background: lighten($ui-base-color, 13%);
1538 box-sizing: border-box;
1541 flex-direction: column;
1548 background: $ui-base-color;
1553 background: lighten($ui-base-color, 13%);
1561 background: lighten($ui-base-color, 8%);
1562 margin-bottom: 10px;
1564 flex-direction: row;
1567 transition: background 100ms ease-in;
1570 background: lighten($ui-base-color, 3%);
1571 transition: background 200ms ease-out;
1578 background: lighten($ui-base-color, 8%);
1587 color: $primary-text-color;
1588 text-decoration: none;
1592 border-bottom: 2px solid lighten($ui-base-color, 8%);
1593 transition: all 200ms linear;
1601 border-bottom: 2px solid $ui-highlight-color;
1602 color: $ui-highlight-color;
1608 @media screen and (min-width: 631px) {
1609 background: lighten($ui-base-color, 14%);
1610 transition: all 100ms linear;
1620 @media screen and (min-width: 600px) {
1628 @media screen and (min-width: 631px) {
1638 -webkit-overflow-scrolling: touch;
1639 will-change: transform; // improves perf in mobile Chrome
1641 &.optionally-scrollable {
1646 .column-back-button {
1647 background: lighten($ui-base-color, 4%);
1648 color: $ui-highlight-color;
1659 text-decoration: underline;
1663 .column-header__back-button {
1664 background: lighten($ui-base-color, 4%);
1666 font-family: inherit;
1667 color: $ui-highlight-color;
1675 text-decoration: underline;
1679 padding: 0 15px 0 0;
1683 .column-back-button__icon {
1684 display: inline-block;
1688 .column-back-button--slim {
1692 .column-back-button--slim-button {
1703 display: inline-block;
1706 background-color: transparent;
1710 -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
1711 -webkit-tap-highlight-color: transparent;
1714 .react-toggle-screenreader-only {
1716 clip: rect(0 0 0 0);
1725 .react-toggle--disabled {
1726 cursor: not-allowed;
1728 transition: opacity 0.25s;
1731 .react-toggle-track {
1735 border-radius: 30px;
1736 background-color: $ui-base-color;
1737 transition: all 0.2s ease;
1740 .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
1741 background-color: darken($ui-base-color, 10%);
1744 .react-toggle--checked .react-toggle-track {
1745 background-color: $ui-highlight-color;
1748 .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
1749 background-color: lighten($ui-highlight-color, 10%);
1752 .react-toggle-track-check {
1759 margin-bottom: auto;
1763 transition: opacity 0.25s ease;
1766 .react-toggle--checked .react-toggle-track-check {
1768 transition: opacity 0.25s ease;
1771 .react-toggle-track-x {
1778 margin-bottom: auto;
1782 transition: opacity 0.25s ease;
1785 .react-toggle--checked .react-toggle-track-x {
1789 .react-toggle-thumb {
1790 transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
1796 border: 1px solid $ui-base-color;
1798 background-color: darken($simple-background-color, 2%);
1799 box-sizing: border-box;
1800 transition: all 0.25s ease;
1803 .react-toggle--checked .react-toggle-thumb {
1805 border-color: $ui-highlight-color;
1809 background: lighten($ui-base-color, 8%);
1810 color: $primary-text-color;
1814 text-decoration: none;
1817 background: lighten($ui-base-color, 11%);
1821 .column-link__icon {
1822 display: inline-block;
1826 .column-subheading {
1827 background: $ui-base-color;
1828 color: $ui-base-lighter-color;
1832 text-transform: uppercase;
1836 .autosuggest-textarea,
1841 .autosuggest-textarea__textarea,
1842 .spoiler-input__input {
1844 box-sizing: border-box;
1847 color: $ui-base-color;
1848 background: $simple-background-color;
1850 font-family: inherit;
1860 @media screen and (max-width: 600px) {
1865 .spoiler-input__input {
1869 .autosuggest-textarea__textarea {
1871 border-radius: 4px 4px 0 0;
1873 padding-right: 10px + 22px;
1876 @media screen and (max-width: 600px) {
1877 height: 100px !important; // prevent auto-resize textarea
1882 .autosuggest-textarea__suggestions {
1883 box-sizing: border-box;
1889 box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
1890 background: $ui-secondary-color;
1891 border-radius: 0 0 4px 4px;
1892 color: $ui-base-color;
1896 &.autosuggest-textarea__suggestions--visible {
1901 .autosuggest-textarea__suggestions__item {
1910 background: darken($ui-secondary-color, 10%);
1914 .autosuggest-account,
1915 .autosuggest-emoji {
1917 flex-direction: row;
1918 align-items: center;
1919 justify-content: flex-start;
1924 .autosuggest-account-icon,
1925 .autosuggest-emoji img {
1932 .autosuggest-account .display-name__account {
1933 color: lighten($ui-base-color, 36%);
1936 .character-counter__wrapper {
1938 margin: 0 16px 0 8px;
1942 .character-counter {
1947 .character-counter--over {
1948 color: $warning-red;
1951 .getting-started__wrapper {
1956 .getting-started__footer {
1958 flex-direction: column;
1962 box-sizing: border-box;
1963 padding-bottom: 235px;
1964 background: url('../images/mastodon-getting-started.png') no-repeat 0 100%;
1968 color: $ui-secondary-color;
1972 color: $ui-base-lighter-color;
1977 color: $ui-primary-color;
1978 background: transparent;
1980 border-bottom: 2px solid $ui-primary-color;
1981 box-sizing: border-box;
1983 font-family: inherit;
1984 margin-bottom: 10px;
1990 color: $primary-text-color;
1991 border-bottom-color: $ui-highlight-color;
1994 @media screen and (max-width: 600px) {
1999 color: $ui-base-color;
2000 border-bottom: 2px solid lighten($ui-base-color, 27%);
2004 color: $ui-base-color;
2005 border-bottom-color: $ui-highlight-color;
2012 button.icon-button i.fa-retweet {
2013 background-position: 0 0;
2015 transition: background-position 0.9s steps(10);
2016 transition-duration: 0s;
2017 vertical-align: middle;
2021 display: none !important;
2025 button.icon-button.active i.fa-retweet {
2026 transition-duration: 0.9s;
2027 background-position: 0 100%;
2034 border: 1px solid lighten($ui-base-color, 8%);
2036 color: $ui-base-lighter-color;
2038 text-decoration: none;
2042 background: lighten($ui-base-color, 8%);
2048 .status-card-photo {
2058 .status-card-photo {
2060 text-decoration: none;
2070 .status-card-video {
2074 padding-top: 56.25%;
2090 .status-card__title {
2094 color: $ui-primary-color;
2096 text-overflow: ellipsis;
2097 white-space: nowrap;
2100 .status-card__content {
2103 padding: 14px 14px 14px 8px;
2106 .status-card__description {
2107 color: $ui-primary-color;
2110 .status-card__host {
2116 .status-card__image {
2118 background: lighten($ui-base-color, 8%);
2121 .status-card.horizontal {
2124 .status-card__image {
2128 .status-card__image-image {
2129 border-radius: 4px 4px 0 0;
2133 .status-card__image-image {
2134 border-radius: 4px 0 0 4px;
2143 color: $ui-base-lighter-color;
2144 background-color: transparent;
2148 line-height: inherit;
2155 background: lighten($ui-base-color, 2%);
2159 .missing-indicator {
2163 color: lighten($ui-base-color, 16%);
2164 background: $ui-base-color;
2168 align-items: center;
2169 justify-content: center;
2172 background: url('../images/mastodon-not-found.png') no-repeat center -50px;
2178 .column-header__wrapper {
2192 pointer-events: none;
2195 background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
2203 background: lighten($ui-base-color, 4%);
2211 box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);
2213 .column-header__icon {
2214 color: $ui-highlight-color;
2215 text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);
2225 .column-header__buttons {
2234 .column-header__button {
2235 background: lighten($ui-base-color, 4%);
2237 color: $ui-primary-color;
2243 color: lighten($ui-primary-color, 7%);
2247 color: $primary-text-color;
2248 background: lighten($ui-base-color, 8%);
2251 color: $primary-text-color;
2252 background: lighten($ui-base-color, 8%);
2257 .column-header__collapsible {
2261 color: $ui-primary-color;
2262 transition: max-height 150ms ease-in-out, opacity 300ms linear;
2275 .column-header__collapsible-inner {
2276 background: lighten($ui-base-color, 8%);
2280 .column-header__setting-btn {
2282 color: lighten($ui-primary-color, 4%);
2283 text-decoration: underline;
2287 .column-header__setting-arrows {
2290 .column-header__setting-btn {
2300 display: inline-block;
2302 font-family: inherit;
2306 background: transparent;
2310 .column-header__icon {
2311 display: inline-block;
2315 .loading-indicator {
2316 color: lighten($ui-base-color, 26%);
2319 text-transform: uppercase;
2324 transform: translate(-50%, -50%);
2330 transform: translateX(-50%);
2331 margin: 82px 0 0 50%;
2332 white-space: nowrap;
2333 animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2337 .loading-indicator__figure {
2341 transform: translate(-50%, -50%);
2344 box-sizing: border-box;
2345 border: 0 solid lighten($ui-base-color, 26%);
2347 animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2350 @keyframes loader-figure {
2354 background-color: lighten($ui-base-color, 26%);
2358 background-color: lighten($ui-base-color, 26%);
2364 background-color: transparent;
2374 background-color: transparent;
2378 @keyframes loader-label {
2379 0% { opacity: 0.25; }
2381 100% { opacity: 0.25; }
2384 .video-error-cover {
2385 align-items: center;
2386 background: $base-overlay-background;
2387 color: $primary-text-color;
2390 flex-direction: column;
2392 justify-content: center;
2400 background: $base-overlay-background;
2401 color: $ui-primary-color;
2409 color: lighten($ui-primary-color, 8%);
2413 .media-spoiler__warning {
2418 .media-spoiler__trigger {
2428 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
2432 &.spoiler-button--visible {
2437 .modal-container--preloader {
2438 background: lighten($ui-base-color, 8%);
2442 background: lighten($ui-base-color, 4%);
2443 border-top: 1px solid lighten($ui-base-color, 8%);
2444 border-bottom: 1px solid lighten($ui-base-color, 8%);
2446 flex-direction: row;
2450 .account--panel__button,
2451 .detailed-status__button {
2456 .column-settings__outer {
2457 background: lighten($ui-base-color, 8%);
2461 .column-settings__section {
2462 color: $ui-primary-color;
2466 margin-bottom: 10px;
2469 .column-settings__row {
2471 margin-bottom: 15px;
2475 .modal-container__nav {
2476 align-items: center;
2477 background: rgba($base-overlay-background, 0.5);
2478 box-sizing: border-box;
2480 color: $primary-text-color;
2490 .modal-container__nav--left {
2494 .modal-container__nav--right {
2498 .account--follows-info {
2499 color: $primary-text-color;
2504 display: inline-block;
2505 vertical-align: top;
2506 background-color: rgba($base-overlay-background, 0.4);
2507 text-transform: uppercase;
2514 .account--action-button {
2525 .setting-toggle__label,
2526 .setting-meta__label {
2527 color: $ui-primary-color;
2528 display: inline-block;
2529 margin-bottom: 14px;
2531 vertical-align: middle;
2534 .setting-meta__label {
2535 color: $ui-primary-color;
2539 .empty-column-indicator,
2541 color: lighten($ui-base-color, 20%);
2542 background: $ui-base-color;
2550 align-items: center;
2551 justify-content: center;
2552 @supports(display: grid) { // hack to fix Chrome <57
2557 color: $ui-highlight-color;
2558 text-decoration: none;
2561 text-decoration: underline;
2567 flex-direction: column;
2581 animation: pulse 1s ease-in-out infinite;
2582 animation-direction: alternate;
2585 .emoji-picker-dropdown__menu {
2586 background: $simple-background-color;
2588 box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
2592 .emoji-mart-scroll {
2593 transition: opacity 200ms ease;
2596 &.selecting .emoji-mart-scroll {
2601 .emoji-picker-dropdown__modifiers {
2608 .emoji-picker-dropdown__modifiers__menu {
2613 background: $simple-background-color;
2615 box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
2623 background: transparent;
2628 background: rgba($ui-secondary-color, 0.4);
2639 background-repeat: no-repeat;
2644 align-items: center;
2645 background: rgba($base-overlay-background, 0.8);
2648 justify-content: center;
2658 pointer-events: none;
2662 .upload-area__drop {
2666 box-sizing: border-box;
2671 .upload-area__background {
2679 background: $ui-base-color;
2680 box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
2683 .upload-area__content {
2686 align-items: center;
2687 justify-content: center;
2688 color: $ui-secondary-color;
2691 border: 2px dashed $ui-base-lighter-color;
2697 color: $ui-base-lighter-color;
2708 text-transform: uppercase;
2714 .upload-progess__message {
2718 .upload-progress__backdrop {
2722 background: $ui-base-lighter-color;
2727 .upload-progress__tracker {
2732 background: $ui-highlight-color;
2747 outline: 0 !important;
2751 filter: grayscale(100%);
2770 .dropdown--active .emoji-button img {
2779 .privacy-dropdown__dropdown {
2785 background: $simple-background-color;
2786 border-radius: 0 4px 4px;
2791 .privacy-dropdown__option {
2792 color: $ui-base-color;
2799 background: $ui-highlight-color;
2800 color: $primary-text-color;
2802 .privacy-dropdown__option__content {
2803 color: $primary-text-color;
2806 color: $primary-text-color;
2812 background: lighten($ui-highlight-color, 4%);
2816 .privacy-dropdown__option__icon {
2818 align-items: center;
2819 justify-content: center;
2823 .privacy-dropdown__option__content {
2825 color: darken($ui-primary-color, 24%);
2830 color: $ui-base-color;
2834 .privacy-dropdown.active {
2835 .privacy-dropdown__value {
2836 background: $simple-background-color;
2837 border-radius: 4px 4px 0 0;
2838 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
2841 .privacy-dropdown__dropdown {
2843 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
2853 box-sizing: border-box;
2858 padding-right: 30px;
2859 font-family: inherit;
2860 background: $ui-base-color;
2861 color: $ui-primary-color;
2865 &::-moz-focus-inner {
2869 &::-moz-focus-inner,
2872 outline: 0 !important;
2876 background: lighten($ui-base-color, 4%);
2879 @media screen and (max-width: 600px) {
2890 display: inline-block;
2892 transition: all 100ms linear;
2896 color: $ui-secondary-color;
2898 pointer-events: none;
2901 pointer-events: auto;
2907 transform: translateZ(0) rotate(90deg);
2910 pointer-events: none;
2911 transform: translateZ(0) rotate(0deg);
2917 transform: translateZ(0) rotate(0deg);
2921 transform: translateZ(0) rotate(90deg);
2925 color: $primary-text-color;
2930 .search-results__header {
2931 color: $ui-base-lighter-color;
2932 background: lighten($ui-base-color, 2%);
2933 border-bottom: 1px solid darken($ui-base-color, 4%);
2939 .search-results__hashtag {
2942 color: $ui-secondary-color;
2943 text-decoration: none;
2948 color: lighten($ui-secondary-color, 4%);
2949 text-decoration: underline;
2953 .modal-root__overlay {
2961 background: rgba($base-overlay-background, 0.7);
2962 transform: translateZ(0);
2965 .modal-root__container {
2972 flex-direction: column;
2973 align-items: center;
2974 justify-content: center;
2975 align-content: space-around;
2978 pointer-events: none;
2982 .modal-root__modal {
2983 pointer-events: auto;
2993 .extended-video-player,
3004 .extended-video-player,
3014 background: url('../images/void.png') repeat;
3015 object-fit: contain;
3018 .react-swipeable-view-container {
3023 .media-modal__content {
3024 background: $base-overlay-background;
3027 .media-modal__close {
3037 background: $ui-secondary-color;
3038 color: $ui-base-color;
3042 flex-direction: column;
3045 .onboarding-modal__pager {
3051 .react-swipeable-view-container > div {
3054 box-sizing: border-box;
3057 flex-direction: column;
3058 align-items: center;
3059 justify-content: center;
3065 .error-modal__body {
3078 box-sizing: border-box;
3081 flex-direction: column;
3082 align-items: center;
3083 justify-content: center;
3090 .error-modal__body {
3092 flex-direction: column;
3093 justify-content: center;
3094 align-items: center;
3098 @media screen and (max-width: 550px) {
3105 .onboarding-modal__pager {
3114 .onboarding-modal__paginator,
3115 .error-modal__footer {
3117 background: darken($ui-secondary-color, 8%);
3125 .onboarding-modal__nav,
3127 color: darken($ui-secondary-color, 34%);
3128 background-color: transparent;
3133 line-height: inherit;
3139 color: darken($ui-secondary-color, 38%);
3142 &.onboarding-modal__done,
3143 &.onboarding-modal__next {
3144 color: $ui-highlight-color;
3149 .error-modal__footer {
3150 justify-content: center;
3153 .onboarding-modal__dots {
3156 align-items: center;
3157 justify-content: center;
3160 .onboarding-modal__dot {
3163 border-radius: 14px;
3164 background: darken($ui-secondary-color, 16%);
3169 background: darken($ui-secondary-color, 18%);
3174 background: darken($ui-secondary-color, 24%);
3178 .onboarding-modal__page__wrapper {
3179 pointer-events: none;
3181 &.onboarding-modal__page__wrapper--active {
3182 pointer-events: auto;
3186 .onboarding-modal__page {
3193 color: $ui-base-color;
3194 margin-bottom: 20px;
3198 color: $ui-highlight-color;
3203 color: lighten($ui-highlight-color, 4%);
3209 color: lighten($ui-base-color, 8%);
3211 margin-bottom: 10px;
3219 background: $ui-base-color;
3220 color: $ui-secondary-color;
3228 .onboarding-modal__page-one {
3230 align-items: center;
3233 .onboarding-modal__page-one__elephant-friend {
3234 background: url('../images/elephant-friend-1.png') no-repeat center center / contain;
3240 @media screen and (max-width: 400px) {
3241 .onboarding-modal__page-one {
3242 flex-direction: column;
3243 align-items: normal;
3246 .onboarding-modal__page-one__elephant-friend {
3254 .onboarding-modal__page-two,
3255 .onboarding-modal__page-three,
3256 .onboarding-modal__page-four,
3257 .onboarding-modal__page-five {
3263 background: darken($ui-base-color, 8%);
3264 color: $ui-secondary-color;
3265 margin-bottom: 20px;
3270 box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
3272 .onboarding-modal__image {
3274 margin-bottom: 10px;
3278 pointer-events: none;
3284 .onboarding-modal__page-four__columns {
3287 margin-bottom: 20px;
3312 color: $primary-text-color;
3316 @media screen and (max-width: 320px) and (max-height: 600px) {
3317 .onboarding-modal__page p {
3322 .onboarding-modal__page-two .figure,
3323 .onboarding-modal__page-three .figure,
3324 .onboarding-modal__page-four .figure,
3325 .onboarding-modal__page-five .figure {
3327 margin-bottom: 10px;
3330 .onboarding-modal__page-four__columns .row {
3331 margin-bottom: 10px;
3334 .onboarding-modal__page-four__columns .column-header {
3340 .onboarding-modal__image {
3347 margin-bottom: 20px;
3351 display: inline-block;
3358 .confirmation-modal,
3361 background: lighten($ui-secondary-color, 8%);
3362 color: $ui-base-color;
3368 flex-direction: column;
3370 .status__display-name {
3373 padding-right: 25px;
3388 border-bottom-color: $ui-secondary-color;
3390 padding-bottom: 10px;
3393 .dropdown-menu__separator {
3394 border-bottom-color: $ui-secondary-color;
3398 .boost-modal__container {
3408 .boost-modal__action-bar,
3409 .confirmation-modal__action-bar,
3410 .report-modal__action-bar {
3412 justify-content: space-between;
3413 background: $ui-secondary-color;
3420 color: lighten($ui-base-color, 33%);
3421 padding-right: 10px;
3429 .boost-modal__status-header {
3433 .boost-modal__status-time {
3438 .confirmation-modal {
3441 @media screen and (min-width: 480px) {
3446 .report-modal__statuses,
3447 .report-modal__comment {
3451 .report-modal__statuses {
3458 .report-modal__comment {
3473 .actions-modal__item-label {
3487 color: $ui-base-color;
3491 align-items: center;
3492 text-decoration: none;
3505 background: $ui-highlight-color;
3506 color: $primary-text-color;
3510 button:first-child {
3518 .confirmation-modal__action-bar {
3519 .confirmation-modal__cancel-button {
3520 background-color: transparent;
3521 color: darken($ui-secondary-color, 34%);
3528 color: darken($ui-secondary-color, 38%);
3533 .confirmation-modal__container,
3534 .report-modal__target {
3545 background-color: $ui-highlight-color;
3552 .media-gallery__gifv__label {
3555 color: $primary-text-color;
3556 background: rgba($base-overlay-background, 0.5);
3564 pointer-events: none;
3566 transition: opacity 0.1s ease;
3569 .media-gallery__gifv {
3571 .media-gallery__gifv__label {
3577 .media-gallery__gifv__label {
3586 border: 1px solid lighten($ui-base-color, 8%);
3592 .attachment-list__icon {
3594 color: $ui-base-lighter-color;
3597 border-right: 1px solid lighten($ui-base-color, 8%);
3599 flex-direction: column;
3600 align-items: center;
3601 justify-content: center;
3609 .attachment-list__list {
3614 flex-direction: column;
3615 justify-content: center;
3623 text-decoration: none;
3624 color: $ui-base-lighter-color;
3628 text-decoration: underline;
3635 box-sizing: border-box;
3642 .media-gallery__item {
3644 box-sizing: border-box;
3650 .media-gallery__item-gifv-thumbnail {
3656 .media-gallery__item-thumbnail {
3659 text-decoration: none;
3671 .media-gallery__gifv {
3678 .media-gallery__item-gifv-thumbnail {
3684 transform: translateY(-50%);
3689 .media-gallery__item-thumbnail-label {
3690 clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
3691 clip: rect(1px, 1px, 1px, 1px);
3695 /* End Media Gallery */
3697 /* Status Video Player */
3698 .status__video-player {
3699 background: $base-overlay-background;
3700 box-sizing: border-box;
3701 cursor: default; /* May not be needed */
3707 .status__video-player-video {
3712 transform: translateY(-50%);
3717 .status__video-player-expand,
3718 .status__video-player-mute {
3719 color: $primary-text-color;
3723 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
3726 .status__video-player-spoiler {
3728 color: $primary-text-color;
3731 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
3735 &.status__video-player-spoiler--visible {
3740 .status__video-player-expand {
3745 .status__video-player-mute {
3753 background: $base-shadow-color;
3763 width: 100% !important;
3764 height: 100% !important;
3768 max-width: 100% !important;
3769 max-height: 100% !important;
3778 transform: translateY(-50%);
3788 box-sizing: border-box;
3789 background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 60%, transparent);
3792 transition: opacity .1s ease;
3801 .video-player__controls {
3815 background: $base-shadow-color;
3816 color: $ui-primary-color;
3818 pointer-events: none;
3822 pointer-events: auto;
3827 color: lighten($ui-primary-color, 8%);
3844 padding-bottom: 10px;
3851 padding-right: 10px;
3864 background: transparent;
3872 color: $ui-highlight-color;
3885 background: rgba($white, 0.35);
3897 background: $ui-highlight-color;
3909 transition: opacity .1s ease;
3910 background: $ui-highlight-color;
3911 pointer-events: none;
3919 .video-player__seek__handle {
3926 .media-spoiler-video {
3927 background-size: cover;
3928 background-repeat: no-repeat;
3929 background-position: center;
3937 .media-spoiler-video-play-icon {
3938 border-radius: 100px;
3939 color: rgba($primary-text-color, 0.8);
3945 transform: translate(-50%, -50%);
3947 /* End Video Player */
3949 .account-gallery__container {
3956 .account-gallery__item {
3958 width: calc(100% / 3 - 4px);
3966 background-color: $base-overlay-background;
3967 background-size: cover;
3968 background-position: center;
3971 text-decoration: none;
3981 .account-section-headline {
3982 color: $ui-base-lighter-color;
3983 background: lighten($ui-base-color, 2%);
3984 border-bottom: 1px solid lighten($ui-base-color, 4%);
4000 border-style: solid;
4001 border-width: 0 10px 10px;
4002 border-color: transparent transparent lighten($ui-base-color, 4%);
4007 border-color: transparent transparent $ui-base-color;
4011 ::-webkit-scrollbar-thumb {
4021 animation: flicker 4s infinite;
4027 color: $ui-secondary-color;
4031 color: $ui-highlight-color;
4032 text-decoration: underline;
4035 text-decoration: none;
4041 @keyframes flicker {
4043 30% { opacity: 0.75; }
4044 100% { opacity: 1; }
4047 @media screen and (max-width: 630px) and (max-height: 400px) {
4053 will-change: margin-top;
4054 transition: margin-top $duration $delay;
4058 will-change: padding-bottom;
4059 transition: padding-bottom $duration $delay;
4064 will-change: margin-top, margin-left, width;
4065 transition: margin-top $duration $delay, margin-left $duration ($duration + $delay);
4068 & > .navigation-bar__profile-edit {
4069 will-change: margin-top;
4070 transition: margin-top $duration $delay;
4074 will-change: opacity;
4075 transition: opacity $duration $delay;
4093 .navigation-bar__profile {
4097 .navigation-bar__profile-edit {
4103 pointer-events: auto;
4121 .embed-modal__container {
4125 margin-bottom: 15px;
4128 .embed-modal__html {
4129 color: $ui-secondary-color;
4131 box-sizing: border-box;
4136 font-family: 'mastodon-font-monospace', monospace;
4137 background: $ui-base-color;
4138 color: $ui-primary-color;
4141 margin-bottom: 15px;
4143 &::-moz-focus-inner {
4147 &::-moz-focus-inner,
4150 outline: 0 !important;
4154 background: lighten($ui-base-color, 4%);
4157 @media screen and (max-width: 600px) {
4162 .embed-modal__iframe {