discourse/app/assets/stylesheets/common/base/compose.scss
Penar Musaraj c937afc75e
FEATURE: automatic dark mode (#10341)
A first step to adding automatic dark mode color scheme switching. Adds a new SCSS file at `color_definitions.scss` that serves to output all SCSS color variables as CSS custom properties. And replaces all SCSS color variables with the new CSS custom properties throughout the stylesheets. 

This is an alpha feature at this point, can only be enabled via console using the `default_dark_mode_color_scheme_id` site setting.
2020-08-03 22:57:10 -04:00

512 lines
8.6 KiB
SCSS

#reply-control {
position: fixed;
display: flex;
flex-direction: column;
bottom: 0;
height: 0;
right: 0;
left: 0;
margin-left: auto;
margin-right: auto;
max-width: 1475px;
width: 100%;
&.hide-preview {
max-width: 740px;
}
@media screen and (max-width: 1200px) {
min-width: 0;
}
z-index: z("composer", "content");
transition: height 250ms ease, background 250ms ease, transform 250ms ease,
max-width 250ms ease, padding-bottom 250ms ease;
background-color: var(--secondary);
box-shadow: shadow("composer");
.reply-area {
display: flex;
flex-direction: column;
}
.saving-text,
.draft-text {
display: none;
padding-left: 10px;
.spinner {
margin-left: 5px;
border-color: var(--secondary);
border-right-color: transparent;
}
.d-icon {
color: var(--secondary);
}
}
&.open {
height: 300px;
&.edit-title {
height: 400px; // more room when editing the title
}
}
&.closed {
height: 0 !important;
}
&.draft,
&.saving {
height: 40px !important;
align-items: center;
background: var(--tertiary);
color: var(--secondary);
flex-direction: row;
width: 100%;
.composer-controls {
margin-left: auto;
display: flex;
padding-right: 5px;
.toggle-toolbar {
display: none;
}
.d-icon {
color: var(--secondary);
}
}
}
&.draft {
cursor: pointer;
display: flex;
.draft-text {
display: block;
}
.grippie,
.saving-text {
display: none;
}
.toggler {
order: 2;
}
}
&.saving .saving-text {
display: flex;
}
.reply-to {
color: var(--primary-high);
margin: 5px 0 10px 0;
display: flex;
align-items: center;
.d-icon {
color: var(--primary-high);
}
.reply-details {
max-width: calc(100% - 175px);
flex: 1 1 auto;
display: flex;
align-items: center;
white-space: nowrap;
.d-icon {
opacity: 0.8;
}
}
.composer-action-title {
display: inline-flex;
align-items: center;
width: auto;
max-width: 100%;
.avatar {
width: 20px;
}
.action-title {
@include ellipsis;
}
.topic-link,
.user-link,
.post-link {
margin-right: 5px;
}
.username {
margin-right: 5px;
max-width: 100px;
@include ellipsis;
@media screen and (max-width: 500px) {
display: none;
}
}
.d-icon {
margin-right: 5px;
}
img.avatar {
margin-right: 3px;
}
}
.composer-controls {
display: flex;
margin-left: auto;
button {
padding: 5px 7px;
&.toggler {
order: 2;
}
}
}
}
.whisper,
.display-edit-reason {
font-style: italic;
}
.whisper {
margin: 0 0.25em;
}
.unlist {
margin-left: 0.25em;
}
.display-edit-reason {
display: inline-flex;
a {
display: inline-flex;
}
.d-icon {
padding: 0.3em 0.5em;
color: var(--tertiary);
}
}
#edit-reason {
margin: 0 4px;
}
.user-selector,
.title-and-category {
display: flex;
flex-wrap: wrap;
width: 100%;
align-items: center;
margin-bottom: 5px;
position: relative;
&.with-preview {
width: 50%;
}
}
.title-input {
position: relative;
display: flex;
flex: 1 1 50%;
input {
flex-grow: 1;
}
}
.with-tags {
.title-input {
flex: 1 1 100%;
}
}
.category-input {
display: flex;
flex: 1 0 35%;
margin: 0 0 5px 10px;
@media screen and (max-width: 955px) {
flex: 1 0 100%;
margin-left: 0;
}
.category-chooser {
display: flex;
flex: 1 0 auto;
width: auto;
}
}
.with-tags {
.category-input {
flex-basis: 25%;
margin-left: 0;
margin-right: 5px;
@media screen and (max-width: 920px) {
flex-basis: 100%;
margin-right: 0;
}
}
}
.add-warning {
margin-left: 0.75em;
margin-bottom: 0;
display: flex;
input {
margin-right: 5px;
}
}
#reply-title {
margin: 0 0 5px 0;
flex-basis: 50%;
&:focus {
box-shadow: none;
}
}
.mini-tag-chooser {
flex: 1 1 25%;
margin: 0 0 5px 0;
background: var(--secondary);
z-index: z("composer", "dropdown");
@media all and (max-width: 900px) {
margin: 0;
flex: 1 1 100%;
}
}
.popup-tip {
z-index: z("composer", "dropdown") + 1;
}
.wmd-controls {
position: relative;
display: flex;
flex-direction: column;
flex-grow: 1;
min-height: 0;
}
.submit-panel {
display: flex;
flex-shrink: 0;
margin: 7px 0 3px 0;
}
.save-or-cancel {
flex-basis: 50%;
display: flex;
align-items: center;
margin-right: auto;
button {
flex: 0 0 auto;
}
.cancel {
margin-left: 1.25em;
line-height: normal;
color: var(--primary-high);
transition: color 250ms;
&:hover {
color: var(--danger);
}
}
#draft-status,
#file-uploading {
margin-left: 25px;
}
#file-uploading {
display: flex;
align-items: center;
a {
margin-left: 5px;
color: var(--primary-high);
}
.spinner {
margin-right: 5px;
}
}
#draft-status .d-icon-user-edit {
color: var(--danger);
font-size: 20px;
vertical-align: -5.5px;
}
}
#draft-status,
#file-uploading {
color: var(--primary-high);
}
}
.cooked > *:first-child {
margin-top: 0;
}
.autocomplete {
z-index: z("composer", "dropdown") + 1;
position: absolute;
width: 240px;
background-color: var(--secondary);
border: 1px solid var(--primary-low);
ul {
list-style: none;
padding: 0;
margin: 0;
li {
.d-icon-users {
color: var(--primary-medium);
padding: 0 2px;
}
border-bottom: 1px solid var(--primary-low);
a {
padding: 5px;
display: block;
@include ellipsis;
span.username {
color: var(--primary);
}
span.name {
font-size: $font-down-1;
vertical-align: middle;
}
&.selected {
background-color: var(--tertiary-low);
}
@include hover {
background-color: var(--highlight-low);
text-decoration: none;
}
}
}
}
}
div.ac-wrap.disabled {
input {
display: none;
}
.item a {
display: none;
}
}
div.ac-wrap div.item a.remove,
.remove-link {
margin-left: 4px;
font-size: $font-down-1;
line-height: $line-height-small;
padding: 1px 3.5px;
border-radius: 12px;
box-sizing: border-box;
border: 1px solid var(--primary-low);
&:hover {
background-color: var(--danger-low);
border: 1px solid var(--danger-medium);
text-decoration: none;
color: var(--danger);
}
}
div.ac-wrap {
overflow: auto;
max-height: 150px;
display: flex;
flex-wrap: wrap;
align-items: center;
background-color: var(--secondary);
border: 1px solid var(--primary-medium);
min-height: 30px;
box-sizing: border-box;
div.item {
float: left;
padding: 4px 10px;
line-height: $line-height-large;
span {
display: inline-block;
line-height: $line-height-medium;
}
}
.ac-collapsed-button {
float: left;
border-radius: 20px;
position: relative;
top: -2px;
margin-right: 10px;
}
input[type="text"] {
float: left;
display: block;
box-shadow: none;
border: 0;
margin: 0;
background: transparent;
min-height: unset;
&.fullwidth-input {
width: 100%;
}
}
}
.future-date-input {
.examples {
color: var(--primary-medium);
}
}
.md-table {
overflow-y: auto;
margin: 1em 0;
.mobile-view & {
table {
width: 100%;
}
}
}
.save-animation {
-webkit-animation: transformer 5s forwards;
animation: transformer 5s forwards;
}
@-webkit-keyframes transformer {
90% {
-webkit-filter: opacity(1);
}
100% {
-webkit-filter: opacity(0);
}
}
@keyframes transformer {
90% {
opacity: 1;
}
100% {
opacity: 0;
}
}
body.ios-safari-composer-hacks {
#main-outlet,
header,
.grippie,
html:not(.fullscreen-composer) & .toggle-fullscreen {
display: none;
}
#reply-control {
top: 0px;
&.open {
height: calc(var(--composer-vh, 1vh) * 100);
}
}
}
body:not(.ios-safari-composer-hacks) {
#reply-control.open {
padding-bottom: var(--composer-ipad-padding);
}
}