2 @import 'variables-glitch';
5 -webkit-overflow-scrolling: touch;
6 -ms-overflow-style: -ms-autohiding-scrollbar;
10 background-color: darken($ui-highlight-color, 3%);
13 box-sizing: border-box;
14 color: $primary-text-color;
16 display: inline-block;
27 text-transform: uppercase;
28 text-decoration: none;
29 text-overflow: ellipsis;
30 transition: all 100ms ease-in;
37 background-color: lighten($ui-highlight-color, 7%);
38 transition: all 200ms ease-out;
42 background-color: $ui-primary-color;
46 &.button-alternative {
50 color: $ui-base-color;
51 background: $ui-primary-color;
58 background-color: lighten($ui-primary-color, 4%);
66 color: $ui-primary-color;
68 background: transparent;
70 border: 1px solid $ui-primary-color;
75 border-color: lighten($ui-primary-color, 4%);
76 color: lighten($ui-primary-color, 4%);
93 background: lighten($ui-base-color, 4%);
94 color: $ui-primary-color;
104 color: lighten($ui-primary-color, 7%);
109 display: inline-block;
111 color: $ui-base-lighter-color;
113 background: transparent;
115 transition: color 100ms ease-in;
120 color: lighten($ui-base-color, 33%);
121 transition: color 200ms ease-out;
125 color: lighten($ui-base-color, 13%);
130 color: $ui-highlight-color;
133 &::-moz-focus-inner {
140 outline: 0 !important;
144 color: lighten($ui-base-color, 33%);
149 color: $ui-base-lighter-color;
153 color: $ui-primary-color;
157 color: $ui-highlight-color;
160 color: lighten($ui-highlight-color, 13%);
166 box-sizing: content-box;
167 background: rgba($base-overlay-background, 0.6);
168 color: rgba($primary-text-color, 0.7);
173 background: rgba($base-overlay-background, 0.9);
179 color: lighten($ui-base-color, 33%);
181 background: transparent;
188 transition: color 100ms ease-in;
193 color: $ui-base-lighter-color;
194 transition: color 200ms ease-out;
198 color: lighten($ui-base-color, 13%);
203 color: $ui-highlight-color;
206 &::-moz-focus-inner {
213 outline: 0 !important;
217 .dropdown--active .icon-button {
218 color: $ui-highlight-color;
221 .dropdown--active::after {
222 @media screen and (min-width: 1025px) {
229 border-width: 0 4.5px 7.8px;
230 border-color: transparent transparent $ui-secondary-color;
239 display: inline-block;
251 .lightbox .icon-button {
252 color: $ui-base-color;
259 .compose-form__warning {
260 color: darken($ui-secondary-color, 65%);
262 background: $ui-primary-color;
263 box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
270 color: darken($ui-secondary-color, 65%);
275 color: darken($ui-primary-color, 33%);
277 text-decoration: underline;
282 text-decoration: none;
287 .compose-form__modifiers {
288 color: $ui-base-color;
289 font-family: inherit;
291 background: $simple-background-color;
292 border-radius: 0 0 4px;
295 .compose-form__buttons-wrapper {
297 justify-content: space-between;
300 .compose-form__buttons {
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;
308 box-sizing: content-box;
313 .compose-form__upload-button-icon {
317 .compose-form__sensitive-button {
320 &.compose-form__sensitive-button--visible {
324 .compose-form__sensitive-button__icon {
329 .compose-form__upload-wrapper {
333 .compose-form__uploads-wrapper {
338 .compose-form__upload {
343 .compose-form__upload-thumbnail {
345 background-position: center;
346 background-size: cover;
347 background-repeat: no-repeat;
352 .compose-form__upload-cancel {
353 background-size: cover;
359 .compose-form__label {
362 vertical-align: middle;
365 border-top: 1px solid $ui-base-color;
369 .compose-form__label__text {
370 display: inline-block;
371 vertical-align: middle;
374 color: $ui-primary-color;
378 .compose-form__textarea,
379 .follow-form__input {
380 background: $simple-background-color;
383 background: $ui-secondary-color;
387 .compose-form__autosuggest-wrapper {
390 .emoji-picker__dropdown {
395 &.dropdown--active::after {
396 border-color: transparent transparent $base-border-color;
401 ::-webkit-scrollbar-track:hover,
402 ::-webkit-scrollbar-track:active {
403 background-color: rgba($base-overlay-background, 0.3);
408 .compose-form__publish {
413 .compose-form__publish-button-wrapper {
419 display: inline-block;
421 vertical-align: middle;
422 margin: -.2ex .15em .2ex;
432 border-radius: 4px 4px 0 0;
435 background: $ui-primary-color;
439 .reply-indicator__header {
444 .reply-indicator__cancel {
449 .reply-indicator__display-name {
450 color: $ui-base-color;
456 text-decoration: none;
459 .reply-indicator__display-avatar {
464 .status__content--with-action {
468 // --- Extra clickable area in the status gutter ---
470 @mixin xtraspaces-full {
471 height: calc(100% + 10px);
474 @mixin xtraspaces-short {
475 height: calc(100% - 35px);
479 // Avi must go on top if the toot is too short
485 .status__content--with-action > div::after {
492 // more than 4 never fit on FullHD, short
493 @include xtraspaces-short;
496 @media screen and (min-width: 1800px) {
497 // 4, very wide screen
498 .column:nth-child(2):nth-last-child(4) {
500 .status__content--with-action > div::after {
501 @include xtraspaces-full;
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) {
512 .status__content--with-action > div::after {
513 @include xtraspaces-full;
518 @media screen and (max-width: 1440px) {
520 .column:nth-child(2):nth-last-child(3) {
522 .status__content--with-action > div::after {
523 @include xtraspaces-short;
530 @media screen and (max-width: 1060px) {
531 .status__content--with-action > div::after {
538 // --- end extra clickable spaces ---
542 .reply-indicator__content {
551 .reply-indicator__content {
555 color: $primary-text-color;
556 word-wrap: break-word;
559 white-space: pre-wrap;
575 color: $ui-secondary-color;
576 text-decoration: none;
579 text-decoration: underline;
582 color: lighten($ui-base-color, 40%);
588 text-decoration: none;
591 text-decoration: underline;
597 color: lighten($ui-base-color, 30%);
601 .status__content__spoiler {
604 &.status__content__spoiler--visible {
610 .status__content__spoiler-link {
611 display: inline-block;
613 background: lighten($ui-base-color, 30%);
615 color: lighten($ui-base-color, 8%);
619 text-transform: uppercase;
620 line-height: inherit;
622 vertical-align: bottom;
625 background: lighten($ui-base-color, 33%);
626 text-decoration: none;
629 .status__content__spoiler-icon {
630 display: inline-block;
632 border-left: 1px solid currentColor;
635 vertical-align: -2px;
639 .status__prepend-icon-wrapper {
645 .status, .notification-follow {
646 padding-right: ($dismiss-overlay-width + 0.5rem);
650 .notification-follow {
654 border-bottom: 1px solid lighten($ui-base-color, 8%);
657 border-bottom: 0 none;
667 border-bottom: 1px solid lighten($ui-base-color, 8%);
676 animation: fade 150ms linear;
679 background: lighten($ui-base-color, 8%);
681 .icon-button.disabled {
682 color: lighten($ui-base-color, 16%);
687 .status__relative-time {
688 color: $ui-primary-color;
691 .status__display-name {
692 color: $ui-base-color;
697 color: $ui-base-color;
701 color: $ui-primary-color;
706 color: $ui-base-color;
709 color: $ui-highlight-color;
712 a.status__content__spoiler-link {
713 color: $primary-text-color;
714 background: $ui-primary-color;
717 background: lighten($ui-primary-color, 8%);
724 background-position: center;
725 background-size: cover;
728 &.has-background::before {
735 background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));
739 .status__display-name:hover strong {
740 text-decoration: none;
746 text-overflow: ellipsis;
749 text-decoration: none;
754 .notification__message {
755 margin: -10px 0 10px;
759 .notification-favourite {
760 .status.status-direct {
761 background: transparent;
763 .icon-button.disabled {
764 color: lighten($ui-base-color, 13%);
769 .status__relative-time {
770 display: inline-block;
774 color: $ui-base-lighter-color;
779 text-overflow: ellipsis;
782 .status__display-name {
783 color: $ui-base-lighter-color;
786 .status__info .status__display-name {
797 .status__info__icons {
798 display: inline-block;
801 color: lighten($ui-base-color, 26%);
802 z-index: 5; // to make it clickable
804 .status__visibility-icon {
810 border-bottom: 1px solid $ui-secondary-color;
817 text-overflow: ellipsis;
822 .status-check-box-toggle {
826 justify-content: center;
831 margin: -10px 0 10px;
832 color: $ui-base-lighter-color;
837 .status__display-name strong {
838 color: $ui-base-lighter-color;
842 .status__action-bar {
856 .status__action-bar-button {
862 .status__action-bar-dropdown {
867 // Dropdown style override for centering on the icon
871 .dropdown__content.dropdown__right {
872 left: calc(50% + 3px);
874 transform: translate(-50%, 0);
885 .detailed-status__action-bar-dropdown {
889 justify-content: center;
899 .dropdown__content.dropdown__left {
914 background: lighten($ui-base-color, 4%);
928 .detailed-status__meta {
930 color: $ui-base-lighter-color;
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%);
944 .detailed-status__link {
946 text-decoration: none;
949 .detailed-status__favorites,
950 .detailed-status__reblogs {
951 display: inline-block;
957 .reply-indicator__content {
958 color: $ui-base-color;
962 color: lighten($ui-base-color, 20%);
968 border-bottom: 1px solid lighten($ui-base-color, 8%);
970 .account__display-name {
973 color: $ui-primary-color;
975 text-decoration: none;
984 .account__avatar-wrapper {
991 @include avatar-radius();
996 display: inline-block;
997 vertical-align: middle;
1002 .account__avatar-overlay {
1003 @include avatar-size(48px);
1006 @include avatar-radius();
1007 @include avatar-size(36px);
1011 @include avatar-radius();
1012 @include avatar-size(24px);
1021 .account__relationship {
1024 white-space: nowrap;
1027 .account__header__wrapper {
1029 background: lighten($ui-base-color, 4%);
1034 background-size: cover;
1035 background-position: center;
1039 background: rgba(lighten($ui-base-color, 4%), 0.9);
1043 .account__header__content {
1044 color: $ui-secondary-color;
1047 .account__header__display-name {
1048 color: $primary-text-color;
1049 display: inline-block;
1055 .account__header__username {
1056 color: $ui-highlight-color;
1060 margin-bottom: 10px;
1064 .account__disclaimer {
1066 border-top: 1px solid lighten($ui-base-color, 8%);
1067 color: $ui-base-lighter-color;
1076 text-decoration: underline;
1081 text-decoration: none;
1086 .account__header__content {
1087 color: $ui-primary-color;
1092 word-wrap: break-word;
1095 margin-bottom: 20px;
1104 text-decoration: underline;
1107 text-decoration: none;
1112 .account__header__display-name {
1119 .account__metadata {
1124 border-collapse: collapse;
1127 text-decoration: none;
1130 text-decoration: underline;
1135 border-top: 1px solid lighten($ui-base-color, 8%);
1140 vertical-align: middle;
1145 white-space: pre-wrap;
1146 text-overflow: ellipsis;
1151 color: $ui-primary-color;
1152 background: lighten($ui-base-color, 13%);
1153 font-variant: small-caps;
1157 color: $primary-text-color;
1163 color: $primary-text-color;
1164 background: $ui-base-color;
1167 color: $ui-highlight-color;
1172 .account__action-bar {
1173 border-top: 1px solid lighten($ui-base-color, 8%);
1174 border-bottom: 1px solid lighten($ui-base-color, 8%);
1181 .account__action-bar-dropdown {
1186 .dropdown__content.dropdown__right {
1200 .account__action-bar-links {
1206 .account__action-bar__tab {
1207 text-decoration: none;
1210 border-left: 1px solid lighten($ui-base-color, 8%);
1215 text-transform: uppercase;
1217 color: $ui-primary-color;
1224 color: $primary-text-color;
1228 color: $ui-base-lighter-color;
1232 .account__header__avatar {
1233 @include avatar-radius();
1234 @include avatar-size(90px);
1236 margin: 0 auto 10px;
1240 .account-authorize {
1243 .detailed-status__display-name {
1245 margin-bottom: 15px;
1250 .account-authorize__avatar {
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;
1264 .status__display-name,
1265 .account__display-name {
1267 color: $primary-text-color;
1271 .status__display-name,
1272 .reply-indicator__display-name,
1273 .detailed-status__display-name,
1274 .account__display-name {
1276 text-decoration: underline;
1280 .account__display-name strong {
1284 .detailed-status__application,
1285 .detailed-status__datetime {
1289 .detailed-status__display-name {
1290 color: $ui-secondary-color;
1293 margin-bottom: 15px;
1299 text-overflow: ellipsis;
1305 color: $primary-text-color;
1309 .detailed-status__display-avatar {
1323 .status__content a {
1324 color: $ui-base-lighter-color;
1327 .status__display-name strong {
1328 color: $ui-base-lighter-color;
1331 .status__avatar, .emojione {
1335 a.status__content__spoiler-link {
1336 background: $ui-base-lighter-color;
1337 color: lighten($ui-base-color, 4%);
1340 background: lighten($ui-base-color, 29%);
1341 text-decoration: none;
1346 .notification__message {
1351 color: $ui-primary-color;
1356 color: $ui-highlight-color;
1360 .notification__favourite-icon-wrapper {
1373 .notification__display-name {
1376 text-decoration: none;
1379 color: $primary-text-color;
1380 text-decoration: underline;
1389 //text-overflow: ellipsis;
1390 //white-space: nowrap;
1393 .display-name__html {
1397 .display-name__account {
1400 line-height: 1.1; // reduce the distance from the display name
1401 padding-bottom: 3px;
1406 text-overflow: ellipsis;
1407 white-space: nowrap;
1410 .status__relative-time,
1411 .detailed-status__datetime {
1413 text-decoration: underline;
1420 &.image-loader--loading {
1421 .image-loader__preview-canvas {
1426 .image-loader__img {
1433 background-image: none;
1436 &.image-loader--amorphous {
1439 .image-loader__preview-canvas {
1443 .image-loader__img {
1456 color: $ui-primary-color;
1459 color: $primary-text-color;
1463 text-decoration: none;
1467 pointer-events: none;
1472 .navigation-bar__profile {
1477 .navigation-bar__profile-account {
1482 .navigation-bar__profile-edit {
1484 text-decoration: none;
1488 display: inline-block;
1491 .dropdown__content {
1497 border-bottom: 1px solid darken($ui-secondary-color, 8%);
1498 margin: 5px 7px 6px;
1502 .dropdown--active .dropdown__content {
1512 background: $ui-secondary-color;
1515 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
1535 box-sizing: border-box;
1536 text-decoration: none;
1537 background: $ui-secondary-color;
1538 color: $ui-base-color;
1540 text-overflow: ellipsis;
1541 white-space: nowrap;
1548 background: $ui-highlight-color;
1549 color: $ui-secondary-color;
1555 vertical-align: middle;
1561 color: $ui-base-lighter-color;
1566 margin-bottom: 40px;
1572 margin-bottom: 20px;
1579 flex-direction: row;
1580 justify-content: flex-start;
1586 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1591 .react-swipeable-view-container .columns-area {
1592 height: calc(100% - 20px) !important;
1596 .react-swipeable-view-container {
1605 .react-swipeable-view-container > * {
1607 align-items: center;
1608 justify-content: center;
1615 box-sizing: border-box;
1617 flex-direction: column;
1627 background: $ui-base-color;
1634 flex-direction: column;
1637 background: darken($ui-base-color, 7%);
1642 box-sizing: border-box;
1644 flex-direction: column;
1657 padding: 15px 5px 13px;
1658 color: $ui-primary-color;
1659 text-decoration: none;
1662 border-bottom: 2px solid transparent;
1669 @supports(display: grid) { // hack to fix Chrome <57
1674 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1684 :root { // Overrides .wide stylings for mobile view
1685 @include single-column('screen and (max-width: 1024px)', $parent: null) {
1696 flex-direction: column;
1700 .autosuggest-textarea__textarea {
1706 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1722 padding-right: 10px;
1726 .columns-area > div {
1736 box-sizing: border-box;
1743 background: lighten($ui-base-color, 13%);
1744 box-sizing: border-box;
1754 background: $ui-base-color;
1761 background: lighten($ui-base-color, 13%);
1769 background: lighten($ui-base-color, 8%);
1770 margin-bottom: 10px;
1772 flex-direction: row;
1775 transition: background 100ms ease-in;
1778 background: lighten($ui-base-color, 3%);
1779 transition: background 200ms ease-out;
1786 background: lighten($ui-base-color, 8%);
1797 color: $primary-text-color;
1798 text-decoration: none;
1802 border-bottom: 2px solid lighten($ui-base-color, 8%);
1803 transition: all 200ms linear;
1811 border-bottom: 2px solid $ui-highlight-color;
1812 color: $ui-highlight-color;
1818 @include multi-columns('screen and (min-width: 1025px)') {
1819 background: lighten($ui-base-color, 14%);
1820 transition: all 100ms linear;
1830 @include limited-single-column('screen and (max-width: 600px)', $parent: null) {
1838 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1848 -webkit-overflow-scrolling: touch;
1849 @supports(display: grid) { // hack to fix Chrome <57
1853 &.optionally-scrollable {
1858 .column-back-button {
1859 background: lighten($ui-base-color, 4%);
1860 color: $ui-highlight-color;
1871 text-decoration: underline;
1875 .column-header__back-button {
1876 background: lighten($ui-base-color, 4%);
1878 font-family: inherit;
1879 color: $ui-highlight-color;
1887 text-decoration: underline;
1891 padding: 0 15px 0 0;
1895 .column-back-button__icon {
1896 display: inline-block;
1900 .column-back-button--slim {
1904 .column-back-button--slim-button {
1915 display: inline-block;
1918 background-color: transparent;
1922 -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
1923 -webkit-tap-highlight-color: transparent;
1926 .react-toggle-screenreader-only {
1928 clip: rect(0 0 0 0);
1937 .react-toggle--disabled {
1938 cursor: not-allowed;
1940 transition: opacity 0.25s;
1943 .react-toggle-track {
1947 border-radius: 30px;
1948 background-color: $ui-base-color;
1949 transition: all 0.2s ease;
1952 .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
1953 background-color: darken($ui-base-color, 10%);
1956 .react-toggle--checked .react-toggle-track {
1957 background-color: $ui-highlight-color;
1960 .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
1961 background-color: lighten($ui-highlight-color, 10%);
1964 .react-toggle-track-check {
1971 margin-bottom: auto;
1975 transition: opacity 0.25s ease;
1978 .react-toggle--checked .react-toggle-track-check {
1980 transition: opacity 0.25s ease;
1983 .react-toggle-track-x {
1990 margin-bottom: auto;
1994 transition: opacity 0.25s ease;
1997 .react-toggle--checked .react-toggle-track-x {
2001 .react-toggle-thumb {
2002 transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
2008 border: 1px solid $ui-base-color;
2010 background-color: darken($simple-background-color, 2%);
2011 box-sizing: border-box;
2012 transition: all 0.25s ease;
2015 .react-toggle--checked .react-toggle-thumb {
2017 border-color: $ui-highlight-color;
2021 background: lighten($ui-base-color, 8%);
2022 color: $primary-text-color;
2026 text-decoration: none;
2031 background: lighten($ui-base-color, 11%);
2035 .column-link__icon {
2036 display: inline-block;
2040 .column-subheading {
2041 background: $ui-base-color;
2042 color: $ui-base-lighter-color;
2046 text-transform: uppercase;
2050 .autosuggest-textarea,
2055 .autosuggest-textarea__textarea,
2056 .spoiler-input__input {
2058 box-sizing: border-box;
2061 color: $ui-base-color;
2062 background: $simple-background-color;
2064 font-family: inherit;
2074 @include limited-single-column('screen and (max-width: 600px)') {
2079 .spoiler-input__input {
2083 .autosuggest-textarea__textarea {
2085 border-radius: 4px 4px 0 0;
2087 padding-right: 10px + 22px;
2090 @include limited-single-column('screen and (max-width: 600px)') {
2091 height: 100px !important; // prevent auto-resize textarea
2096 .autosuggest-textarea__suggestions {
2102 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
2103 background: $ui-secondary-color;
2104 color: $ui-base-color;
2107 &.autosuggest-textarea__suggestions--visible {
2112 .autosuggest-textarea__suggestions__item {
2117 background: darken($ui-secondary-color, 10%);
2121 background: $ui-highlight-color;
2122 color: $base-border-color;
2126 .autosuggest-account {
2130 .autosuggest-account-icon {
2135 .autosuggest-status {
2137 white-space: nowrap;
2138 text-overflow: ellipsis;
2145 .character-counter__wrapper {
2147 margin: 0 16px 0 8px;
2151 .character-counter {
2156 .character-counter--over {
2157 color: $warning-red;
2160 .getting-started__wrapper {
2165 .getting-started__footer {
2167 flex-direction: column;
2171 box-sizing: border-box;
2172 padding-bottom: 235px;
2173 background: url('../images/mastodon-getting-started.png') no-repeat 0 100%;
2177 color: $ui-secondary-color;
2181 color: $ui-base-lighter-color;
2186 color: $ui-primary-color;
2187 background: transparent;
2189 border-bottom: 2px solid $ui-primary-color;
2190 box-sizing: border-box;
2192 font-family: inherit;
2193 margin-bottom: 10px;
2199 color: $primary-text-color;
2200 border-bottom-color: $ui-highlight-color;
2203 @include limited-single-column('screen and (max-width: 600px)') {
2208 color: $ui-base-color;
2209 border-bottom: 2px solid lighten($ui-base-color, 27%);
2213 color: $ui-base-color;
2214 border-bottom-color: $ui-highlight-color;
2221 button.icon-button i.fa-retweet {
2222 background-position: 0 0;
2224 transition: background-position 0.9s steps(10);
2225 transition-duration: 0s;
2226 vertical-align: middle;
2230 display: none !important;
2234 button.icon-button.active i.fa-retweet {
2235 transition-duration: 0.9s;
2236 background-position: 0 100%;
2243 border: 1px solid lighten($ui-base-color, 8%);
2245 color: $ui-base-lighter-color;
2247 text-decoration: none;
2251 background: lighten($ui-base-color, 8%);
2257 .status-card-photo {
2267 .status-card-photo {
2269 text-decoration: none;
2279 .status-card-video {
2283 padding-top: 56.25%;
2299 .status-card__title {
2303 color: $ui-primary-color;
2305 text-overflow: ellipsis;
2306 white-space: nowrap;
2309 .status-card__content {
2312 padding: 14px 14px 14px 8px;
2315 .status-card__description {
2316 color: $ui-primary-color;
2319 .status-card__host {
2325 .status-card__image {
2327 background: lighten($ui-base-color, 8%);
2330 .status-card.horizontal {
2333 .status-card__image {
2337 .status-card__image-image {
2338 border-radius: 4px 4px 0 0;
2342 .status-card__image-image {
2343 border-radius: 4px 0 0 4px;
2352 color: $ui-base-lighter-color;
2353 background-color: transparent;
2357 line-height: inherit;
2364 background: lighten($ui-base-color, 2%);
2368 .missing-indicator {
2372 color: lighten($ui-base-color, 16%);
2373 background: $ui-base-color;
2377 align-items: center;
2378 justify-content: center;
2381 background: url('../images/mastodon-not-found.png') no-repeat center -50px;
2387 .column-header__wrapper {
2401 pointer-events: none;
2404 background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
2412 background: lighten($ui-base-color, 4%);
2420 box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);
2422 .column-header__icon {
2423 color: $ui-highlight-color;
2424 text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);
2434 .column-header__buttons {
2443 .column-header__button {
2444 background: lighten($ui-base-color, 4%);
2446 color: $ui-primary-color;
2452 color: lighten($ui-primary-color, 7%);
2456 color: $primary-text-color;
2457 background: lighten($ui-base-color, 8%);
2460 color: $primary-text-color;
2461 background: lighten($ui-base-color, 8%);
2465 // glitch - added focus ring for keyboard navigation
2467 text-shadow: 0 0 4px darken($ui-highlight-color, 5%);
2471 .scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {
2472 border-top: 1px solid $ui-base-color;
2475 .notification__dismiss-overlay {
2481 padding-left: 15px; // space for the box shadow to be visible
2484 align-items: center;
2485 justify-content: flex-end;
2491 width: $dismiss-overlay-width;
2492 align-self: stretch;
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;
2504 border: 2px solid $ui-primary-color;
2509 color: $ui-primary-color;
2510 text-shadow: 0 0 5px black;
2512 justify-content: center;
2513 align-items: center;
2517 outline: 0 !important;
2520 box-shadow: 0 0 1px 1px $ui-highlight-color;
2525 .column-header__notif-cleaning-buttons {
2527 align-items: stretch;
2528 justify-content: space-around;
2531 @extend .column-header__button;
2532 background: transparent;
2535 white-space: pre-wrap;
2543 // The notifs drawer with no padding to have more space for the buttons
2544 .column-header__collapsible-inner.nopad-drawer {
2548 .column-header__collapsible {
2552 color: $ui-primary-color;
2553 transition: max-height 150ms ease-in-out, opacity 300ms linear;
2565 // notif cleaning drawer
2575 .column-header__collapsible-inner {
2576 background: lighten($ui-base-color, 8%);
2580 .column-header__setting-btn {
2582 color: lighten($ui-primary-color, 4%);
2583 text-decoration: underline;
2587 .column-header__setting-arrows {
2590 .column-header__setting-btn {
2600 display: inline-block;
2602 font-family: inherit;
2606 background: transparent;
2610 .column-header__icon {
2611 display: inline-block;
2615 .loading-indicator {
2616 color: lighten($ui-base-color, 26%);
2619 text-transform: uppercase;
2624 transform: translate(-50%, -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);
2637 .loading-indicator__figure {
2641 transform: translate(-50%, -50%);
2644 box-sizing: border-box;
2645 border: 0 solid lighten($ui-base-color, 26%);
2647 animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2650 @keyframes loader-figure {
2654 background-color: lighten($ui-base-color, 26%);
2658 background-color: lighten($ui-base-color, 26%);
2664 background-color: transparent;
2674 background-color: transparent;
2678 @keyframes loader-label {
2679 0% { opacity: 0.25; }
2681 100% { opacity: 0.25; }
2684 .video-error-cover {
2685 align-items: center;
2686 background: $base-overlay-background;
2687 color: $primary-text-color;
2690 flex-direction: column;
2692 justify-content: center;
2700 background: $base-overlay-background;
2701 color: $primary-text-color;
2705 justify-content: center;
2710 flex-direction: column;
2712 .status__content > & {
2713 margin-top: 15px; // Add margin when used bare for NSFW video player
2718 width: calc(100% + 80px);
2722 .media-spoiler__warning {
2727 .media-spoiler__trigger {
2737 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
2741 &.spoiler-button--visible {
2746 .modal-container--preloader {
2747 background: lighten($ui-base-color, 8%);
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%);
2755 flex-direction: row;
2759 .account--panel__button,
2760 .detailed-status__button {
2765 .column-settings__outer {
2766 background: lighten($ui-base-color, 8%);
2770 .column-settings__section {
2771 color: $ui-primary-color;
2775 margin-bottom: 10px;
2778 .column-settings__row {
2780 margin-bottom: 15px;
2784 .modal-container__nav {
2785 align-items: center;
2786 background: rgba($base-overlay-background, 0.5);
2787 box-sizing: border-box;
2789 color: $primary-text-color;
2799 .modal-container__nav--left {
2803 .modal-container__nav--right {
2807 .account--follows-info {
2808 color: $primary-text-color;
2813 display: inline-block;
2814 vertical-align: top;
2815 background-color: rgba($base-overlay-background, 0.4);
2816 text-transform: uppercase;
2823 .account--action-button {
2834 .setting-toggle__label,
2835 .setting-meta__label {
2836 color: $ui-primary-color;
2837 display: inline-block;
2838 margin-bottom: 14px;
2840 vertical-align: middle;
2843 .setting-meta__label {
2844 color: $ui-primary-color;
2848 .empty-column-indicator,
2850 color: lighten($ui-base-color, 20%);
2851 background: $ui-base-color;
2859 align-items: center;
2860 justify-content: center;
2861 @supports(display: grid) { // hack to fix Chrome <57
2866 color: $ui-highlight-color;
2867 text-decoration: none;
2870 text-decoration: underline;
2876 flex-direction: column;
2890 animation: pulse 1s ease-in-out infinite;
2891 animation-direction: alternate;
2897 background: $simple-background-color;
2898 box-sizing: border-box;
2902 box-shadow: 0 0 8px rgba($base-shadow-color, 0.2);
2910 .emoji-dialog-header {
2920 display: inline-block;
2921 box-sizing: border-box;
2924 border-bottom: 2px solid transparent;
2935 filter: grayscale(100%);
2941 filter: grayscale(0);
2946 border-bottom-color: $ui-highlight-color;
2950 filter: grayscale(0);
2957 box-sizing: border-box;
2962 display: inline-block;
2968 .emoji-category-header {
2969 box-sizing: border-box;
2971 padding: 10px 8px 10px 16px;
2975 display: table-cell;
2976 vertical-align: middle;
2980 .emoji-category-title {
2982 text-transform: uppercase;
2984 color: darken($ui-secondary-color, 18%);
2988 .emoji-category-heading-decoration {
2996 vertical-align: middle;
2997 white-space: nowrap;
3001 display: inline-block;
3010 display: inline-block;
3011 border-radius: 10px;
3023 border-radius: 10px;
3024 border: 2px solid $base-border-color;
3031 .emoji-search-wrapper {
3033 border-bottom: 1px solid lighten($ui-secondary-color, 4%);
3040 font-family: inherit;
3043 background: rgba($ui-secondary-color, 0.3);
3044 color: darken($ui-secondary-color, 18%);
3045 border: 1px solid $ui-secondary-color;
3049 .emoji-categories-wrapper {
3057 .emoji-search-wrapper + .emoji-categories-wrapper {
3064 transition: transform 60ms ease-in-out;
3068 background: lighten($ui-secondary-color, 3%);
3072 transform: translateZ(0) scale(1.2);
3089 align-items: center;
3090 background: rgba($base-overlay-background, 0.8);
3093 justify-content: center;
3103 pointer-events: none;
3107 .upload-area__drop {
3111 box-sizing: border-box;
3116 .upload-area__background {
3124 background: $ui-base-color;
3125 box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
3128 .upload-area__content {
3131 align-items: center;
3132 justify-content: center;
3133 color: $ui-secondary-color;
3136 border: 2px dashed $ui-base-lighter-color;
3142 color: $ui-base-lighter-color;
3153 text-transform: uppercase;
3159 .upload-progess__message {
3163 .upload-progress__backdrop {
3167 background: $ui-base-lighter-color;
3172 .upload-progress__tracker {
3177 background: $ui-highlight-color;
3192 outline: 0 !important;
3196 filter: grayscale(100%);
3215 .dropdown--active .emoji-button img {
3224 .privacy-dropdown__dropdown {
3230 background: $simple-background-color;
3231 border-radius: 0 4px 4px;
3236 .privacy-dropdown__option {
3237 color: $ui-base-color;
3244 background: $ui-highlight-color;
3245 color: $primary-text-color;
3247 .privacy-dropdown__option__content {
3248 color: $primary-text-color;
3251 color: $primary-text-color;
3257 background: lighten($ui-highlight-color, 4%);
3261 .privacy-dropdown__option__icon {
3263 align-items: center;
3264 justify-content: center;
3268 .privacy-dropdown__option__content {
3270 color: darken($ui-primary-color, 24%);
3275 color: $ui-base-color;
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);
3286 .privacy-dropdown__dropdown {
3288 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3292 .advanced-options-dropdown {
3296 .advanced-options-dropdown__dropdown {
3302 background: $simple-background-color;
3303 border-radius: 0 4px 4px;
3308 .advanced-options-dropdown__option {
3309 color: $ui-base-color;
3316 background: $ui-highlight-color;
3317 color: $primary-text-color;
3319 .advanced-options-dropdown__option__content {
3320 color: $primary-text-color;
3323 color: $primary-text-color;
3329 background: lighten($ui-highlight-color, 4%);
3333 .advanced-options-dropdown__option__toggle {
3335 align-items: center;
3336 justify-content: center;
3340 .advanced-options-dropdown__option__content {
3342 color: darken($ui-primary-color, 24%);
3347 color: $ui-base-color;
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);
3358 .advanced-options-dropdown__dropdown {
3360 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3367 margin-bottom: 10px;
3371 padding-right: 30px;
3372 color: $ui-secondary-color;
3374 box-sizing: border-box;
3379 padding-right: 30px;
3380 font-family: inherit;
3381 background: $ui-base-color;
3382 color: $ui-primary-color;
3386 &::-moz-focus-inner {
3390 &::-moz-focus-inner,
3393 outline: 0 !important;
3397 background: lighten($ui-base-color, 4%);
3400 @include limited-single-column('screen and (max-width: 600px)') {
3411 display: inline-block;
3413 transition: all 100ms linear;
3417 color: $ui-secondary-color;
3419 pointer-events: none;
3422 pointer-events: auto;
3428 transform: translateZ(0) rotate(90deg);
3431 pointer-events: none;
3432 transform: translateZ(0) rotate(0deg);
3438 transform: translateZ(0) rotate(0deg);
3442 transform: translateZ(0) rotate(90deg);
3446 color: $primary-text-color;
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%);
3460 .search-results__section {
3461 background: $ui-base-color;
3464 .search-results__hashtag {
3467 color: $ui-secondary-color;
3468 text-decoration: none;
3473 color: lighten($ui-secondary-color, 4%);
3474 text-decoration: underline;
3478 .modal-root__overlay {
3486 background: rgba($base-overlay-background, 0.7);
3487 transform: translateZ(0);
3490 .modal-root__container {
3497 flex-direction: column;
3498 align-items: center;
3499 justify-content: center;
3500 align-content: space-around;
3503 pointer-events: none;
3507 .modal-root__modal {
3508 pointer-events: auto;
3518 .extended-video-player,
3529 .extended-video-player,
3539 background: url('../images/void.png') repeat;
3540 object-fit: contain;
3543 .react-swipeable-view-container {
3548 .media-modal__content {
3549 background: $base-overlay-background;
3552 .media-modal__close {
3562 background: $ui-secondary-color;
3563 color: $ui-base-color;
3567 flex-direction: column;
3570 .onboarding-modal__pager {
3576 .react-swipeable-view-container > div {
3579 box-sizing: border-box;
3582 flex-direction: column;
3583 align-items: center;
3584 justify-content: center;
3590 .error-modal__body {
3603 box-sizing: border-box;
3606 flex-direction: column;
3607 align-items: center;
3608 justify-content: center;
3615 .error-modal__body {
3617 flex-direction: column;
3618 justify-content: center;
3619 align-items: center;
3623 @media screen and (max-width: 550px) {
3630 .onboarding-modal__pager {
3639 .onboarding-modal__paginator,
3640 .error-modal__footer {
3642 background: darken($ui-secondary-color, 8%);
3650 .onboarding-modal__nav,
3652 color: darken($ui-secondary-color, 34%);
3653 background-color: transparent;
3658 line-height: inherit;
3664 color: darken($ui-secondary-color, 38%);
3667 &.onboarding-modal__done,
3668 &.onboarding-modal__next {
3669 color: $ui-highlight-color;
3674 .error-modal__footer {
3675 justify-content: center;
3678 .onboarding-modal__dots {
3681 align-items: center;
3682 justify-content: center;
3685 .onboarding-modal__dot {
3688 border-radius: 14px;
3689 background: darken($ui-secondary-color, 16%);
3694 background: darken($ui-secondary-color, 18%);
3699 background: darken($ui-secondary-color, 24%);
3703 .onboarding-modal__page__wrapper {
3704 pointer-events: none;
3706 &.onboarding-modal__page__wrapper--active {
3707 pointer-events: auto;
3711 .onboarding-modal__page {
3718 color: $ui-base-color;
3719 margin-bottom: 20px;
3723 color: $ui-highlight-color;
3728 color: lighten($ui-highlight-color, 4%);
3734 color: lighten($ui-base-color, 8%);
3736 margin-bottom: 10px;
3744 background: $ui-base-color;
3745 color: $ui-secondary-color;
3753 .onboarding-modal__page-one {
3755 align-items: center;
3758 .onboarding-modal__page-one__elephant-friend {
3759 background: url('../images/elephant-friend-1.png') no-repeat center center / contain;
3765 @media screen and (max-width: 400px) {
3766 .onboarding-modal__page-one {
3767 flex-direction: column;
3768 align-items: normal;
3771 .onboarding-modal__page-one__elephant-friend {
3779 .onboarding-modal__page-two,
3780 .onboarding-modal__page-three,
3781 .onboarding-modal__page-four,
3782 .onboarding-modal__page-five {
3788 background: darken($ui-base-color, 8%);
3789 color: $ui-secondary-color;
3790 margin-bottom: 20px;
3795 box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
3797 .onboarding-modal__image {
3799 margin-bottom: 10px;
3803 pointer-events: none;
3809 .onboarding-modal__page-four__columns {
3812 margin-bottom: 20px;
3837 color: $primary-text-color;
3841 @media screen and (max-width: 320px) and (max-height: 600px) {
3842 .onboarding-modal__page p {
3847 .onboarding-modal__page-two .figure,
3848 .onboarding-modal__page-three .figure,
3849 .onboarding-modal__page-four .figure,
3850 .onboarding-modal__page-five .figure {
3852 margin-bottom: 10px;
3855 .onboarding-modal__page-four__columns .row {
3856 margin-bottom: 10px;
3859 .onboarding-modal__page-four__columns .column-header {
3865 .onboarding-modal__image {
3872 margin-bottom: 20px;
3876 display: inline-block;
3883 .confirmation-modal,
3887 background: lighten($ui-secondary-color, 8%);
3888 color: $ui-base-color;
3894 flex-direction: column;
3896 .status__display-name {
3899 padding-right: 25px;
3914 border-bottom-color: $ui-secondary-color;
3916 padding-bottom: 10px;
3920 .boost-modal__container {
3930 .boost-modal__action-bar,
3931 .confirmation-modal__action-bar,
3932 .mute-modal__action-bar,
3933 .report-modal__action-bar {
3935 justify-content: space-between;
3936 background: $ui-secondary-color;
3943 color: lighten($ui-base-color, 33%);
3944 padding-right: 10px;
3952 .boost-modal__status-header {
3956 .boost-modal__status-time {
3961 .confirmation-modal {
3964 @media screen and (min-width: 480px) {
3969 .report-modal__statuses,
3970 .report-modal__comment {
3974 .report-modal__statuses {
3981 .report-modal__comment {
4006 color: $ui-base-color;
4009 align-items: center;
4010 text-decoration: none;
4015 background: $ui-highlight-color;
4016 color: $primary-text-color;
4020 button:first-child {
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%);
4040 color: darken($ui-secondary-color, 38%);
4045 .confirmation-modal__container,
4046 .mute-modal__container,
4047 .report-modal__target {
4058 background-color: $ui-highlight-color;
4065 .media-gallery__gifv__label {
4068 color: $primary-text-color;
4069 background: rgba($base-overlay-background, 0.5);
4077 pointer-events: none;
4079 transition: opacity 0.1s ease;
4082 .media-gallery__gifv {
4084 .media-gallery__gifv__label {
4090 .media-gallery__gifv__label {
4099 border: 1px solid lighten($ui-base-color, 8%);
4105 .attachment-list__icon {
4107 color: $ui-base-lighter-color;
4110 border-right: 1px solid lighten($ui-base-color, 8%);
4112 flex-direction: column;
4113 align-items: center;
4114 justify-content: center;
4122 .attachment-list__list {
4127 flex-direction: column;
4128 justify-content: center;
4136 text-decoration: none;
4137 color: $ui-base-lighter-color;
4141 text-decoration: underline;
4148 box-sizing: border-box;
4152 background: $base-shadow-color;
4157 width: calc(100% + 80px);
4160 .detailed-status & {
4162 width: calc(100% + 22px);
4166 .media-gallery__item {
4168 box-sizing: border-box;
4174 .media-gallery__item-thumbnail {
4176 text-decoration: none;
4183 object-fit: contain;
4192 .media-gallery__gifv {
4198 justify-content: center;
4201 .media-gallery__item-gifv-thumbnail {
4206 object-fit: contain;
4214 .media-gallery__item-thumbnail-label {
4215 clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
4216 clip: rect(1px, 1px, 1px, 1px);
4220 /* End Media Gallery */
4222 /* Status Video Player */
4223 .status__video-player {
4225 align-items: center;
4226 background: $base-shadow-color;
4227 box-sizing: border-box;
4228 cursor: default; /* May not be needed */
4236 width: calc(100% + 80px);
4240 .status__video-player-video {
4251 .status__video-player-expand,
4252 .status__video-player-mute {
4253 color: $primary-text-color;
4257 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4260 .status__video-player-spoiler {
4262 color: $primary-text-color;
4265 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4269 &.status__video-player-spoiler--visible {
4274 .status__video-player-expand {
4279 .status__video-player-mute {
4284 .media-spoiler-video {
4285 background-size: cover;
4286 background-repeat: no-repeat;
4287 background-position: center;
4295 width: calc(100% + 80px);
4302 .media-spoiler-video-play-icon {
4303 border-radius: 100px;
4304 color: rgba($primary-text-color, 0.8);
4310 transform: translate(-50%, -50%);
4312 /* End Video Player */
4314 .account-gallery__container {
4319 .account-gallery__item {
4329 background-color: $base-overlay-background;
4330 background-size: cover;
4331 background-position: center;
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%);
4355 border-style: solid;
4356 border-width: 0 10px 10px;
4357 border-color: transparent transparent lighten($ui-base-color, 4%);
4362 border-color: transparent transparent $ui-base-color;
4366 ::-webkit-scrollbar-thumb {
4376 animation: flicker 4s infinite;
4382 color: $ui-secondary-color;
4386 color: $ui-highlight-color;
4387 text-decoration: underline;
4390 text-decoration: none;
4396 @keyframes flicker {
4398 30% { opacity: 0.75; }
4399 100% { opacity: 1; }
4402 @media screen and (max-width: 1024px) and (max-height: 400px) {
4408 will-change: margin-top;
4409 transition: margin-top $duration $delay;
4413 will-change: padding-bottom;
4414 transition: padding-bottom $duration $delay;
4419 will-change: margin-top, margin-left, width;
4420 transition: margin-top $duration $delay, margin-left $duration ($duration + $delay);
4423 & > .navigation-bar__profile-edit {
4424 will-change: margin-top;
4425 transition: margin-top $duration $delay;
4429 will-change: opacity;
4430 transition: opacity $duration $delay;
4448 .navigation-bar__profile {
4452 .navigation-bar__profile-edit {
4458 pointer-events: auto;
4464 // fixes for the navbar-under mode
4465 .is-composing.navbar-under {
4468 margin-bottom: -20px;
4476 // more fixes for the navbar-under mode
4477 @mixin fix-margins-for-navbar-under {
4479 margin-top: 0 !important;
4480 margin-bottom: -6px !important;
4484 .single-column.navbar-under {
4485 @include fix-margins-for-navbar-under;
4488 .auto-columns.navbar-under {
4489 @media screen and (max-width: 360px) {
4490 @include fix-margins-for-navbar-under;
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;
4512 .embed-modal__container {
4516 margin-bottom: 15px;
4519 .embed-modal__html {
4520 color: $ui-secondary-color;
4522 box-sizing: border-box;
4527 font-family: 'mastodon-font-monospace', monospace;
4528 background: $ui-base-color;
4529 color: $ui-primary-color;
4532 margin-bottom: 15px;
4534 &::-moz-focus-inner {
4538 &::-moz-focus-inner,
4541 outline: 0 !important;
4545 background: lighten($ui-base-color, 4%);
4548 @media screen and (max-width: 600px) {
4553 .embed-modal__iframe {