- {!banner &&
}
{banner &&
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index be7209d04..4befe7794 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -89,7 +89,6 @@
"announcement.announcement": "Announcement",
"attachments_list.unprocessed": "(unprocessed)",
"audio.hide": "Hide audio",
- "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
@@ -146,22 +145,22 @@
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What's on your mind?",
- "compose_form.poll.add_option": "Add a choice",
+ "compose_form.poll.add_option": "Add option",
"compose_form.poll.duration": "Poll duration",
- "compose_form.poll.option_placeholder": "Choice {number}",
- "compose_form.poll.remove_option": "Remove this choice",
+ "compose_form.poll.multiple": "Multiple choice",
+ "compose_form.poll.option_placeholder": "Option {number}",
+ "compose_form.poll.remove_option": "Remove this option",
+ "compose_form.poll.single": "Pick one",
"compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
"compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
- "compose_form.publish": "Publish",
+ "compose_form.poll.type": "Style",
+ "compose_form.publish": "Post",
"compose_form.publish_form": "New post",
- "compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Save changes",
- "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
- "compose_form.sensitive.marked": "{count, plural, one {Media is marked as sensitive} other {Media is marked as sensitive}}",
- "compose_form.sensitive.unmarked": "{count, plural, one {Media is not marked as sensitive} other {Media is not marked as sensitive}}",
+ "compose_form.reply": "Reply",
+ "compose_form.save_changes": "Update",
"compose_form.spoiler.marked": "Remove content warning",
"compose_form.spoiler.unmarked": "Add content warning",
- "compose_form.spoiler_placeholder": "Write your warning here",
+ "compose_form.spoiler_placeholder": "Content warning (optional)",
"confirmation_modal.cancel": "Cancel",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Block",
@@ -408,7 +407,6 @@
"navigation_bar.direct": "Private mentions",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Blocked domains",
- "navigation_bar.edit_profile": "Edit profile",
"navigation_bar.explore": "Explore",
"navigation_bar.favourites": "Favorites",
"navigation_bar.filters": "Muted words",
@@ -526,14 +524,15 @@
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Change post privacy",
- "privacy.direct.long": "Visible for mentioned users only",
- "privacy.direct.short": "Mentioned people only",
- "privacy.private.long": "Visible for followers only",
- "privacy.private.short": "Followers only",
- "privacy.public.long": "Visible for all",
+ "privacy.direct.long": "Everyone mentioned in the post",
+ "privacy.direct.short": "Specific people",
+ "privacy.private.long": "Only your followers",
+ "privacy.private.short": "Followers",
+ "privacy.public.long": "Anyone on and off Mastodon",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
- "privacy.unlisted.short": "Unlisted",
+ "privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.",
+ "privacy.unlisted.long": "Fewer algorithmic fanfares",
+ "privacy.unlisted.short": "Quiet public",
"privacy_policy.last_updated": "Last updated {date}",
"privacy_policy.title": "Privacy Policy",
"recommended": "Recommended",
@@ -551,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "today",
+ "reply_indicator.attachments": "{count, plural, one {# attachment} other {# attachments}}",
"reply_indicator.cancel": "Cancel",
+ "reply_indicator.poll": "Poll",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.legal": "Legal",
@@ -715,10 +716,8 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people who are deaf or hard of hearing",
"upload_form.description": "Describe for people who are blind or have low vision",
- "upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
- "upload_form.undo": "Delete",
"upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision",
"upload_modal.analyzing_picture": "Analyzing pictureโฆ",
"upload_modal.apply": "Apply",
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index e6b2509f6..f57bbb77b 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -40,9 +40,7 @@ import {
COMPOSE_RESET,
COMPOSE_POLL_ADD,
COMPOSE_POLL_REMOVE,
- COMPOSE_POLL_OPTION_ADD,
COMPOSE_POLL_OPTION_CHANGE,
- COMPOSE_POLL_OPTION_REMOVE,
COMPOSE_POLL_SETTINGS_CHANGE,
INIT_MEDIA_EDIT_MODAL,
COMPOSE_CHANGE_MEDIA_DESCRIPTION,
@@ -282,6 +280,18 @@ const updateSuggestionTags = (state, token) => {
});
};
+const updatePoll = (state, index, value) => state.updateIn(['poll', 'options'], options => {
+ const tmp = options.set(index, value).filterNot(x => x.trim().length === 0);
+
+ if (tmp.size === 0) {
+ return tmp.push('').push('');
+ } else if (tmp.size < 4) {
+ return tmp.push('');
+ }
+
+ return tmp;
+});
+
export default function compose(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
@@ -518,12 +528,8 @@ export default function compose(state = initialState, action) {
return state.set('poll', initialPoll);
case COMPOSE_POLL_REMOVE:
return state.set('poll', null);
- case COMPOSE_POLL_OPTION_ADD:
- return state.updateIn(['poll', 'options'], options => options.push(action.title));
case COMPOSE_POLL_OPTION_CHANGE:
- return state.setIn(['poll', 'options', action.index], action.title);
- case COMPOSE_POLL_OPTION_REMOVE:
- return state.updateIn(['poll', 'options'], options => options.delete(action.index));
+ return updatePoll(state, action.index, action.title);
case COMPOSE_POLL_SETTINGS_CHANGE:
return state.update('poll', poll => poll.set('expires_in', action.expiresIn).set('multiple', action.isMultiple));
case COMPOSE_LANGUAGE_CHANGE:
diff --git a/app/javascript/material-icons/400-24px/bar_chart_4_bars-fill.svg b/app/javascript/material-icons/400-24px/bar_chart_4_bars-fill.svg
new file mode 100644
index 000000000..63215a3e0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bar_chart_4_bars-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/bar_chart_4_bars.svg b/app/javascript/material-icons/400-24px/bar_chart_4_bars.svg
new file mode 100644
index 000000000..63215a3e0
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/bar_chart_4_bars.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/mood-fill.svg b/app/javascript/material-icons/400-24px/mood-fill.svg
new file mode 100644
index 000000000..9480d0fb9
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/mood-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/mood.svg b/app/javascript/material-icons/400-24px/mood.svg
new file mode 100644
index 000000000..46cafa768
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/mood.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/photo_library-fill.svg b/app/javascript/material-icons/400-24px/photo_library-fill.svg
new file mode 100644
index 000000000..e68aec832
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/photo_library-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/photo_library.svg b/app/javascript/material-icons/400-24px/photo_library.svg
new file mode 100644
index 000000000..3b22224b8
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/photo_library.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/quiet_time-fill.svg b/app/javascript/material-icons/400-24px/quiet_time-fill.svg
new file mode 100644
index 000000000..aed5740db
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/quiet_time-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/quiet_time.svg b/app/javascript/material-icons/400-24px/quiet_time.svg
new file mode 100644
index 000000000..552da6658
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/quiet_time.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/translate-fill.svg b/app/javascript/material-icons/400-24px/translate-fill.svg
new file mode 100644
index 000000000..ecaaf37f1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/translate-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/translate.svg b/app/javascript/material-icons/400-24px/translate.svg
new file mode 100644
index 000000000..ecaaf37f1
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/translate.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/warning-fill.svg b/app/javascript/material-icons/400-24px/warning-fill.svg
new file mode 100644
index 000000000..c3727d3f5
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/warning-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/warning.svg b/app/javascript/material-icons/400-24px/warning.svg
new file mode 100644
index 000000000..238299e60
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/warning.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/packs/share.jsx b/app/javascript/packs/share.jsx
index 0f3b84549..7b5723091 100644
--- a/app/javascript/packs/share.jsx
+++ b/app/javascript/packs/share.jsx
@@ -13,10 +13,12 @@ function loaded() {
if (mountNode) {
const attr = mountNode.getAttribute('data-props');
- if(!attr) return;
+
+ if (!attr) return;
const props = JSON.parse(attr);
const root = createRoot(mountNode);
+
root.render(
);
}
}
diff --git a/app/javascript/styles/contrast/diff.scss b/app/javascript/styles/contrast/diff.scss
index 1c2386f02..ae607f484 100644
--- a/app/javascript/styles/contrast/diff.scss
+++ b/app/javascript/styles/contrast/diff.scss
@@ -1,20 +1,7 @@
-.compose-form {
- .compose-form__modifiers {
- .compose-form__upload {
- &-description {
- input {
- &::placeholder {
- opacity: 1;
- }
- }
- }
- }
- }
-}
-
.status__content a,
-.link-footer a,
.reply-indicator__content a,
+.edit-indicator__content a,
+.link-footer a,
.status__content__read-more-button,
.status__content__translate-button {
text-decoration: underline;
@@ -42,7 +29,9 @@
}
}
-.status__content a {
+.status__content a,
+.reply-indicator__content a,
+.edit-indicator__content a {
color: $highlight-text-color;
}
@@ -50,24 +39,10 @@
color: $darker-text-color;
}
-.compose-form__poll-wrapper .button.button-secondary,
-.compose-form .autosuggest-textarea__textarea::placeholder,
-.compose-form .spoiler-input__input::placeholder,
-.report-dialog-modal__textarea::placeholder,
-.language-dropdown__dropdown__results__item__common-name,
-.compose-form .icon-button {
+.report-dialog-modal__textarea::placeholder {
color: $inverted-text-color;
}
-.text-icon-button.active {
- color: $ui-highlight-color;
-}
-
-.language-dropdown__dropdown__results__item.active {
- background: $ui-highlight-color;
- font-weight: 500;
-}
-
.link-button:disabled {
cursor: not-allowed;
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 3a27c974a..3c75854d9 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -145,10 +145,6 @@ html {
}
}
-.compose-form__autosuggest-wrapper,
-.poll__option input[type='text'],
-.compose-form .spoiler-input__input,
-.compose-form__poll-wrapper select,
.search__input,
.setting-text,
.report-dialog-modal__textarea,
@@ -172,28 +168,11 @@ html {
border-bottom: 0;
}
-.compose-form__poll-wrapper select {
- background: $simple-background-color
- url("data:image/svg+xml;utf8,
")
- no-repeat right 8px center / auto 16px;
-}
-
-.compose-form__poll-wrapper,
-.compose-form__poll-wrapper .poll__footer {
- border-top-color: lighten($ui-base-color, 8%);
-}
-
.notification__filter-bar {
border: 1px solid lighten($ui-base-color, 8%);
border-top: 0;
}
-.compose-form .compose-form__buttons-wrapper {
- background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 8%);
- border-top: 0;
-}
-
.drawer__header,
.drawer__inner {
background: $white;
@@ -206,52 +185,6 @@ html {
no-repeat bottom / 100% auto;
}
-// Change the colors used in compose-form
-.compose-form {
- .compose-form__modifiers {
- .compose-form__upload__actions .icon-button,
- .compose-form__upload__warning .icon-button {
- color: lighten($white, 7%);
-
- &:active,
- &:focus,
- &:hover {
- color: $white;
- }
- }
- }
-
- .compose-form__buttons-wrapper {
- background: darken($ui-base-color, 6%);
- }
-
- .autosuggest-textarea__suggestions {
- background: darken($ui-base-color, 6%);
- }
-
- .autosuggest-textarea__suggestions__item {
- &:hover,
- &:focus,
- &:active,
- &.selected {
- background: lighten($ui-base-color, 4%);
- }
- }
-}
-
-.emoji-mart-bar {
- border-color: lighten($ui-base-color, 4%);
-
- &:first-child {
- background: darken($ui-base-color, 6%);
- }
-}
-
-.emoji-mart-search input {
- background: rgba($ui-base-color, 0.3);
- border-color: $ui-base-color;
-}
-
.upload-progress__backdrop {
background: $ui-base-color;
}
@@ -283,46 +216,11 @@ html {
background: $ui-base-color;
}
-.privacy-dropdown.active .privacy-dropdown__value.active .icon-button {
- color: $white;
-}
-
.account-gallery__item a {
background-color: $ui-base-color;
}
-// Change the colors used in the dropdown menu
-.dropdown-menu {
- background: $white;
-
- &__arrow::before {
- background-color: $white;
- }
-
- &__item {
- color: $darker-text-color;
-
- &--dangerous {
- color: $error-value-color;
- }
-
- a,
- button {
- background: $white;
- }
- }
-}
-
// Change the text colors on inverted background
-.privacy-dropdown__option.active,
-.privacy-dropdown__option:hover,
-.privacy-dropdown__option.active .privacy-dropdown__option__content,
-.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
-.privacy-dropdown__option:hover .privacy-dropdown__option__content,
-.privacy-dropdown__option:hover .privacy-dropdown__option__content strong,
-.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:active,
-.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:focus,
-.dropdown-menu__item:not(.dropdown-menu__item--dangerous) a:hover,
.actions-modal ul li:not(:empty) a.active,
.actions-modal ul li:not(:empty) a.active button,
.actions-modal ul li:not(:empty) a:active,
@@ -331,7 +229,6 @@ html {
.actions-modal ul li:not(:empty) a:focus button,
.actions-modal ul li:not(:empty) a:hover,
.actions-modal ul li:not(:empty) a:hover button,
-.language-dropdown__dropdown__results__item.active,
.admin-wrapper .sidebar ul .simple-navigation-active-leaf a,
.simple_form .block-button,
.simple_form .button,
@@ -339,19 +236,6 @@ html {
color: $white;
}
-.language-dropdown__dropdown__results__item
- .language-dropdown__dropdown__results__item__common-name {
- color: lighten($ui-base-color, 8%);
-}
-
-.language-dropdown__dropdown__results__item.active
- .language-dropdown__dropdown__results__item__common-name {
- color: darken($ui-base-color, 12%);
-}
-
-.dropdown-menu__separator,
-.dropdown-menu__item.edited-timestamp__history__item,
-.dropdown-menu__container__header,
.compare-history-modal .report-modal__target,
.report-dialog-modal .poll__option.dialog-option {
border-bottom-color: lighten($ui-base-color, 4%);
@@ -385,10 +269,7 @@ html {
.reactions-bar__item:hover,
.reactions-bar__item:focus,
-.reactions-bar__item:active,
-.language-dropdown__dropdown__results__item:hover,
-.language-dropdown__dropdown__results__item:focus,
-.language-dropdown__dropdown__results__item:active {
+.reactions-bar__item:active {
background-color: $ui-base-color;
}
@@ -631,11 +512,6 @@ html {
}
}
-.reply-indicator {
- background: transparent;
- border: 1px solid lighten($ui-base-color, 8%);
-}
-
.status__content,
.reply-indicator__content {
a {
@@ -675,3 +551,30 @@ html {
background-color: rgba($ui-highlight-color, 0.15);
}
}
+
+.compose-form__actions .icon-button.active,
+.dropdown-button.active,
+.privacy-dropdown__option.active,
+.privacy-dropdown__option:focus,
+.language-dropdown__dropdown__results__item:focus,
+.language-dropdown__dropdown__results__item.active,
+.privacy-dropdown__option:focus .privacy-dropdown__option__content,
+.privacy-dropdown__option:focus .privacy-dropdown__option__content strong,
+.privacy-dropdown__option.active .privacy-dropdown__option__content,
+.privacy-dropdown__option.active .privacy-dropdown__option__content strong,
+.language-dropdown__dropdown__results__item:focus
+ .language-dropdown__dropdown__results__item__common-name,
+.language-dropdown__dropdown__results__item.active
+ .language-dropdown__dropdown__results__item__common-name {
+ color: $white;
+}
+
+.compose-form .spoiler-input__input {
+ color: lighten($ui-highlight-color, 8%);
+}
+
+.compose-form .autosuggest-textarea__textarea,
+.compose-form__highlightable,
+.poll__option input[type='text'] {
+ background: darken($ui-base-color, 10%);
+}
diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss
index ac8a83121..3cf5561ca 100644
--- a/app/javascript/styles/mastodon-light/variables.scss
+++ b/app/javascript/styles/mastodon-light/variables.scss
@@ -5,7 +5,7 @@ $white: #ffffff;
$classic-base-color: #282c37;
$classic-primary-color: #9baec8;
$classic-secondary-color: #d9e1e8;
-$classic-highlight-color: #858afa;
+$classic-highlight-color: #6364ff;
$blurple-600: #563acc; // Iris
$blurple-500: #6364ff; // Brand purple
@@ -34,7 +34,7 @@ $ui-button-tertiary-border-color: $blurple-500 !default;
$primary-text-color: $black !default;
$darker-text-color: $classic-base-color !default;
-$highlight-text-color: darken($ui-highlight-color, 8%) !default;
+$highlight-text-color: $ui-highlight-color !default;
$dark-text-color: #444b5d;
$action-button-color: #606984;
@@ -55,3 +55,8 @@ $account-background-color: $white !default;
}
$emojis-requiring-inversion: 'chains';
+
+.theme-mastodon-light {
+ --dropdown-border-color: #d9e1e8;
+ --dropdown-background-color: #fff;
+}
diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss
index dcfab6bd0..d7f8586dd 100644
--- a/app/javascript/styles/mastodon/_mixins.scss
+++ b/app/javascript/styles/mastodon/_mixins.scss
@@ -15,13 +15,14 @@
outline: 0;
box-sizing: border-box;
width: 100%;
- border: 0;
box-shadow: none;
font-family: inherit;
background: $ui-base-color;
color: $darker-text-color;
border-radius: 4px;
- font-size: 14px;
+ border: 1px solid lighten($ui-base-color, 8%);
+ font-size: 17px;
+ line-height: normal;
margin: 0;
}
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index a65f35e7b..3f538d08d 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -1314,6 +1314,9 @@ a.sparkline {
&__label {
padding: 15px;
+ display: flex;
+ gap: 8px;
+ align-items: center;
}
&__rules {
@@ -1324,6 +1327,9 @@ a.sparkline {
&__rule {
cursor: pointer;
padding: 15px;
+ display: flex;
+ gap: 8px;
+ align-items: center;
}
}
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 6714b2426..28dad81da 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -8,7 +8,7 @@
body {
font-family: $font-sans-serif, sans-serif;
- background: darken($ui-base-color, 7%);
+ background: darken($ui-base-color, 8%);
font-size: 13px;
line-height: 18px;
font-weight: 400;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 93cea5f76..5b89e7f25 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -368,46 +368,155 @@ body > [data-popper-placement] {
}
}
-.compose-form {
- padding: 15px;
+.autosuggest-textarea {
+ &__textarea {
+ background: transparent;
+ min-height: 100px;
+ padding-bottom: 0;
+ resize: none;
+ scrollbar-color: initial;
- &__sensitive-button {
- padding: 10px;
- padding-top: 0;
- font-size: 14px;
- font-weight: 500;
-
- &.active {
- color: $highlight-text-color;
- }
-
- input[type='checkbox'] {
- appearance: none;
- display: inline-block;
- position: relative;
- border: 1px solid $ui-primary-color;
- box-sizing: border-box;
- width: 18px;
- height: 18px;
- flex: 0 0 auto;
- margin-inline-end: 10px;
- top: -1px;
- border-radius: 4px;
- vertical-align: middle;
- cursor: inherit;
-
- &:checked {
- border-color: $highlight-text-color;
- background: $highlight-text-color
- url("data:image/svg+xml;utf8,
")
- center center no-repeat;
- }
+ &::-webkit-scrollbar {
+ all: unset;
}
}
- .compose-form__warning {
+ &__suggestions {
+ box-shadow: var(--dropdown-shadow);
+ background: $ui-base-color;
+ border: 1px solid lighten($ui-base-color, 14%);
+ border-radius: 0 0 4px 4px;
+ color: $secondary-text-color;
+ font-size: 14px;
+ padding: 0;
+
+ &__item {
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ height: 48px;
+ cursor: pointer;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ color: $secondary-text-color;
+
+ &:last-child {
+ border-radius: 0 0 4px 4px;
+ }
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.selected {
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+
+ .autosuggest-account .display-name__account {
+ color: inherit;
+ }
+ }
+ }
+ }
+}
+
+.autosuggest-account,
+.autosuggest-emoji,
+.autosuggest-hashtag {
+ flex: 1 0 0;
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ justify-content: flex-start;
+ gap: 12px;
+ padding: 8px 12px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.autosuggest-account {
+ .display-name {
+ font-weight: 400;
+ display: flex;
+ flex-direction: column;
+ flex: 1 0 0;
+ }
+
+ .display-name__account {
+ display: block;
+ line-height: 16px;
+ font-size: 12px;
+ color: $dark-text-color;
+ }
+}
+
+.autosuggest-hashtag {
+ justify-content: space-between;
+
+ &__name {
+ flex: 1 1 auto;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ &__uses {
+ flex: 0 0 auto;
+ text-align: end;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+}
+
+.autosuggest-emoji {
+ &__name {
+ flex: 1 0 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+}
+
+.autosuggest-account .account__avatar,
+.autosuggest-emoji img {
+ display: block;
+ width: 24px;
+ height: 24px;
+ flex: 0 0 auto;
+}
+
+.compose-form {
+ display: flex;
+ flex-direction: column;
+ gap: 32px;
+
+ .layout-multiple-columns &,
+ .column & {
+ padding: 15px;
+ }
+
+ &__highlightable {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ flex: 0 1 auto;
+ border-radius: 4px;
+ border: 1px solid lighten($ui-base-color, 8%);
+ transition: border-color 300ms linear;
+ min-height: 0;
+ position: relative;
+ background: $ui-base-color;
+ overflow-y: auto;
+
+ &.active {
+ transition: none;
+ border-color: $ui-highlight-color;
+ }
+ }
+
+ &__warning {
color: $inverted-text-color;
- margin-bottom: 10px;
background: $ui-primary-color;
box-shadow: 0 2px 6px rgba($base-shadow-color, 0.3);
padding: 8px 10px;
@@ -439,32 +548,27 @@ body > [data-popper-placement] {
}
}
- .emoji-picker-dropdown {
- position: absolute;
- top: 0;
- inset-inline-end: 0;
- }
-
- .compose-form__autosuggest-wrapper {
- position: relative;
- }
-
- .autosuggest-textarea,
- .autosuggest-input,
.spoiler-input {
- position: relative;
- width: 100%;
- }
+ display: flex;
+ align-items: stretch;
- .spoiler-input {
- height: 0;
- transform-origin: bottom;
- opacity: 0;
+ &__border {
+ background: url('../images/warning-stripes.svg') repeat-y;
+ width: 5px;
+ flex: 0 0 auto;
- &.spoiler-input--visible {
- height: 36px;
- margin-bottom: 11px;
- opacity: 1;
+ &:first-child {
+ border-start-start-radius: 4px;
+ }
+
+ &:last-child {
+ border-start-end-radius: 4px;
+ }
+ }
+
+ .autosuggest-input {
+ flex: 1 1 auto;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
}
}
@@ -474,269 +578,303 @@ body > [data-popper-placement] {
box-sizing: border-box;
width: 100%;
margin: 0;
- color: $inverted-text-color;
- background: $simple-background-color;
- padding: 10px;
+ color: $secondary-text-color;
+ background: $ui-base-color;
font-family: inherit;
font-size: 14px;
- resize: vertical;
+ padding: 12px;
+ line-height: normal;
border: 0;
outline: 0;
- &::placeholder {
- color: $dark-text-color;
- }
-
&:focus {
outline: 0;
}
-
- @media screen and (width <= 600px) {
- font-size: 16px;
- }
}
.spoiler-input__input {
- border-radius: 4px;
+ padding: 12px 12px - 5px;
+ background: mix($ui-base-color, $ui-highlight-color, 85%);
+ color: $highlight-text-color;
}
- .autosuggest-textarea__textarea {
- min-height: 100px;
- border-radius: 4px 4px 0 0;
- padding-bottom: 0;
- padding-right: 10px + 22px; // Cannot use inline-end because of dir=auto
- resize: none;
- scrollbar-color: initial;
-
- &::-webkit-scrollbar {
- all: unset;
- }
-
- @media screen and (width <= 600px) {
- height: 100px !important; // Prevent auto-resize textarea
- resize: vertical;
- }
- }
-
- .autosuggest-textarea__suggestions-wrapper {
- position: relative;
- height: 0;
- }
-
- .autosuggest-textarea__suggestions {
- box-sizing: border-box;
- display: none;
- position: absolute;
- top: 100%;
- width: 100%;
- z-index: 99;
- box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
- background: $ui-secondary-color;
- border-radius: 0 0 4px 4px;
- color: $inverted-text-color;
- font-size: 14px;
- padding: 6px;
-
- &.autosuggest-textarea__suggestions--visible {
- display: block;
- }
- }
-
- .autosuggest-textarea__suggestions__item {
- padding: 10px;
- cursor: pointer;
- border-radius: 4px;
-
- &:hover,
- &:focus,
- &:active,
- &.selected {
- background: darken($ui-secondary-color, 10%);
- }
- }
-
- .autosuggest-account,
- .autosuggest-emoji,
- .autosuggest-hashtag {
+ &__dropdowns {
display: flex;
- flex-direction: row;
align-items: center;
- justify-content: flex-start;
- line-height: 18px;
- font-size: 14px;
- }
+ gap: 8px;
- .autosuggest-hashtag {
- justify-content: space-between;
-
- &__name {
- flex: 1 1 auto;
+ & > div {
overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- strong {
- font-weight: 500;
- }
-
- &__uses {
- flex: 0 0 auto;
- text-align: end;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
- }
-
- .autosuggest-account-icon,
- .autosuggest-emoji img {
- display: block;
- margin-inline-end: 8px;
- width: 16px;
- height: 16px;
- }
-
- .autosuggest-account .display-name__account {
- color: $lighter-text-color;
- }
-
- .compose-form__modifiers {
- color: $inverted-text-color;
- font-family: inherit;
- font-size: 14px;
- background: $simple-background-color;
-
- .compose-form__upload-wrapper {
- overflow: hidden;
- }
-
- .compose-form__uploads-wrapper {
display: flex;
- flex-direction: row;
- padding: 5px;
- flex-wrap: wrap;
+ }
+ }
+
+ &__uploads {
+ display: flex;
+ gap: 8px;
+ padding: 0 12px;
+ flex-wrap: wrap;
+ align-self: stretch;
+ align-items: flex-start;
+ align-content: flex-start;
+ justify-content: center;
+ }
+
+ &__upload {
+ flex: 1 1 0;
+ min-width: calc(50% - 8px);
+
+ &__actions {
+ display: flex;
+ align-items: flex-start;
+ justify-content: space-between;
+ padding: 8px;
}
- .compose-form__upload {
- flex: 1 1 0;
- min-width: 40%;
- margin: 5px;
-
- &__actions {
- background: linear-gradient(
- 180deg,
- rgba($base-shadow-color, 0.8) 0,
- rgba($base-shadow-color, 0.35) 80%,
- transparent
- );
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- }
-
- .icon-button {
- flex: 0 1 auto;
- color: $secondary-text-color;
- font-size: 14px;
- font-weight: 500;
- padding: 10px;
- font-family: inherit;
-
- .icon {
- width: 15px;
- height: 15px;
- }
-
- &:hover,
- &:focus,
- &:active {
- color: lighten($secondary-text-color, 7%);
- }
- }
-
- &__warning {
- position: absolute;
- z-index: 2;
- bottom: 0;
- inset-inline-start: 0;
- inset-inline-end: 0;
- box-sizing: border-box;
- background: linear-gradient(
- 0deg,
- rgba($base-shadow-color, 0.8) 0,
- rgba($base-shadow-color, 0.35) 80%,
- transparent
- );
- }
+ &__preview {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ border-radius: 6px;
+ z-index: -1;
+ top: 0;
+ inset-inline-start: 0;
}
- .compose-form__upload-thumbnail {
- border-radius: 4px;
- background-color: $base-shadow-color;
+ &__thumbnail {
+ width: 100%;
+ height: 144px;
+ border-radius: 6px;
background-position: center;
background-size: cover;
background-repeat: no-repeat;
- height: 140px;
- width: 100%;
overflow: hidden;
}
+
+ .icon-button {
+ flex: 0 0 auto;
+ color: $white;
+ background: rgba(0, 0, 0, 75%);
+ border-radius: 6px;
+ font-size: 12px;
+ line-height: 16px;
+ font-weight: 500;
+ padding: 4px 8px;
+ font-family: inherit;
+
+ .icon {
+ width: 15px;
+ height: 15px;
+ }
+ }
+
+ .icon-button.compose-form__upload__delete {
+ padding: 3px;
+ border-radius: 50%;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+
+ &__warning {
+ position: absolute;
+ z-index: 2;
+ bottom: 0;
+ inset-inline-start: 0;
+ inset-inline-end: 0;
+ padding: 8px;
+
+ .icon-button.active {
+ color: #ffbe2e;
+ background: rgba(0, 0, 0, 75%);
+ }
+ }
}
- .compose-form__buttons-wrapper {
- padding: 10px;
- background: darken($simple-background-color, 8%);
- border-radius: 0 0 4px 4px;
+ &__footer {
display: flex;
- justify-content: space-between;
- flex: 0 0 auto;
+ flex-direction: column;
+ gap: 12px;
+ padding: 12px;
+ padding-top: 0;
+ }
- .compose-form__buttons {
+ &__submit {
+ display: flex;
+ align-items: center;
+ flex: 1 1 auto;
+ max-width: 100%;
+ overflow: hidden;
+ }
+
+ &__buttons {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+ flex: 1 1 auto;
+
+ & > div {
display: flex;
- gap: 2px;
-
- .icon-button {
- height: 100%;
- }
-
- .compose-form__upload-button-icon {
- line-height: 27px;
- }
-
- .compose-form__sensitive-button {
- display: none;
-
- &.compose-form__sensitive-button--visible {
- display: block;
- }
-
- .compose-form__sensitive-button__icon {
- line-height: 27px;
- }
- }
}
- .icon-button,
- .text-icon-button {
- box-sizing: content-box;
- padding: 0 3px;
+ .icon-button {
+ padding: 3px;
}
- .character-counter__wrapper {
- align-self: center;
- margin-inline-end: 4px;
+ .icon-button .icon {
+ width: 18px;
+ height: 18px;
}
}
- .compose-form__publish {
+ &__actions {
display: flex;
- justify-content: flex-end;
- min-width: 0;
+ align-items: center;
flex: 0 0 auto;
+ gap: 12px;
+ flex-wrap: wrap;
- .compose-form__publish-button-wrapper {
- padding-top: 15px;
+ .button {
+ display: block; // Otherwise text-ellipsis doesn't work
+ font-size: 14px;
+ line-height: normal;
+ font-weight: 700;
+ flex: 1 1 auto;
+ padding: 5px 12px;
+ border-radius: 4px;
}
+
+ .icon-button {
+ box-sizing: content-box;
+ color: $highlight-text-color;
+
+ &:hover,
+ &:focus,
+ &:active {
+ color: $highlight-text-color;
+ }
+
+ &.disabled {
+ color: $highlight-text-color;
+ opacity: 0.5;
+ }
+
+ &.active {
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+ }
+ }
+ }
+
+ &__poll {
+ display: flex;
+ flex-direction: column;
+ align-self: stretch;
+ gap: 8px;
+
+ .poll__option {
+ padding: 0 12px;
+ gap: 8px;
+
+ &.empty:not(:focus-within) {
+ opacity: 0.5;
+ }
+ }
+
+ .poll__input {
+ width: 17px;
+ height: 17px;
+ border-color: $darker-text-color;
+ }
+
+ &__footer {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ padding-inline-start: 37px;
+ padding-inline-end: 40px;
+
+ &__sep {
+ width: 1px;
+ height: 22px;
+ background: lighten($ui-base-color, 8%);
+ flex: 0 0 auto;
+ }
+ }
+
+ &__select {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ flex: 1 1 auto;
+ min-width: 0;
+
+ &__label {
+ flex: 0 0 auto;
+ font-size: 11px;
+ font-weight: 500;
+ line-height: 16px;
+ letter-spacing: 0.5px;
+ color: $darker-text-color;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+
+ &__value {
+ flex: 0 0 auto;
+ appearance: none;
+ background: transparent;
+ border: none;
+ padding: 0;
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ letter-spacing: 0.1px;
+ color: $highlight-text-color;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
+ }
+ }
+}
+
+.dropdown-button {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ background: transparent;
+ color: $highlight-text-color;
+ border-radius: 6px;
+ border: 1px solid $highlight-text-color;
+ padding: 4px 8px;
+ font-size: 13px;
+ line-height: normal;
+ font-weight: 400;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+
+ .icon {
+ width: 15px;
+ height: 15px;
+ flex: 0 0 auto;
+ }
+
+ &__label {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex: 1 1 auto;
+ }
+
+ &.active {
+ background: $ui-highlight-color;
+ border-color: $ui-highlight-color;
+ color: $primary-text-color;
}
}
@@ -744,11 +882,14 @@ body > [data-popper-placement] {
cursor: default;
font-family: $font-sans-serif, sans-serif;
font-size: 14px;
- font-weight: 600;
- color: $lighter-text-color;
+ font-weight: 400;
+ line-height: normal;
+ color: $darker-text-color;
+ flex: 1 0 auto;
+ text-align: end;
&.character-counter--over {
- color: $warning-red;
+ color: $error-red;
}
}
@@ -794,41 +935,6 @@ body > [data-popper-placement] {
}
}
-.reply-indicator {
- border-radius: 4px;
- margin-bottom: 10px;
- background: $ui-primary-color;
- padding: 10px;
- min-height: 23px;
- overflow-y: auto;
- flex: 0 2 auto;
-}
-
-.reply-indicator__header {
- margin-bottom: 5px;
- overflow: hidden;
-}
-
-.reply-indicator__cancel {
- float: right;
- line-height: 24px;
-}
-
-.reply-indicator__display-name {
- color: $inverted-text-color;
- display: block;
- max-width: 100%;
- line-height: 24px;
- overflow: hidden;
- padding-inline-end: 25px;
- text-decoration: none;
-}
-
-.reply-indicator__display-avatar {
- float: left;
- margin-inline-end: 5px;
-}
-
.status__content--with-action {
cursor: pointer;
}
@@ -838,14 +944,15 @@ body > [data-popper-placement] {
}
.status__content,
+.edit-indicator__content,
.reply-indicator__content {
position: relative;
- font-size: 15px;
- line-height: 22px;
word-wrap: break-word;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
+ font-size: 15px;
+ line-height: 22px;
padding-top: 2px;
color: $primary-text-color;
@@ -930,6 +1037,174 @@ body > [data-popper-placement] {
}
}
+.reply-indicator {
+ display: grid;
+ grid-template-columns: 46px minmax(0, 1fr);
+ grid-template-rows: 46px max-content;
+ gap: 0 10px;
+
+ .detailed-status__display-name {
+ margin-bottom: 4px;
+ }
+
+ .detailed-status__display-avatar {
+ grid-column-start: 1;
+ grid-row-start: 1;
+ grid-row-end: span 1;
+ }
+
+ &__main {
+ grid-column-start: 2;
+ grid-row-start: 1;
+ grid-row-end: span 2;
+ }
+
+ .display-name {
+ font-size: 14px;
+ line-height: 16px;
+
+ &__account {
+ display: none;
+ }
+ }
+
+ &__line {
+ grid-column-start: 1;
+ grid-row-start: 2;
+ grid-row-end: span 1;
+ position: relative;
+
+ &::before {
+ display: block;
+ content: '';
+ position: absolute;
+ inset-inline-start: 50%;
+ top: 4px;
+ transform: translateX(-50%);
+ background: lighten($ui-base-color, 8%);
+ width: 2px;
+ height: calc(100% + 32px - 8px); // Account for gap to next element
+ }
+ }
+
+ &__content {
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ display: -webkit-box;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+ padding: 0;
+ max-height: 4 * 20px;
+ overflow: hidden;
+ color: $darker-text-color;
+ }
+
+ &__attachments {
+ margin-top: 4px;
+ color: $darker-text-color;
+ font-size: 12px;
+ line-height: 16px;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+}
+
+.edit-indicator {
+ border-radius: 4px 4px 0 0;
+ background: lighten($ui-base-color, 4%);
+ padding: 12px;
+ overflow-y: auto;
+ flex: 0 0 auto;
+ border-bottom: 0.5px solid lighten($ui-base-color, 8%);
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+
+ &__header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ color: $darker-text-color;
+ font-size: 12px;
+ line-height: 16px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ &__cancel {
+ display: flex;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+
+ &__display-name {
+ display: flex;
+ gap: 4px;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+ }
+
+ &__content {
+ color: $secondary-text-color;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ padding-top: 0 !important;
+ display: -webkit-box;
+ -webkit-line-clamp: 4;
+ -webkit-box-orient: vertical;
+ max-height: 4 * 20px;
+ overflow: hidden;
+
+ a {
+ color: $highlight-text-color;
+ }
+ }
+
+ &__attachments {
+ color: $darker-text-color;
+ font-size: 12px;
+ line-height: 16px;
+ opacity: 0.75;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+ }
+}
+
+.edit-indicator__content,
+.reply-indicator__content {
+ .emojione {
+ width: 18px;
+ height: 18px;
+ margin: -3px 0 0;
+ }
+}
+
.announcements__item__content {
word-wrap: break-word;
overflow-y: auto;
@@ -1458,15 +1733,6 @@ body > [data-popper-placement] {
line-height: 18px;
}
-.reply-indicator__content {
- color: $inverted-text-color;
- font-size: 14px;
-
- a {
- color: $lighter-text-color;
- }
-}
-
.domain {
padding: 10px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
@@ -1677,7 +1943,6 @@ a .account__avatar {
}
.status__display-name,
-.reply-indicator__display-name,
.detailed-status__display-name,
a.account__display-name {
&:hover .display-name strong {
@@ -1935,57 +2200,45 @@ a.account__display-name {
}
.navigation-bar {
- padding: 15px;
display: flex;
align-items: center;
flex-shrink: 0;
cursor: default;
gap: 10px;
- color: $darker-text-color;
- strong {
- color: $secondary-text-color;
+ .column > & {
+ padding: 15px;
}
- a {
- color: inherit;
- text-decoration: none;
- }
+ .account {
+ border-bottom: 0;
+ padding: 0;
+ flex: 1 1 auto;
+ min-width: 0;
- .navigation-bar__actions {
- position: relative;
+ &__display-name {
+ font-size: 16px;
+ line-height: 24px;
+ letter-spacing: 0.15px;
+ font-weight: 500;
- .compose__action-bar .icon-button {
- pointer-events: auto;
- transform: scale(1, 1) translate(0, 0);
- opacity: 1;
-
- .icon {
- width: 24px;
- height: 24px;
+ .display-name__account {
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.1px;
}
}
}
-}
-.navigation-bar__profile {
- display: flex;
- flex-direction: column;
- flex: 1 1 auto;
- line-height: 20px;
-}
+ .icon-button {
+ padding: 8px;
+ color: $secondary-text-color;
+ }
-.navigation-bar__profile-account {
- display: inline;
- font-weight: 500;
- overflow: hidden;
- text-overflow: ellipsis;
-}
-
-.navigation-bar__profile-edit {
- display: inline;
- color: inherit;
- text-decoration: none;
+ .icon-button .icon {
+ width: 24px;
+ height: 24px;
+ }
}
.dropdown-animation {
@@ -2163,6 +2416,7 @@ a.account__display-name {
&__panels {
display: flex;
justify-content: center;
+ gap: 16px;
width: 100%;
height: 100%;
min-height: 100vh;
@@ -2195,7 +2449,6 @@ a.account__display-name {
flex-direction: column;
@media screen and (min-width: $no-gap-breakpoint) {
- padding: 0 10px;
max-width: 600px;
}
}
@@ -2445,6 +2698,7 @@ $ui-header-height: 55px;
.columns-area__panels {
min-height: calc(100vh - $ui-header-height);
+ gap: 0;
}
.columns-area__panels__pane--navigational {
@@ -2844,21 +3098,6 @@ $ui-header-height: 55px;
}
}
-.compose-form__highlightable {
- display: flex;
- flex-direction: column;
- flex: 0 1 auto;
- border-radius: 4px;
- transition: box-shadow 300ms linear;
- min-height: 0;
- position: relative;
-
- &.active {
- transition: none;
- box-shadow: 0 0 0 6px rgba(lighten($highlight-text-color, 8%), 0.7);
- }
-}
-
.compose-panel {
width: 285px;
margin-top: 10px;
@@ -2887,32 +3126,9 @@ $ui-header-height: 55px;
}
}
- .navigation-bar {
- flex: 0 1 48px;
- }
-
.compose-form {
- flex: 1;
- display: flex;
- flex-direction: column;
- min-height: 310px;
- padding-bottom: 71px;
- margin-bottom: -71px;
- }
-
- .compose-form__autosuggest-wrapper {
- overflow-y: auto;
- background-color: $white;
- border-radius: 4px 4px 0 0;
- flex: 0 1 auto;
- }
-
- .autosuggest-textarea__textarea {
- overflow-y: hidden;
- }
-
- .compose-form__upload-thumbnail {
- height: 80px;
+ flex: 1 1 auto;
+ min-height: 0;
}
}
@@ -2932,6 +3148,10 @@ $ui-header-height: 55px;
height: 30px;
width: auto;
}
+
+ &__logo {
+ margin-bottom: 12px;
+ }
}
.navigation-panel,
@@ -2963,7 +3183,7 @@ $ui-header-height: 55px;
position: absolute;
top: 0;
inset-inline-start: 0;
- background: $ui-base-color;
+ background: darken($ui-base-color, 4%);
box-sizing: border-box;
padding: 0;
display: flex;
@@ -2979,7 +3199,7 @@ $ui-header-height: 55px;
}
.drawer__inner__mastodon {
- background: $ui-base-color
+ background: darken($ui-base-color, 4%)
url('data:image/svg+xml;utf8,
')
no-repeat bottom / 100% auto;
flex: 1;
@@ -3001,24 +3221,20 @@ $ui-header-height: 55px;
}
}
-.pseudo-drawer {
- background: lighten($ui-base-color, 13%);
- font-size: 13px;
- text-align: start;
-}
-
.drawer__header {
flex: 0 0 auto;
font-size: 16px;
- background: $ui-base-color;
+ background: darken($ui-base-color, 4%);
margin-bottom: 10px;
display: flex;
flex-direction: row;
border-radius: 4px;
overflow: hidden;
- a:hover {
- background: lighten($ui-base-color, 3%);
+ a:hover,
+ a:focus,
+ a:active {
+ background: $ui-base-color;
}
}
@@ -3228,7 +3444,7 @@ $ui-header-height: 55px;
&--transparent {
background: transparent;
- color: $ui-secondary-color;
+ color: $secondary-text-color;
&:hover,
&:focus,
@@ -4533,10 +4749,7 @@ a.status-card {
}
.emoji-picker-dropdown__menu {
- background: $simple-background-color;
position: relative;
- box-shadow: var(--dropdown-shadow);
- border-radius: 4px;
margin-top: 5px;
z-index: 2;
@@ -4559,11 +4772,12 @@ a.status-card {
.emoji-picker-dropdown__modifiers__menu {
position: absolute;
z-index: 4;
- top: -4px;
- inset-inline-start: -8px;
- background: $simple-background-color;
+ top: -5px;
+ inset-inline-start: -9px;
+ background: var(--dropdown-background-color);
+ border: 1px solid var(--dropdown-border-color);
border-radius: 4px;
- box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
+ box-shadow: var(--dropdown-shadow);
overflow: hidden;
button {
@@ -4576,7 +4790,7 @@ a.status-card {
&:hover,
&:focus,
&:active {
- background: rgba($ui-secondary-color, 0.4);
+ background: var(--dropdown-border-color);
}
}
@@ -4645,15 +4859,17 @@ a.status-card {
}
.upload-progress {
- padding: 10px;
- color: $lighter-text-color;
+ color: $darker-text-color;
overflow: hidden;
display: flex;
- gap: 10px;
+ gap: 8px;
+ align-items: center;
+ padding: 0 12px;
.icon {
width: 24px;
height: 24px;
+ color: $ui-highlight-color;
}
span {
@@ -4672,7 +4888,7 @@ a.status-card {
width: 100%;
height: 6px;
border-radius: 6px;
- background: darken($simple-background-color, 8%);
+ background: darken($ui-base-color, 8%);
position: relative;
margin-top: 5px;
}
@@ -4726,12 +4942,16 @@ a.status-card {
filter: none;
}
-.privacy-dropdown__dropdown {
- background: $simple-background-color;
+.privacy-dropdown__dropdown,
+.language-dropdown__dropdown {
box-shadow: var(--dropdown-shadow);
+ background: var(--dropdown-background-color);
+ border: 1px solid var(--dropdown-border-color);
+ padding: 4px;
border-radius: 4px;
overflow: hidden;
z-index: 2;
+ width: 300px;
&.top {
transform-origin: 50% 100%;
@@ -4752,28 +4972,41 @@ a.status-card {
}
.privacy-dropdown__option {
- color: $inverted-text-color;
- padding: 10px;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
+ padding: 8px 12px;
cursor: pointer;
display: flex;
+ align-items: center;
+ gap: 12px;
+ border-radius: 4px;
+ color: $primary-text-color;
&:hover,
+ &:active {
+ background: var(--dropdown-border-color);
+ }
+
+ &:focus,
&.active {
background: $ui-highlight-color;
color: $primary-text-color;
outline: 0;
- .privacy-dropdown__option__content {
+ .privacy-dropdown__option__content,
+ .privacy-dropdown__option__content strong,
+ .privacy-dropdown__option__additional {
color: $primary-text-color;
-
- strong {
- color: $primary-text-color;
- }
}
}
- &.active:hover {
- background: lighten($ui-highlight-color, 4%);
+ &__additional {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: $darker-text-color;
+ cursor: help;
}
}
@@ -4781,17 +5014,16 @@ a.status-card {
display: flex;
align-items: center;
justify-content: center;
- margin-inline-end: 10px;
}
.privacy-dropdown__option__content {
flex: 1 1 auto;
- color: $lighter-text-color;
+ color: $darker-text-color;
strong {
+ color: $primary-text-color;
font-weight: 500;
display: block;
- color: $inverted-text-color;
@each $lang in $cjk-langs {
&:lang(#{$lang}) {
@@ -4803,64 +5035,78 @@ a.status-card {
.language-dropdown {
&__dropdown {
- background: $simple-background-color;
- box-shadow: var(--dropdown-shadow);
- border-radius: 4px;
- overflow: hidden;
- z-index: 2;
-
- &.top {
- transform-origin: 50% 100%;
- }
-
- &.bottom {
- transform-origin: 50% 0;
- }
+ padding: 0;
.emoji-mart-search {
- padding-inline-end: 10px;
+ padding: 10px;
+ background: var(--dropdown-background-color);
+
+ input {
+ padding: 8px 12px;
+ background: $ui-base-color;
+ border: 1px solid lighten($ui-base-color, 8%);
+ color: $darker-text-color;
+
+ @media screen and (width <= 600px) {
+ font-size: 16px;
+ line-height: 24px;
+ letter-spacing: 0.5px;
+ }
+ }
}
.emoji-mart-search-icon {
- inset-inline-end: 10px + 5px;
+ inset-inline-end: 15px;
+ opacity: 1;
+ color: $darker-text-color;
+
+ .icon {
+ width: 18px;
+ height: 18px;
+ }
+
+ &:disabled {
+ opacity: 0.38;
+ }
}
.emoji-mart-scroll {
padding: 0 10px 10px;
+ background: var(--dropdown-background-color);
}
&__results {
&__item {
cursor: pointer;
- color: $inverted-text-color;
+ color: $primary-text-color;
+ font-size: 14px;
+ line-height: 20px;
+ letter-spacing: 0.25px;
font-weight: 500;
- padding: 10px;
+ padding: 8px 12px;
border-radius: 4px;
- display: flex;
- gap: 6px;
- align-items: center;
-
- &:focus,
- &:active,
- &:hover {
- background: $ui-secondary-color;
- }
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
&__common-name {
color: $darker-text-color;
+ font-weight: 400;
}
+ &:active,
+ &:hover {
+ background: var(--dropdown-border-color);
+ }
+
+ &:focus,
&.active {
background: $ui-highlight-color;
color: $primary-text-color;
outline: 0;
.language-dropdown__dropdown__results__item__common-name {
- color: $secondary-text-color;
- }
-
- &:hover {
- background: lighten($ui-highlight-color, 4%);
+ color: $primary-text-color;
}
}
}
@@ -4869,9 +5115,13 @@ a.status-card {
}
.search {
- margin-bottom: 10px;
+ margin-bottom: 32px;
position: relative;
+ .layout-multiple-columns & {
+ margin-bottom: 10px;
+ }
+
&__popout {
box-sizing: border-box;
display: none;
@@ -4880,6 +5130,7 @@ a.status-card {
margin-top: -2px;
width: 100%;
background: $ui-base-color;
+ border: 1px solid lighten($ui-base-color, 8%);
border-radius: 0 0 4px 4px;
box-shadow: var(--dropdown-shadow);
z-index: 99;
@@ -4888,7 +5139,7 @@ a.status-card {
h4 {
text-transform: uppercase;
- color: $dark-text-color;
+ color: $darker-text-color;
font-weight: 500;
padding: 0 10px;
margin-bottom: 10px;
@@ -4896,6 +5147,7 @@ a.status-card {
.icon-button {
padding: 0;
+ color: $darker-text-color;
}
.icon {
@@ -4911,7 +5163,7 @@ a.status-card {
}
&__message {
- color: $dark-text-color;
+ color: $darker-text-color;
padding: 0 10px;
}
@@ -4967,6 +5219,10 @@ a.status-card {
}
&.active {
+ .search__input {
+ border-radius: 4px 4px 0 0;
+ }
+
.search__popout {
display: block;
}
@@ -4977,14 +5233,9 @@ a.status-card {
@include search-input;
display: block;
- padding: 15px;
- padding-inline-end: 30px;
- line-height: 18px;
- font-size: 16px;
-
- &::placeholder {
- color: lighten($darker-text-color, 4%);
- }
+ padding: 12px 16px;
+ padding-inline-start: 16px + 15px + 8px;
+ line-height: normal;
&::-moz-focus-inner {
border: 0;
@@ -4995,10 +5246,6 @@ a.status-card {
&:active {
outline: 0 !important;
}
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
}
.search__icon {
@@ -5013,21 +5260,21 @@ a.status-card {
.icon {
position: absolute;
- top: 13px;
- inset-inline-end: 10px;
+ top: 12px + 2px;
+ inset-inline-start: 16px - 2px;
display: inline-block;
opacity: 0;
transition: all 100ms linear;
transition-property: transform, opacity;
- width: 24px;
- height: 24px;
- color: $secondary-text-color;
+ width: 20px;
+ height: 20px;
+ color: $darker-text-color;
cursor: default;
pointer-events: none;
&.active {
pointer-events: auto;
- opacity: 0.3;
+ opacity: 1;
}
}
@@ -5042,16 +5289,10 @@ a.status-card {
.icon-times-circle {
transform: rotate(0deg);
- color: $action-button-color;
cursor: pointer;
&.active {
transform: rotate(90deg);
- opacity: 1;
- }
-
- &:hover {
- color: lighten($action-button-color, 7%);
}
}
}
@@ -5658,6 +5899,11 @@ a.status-card {
}
}
+ .dialog-option {
+ align-items: center;
+ gap: 12px;
+ }
+
.dialog-option .poll__input {
border-color: $inverted-text-color;
color: $ui-secondary-color;
@@ -5666,8 +5912,8 @@ a.status-card {
justify-content: center;
svg {
- width: 8px;
- height: auto;
+ width: 15px;
+ height: 15px;
}
&:active,
@@ -6865,90 +7111,6 @@ noscript {
}
}
-@media screen and (width <= 630px) and (height <= 400px) {
- $duration: 400ms;
- $delay: 100ms;
-
- .search {
- will-change: margin-top;
- transition: margin-top $duration $delay;
- }
-
- .navigation-bar {
- will-change: padding-bottom;
- transition: padding-bottom $duration $delay;
- }
-
- .navigation-bar {
- & > a:first-child {
- will-change: margin-top, margin-inline-start, margin-inline-end, width;
- transition:
- margin-top $duration $delay,
- margin-inline-start $duration ($duration + $delay),
- margin-inline-end $duration ($duration + $delay);
- }
-
- & > .navigation-bar__profile-edit {
- will-change: margin-top;
- transition: margin-top $duration $delay;
- }
-
- .navigation-bar__actions {
- & > .icon-button.close {
- will-change: opacity transform;
- transition:
- opacity $duration * 0.5 $delay,
- transform $duration $delay;
- }
-
- & > .compose__action-bar .icon-button {
- will-change: opacity transform;
- transition:
- opacity $duration * 0.5 $delay + $duration * 0.5,
- transform $duration $delay;
- }
- }
- }
-
- .is-composing {
- .search {
- margin-top: -50px;
- }
-
- .navigation-bar {
- padding-bottom: 0;
-
- & > a:first-child {
- margin: -100px 10px 0 -50px;
- }
-
- .navigation-bar__profile {
- padding-top: 2px;
- }
-
- .navigation-bar__profile-edit {
- position: absolute;
- margin-top: -60px;
- }
-
- .navigation-bar__actions {
- .icon-button.close {
- pointer-events: auto;
- opacity: 1;
- transform: scale(1, 1) translate(0, 0);
- bottom: 5px;
- }
-
- .compose__action-bar .icon-button {
- pointer-events: none;
- opacity: 0;
- transform: scale(0, 1) translate(100%, 0);
- }
- }
- }
- }
-}
-
.embed-modal {
width: auto;
max-width: 80vw;
@@ -8910,11 +9072,14 @@ noscript {
.link-footer {
flex: 0 0 auto;
- padding: 10px;
padding-top: 20px;
z-index: 1;
font-size: 13px;
+ .column & {
+ padding: 15px;
+ }
+
p {
color: $dark-text-color;
margin-bottom: 20px;
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index b6e995787..8a472d75b 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -40,13 +40,12 @@
.compose-form {
width: 400px;
margin: 0 auto;
- padding: 20px 0;
- margin-top: 40px;
+ padding: 10px 0;
+ padding-bottom: 20px;
box-sizing: border-box;
@media screen and (width <= 400px) {
width: 100%;
- margin-top: 0;
padding: 20px;
}
}
@@ -56,13 +55,15 @@
width: 400px;
margin: 0 auto;
display: flex;
- font-size: 13px;
- line-height: 18px;
+ align-items: center;
+ gap: 10px;
+ font-size: 14px;
+ line-height: 20px;
box-sizing: border-box;
padding: 20px 0;
margin-top: 40px;
margin-bottom: 10px;
- border-bottom: 1px solid $ui-base-color;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
@media screen and (width <= 440px) {
width: 100%;
@@ -71,9 +72,9 @@
}
.avatar {
- width: 40px;
- height: 40px;
- margin-inline-end: 10px;
+ width: 48px;
+ height: 48px;
+ flex: 0 0 auto;
img {
width: 100%;
@@ -87,13 +88,14 @@
.name {
flex: 1 1 auto;
color: $secondary-text-color;
- width: calc(100% - 90px);
.username {
display: block;
- font-weight: 500;
+ font-size: 16px;
+ line-height: 24px;
text-overflow: ellipsis;
overflow: hidden;
+ color: $primary-text-color;
}
}
@@ -101,7 +103,7 @@
display: block;
font-size: 32px;
line-height: 40px;
- margin-inline-start: 10px;
+ flex: 0 0 auto;
}
}
diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss
index c7247c3a5..fec0c10dd 100644
--- a/app/javascript/styles/mastodon/emoji_picker.scss
+++ b/app/javascript/styles/mastodon/emoji_picker.scss
@@ -1,7 +1,6 @@
.emoji-mart {
font-size: 13px;
display: inline-block;
- color: $inverted-text-color;
&,
* {
@@ -15,13 +14,13 @@
}
.emoji-mart-bar {
- border: 0 solid darken($ui-secondary-color, 8%);
+ border: 0 solid var(--dropdown-border-color);
&:first-child {
border-bottom-width: 1px;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
- background: $ui-secondary-color;
+ background: var(--dropdown-border-color);
}
&:last-child {
@@ -36,7 +35,6 @@
display: flex;
justify-content: space-between;
padding: 0 6px;
- color: $lighter-text-color;
line-height: 0;
}
@@ -50,9 +48,10 @@
cursor: pointer;
background: transparent;
border: 0;
+ color: $darker-text-color;
&:hover {
- color: darken($lighter-text-color, 4%);
+ color: lighten($darker-text-color, 4%);
}
}
@@ -60,7 +59,7 @@
color: $highlight-text-color;
&:hover {
- color: darken($highlight-text-color, 4%);
+ color: lighten($highlight-text-color, 4%);
}
.emoji-mart-anchor-bar {
@@ -95,7 +94,7 @@
height: 270px;
max-height: 35vh;
padding: 0 6px 6px;
- background: $simple-background-color;
+ background: var(--dropdown-background-color);
will-change: transform;
&::-webkit-scrollbar-track:hover,
@@ -107,7 +106,7 @@
.emoji-mart-search {
padding: 10px;
padding-inline-end: 45px;
- background: $simple-background-color;
+ background: var(--dropdown-background-color);
position: relative;
input {
@@ -118,9 +117,9 @@
font-family: inherit;
display: block;
width: 100%;
- background: rgba($ui-secondary-color, 0.3);
- color: $inverted-text-color;
- border: 1px solid $ui-secondary-color;
+ background: $ui-base-color;
+ color: $darker-text-color;
+ border: 1px solid lighten($ui-base-color, 8%);
border-radius: 4px;
&::-moz-focus-inner {
@@ -155,11 +154,10 @@
&:disabled {
cursor: default;
pointer-events: none;
- opacity: 0.3;
}
svg {
- fill: $action-button-color;
+ fill: $darker-text-color;
}
}
@@ -180,7 +178,7 @@
inset-inline-start: 0;
width: 100%;
height: 100%;
- background-color: rgba($ui-secondary-color, 0.7);
+ background-color: var(--dropdown-border-color);
border-radius: 100%;
}
}
@@ -197,7 +195,7 @@
width: 100%;
font-weight: 500;
padding: 5px 6px;
- background: $simple-background-color;
+ background: var(--dropdown-background-color);
}
}
@@ -241,7 +239,7 @@
.emoji-mart-no-results {
font-size: 14px;
- color: $light-text-color;
+ color: $dark-text-color;
text-align: center;
padding: 5px 6px;
padding-top: 70px;
diff --git a/app/javascript/styles/mastodon/modal.scss b/app/javascript/styles/mastodon/modal.scss
index 0b7220b21..60e7d6224 100644
--- a/app/javascript/styles/mastodon/modal.scss
+++ b/app/javascript/styles/mastodon/modal.scss
@@ -1,5 +1,5 @@
.modal-layout {
- background: $ui-base-color
+ background: darken($ui-base-color, 4%)
url('data:image/svg+xml;utf8,
')
repeat-x bottom fixed;
display: flex;
diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss
index 8a26e611c..939fca336 100644
--- a/app/javascript/styles/mastodon/polls.scss
+++ b/app/javascript/styles/mastodon/polls.scss
@@ -52,6 +52,8 @@
&__option {
position: relative;
display: flex;
+ align-items: flex-start;
+ gap: 8px;
padding: 6px 0;
line-height: 18px;
cursor: default;
@@ -78,16 +80,22 @@
box-sizing: border-box;
width: 100%;
font-size: 14px;
- color: $inverted-text-color;
+ color: $secondary-text-color;
outline: 0;
font-family: inherit;
- background: $simple-background-color;
- border: 1px solid darken($simple-background-color, 14%);
+ background: $ui-base-color;
+ border: 1px solid $darker-text-color;
border-radius: 4px;
- padding: 6px 10px;
+ padding: 8px 12px;
&:focus {
- border-color: $highlight-text-color;
+ border-color: $ui-highlight-color;
+ }
+
+ @media screen and (width <= 600px) {
+ font-size: 16px;
+ line-height: 24px;
+ letter-spacing: 0.5px;
}
}
@@ -96,26 +104,20 @@
}
&.editable {
- display: flex;
align-items: center;
overflow: visible;
}
}
&__input {
- display: inline-block;
+ display: block;
position: relative;
border: 1px solid $ui-primary-color;
box-sizing: border-box;
- width: 18px;
- height: 18px;
- margin-inline-end: 10px;
- top: -1px;
+ width: 17px;
+ height: 17px;
border-radius: 50%;
- vertical-align: middle;
- margin-top: auto;
- margin-bottom: auto;
- flex: 0 0 18px;
+ flex: 0 0 auto;
&.checkbox {
border-radius: 4px;
@@ -159,6 +161,15 @@
}
}
+ &__option.editable &__input {
+ &:active,
+ &:focus,
+ &:hover {
+ border-color: $ui-primary-color;
+ border-width: 1px;
+ }
+ }
+
&__number {
display: inline-block;
width: 45px;
@@ -209,90 +220,6 @@
}
}
-.compose-form__poll-wrapper {
- border-top: 1px solid darken($simple-background-color, 8%);
-
- ul {
- padding: 10px;
- }
-
- .poll__input {
- &:active,
- &:focus,
- &:hover {
- border-color: $ui-button-focus-background-color;
- }
- }
-
- .poll__footer {
- border-top: 1px solid darken($simple-background-color, 8%);
- padding: 10px;
- display: flex;
- align-items: center;
-
- button,
- select {
- flex: 1 1 50%;
-
- &:focus {
- border-color: $highlight-text-color;
- }
- }
- }
-
- .button.button-secondary {
- font-size: 14px;
- font-weight: 400;
- padding: 6px 10px;
- height: auto;
- line-height: inherit;
- color: $action-button-color;
- border-color: $action-button-color;
- margin-inline-end: 5px;
-
- &:hover,
- &:focus,
- &.active {
- border-color: $action-button-color;
- background-color: $action-button-color;
- color: $ui-button-color;
- }
- }
-
- li {
- display: flex;
- align-items: center;
-
- .poll__option {
- flex: 0 0 auto;
- width: calc(100% - (23px + 6px));
- margin-inline-end: 6px;
- }
- }
-
- select {
- appearance: none;
- box-sizing: border-box;
- font-size: 14px;
- color: $inverted-text-color;
- display: inline-block;
- width: auto;
- outline: 0;
- font-family: inherit;
- background: $simple-background-color
- url("data:image/svg+xml;utf8,
")
- no-repeat right 8px center / auto 16px;
- border: 1px solid darken($simple-background-color, 14%);
- border-radius: 4px;
- padding: 6px 10px;
- padding-inline-end: 30px;
- }
-
- .icon-button.disabled {
- color: darken($simple-background-color, 14%);
- }
-}
-
.muted .poll {
color: $dark-text-color;
diff --git a/spec/system/new_statuses_spec.rb b/spec/system/new_statuses_spec.rb
index a3b816b4d..5a3f1b406 100644
--- a/spec/system/new_statuses_spec.rb
+++ b/spec/system/new_statuses_spec.rb
@@ -24,7 +24,7 @@ describe 'NewStatuses', :sidekiq_inline do
within('.compose-form') do
fill_in "What's on your mind?", with: status_text
- click_on 'Publish!'
+ click_on 'Post'
end
expect(subject).to have_css('.status__content__text', text: status_text)
@@ -37,7 +37,7 @@ describe 'NewStatuses', :sidekiq_inline do
within('.compose-form') do
fill_in "What's on your mind?", with: status_text
- click_on 'Publish!'
+ click_on 'Post'
end
expect(subject).to have_css('.status__content__text', text: status_text)
diff --git a/spec/system/share_entrypoint_spec.rb b/spec/system/share_entrypoint_spec.rb
index fd02d1120..126a816bc 100644
--- a/spec/system/share_entrypoint_spec.rb
+++ b/spec/system/share_entrypoint_spec.rb
@@ -19,13 +19,13 @@ describe 'ShareEntrypoint' do
it 'can be used to post a new status' do
expect(subject).to have_css('div#mastodon-compose')
- expect(subject).to have_css('.compose-form__publish-button-wrapper > button')
+ expect(subject).to have_css('.compose-form__submit')
status_text = 'This is a new status!'
within('.compose-form') do
fill_in "What's on your mind?", with: status_text
- click_on 'Publish!'
+ click_on 'Post'
end
expect(subject).to have_css('.notification-bar-message', text: 'Post published.')