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 {
428 text-overflow: unset;
432 .compose-form__publish__side-arm {
433 padding: 0 !important;
439 .compose-form__publish__primary {
440 padding: 0 10px !important;
444 display: inline-block;
446 vertical-align: middle;
447 margin: -.2ex .15em .2ex;
457 border-radius: 4px 4px 0 0;
460 background: $ui-primary-color;
464 .reply-indicator__header {
469 .reply-indicator__cancel {
474 .reply-indicator__display-name {
475 color: $ui-base-color;
481 text-decoration: none;
484 .reply-indicator__display-avatar {
489 .status__content--with-action {
495 .reply-indicator__content {
504 .reply-indicator__content {
510 color: $primary-text-color;
511 word-wrap: break-word;
514 white-space: pre-wrap;
530 color: $ui-secondary-color;
531 text-decoration: none;
534 text-decoration: underline;
537 color: lighten($ui-base-color, 40%);
543 text-decoration: none;
546 text-decoration: underline;
552 color: lighten($ui-base-color, 30%);
556 .status__content__spoiler {
559 &.status__content__spoiler--visible {
565 .status__content__spoiler-link {
566 display: inline-block;
568 background: lighten($ui-base-color, 30%);
570 color: lighten($ui-base-color, 8%);
574 text-transform: uppercase;
575 line-height: inherit;
577 vertical-align: bottom;
580 background: lighten($ui-base-color, 33%);
581 text-decoration: none;
584 .status__content__spoiler-icon {
585 display: inline-block;
587 border-left: 1px solid currentColor;
590 vertical-align: -2px;
594 .status__prepend-icon-wrapper {
596 margin: 0 10px 0 -58px;
602 .status, .notification-follow {
603 padding-right: ($dismiss-overlay-width + 0.5rem);
607 .notification-follow {
611 border-bottom: 1px solid lighten($ui-base-color, 8%);
614 border-bottom: 0 none;
623 border-bottom: 1px solid lighten($ui-base-color, 8%);
632 animation: fade 150ms linear;
635 background: lighten($ui-base-color, 8%);
637 .icon-button.disabled {
638 color: lighten($ui-base-color, 16%);
643 .status__relative-time {
644 color: $ui-primary-color;
647 .status__display-name {
648 color: $ui-base-color;
653 color: $ui-base-color;
657 color: $ui-primary-color;
662 color: $ui-base-color;
665 color: $ui-highlight-color;
668 a.status__content__spoiler-link {
669 color: $primary-text-color;
670 background: $ui-primary-color;
673 background: lighten($ui-primary-color, 8%);
680 background-position: center;
681 background-size: cover;
684 &.has-background::before {
691 background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));
695 .display-name:hover .display-name__html {
696 text-decoration: none;
702 text-overflow: ellipsis;
705 text-decoration: none;
710 .notification__message {
711 margin: -10px -10px 10px;
715 .notification-favourite {
716 .status.status-direct {
717 background: transparent;
719 .icon-button.disabled {
720 color: lighten($ui-base-color, 13%);
725 .status__relative-time {
726 display: inline-block;
730 color: $ui-base-lighter-color;
735 text-overflow: ellipsis;
738 .status__display-name {
740 color: $ui-base-lighter-color;
751 .status__info__icons {
754 color: lighten($ui-base-color, 26%);
756 .status__visibility-icon {
762 border-bottom: 1px solid $ui-secondary-color;
769 text-overflow: ellipsis;
774 .status-check-box-toggle {
778 justify-content: center;
783 margin: -10px -10px 10px;
784 color: $ui-base-lighter-color;
785 padding: 8px 10px 0 68px;
789 .status__display-name strong {
790 color: $ui-base-lighter-color;
794 .status__action-bar {
800 .status__action-bar-button {
806 .status__action-bar-dropdown {
811 // Dropdown style override for centering on the icon
815 .dropdown__content.dropdown__right {
816 left: calc(50% + 3px);
818 transform: translate(-50%, 0);
829 .detailed-status__action-bar-dropdown {
833 justify-content: center;
843 .dropdown__content.dropdown__left {
858 background: lighten($ui-base-color, 4%);
872 .detailed-status__meta {
874 color: $ui-base-lighter-color;
879 .detailed-status__action-bar {
880 background: lighten($ui-base-color, 4%);
881 border-top: 1px solid lighten($ui-base-color, 8%);
882 border-bottom: 1px solid lighten($ui-base-color, 8%);
888 .detailed-status__link {
890 text-decoration: none;
893 .detailed-status__favorites,
894 .detailed-status__reblogs {
895 display: inline-block;
901 .reply-indicator__content {
902 color: $ui-base-color;
906 color: lighten($ui-base-color, 20%);
912 border-bottom: 1px solid lighten($ui-base-color, 8%);
914 .account__display-name {
917 color: $ui-primary-color;
919 text-decoration: none;
928 .account__avatar-wrapper {
930 margin: 6px 16px 6px 6px;
934 @include avatar-radius();
939 display: inline-block;
940 vertical-align: middle;
945 .account__avatar-overlay {
947 @include avatar-size(48px);
950 @include avatar-radius();
951 @include avatar-size(36px);
955 @include avatar-radius();
956 @include avatar-size(24px);
965 .account__relationship {
971 .account__header__wrapper {
973 background: lighten($ui-base-color, 4%);
978 background-size: cover;
979 background-position: center;
983 background: rgba(lighten($ui-base-color, 4%), 0.9);
987 .account__header__content {
988 color: $ui-secondary-color;
991 .account__header__display-name {
992 color: $primary-text-color;
993 display: inline-block;
999 .account__header__username {
1000 color: $ui-highlight-color;
1004 margin-bottom: 10px;
1008 .account__disclaimer {
1010 border-top: 1px solid lighten($ui-base-color, 8%);
1011 color: $ui-base-lighter-color;
1020 text-decoration: underline;
1025 text-decoration: none;
1030 .account__header__content {
1031 color: $ui-primary-color;
1036 word-wrap: break-word;
1039 margin-bottom: 20px;
1048 text-decoration: underline;
1051 text-decoration: none;
1056 .account__header__display-name {
1063 .account__metadata {
1068 border-collapse: collapse;
1071 text-decoration: none;
1074 text-decoration: underline;
1079 border-top: 1px solid lighten($ui-base-color, 8%);
1084 vertical-align: middle;
1089 white-space: pre-wrap;
1090 text-overflow: ellipsis;
1095 color: $ui-primary-color;
1096 background: lighten($ui-base-color, 13%);
1097 font-variant: small-caps;
1101 color: $primary-text-color;
1107 color: $primary-text-color;
1108 background: $ui-base-color;
1111 color: $ui-highlight-color;
1116 .account__action-bar {
1117 border-top: 1px solid lighten($ui-base-color, 8%);
1118 border-bottom: 1px solid lighten($ui-base-color, 8%);
1125 .account__action-bar-dropdown {
1130 .dropdown__content.dropdown__right {
1144 .account__action-bar-links {
1150 .account__action-bar__tab {
1151 text-decoration: none;
1154 border-left: 1px solid lighten($ui-base-color, 8%);
1159 text-transform: uppercase;
1161 color: $ui-primary-color;
1168 color: $primary-text-color;
1172 color: $ui-base-lighter-color;
1176 .account__header__avatar {
1177 @include avatar-radius();
1178 @include avatar-size(90px);
1180 margin: 0 auto 10px;
1184 .account-authorize {
1187 .detailed-status__display-name {
1189 margin-bottom: 15px;
1194 .account-authorize__avatar {
1199 .status__display-name,
1200 .status__relative-time,
1201 .detailed-status__display-name,
1202 .detailed-status__datetime,
1203 .detailed-status__application,
1204 .account__display-name {
1205 text-decoration: none;
1208 .status__display-name,
1209 .account__display-name {
1211 color: $primary-text-color;
1215 .account__display-name strong {
1219 .detailed-status__application,
1220 .detailed-status__datetime {
1224 .detailed-status__display-name {
1225 color: $ui-secondary-color;
1228 margin-bottom: 15px;
1234 text-overflow: ellipsis;
1240 color: $primary-text-color;
1244 .detailed-status__display-avatar {
1258 .status__content a {
1259 color: $ui-base-lighter-color;
1262 .status__display-name strong {
1263 color: $ui-base-lighter-color;
1266 .status__avatar, .emojione {
1270 a.status__content__spoiler-link {
1271 background: $ui-base-lighter-color;
1272 color: lighten($ui-base-color, 4%);
1275 background: lighten($ui-base-color, 29%);
1276 text-decoration: none;
1281 .notification__message {
1282 padding: 8px 10px 0 68px;
1284 color: $ui-primary-color;
1289 color: $ui-highlight-color;
1293 .notification__favourite-icon-wrapper {
1295 margin: 0 10px 0 -58px;
1308 .notification__display-name {
1311 text-decoration: none;
1314 color: $primary-text-color;
1315 text-decoration: underline;
1332 text-overflow: ellipsis;
1334 white-space: nowrap;
1342 text-overflow: ellipsis;
1344 white-space: nowrap;
1349 text-decoration: underline;
1354 .status__relative-time,
1355 .detailed-status__datetime {
1357 text-decoration: underline;
1364 &.image-loader--loading {
1365 .image-loader__preview-canvas {
1370 .image-loader__img {
1377 background-image: none;
1380 &.image-loader--amorphous {
1383 .image-loader__preview-canvas {
1387 .image-loader__img {
1400 color: $ui-primary-color;
1403 color: $primary-text-color;
1407 text-decoration: none;
1411 pointer-events: none;
1416 .navigation-bar__profile {
1421 .navigation-bar__profile-account {
1426 .navigation-bar__profile-edit {
1428 text-decoration: none;
1432 display: inline-block;
1435 .dropdown__content {
1441 border-bottom: 1px solid darken($ui-secondary-color, 8%);
1442 margin: 5px 7px 6px;
1446 .dropdown--active .dropdown__content {
1456 background: $ui-secondary-color;
1459 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
1479 box-sizing: border-box;
1480 text-decoration: none;
1481 background: $ui-secondary-color;
1482 color: $ui-base-color;
1484 text-overflow: ellipsis;
1485 white-space: nowrap;
1492 background: $ui-highlight-color;
1493 color: $ui-secondary-color;
1499 vertical-align: middle;
1505 color: $ui-base-lighter-color;
1510 margin-bottom: 40px;
1516 margin-bottom: 20px;
1523 flex-direction: row;
1524 justify-content: flex-start;
1530 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1535 .react-swipeable-view-container .columns-area {
1536 height: calc(100% - 20px) !important;
1540 .react-swipeable-view-container {
1549 .react-swipeable-view-container > * {
1551 align-items: center;
1552 justify-content: center;
1559 box-sizing: border-box;
1561 flex-direction: column;
1571 background: $ui-base-color;
1578 flex-direction: column;
1581 background: darken($ui-base-color, 7%);
1586 box-sizing: border-box;
1588 flex-direction: column;
1601 padding: 15px 5px 13px;
1602 color: $ui-primary-color;
1603 text-decoration: none;
1606 border-bottom: 2px solid transparent;
1613 @supports(display: grid) { // hack to fix Chrome <57
1618 @include limited-single-column('screen and (max-width: 360px)', $parent: null) {
1628 :root { // Overrides .wide stylings for mobile view
1629 @include single-column('screen and (max-width: 1024px)', $parent: null) {
1640 flex-direction: column;
1644 .autosuggest-textarea__textarea {
1650 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1666 padding-right: 10px;
1670 .columns-area > div {
1680 box-sizing: border-box;
1687 background: lighten($ui-base-color, 13%);
1688 box-sizing: border-box;
1698 background: $ui-base-color;
1705 background: lighten($ui-base-color, 13%);
1713 background: lighten($ui-base-color, 8%);
1714 margin-bottom: 10px;
1716 flex-direction: row;
1719 transition: background 100ms ease-in;
1722 background: lighten($ui-base-color, 3%);
1723 transition: background 200ms ease-out;
1730 background: lighten($ui-base-color, 8%);
1741 color: $primary-text-color;
1742 text-decoration: none;
1746 border-bottom: 2px solid lighten($ui-base-color, 8%);
1747 transition: all 200ms linear;
1755 border-bottom: 2px solid $ui-highlight-color;
1756 color: $ui-highlight-color;
1762 @include multi-columns('screen and (min-width: 1025px)') {
1763 background: lighten($ui-base-color, 14%);
1764 transition: all 100ms linear;
1774 @include limited-single-column('screen and (max-width: 600px)', $parent: null) {
1782 @include multi-columns('screen and (min-width: 1025px)', $parent: null) {
1792 -webkit-overflow-scrolling: touch;
1793 @supports(display: grid) { // hack to fix Chrome <57
1797 &.optionally-scrollable {
1802 .column-back-button {
1803 background: lighten($ui-base-color, 4%);
1804 color: $ui-highlight-color;
1815 text-decoration: underline;
1819 .column-header__back-button {
1820 background: lighten($ui-base-color, 4%);
1822 font-family: inherit;
1823 color: $ui-highlight-color;
1831 text-decoration: underline;
1835 padding: 0 15px 0 0;
1839 .column-back-button__icon {
1840 display: inline-block;
1844 .column-back-button--slim {
1848 .column-back-button--slim-button {
1859 display: inline-block;
1862 background-color: transparent;
1866 -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
1867 -webkit-tap-highlight-color: transparent;
1870 .react-toggle-screenreader-only {
1872 clip: rect(0 0 0 0);
1881 .react-toggle--disabled {
1882 cursor: not-allowed;
1884 transition: opacity 0.25s;
1887 .react-toggle-track {
1891 border-radius: 30px;
1892 background-color: $ui-base-color;
1893 transition: all 0.2s ease;
1896 .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track {
1897 background-color: darken($ui-base-color, 10%);
1900 .react-toggle--checked .react-toggle-track {
1901 background-color: $ui-highlight-color;
1904 .react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
1905 background-color: lighten($ui-highlight-color, 10%);
1908 .react-toggle-track-check {
1915 margin-bottom: auto;
1919 transition: opacity 0.25s ease;
1922 .react-toggle--checked .react-toggle-track-check {
1924 transition: opacity 0.25s ease;
1927 .react-toggle-track-x {
1934 margin-bottom: auto;
1938 transition: opacity 0.25s ease;
1941 .react-toggle--checked .react-toggle-track-x {
1945 .react-toggle-thumb {
1946 transition: all 0.5s cubic-bezier(0.23, 1, 0.32, 1) 0ms;
1952 border: 1px solid $ui-base-color;
1954 background-color: darken($simple-background-color, 2%);
1955 box-sizing: border-box;
1956 transition: all 0.25s ease;
1959 .react-toggle--checked .react-toggle-thumb {
1961 border-color: $ui-highlight-color;
1965 background: lighten($ui-base-color, 8%);
1966 color: $primary-text-color;
1970 text-decoration: none;
1975 background: lighten($ui-base-color, 11%);
1979 .column-link__icon {
1980 display: inline-block;
1984 .column-subheading {
1985 background: $ui-base-color;
1986 color: $ui-base-lighter-color;
1990 text-transform: uppercase;
1994 .autosuggest-textarea,
1999 .autosuggest-textarea__textarea,
2000 .spoiler-input__input {
2002 box-sizing: border-box;
2005 color: $ui-base-color;
2006 background: $simple-background-color;
2008 font-family: inherit;
2018 @include limited-single-column('screen and (max-width: 600px)') {
2023 .spoiler-input__input {
2027 .autosuggest-textarea__textarea {
2029 border-radius: 4px 4px 0 0;
2031 padding-right: 10px + 22px;
2034 @include limited-single-column('screen and (max-width: 600px)') {
2035 height: 100px !important; // prevent auto-resize textarea
2040 .autosuggest-textarea__suggestions {
2048 box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
2049 background: $ui-secondary-color;
2050 color: $ui-base-color;
2053 &.autosuggest-textarea__suggestions--visible {
2058 .autosuggest-textarea__suggestions__item {
2063 background: darken($ui-secondary-color, 10%);
2067 background: $ui-highlight-color;
2068 color: $base-border-color;
2072 .autosuggest-account {
2076 .autosuggest-account-icon {
2081 .autosuggest-status {
2083 white-space: nowrap;
2084 text-overflow: ellipsis;
2091 .character-counter__wrapper {
2093 margin: 0 16px 0 8px;
2097 .character-counter {
2102 .character-counter--over {
2103 color: $warning-red;
2106 .getting-started__wrapper {
2111 .getting-started__footer {
2113 flex-direction: column;
2117 box-sizing: border-box;
2118 padding-bottom: 235px;
2119 background: url('../images/mastodon-getting-started.png') no-repeat 0 100%;
2123 color: $ui-secondary-color;
2127 color: $ui-base-lighter-color;
2132 color: $ui-primary-color;
2133 background: transparent;
2135 border-bottom: 2px solid $ui-primary-color;
2136 box-sizing: border-box;
2138 font-family: inherit;
2139 margin-bottom: 10px;
2145 color: $primary-text-color;
2146 border-bottom-color: $ui-highlight-color;
2149 @include limited-single-column('screen and (max-width: 600px)') {
2154 color: $ui-base-color;
2155 border-bottom: 2px solid lighten($ui-base-color, 27%);
2159 color: $ui-base-color;
2160 border-bottom-color: $ui-highlight-color;
2167 button.icon-button i.fa-retweet {
2168 background-position: 0 0;
2170 transition: background-position 0.9s steps(10);
2171 transition-duration: 0s;
2172 vertical-align: middle;
2176 display: none !important;
2180 button.icon-button.active i.fa-retweet {
2181 transition-duration: 0.9s;
2182 background-position: 0 100%;
2189 border: 1px solid lighten($ui-base-color, 8%);
2191 color: $ui-base-lighter-color;
2193 text-decoration: none;
2197 background: lighten($ui-base-color, 8%);
2203 .status-card-photo {
2213 .status-card-photo {
2215 text-decoration: none;
2225 .status-card-video {
2229 padding-top: 56.25%;
2245 .status-card__title {
2249 color: $ui-primary-color;
2251 text-overflow: ellipsis;
2252 white-space: nowrap;
2255 .status-card__content {
2258 padding: 14px 14px 14px 8px;
2261 .status-card__description {
2262 color: $ui-primary-color;
2265 .status-card__host {
2271 .status-card__image {
2273 background: lighten($ui-base-color, 8%);
2276 .status-card.horizontal {
2279 .status-card__image {
2283 .status-card__image-image {
2284 border-radius: 4px 4px 0 0;
2288 .status-card__image-image {
2289 border-radius: 4px 0 0 4px;
2298 color: $ui-base-lighter-color;
2299 background-color: transparent;
2303 line-height: inherit;
2310 background: lighten($ui-base-color, 2%);
2314 .missing-indicator {
2318 color: lighten($ui-base-color, 16%);
2319 background: $ui-base-color;
2323 align-items: center;
2324 justify-content: center;
2327 background: url('../images/mastodon-not-found.png') no-repeat center -50px;
2333 .column-header__wrapper {
2347 pointer-events: none;
2350 background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
2358 background: lighten($ui-base-color, 4%);
2366 box-shadow: 0 1px 0 rgba($ui-highlight-color, 0.3);
2368 .column-header__icon {
2369 color: $ui-highlight-color;
2370 text-shadow: 0 0 10px rgba($ui-highlight-color, 0.4);
2380 .column-header__buttons {
2389 .column-header__button {
2390 background: lighten($ui-base-color, 4%);
2392 color: $ui-primary-color;
2398 color: lighten($ui-primary-color, 7%);
2402 color: $primary-text-color;
2403 background: lighten($ui-base-color, 8%);
2406 color: $primary-text-color;
2407 background: lighten($ui-base-color, 8%);
2411 // glitch - added focus ring for keyboard navigation
2413 text-shadow: 0 0 4px darken($ui-highlight-color, 5%);
2417 .scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {
2418 border-top: 1px solid $ui-base-color;
2421 .notification__dismiss-overlay {
2427 padding-left: 15px; // space for the box shadow to be visible
2430 align-items: center;
2431 justify-content: flex-end;
2437 width: $dismiss-overlay-width;
2438 align-self: stretch;
2440 flex-direction: column;
2441 align-items: center;
2442 justify-content: center;
2443 background: lighten($ui-base-color, 8%);
2444 border-left: 1px solid lighten($ui-base-color, 20%);
2445 box-shadow: 0 0 5px black;
2446 border-bottom: 1px solid $ui-base-color;
2450 border: 2px solid $ui-primary-color;
2455 color: $ui-primary-color;
2456 text-shadow: 0 0 5px black;
2458 justify-content: center;
2459 align-items: center;
2463 outline: 0 !important;
2466 box-shadow: 0 0 1px 1px $ui-highlight-color;
2471 .column-header__notif-cleaning-buttons {
2473 align-items: stretch;
2474 justify-content: space-around;
2477 @extend .column-header__button;
2478 background: transparent;
2481 white-space: pre-wrap;
2489 // The notifs drawer with no padding to have more space for the buttons
2490 .column-header__collapsible-inner.nopad-drawer {
2494 .column-header__collapsible {
2498 color: $ui-primary-color;
2499 transition: max-height 150ms ease-in-out, opacity 300ms linear;
2511 // notif cleaning drawer
2521 .column-header__collapsible-inner {
2522 background: lighten($ui-base-color, 8%);
2526 .column-header__setting-btn {
2528 color: lighten($ui-primary-color, 4%);
2529 text-decoration: underline;
2533 .column-header__setting-arrows {
2536 .column-header__setting-btn {
2546 display: inline-block;
2548 font-family: inherit;
2552 background: transparent;
2556 .column-header__icon {
2557 display: inline-block;
2561 .loading-indicator {
2562 color: lighten($ui-base-color, 26%);
2565 text-transform: uppercase;
2570 transform: translate(-50%, -50%);
2576 transform: translateX(-50%);
2577 margin: 82px 0 0 50%;
2578 white-space: nowrap;
2579 animation: loader-label 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2583 .loading-indicator__figure {
2587 transform: translate(-50%, -50%);
2590 box-sizing: border-box;
2591 border: 0 solid lighten($ui-base-color, 26%);
2593 animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
2596 @keyframes loader-figure {
2600 background-color: lighten($ui-base-color, 26%);
2604 background-color: lighten($ui-base-color, 26%);
2610 background-color: transparent;
2620 background-color: transparent;
2624 @keyframes loader-label {
2625 0% { opacity: 0.25; }
2627 100% { opacity: 0.25; }
2630 .video-error-cover {
2631 align-items: center;
2632 background: $base-overlay-background;
2633 color: $primary-text-color;
2636 flex-direction: column;
2638 justify-content: center;
2646 background: $base-overlay-background;
2647 color: $primary-text-color;
2651 justify-content: center;
2656 flex-direction: column;
2658 .status__content > & {
2659 margin-top: 15px; // Add margin when used bare for NSFW video player
2662 @include fullwidth-gallery;
2665 .media-spoiler__warning {
2670 .media-spoiler__trigger {
2680 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
2684 &.spoiler-button--visible {
2689 .modal-container--preloader {
2690 background: lighten($ui-base-color, 8%);
2694 background: lighten($ui-base-color, 4%);
2695 border-top: 1px solid lighten($ui-base-color, 8%);
2696 border-bottom: 1px solid lighten($ui-base-color, 8%);
2698 flex-direction: row;
2702 .account--panel__button,
2703 .detailed-status__button {
2708 .column-settings__outer {
2709 background: lighten($ui-base-color, 8%);
2713 .column-settings__section {
2714 color: $ui-primary-color;
2718 margin-bottom: 10px;
2721 .column-settings__row {
2723 margin-bottom: 15px;
2727 .modal-container__nav {
2728 align-items: center;
2729 background: rgba($base-overlay-background, 0.5);
2730 box-sizing: border-box;
2732 color: $primary-text-color;
2742 .modal-container__nav--left {
2746 .modal-container__nav--right {
2750 .account--follows-info {
2751 color: $primary-text-color;
2756 display: inline-block;
2757 vertical-align: top;
2758 background-color: rgba($base-overlay-background, 0.4);
2759 text-transform: uppercase;
2766 .account--action-button {
2777 .setting-toggle__label,
2778 .setting-meta__label {
2779 color: $ui-primary-color;
2780 display: inline-block;
2781 margin-bottom: 14px;
2783 vertical-align: middle;
2786 .setting-meta__label {
2787 color: $ui-primary-color;
2791 .empty-column-indicator,
2793 color: lighten($ui-base-color, 20%);
2794 background: $ui-base-color;
2802 align-items: center;
2803 justify-content: center;
2804 @supports(display: grid) { // hack to fix Chrome <57
2809 color: $ui-highlight-color;
2810 text-decoration: none;
2813 text-decoration: underline;
2819 flex-direction: column;
2833 animation: pulse 1s ease-in-out infinite;
2834 animation-direction: alternate;
2840 background: $simple-background-color;
2841 box-sizing: border-box;
2845 box-shadow: 0 0 8px rgba($base-shadow-color, 0.2);
2853 .emoji-dialog-header {
2863 display: inline-block;
2864 box-sizing: border-box;
2867 border-bottom: 2px solid transparent;
2878 filter: grayscale(100%);
2884 filter: grayscale(0);
2889 border-bottom-color: $ui-highlight-color;
2893 filter: grayscale(0);
2900 box-sizing: border-box;
2905 display: inline-block;
2911 .emoji-category-header {
2912 box-sizing: border-box;
2914 padding: 10px 8px 10px 16px;
2918 display: table-cell;
2919 vertical-align: middle;
2923 .emoji-category-title {
2925 text-transform: uppercase;
2927 color: darken($ui-secondary-color, 18%);
2931 .emoji-category-heading-decoration {
2939 vertical-align: middle;
2940 white-space: nowrap;
2944 display: inline-block;
2953 display: inline-block;
2954 border-radius: 10px;
2966 border-radius: 10px;
2967 border: 2px solid $base-border-color;
2974 .emoji-search-wrapper {
2976 border-bottom: 1px solid lighten($ui-secondary-color, 4%);
2983 font-family: inherit;
2986 background: rgba($ui-secondary-color, 0.3);
2987 color: darken($ui-secondary-color, 18%);
2988 border: 1px solid $ui-secondary-color;
2992 .emoji-categories-wrapper {
3000 .emoji-search-wrapper + .emoji-categories-wrapper {
3007 transition: transform 60ms ease-in-out;
3011 background: lighten($ui-secondary-color, 3%);
3015 transform: translateZ(0) scale(1.2);
3032 align-items: center;
3033 background: rgba($base-overlay-background, 0.8);
3036 justify-content: center;
3046 pointer-events: none;
3050 .upload-area__drop {
3054 box-sizing: border-box;
3059 .upload-area__background {
3067 background: $ui-base-color;
3068 box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
3071 .upload-area__content {
3074 align-items: center;
3075 justify-content: center;
3076 color: $ui-secondary-color;
3079 border: 2px dashed $ui-base-lighter-color;
3085 color: $ui-base-lighter-color;
3096 text-transform: uppercase;
3102 .upload-progess__message {
3106 .upload-progress__backdrop {
3110 background: $ui-base-lighter-color;
3115 .upload-progress__tracker {
3120 background: $ui-highlight-color;
3135 outline: 0 !important;
3139 filter: grayscale(100%);
3158 .dropdown--active .emoji-button img {
3167 .privacy-dropdown__dropdown {
3173 background: $simple-background-color;
3174 border-radius: 0 4px 4px;
3179 .privacy-dropdown__option {
3180 color: $ui-base-color;
3187 background: $ui-highlight-color;
3188 color: $primary-text-color;
3190 .privacy-dropdown__option__content {
3191 color: $primary-text-color;
3194 color: $primary-text-color;
3200 background: lighten($ui-highlight-color, 4%);
3204 .privacy-dropdown__option__icon {
3206 align-items: center;
3207 justify-content: center;
3211 .privacy-dropdown__option__content {
3213 color: darken($ui-primary-color, 24%);
3218 color: $ui-base-color;
3222 .privacy-dropdown.active {
3223 .privacy-dropdown__value {
3224 background: $simple-background-color;
3225 border-radius: 4px 4px 0 0;
3226 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
3229 .privacy-dropdown__dropdown {
3231 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3235 .advanced-options-dropdown {
3239 .advanced-options-dropdown__dropdown {
3245 background: $simple-background-color;
3246 border-radius: 0 4px 4px;
3251 .advanced-options-dropdown__option {
3252 color: $ui-base-color;
3259 background: $ui-highlight-color;
3260 color: $primary-text-color;
3262 .advanced-options-dropdown__option__content {
3263 color: $primary-text-color;
3266 color: $primary-text-color;
3272 background: lighten($ui-highlight-color, 4%);
3276 .advanced-options-dropdown__option__toggle {
3278 align-items: center;
3279 justify-content: center;
3283 .advanced-options-dropdown__option__content {
3285 color: darken($ui-primary-color, 24%);
3290 color: $ui-base-color;
3294 .advanced-options-dropdown.open {
3295 .advanced-options-dropdown__value {
3296 background: $simple-background-color;
3297 border-radius: 4px 4px 0 0;
3298 box-shadow: 0 -4px 4px rgba($base-shadow-color, 0.1);
3301 .advanced-options-dropdown__dropdown {
3303 box-shadow: 2px 4px 6px rgba($base-shadow-color, 0.1);
3310 margin-bottom: 10px;
3314 padding-right: 30px;
3315 color: $ui-secondary-color;
3317 box-sizing: border-box;
3322 padding-right: 30px;
3323 font-family: inherit;
3324 background: $ui-base-color;
3325 color: $ui-primary-color;
3329 &::-moz-focus-inner {
3333 &::-moz-focus-inner,
3336 outline: 0 !important;
3340 background: lighten($ui-base-color, 4%);
3343 @include limited-single-column('screen and (max-width: 600px)') {
3354 display: inline-block;
3356 transition: all 100ms linear;
3360 color: $ui-secondary-color;
3362 pointer-events: none;
3365 pointer-events: auto;
3371 transform: translateZ(0) rotate(90deg);
3374 pointer-events: none;
3375 transform: translateZ(0) rotate(0deg);
3381 transform: translateZ(0) rotate(0deg);
3385 transform: translateZ(0) rotate(90deg);
3389 color: $primary-text-color;
3394 .search-results__header {
3395 color: $ui-base-lighter-color;
3396 background: lighten($ui-base-color, 2%);
3397 border-bottom: 1px solid darken($ui-base-color, 4%);
3403 .search-results__section {
3404 background: $ui-base-color;
3407 .search-results__hashtag {
3410 color: $ui-secondary-color;
3411 text-decoration: none;
3416 color: lighten($ui-secondary-color, 4%);
3417 text-decoration: underline;
3421 .modal-root__overlay {
3429 background: rgba($base-overlay-background, 0.7);
3430 transform: translateZ(0);
3433 .modal-root__container {
3440 flex-direction: column;
3441 align-items: center;
3442 justify-content: center;
3443 align-content: space-around;
3446 pointer-events: none;
3450 .modal-root__modal {
3451 pointer-events: auto;
3461 .extended-video-player,
3472 .extended-video-player,
3482 background: url('../images/void.png') repeat;
3483 object-fit: contain;
3486 .react-swipeable-view-container {
3491 .media-modal__content {
3492 background: $base-overlay-background;
3495 .media-modal__close {
3505 background: $ui-secondary-color;
3506 color: $ui-base-color;
3510 flex-direction: column;
3513 .onboarding-modal__pager {
3519 .react-swipeable-view-container > div {
3522 box-sizing: border-box;
3525 flex-direction: column;
3526 align-items: center;
3527 justify-content: center;
3533 .error-modal__body {
3546 box-sizing: border-box;
3549 flex-direction: column;
3550 align-items: center;
3551 justify-content: center;
3558 .error-modal__body {
3560 flex-direction: column;
3561 justify-content: center;
3562 align-items: center;
3566 @media screen and (max-width: 550px) {
3573 .onboarding-modal__pager {
3582 .onboarding-modal__paginator,
3583 .error-modal__footer {
3585 background: darken($ui-secondary-color, 8%);
3593 .onboarding-modal__nav,
3595 color: darken($ui-secondary-color, 34%);
3596 background-color: transparent;
3601 line-height: inherit;
3607 color: darken($ui-secondary-color, 38%);
3610 &.onboarding-modal__done,
3611 &.onboarding-modal__next {
3612 color: $ui-highlight-color;
3617 .error-modal__footer {
3618 justify-content: center;
3621 .onboarding-modal__dots {
3624 align-items: center;
3625 justify-content: center;
3628 .onboarding-modal__dot {
3631 border-radius: 14px;
3632 background: darken($ui-secondary-color, 16%);
3637 background: darken($ui-secondary-color, 18%);
3642 background: darken($ui-secondary-color, 24%);
3646 .onboarding-modal__page__wrapper {
3647 pointer-events: none;
3649 &.onboarding-modal__page__wrapper--active {
3650 pointer-events: auto;
3654 .onboarding-modal__page {
3661 color: $ui-base-color;
3662 margin-bottom: 20px;
3666 color: $ui-highlight-color;
3671 color: lighten($ui-highlight-color, 4%);
3677 color: lighten($ui-base-color, 8%);
3679 margin-bottom: 10px;
3687 background: $ui-base-color;
3688 color: $ui-secondary-color;
3696 .onboarding-modal__page-one {
3698 align-items: center;
3701 .onboarding-modal__page-one__elephant-friend {
3702 background: url('../images/elephant-friend-1.png') no-repeat center center / contain;
3708 @media screen and (max-width: 400px) {
3709 .onboarding-modal__page-one {
3710 flex-direction: column;
3711 align-items: normal;
3714 .onboarding-modal__page-one__elephant-friend {
3722 .onboarding-modal__page-two,
3723 .onboarding-modal__page-three,
3724 .onboarding-modal__page-four,
3725 .onboarding-modal__page-five {
3731 background: darken($ui-base-color, 8%);
3732 color: $ui-secondary-color;
3733 margin-bottom: 20px;
3738 box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.3);
3740 .onboarding-modal__image {
3742 margin-bottom: 10px;
3746 pointer-events: none;
3752 .onboarding-modal__page-four__columns {
3755 margin-bottom: 20px;
3780 color: $primary-text-color;
3784 @media screen and (max-width: 320px) and (max-height: 600px) {
3785 .onboarding-modal__page p {
3790 .onboarding-modal__page-two .figure,
3791 .onboarding-modal__page-three .figure,
3792 .onboarding-modal__page-four .figure,
3793 .onboarding-modal__page-five .figure {
3795 margin-bottom: 10px;
3798 .onboarding-modal__page-four__columns .row {
3799 margin-bottom: 10px;
3802 .onboarding-modal__page-four__columns .column-header {
3808 .onboarding-modal__image {
3815 margin-bottom: 20px;
3819 display: inline-block;
3826 .confirmation-modal,
3830 background: lighten($ui-secondary-color, 8%);
3831 color: $ui-base-color;
3837 flex-direction: column;
3839 .status__display-name {
3847 border-bottom-color: $ui-secondary-color;
3849 padding-bottom: 10px;
3853 .boost-modal__container {
3863 .boost-modal__action-bar,
3864 .confirmation-modal__action-bar,
3865 .mute-modal__action-bar,
3866 .report-modal__action-bar {
3868 justify-content: space-between;
3869 background: $ui-secondary-color;
3876 color: lighten($ui-base-color, 33%);
3877 padding-right: 10px;
3885 .boost-modal__status-header {
3889 .boost-modal__status-time {
3894 .confirmation-modal {
3897 @media screen and (min-width: 480px) {
3902 .report-modal__statuses,
3903 .report-modal__comment {
3907 .report-modal__statuses {
3914 .report-modal__comment {
3939 color: $ui-base-color;
3942 align-items: center;
3943 text-decoration: none;
3948 background: $ui-highlight-color;
3949 color: $primary-text-color;
3953 button:first-child {
3961 .confirmation-modal__action-bar,
3962 .mute-modal__action-bar {
3963 .confirmation-modal__cancel-button,
3964 .mute-modal__cancel-button {
3965 background-color: transparent;
3966 color: darken($ui-secondary-color, 34%);
3973 color: darken($ui-secondary-color, 38%);
3978 .confirmation-modal__container,
3979 .mute-modal__container,
3980 .report-modal__target {
3991 background-color: $ui-highlight-color;
3998 .media-gallery__gifv__label {
4001 color: $primary-text-color;
4002 background: rgba($base-overlay-background, 0.5);
4010 pointer-events: none;
4012 transition: opacity 0.1s ease;
4015 .media-gallery__gifv {
4017 .media-gallery__gifv__label {
4023 .media-gallery__gifv__label {
4032 border: 1px solid lighten($ui-base-color, 8%);
4038 .attachment-list__icon {
4040 color: $ui-base-lighter-color;
4043 border-right: 1px solid lighten($ui-base-color, 8%);
4045 flex-direction: column;
4046 align-items: center;
4047 justify-content: center;
4055 .attachment-list__list {
4060 flex-direction: column;
4061 justify-content: center;
4069 text-decoration: none;
4070 color: $ui-base-lighter-color;
4074 text-decoration: underline;
4081 box-sizing: border-box;
4085 background: $base-shadow-color;
4088 .detailed-status & {
4090 width: calc(100% + 22px);
4093 @include fullwidth-gallery;
4096 .media-gallery__item {
4098 box-sizing: border-box;
4104 .media-gallery__item-thumbnail {
4106 text-decoration: none;
4113 object-fit: contain;
4122 .media-gallery__gifv {
4128 justify-content: center;
4131 .media-gallery__item-gifv-thumbnail {
4136 object-fit: contain;
4144 .media-gallery__item-thumbnail-label {
4145 clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
4146 clip: rect(1px, 1px, 1px, 1px);
4150 /* End Media Gallery */
4152 /* Status Video Player */
4153 .status__video-player {
4155 align-items: center;
4156 background: $base-shadow-color;
4157 box-sizing: border-box;
4158 cursor: default; /* May not be needed */
4164 @include fullwidth-gallery;
4167 .status__video-player-video {
4178 .status__video-player-expand,
4179 .status__video-player-mute {
4180 color: $primary-text-color;
4184 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4187 .status__video-player-spoiler {
4189 color: $primary-text-color;
4192 text-shadow: 0 1px 1px $base-shadow-color, 1px 0 1px $base-shadow-color;
4196 &.status__video-player-spoiler--visible {
4201 .status__video-player-expand {
4206 .status__video-player-mute {
4211 .media-spoiler-video {
4212 background-size: cover;
4213 background-repeat: no-repeat;
4214 background-position: center;
4220 @include fullwidth-gallery;
4226 .media-spoiler-video-play-icon {
4227 border-radius: 100px;
4228 color: rgba($primary-text-color, 0.8);
4234 transform: translate(-50%, -50%);
4236 /* End Video Player */
4238 .account-gallery__container {
4243 .account-gallery__item {
4253 background-color: $base-overlay-background;
4254 background-size: cover;
4255 background-position: center;
4260 .account-section-headline {
4261 color: $ui-base-lighter-color;
4262 background: lighten($ui-base-color, 2%);
4263 border-bottom: 1px solid lighten($ui-base-color, 4%);
4279 border-style: solid;
4280 border-width: 0 10px 10px;
4281 border-color: transparent transparent lighten($ui-base-color, 4%);
4286 border-color: transparent transparent $ui-base-color;
4290 ::-webkit-scrollbar-thumb {
4300 animation: flicker 4s infinite;
4306 color: $ui-secondary-color;
4310 color: $ui-highlight-color;
4311 text-decoration: underline;
4314 text-decoration: none;
4320 @keyframes flicker {
4322 30% { opacity: 0.75; }
4323 100% { opacity: 1; }
4326 @media screen and (max-width: 1024px) and (max-height: 400px) {
4332 will-change: margin-top;
4333 transition: margin-top $duration $delay;
4337 will-change: padding-bottom;
4338 transition: padding-bottom $duration $delay;
4343 will-change: margin-top, margin-left, width;
4344 transition: margin-top $duration $delay, margin-left $duration ($duration + $delay);
4347 & > .navigation-bar__profile-edit {
4348 will-change: margin-top;
4349 transition: margin-top $duration $delay;
4353 will-change: opacity;
4354 transition: opacity $duration $delay;
4372 .navigation-bar__profile {
4376 .navigation-bar__profile-edit {
4382 pointer-events: auto;
4388 // fixes for the navbar-under mode
4389 .is-composing.navbar-under {
4392 margin-bottom: -20px;
4400 // more fixes for the navbar-under mode
4401 @mixin fix-margins-for-navbar-under {
4403 margin-top: 0 !important;
4404 margin-bottom: -6px !important;
4408 .single-column.navbar-under {
4409 @include fix-margins-for-navbar-under;
4412 .auto-columns.navbar-under {
4413 @media screen and (max-width: 360px) {
4414 @include fix-margins-for-navbar-under;
4418 .auto-columns.navbar-under .react-swipeable-view-container .columns-area,
4419 .single-column.navbar-under .react-swipeable-view-container .columns-area {
4420 @media screen and (max-width: 360px) {
4421 height: 100% !important;
4436 .embed-modal__container {
4440 margin-bottom: 15px;
4443 .embed-modal__html {
4444 color: $ui-secondary-color;
4446 box-sizing: border-box;
4451 font-family: 'mastodon-font-monospace', monospace;
4452 background: $ui-base-color;
4453 color: $ui-primary-color;
4456 margin-bottom: 15px;
4458 &::-moz-focus-inner {
4462 &::-moz-focus-inner,
4465 outline: 0 !important;
4469 background: lighten($ui-base-color, 4%);
4472 @media screen and (max-width: 600px) {
4477 .embed-modal__iframe {