discourse/app/assets/stylesheets/mobile/compose.scss
Penar Musaraj 444d123f0d UX: Use Visual Viewport API for iOS composer height
This applies to iPhones running iOS 13+.
Previous technique remains in place for iOS 12 and below.

Note that this does not apply to iPads on iOS 13 due to Apple no longer
identifying iPads in the user agent string.
2019-09-30 13:56:40 -04:00

219 lines
3.9 KiB
SCSS

.composer-popup-container {
display: none !important; // can be removed if inline JS CSS is removed from composer-popup
}
.composer-popup {
display: none !important; // can be removed if inline JS CSS is removed from composer-popup
}
#reply-control {
z-index: z("mobile-composer");
.reply-area {
padding: 0 10px;
padding-bottom: env(safe-area-inset-bottom);
@media screen and (max-width: 374px) {
padding: 0 5px;
}
flex-grow: 1;
}
&.open {
height: 250px;
&.edit-title {
height: 100%;
height: calc(var(--composer-vh, 1vh) * 100);
}
}
html.keyboard-visible &.open {
height: calc(var(--composer-vh, 1vh) * 100);
.reply-area {
padding-bottom: 0px;
}
}
.reply-to {
margin: 5px 0;
.reply-details {
max-width: calc(100% - 75px);
}
// Protection for languages with long strings on very small screens. This
// has no effect on most users but we need it for some cases. If this is
// not added, "add edit reason" will overlap with the composer controls
@include breakpoint(mobile-small) {
.reply-details {
flex-wrap: wrap;
}
.display-edit-reason {
margin-top: 0.5em;
}
.composer-controls {
align-self: flex-start;
}
}
}
.toggler {
margin-left: -5px;
.d-icon-chevron-down {
vertical-align: text-top;
}
}
&.draft {
padding-bottom: env(safe-area-inset-bottom);
.toggle-toolbar,
.toggler {
top: 8px;
}
.draft-text {
width: calc(100% - 40px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
#reply-title {
width: calc(100% - 20px);
}
.category-input {
margin-bottom: 5px;
.category-chooser {
width: 100% !important;
}
}
.submit-panel {
margin-bottom: 5px;
align-items: baseline;
.save-or-cancel {
flex: 1 1 auto;
#draft-status,
#file-uploading {
margin-left: 6px;
}
.cancel {
font-size: 1.4em;
color: $primary-low-mid;
margin-left: 0.6em;
padding: 3px 6px;
}
}
.mobile-file-upload:not(.hidden),
.mobile-preview {
// Alignment fix, remove if converted to buttons
display: inline-flex;
}
.mobile-file-upload {
&.hidden + .mobile-preview {
// Hide preview button while file is uploading to make room for upload progress
display: none;
}
}
.mobile-preview {
margin-left: 0.25em;
}
}
.d-editor-textarea-wrapper {
width: 100%;
}
&.show-preview {
.d-editor-preview-wrapper {
position: fixed;
z-index: z("fullscreen");
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: $secondary;
max-width: 100%;
margin: 0;
padding: 10px;
overflow: auto;
.d-editor-preview {
margin-bottom: 40px;
}
}
.btn.hide-preview {
position: fixed;
right: 5px;
bottom: 5px;
z-index: z("fullscreen") + 1;
}
}
&.hide-preview {
.d-editor-preview-wrapper {
display: none;
}
}
.d-editor-button-bar {
display: none;
}
.toolbar-visible .d-editor-button-bar {
display: flex;
}
.d-editor-button-bar .btn {
&.preview {
margin: 0;
}
}
#mobile-uploader {
display: none;
}
.title-and-category,
.user-selector {
margin: 0;
.users-input {
margin-bottom: 5px;
}
}
.with-tags {
.category-input {
flex-basis: auto;
flex: 1 0 0px;
margin: 0;
width: 45%;
margin-bottom: 5px;
}
.mini-tag-chooser {
width: 50%;
flex: 1 0 0px;
margin-left: 5px;
margin-bottom: 5px;
z-index: z("base");
}
}
.title-input,
.category-input,
.users-input,
.add-warning {
width: 100%;
}
.add-warning {
margin: 0 0 5px 5px;
}
.whisper {
margin-right: 5px;
}
}