framework/less/forum/Composer.less
Toby Zerner 54597ee5eb Attempt fix for #1268
I believe the constant overlay of a loading div may be what's causing
the iOS cursor issues. This commit removes the fade animation so that
we can simply set display to none, which will hopefully fix the issue.
2017-11-05 16:21:18 +10:30

372 lines
6.6 KiB
Plaintext

// ------------------------------------
// Composer
.Composer {
pointer-events: auto;
.box-shadow(0 2px 6px @shadow-color);
&.minimized {
height: 46px;
cursor: pointer;
background: @control-bg;
}
}
.Composer-controls {
list-style: none;
padding: 0;
margin: 0;
}
.ComposerBody-content {
.minimized & {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.ComposerBody-header {
list-style: none;
padding: 1px 0;
margin: 0 0 10px;
.minimized & {
pointer-events: none;
}
> li {
display: inline-block;
margin-right: -4px;
}
h3 {
margin: 0;
line-height: 1.5em;
color: @secondary-color;
&, input, a {
font-size: 14px;
font-weight: normal;
}
input, a {
color: inherit;
}
input {
font-size: 16px;
width: 500px;
&, &[disabled], &:focus {
background: none;
border: 0;
padding: 0 20px 0 0;
height: auto;
}
}
.icon {
font-size: 14px;
margin-right: 3px;
}
}
}
.fa-minus.minimize {
vertical-align: -5px;
}
.Composer-controls {
position: absolute;
right: 10px;
top: 10px;
z-index: 1;
& li {
display: inline-block;
}
.minimized & {
top: 7px;
}
}
.ComposerBody-loading {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: fade(@body-bg, 90%);
display: none;
border-radius: @border-radius @border-radius 0 0;
&.active {
display: block;
}
}
.ComposerBody-editor {
.minimized & {
visibility: hidden;
}
}
// On phones, show the composer as a fixed overlay that covers the whole
// screen. The controls are hidden (except for the 'x', which is the back-
// control), and the avatar hidden.
@media @phone {
.Composer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: @zindex-composer;
background: @body-bg;
&:not(.minimized) {
position: absolute;
top: 0;
height: 100vh !important;
padding-top: @header-height-phone;
&:before {
content: " ";
.header-background();
position: absolute;
opacity: 0;
.visible& {
opacity: 1;
}
}
& .Composer-controls {
position: static;
z-index: @zindex-header + 1;
li:not(.App-backControl) {
display: none;
}
.App-backControl {
position: absolute !important;
}
}
}
}
.Composer-controls .fa-minus:before {
content: @fa-var-times;
}
.composer-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: @zindex-composer - 1;
background-color: @overlay-bg;
opacity: 0.9;
}
.ComposerBody-content {
.minimized & {
margin-right: 50px;
}
}
.ComposerBody-avatar {
display: none;
}
.ComposerBody-header {
margin-bottom: 0;
> li {
display: block;
border-bottom: 1px solid @control-bg;
padding: 10px 15px;
.minimized & {
border-bottom: 0;
padding: 15px;
}
.normal &:first-child {
margin: -@header-height-phone 50px 0;
text-align: center;
position: relative;
z-index: @zindex-header + 1;
border: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
h3 {
color: @header-control-color;
}
}
}
h3 input {
width: 100% !important;
}
}
.ComposerBody-editor {
padding: 15px;
}
.ComposerBody-editor .TextEditor-controls .item-submit {
position: absolute !important;
}
}
// On larger screens, show the composer as a window at the bottom of the
// content area. We hide a lot of the content when the composer is minimized.
@media @tablet-up {
.App-composer {
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: @zindex-composer;
pointer-events: none;
.transition(left 0.2s);
}
.Composer {
border-radius: @border-radius @border-radius 0 0;
background: fade(@body-bg, 95%);
transform: translateZ(0); // Fix for Chrome bug where a transparent white background is actually gray
position: relative;
height: 300px;
.transition(~"background 0.2s, box-shadow 0.2s");
&.active, &.fullScreen {
background: @body-bg;
}
&.active:not(.fullScreen) {
.box-shadow(~"0 0 0 2px @{primary-color}, 0 2px 6px @{shadow-color}");
}
&.fullScreen {
position: fixed;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: 0;
height: auto;
border-radius: 0;
}
}
.Composer-controls {
.fullScreen & .Button {
padding: 13px;
width: auto;
.Button-icon {
font-size: 20px;
}
}
}
.ComposerBody-header {
.fullScreen & {
margin-bottom: 20px;
}
}
.Composer-content {
padding: 20px 20px 0;
.minimized & {
padding: 12px 20px;
}
.fullScreen & {
max-width: 900px;
margin: 0 auto;
padding: 30px;
}
}
.Composer-handle {
height: 15px;
margin-bottom: -17px;
position: relative;
.minimized &, .fullScreen & {
display: none;
}
}
.ComposerBody-avatar {
float: left;
.Avatar--size(64px);
.minimized &, .fullScreen & {
display: none;
}
}
.ComposerBody-content {
margin-left: 85px;
.minimized &, .fullScreen & {
margin-left: 0;
}
}
.ComposerBody-editor {
.fullScreen & textarea {
font-size: 16px;
}
}
.ComposerBody--discussion .ComposerBody-header .item-title {
display: none;
}
}
@media @desktop-up {
.Composer:not(.fullScreen) {
.App--index & {
margin-left: 220px;
margin-right: -20px;
}
.App--discussion & {
margin-left: -20px;
margin-right: 205px;
}
}
}
@media @desktop-hd {
.hasPane.panePinned .App-composer {
left: @pane-width;
}
}
// ------------------------------------
// Text Editor
.TextEditor textarea {
border-radius: 0;
padding: 0 0 10px;
border: 0;
resize: none;
color: @text-color;
font-size: 14px;
line-height: 1.7;
&, &:focus, &[disabled] {
background: none;
border: 0;
}
@media @phone {
font-size: 16px; // minimum font-size required to prevent page zoom on focus in iOS 10
}
}
.TextEditor-controls {
margin: 0;
padding: 15px 0;
list-style-type: none;
& li {
display: inline-block;
}
}
@media @tablet-up {
.TextEditor-controls {
margin: 0 -20px 0 -105px;
padding: 10px 20px;
border-top: 1px solid @control-bg;
li {
margin-right: 5px;
}
.fullScreen & {
margin: 0;
border-top: 0;
padding: 20px 0;
}
}
}