// ------------------------------------ // Composer .Composer { pointer-events: auto; box-shadow: 0 2px 6px var(--shadow-color); &.minimized { height: 46px; cursor: pointer; background: var(--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: var(--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: var(--body-bg-faded); display: none; border-radius: var(--border-radius) var(--border-radius) 0 0; &.active { display: flex; } } .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: var(--zindex-composer); background: var(--body-bg); &:not(.minimized) { position: fixed; top: 0; height: 350px !important; max-height: 100%; padding-top: var(--header-height-phone); // Fixes a bug where fixed position doesn't properly work in Safari mobile // https://github.com/flarum/core/issues/2652 .mobile-safari & { position: absolute; } &:before { content: " "; .header-background(); position: absolute; opacity: 0; .visible& { opacity: 1; } } & .Composer-controls { position: static; z-index: calc(~"var(--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: calc(~"var(--zindex-composer) - 1"); background-color: var(--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 var(--control-bg); padding: 10px 15px; .minimized & { border-bottom: 0; padding: 15px; } .normal &:first-child { margin: calc(~"0px - var(--header-height-phone)") 50px 0; text-align: center; position: relative; z-index: calc(~"var(--zindex-header) + 1"); border: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; h3 { color: var(--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: var(--zindex-composer); pointer-events: none; transition: left 0.2s; } .Composer { border-radius: var(--border-radius) var(--border-radius) 0 0; background: var(--body-bg-faded); position: relative; height: 300px; transition: background 0.2s, box-shadow 0.2s; &.active, &.fullScreen { background: var(--body-bg); } &.active:not(.fullScreen) { box-shadow: 0 0 0 2px var(--primary-color), 0 2px 6px var(--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 & .TextEditor-editor { font-size: 16px; } } .ComposerBody--discussion .ComposerBody-header .item-title { display: none; } } @media @desktop-up { .Composer:not(.fullScreen) { margin-left: 220px; margin-right: -20px; .App--discussion & { margin-left: -20px; margin-right: 205px; } } } @media @desktop-hd { .hasPane.panePinned .App-composer { left: var(--pane-width); } }