discourse/app/assets/stylesheets/common/d-editor.scss
Bianca Nenciu 7952cbb9a2
FIX: Perform crop using user-specified image sizes (#9224)
* FIX: Perform crop using user-specified image sizes

It used to resize the images to max width and height first and then
perform the crop operation. This is wrong because it ignored the user
specified image sizes from the Markdown.

* DEV: Use real images in test
2020-03-26 16:40:00 +02:00

332 lines
5.3 KiB
SCSS

.d-editor-container {
display: flex;
flex-grow: 1;
max-width: 100%;
}
.d-editor {
display: flex;
flex-grow: 1;
min-height: 0;
}
.d-editor-textarea-wrapper,
.d-editor-preview-wrapper {
flex: 1;
}
.d-editor-textarea-wrapper {
display: flex;
flex-direction: column;
background-color: $secondary;
position: relative;
border: 1px solid $primary-medium;
textarea {
background: transparent;
}
&.disabled {
cursor: not-allowed;
.d-editor-button-bar {
visibility: hidden;
}
}
}
.d-editor-preview-wrapper {
max-width: 49%;
margin-left: 1%;
display: flex;
flex-direction: column;
}
.d-editor-button-bar {
display: flex;
align-items: center;
min-height: 30px;
border-bottom: 1px solid $primary-low;
.btn,
.btn-default {
background-color: transparent;
display: inline-block;
.d-icon {
color: $primary-medium;
}
svg {
-webkit-transform: translate3d(
0,
0,
0
); // Hack: Reduces composer icon jitter while scrolling in Safari on iOS12
}
}
.d-editor-spacer {
height: 1em;
display: inline-block;
border-left: 1px solid $primary-low-mid;
}
.btn:not(.no-text) {
font-size: $font-up-1;
}
.btn.bold {
font-weight: bolder;
}
.btn.italic {
font-style: italic;
}
}
.d-editor-preview-wrapper {
overflow: auto;
cursor: default;
-webkit-overflow-scrolling: touch;
}
.d-editor-input,
.d-editor-preview {
box-sizing: border-box;
flex: 1 1 100%;
width: 100%;
margin: 0;
min-height: auto;
word-wrap: break-word;
-webkit-appearance: none;
border-radius: 0;
&:focus {
box-shadow: none;
border: 0;
outline: 0;
}
}
.d-editor-input {
border: 0;
padding: 10px;
height: 100%;
overflow-x: hidden;
resize: none;
}
.d-editor-preview {
height: auto;
}
.d-editor-plugin {
display: flex;
flex: 1 1;
overflow: auto;
}
.composing-whisper .d-editor-preview {
font-style: italic;
color: $primary-medium !important;
}
.d-editor-preview > *:first-child {
margin-top: 0;
}
.hide-preview .d-editor-preview-wrapper {
display: none;
flex: 0;
}
.edit-category-tab-topic-template {
.emoji.btn {
display: none;
}
}
.user-preferences .bio-composer,
.group-form-bio,
.edit-category-tab-topic-template {
textarea {
width: 100%;
height: 100%;
min-height: 10em;
}
.local-dates.btn {
display: none;
}
.d-editor-container {
display: block;
}
.d-editor-textarea-wrapper {
border: 1px solid $primary-low;
}
.d-editor-preview-wrapper {
max-width: 100%;
margin: 10px 0 0 0;
}
.d-editor-preview {
background-color: $primary-very-low;
padding: 5px;
&:empty {
padding: 0;
}
}
}
.user-preferences .bio-composer,
.group-form-bio {
padding: 10px;
border: 1px solid $primary-low;
}
.d-editor-preview img {
padding-bottom: 1.4em;
&.emoji,
&.avatar,
&.site-icon {
padding-bottom: 0;
}
&.resizable {
object-fit: cover;
object-position: top;
}
}
.d-editor-preview .image-wrapper {
position: relative;
display: inline-block;
padding-bottom: 1.4em;
img {
padding-bottom: 0;
}
&:hover {
.button-wrapper {
opacity: 0.9;
}
}
.button-wrapper {
opacity: 0;
position: absolute;
transition: all 0.25s;
display: flex;
align-items: center;
bottom: 0;
left: 0;
.separator {
color: $primary-low-mid;
}
.scale-btn {
color: $tertiary;
padding: 0 0.4em;
&:first-of-type {
padding-left: 0;
}
&.active {
font-weight: bold;
color: $primary;
}
&:not(.active):hover {
text-decoration: underline;
cursor: pointer;
}
}
}
}
.mobile-view .d-editor-preview .image-wrapper .button-wrapper {
opacity: 1;
}
// d-editor bar button sizing for all editors - this is kept seprate to keep
// everything in one place
.d-editor-button-bar {
margin: 0.25em;
// shared styles for all font sizes
.btn,
.btn-default {
padding: 0 0.5em;
}
.d-editor-spacer {
margin: 0 0.25em;
}
// small text size
.text-size-smaller & {
@include breakpoint(mobile-large) {
.btn,
.btn-default {
padding: 0 0.4em;
}
}
@include breakpoint(mobile-medium) {
.btn,
.btn-default {
padding: 0 0.3em;
}
.d-editor-spacer {
margin: 0 0.25em;
}
}
}
// normal text size
.text-size-normal & {
@include breakpoint(mobile-large) {
.btn,
.btn-default {
padding: 0 0.35em;
}
}
@include breakpoint(mobile-medium) {
.btn,
.btn-default {
padding: 0 0.25em;
}
}
}
// larger text size
.text-size-larger & {
@include breakpoint(mobile-large) {
.btn,
.btn-default {
padding: 0 0.3em;
}
}
@include breakpoint(mobile-medium) {
.btn,
.btn-default {
padding: 0 0.2em;
}
}
}
// largest text size
.text-size-largest & {
.btn,
.btn-default {
font-size: $font-down-1;
}
@include breakpoint(mobile-large) {
.btn,
.btn-default {
padding: 0 0.3em;
}
}
@include breakpoint(mobile-medium) {
.btn,
.btn-default {
padding: 0 0.2em;
}
}
}
}