// // Editor // -------------------------------------------------- // Slug: /ghost/editor/ // -------------------------------------------------- // The main post title .entry-container .entry-title { @extend .box; height: 57px; padding: 2px 15px; margin-bottom: 5px; position: relative; @media (max-width: 400px) { box-shadow: none; } input { border: 0; margin: 0; padding: 0; font-size: 3em; font-weight: bold; letter-spacing: -1px; width: 100%; background: transparent; &:focus { outline: 0; } } } // .entry-title .editor { .notifications { @media (min-width: 401px) { bottom: 40px; } } .entry-container { position: relative; height: 100%; } // The two content panel wrappers, positioned left/right .entry-markdown { left: 0; border-right: $lightbrown 2px solid; } .entry-preview { right: 0; border-left: $lightbrown 2px solid; } // The visual styles for both panels .entry-markdown, .entry-preview { width: 50%; padding: 15px; position: absolute; bottom: 40px; // height of the publish bar top: 61px; // height of the post title + margin background: #fff; box-shadow: $shadow; @media (max-width: 400px) { box-shadow: none; } // Convert all content areas to small boxes @media (max-width: 1000px) { top: 109px; left: 0; right: 0; width: 100%; border: none; z-index: 100; min-height: 380px; .markdown, .entry-preview-content { height: 50px; overflow: hidden; } } .floatingheader { // Turn headers into tabs which act as links // both headers set to grey/inactive colour @media (max-width: 1000px) { cursor: pointer; width: 50%; border-right: $lightbrown 2px solid; color: #fff; font-weight: normal; background: $brown; position: absolute; top: -40px; left: 0; box-shadow: rgba(0,0,0,0.1) 0 -2px 3px inset; a { color: #fff; } } a { color: $brown; } .entry-word-count { float: right; position: relative; top: 2px; } } @media (max-width: 1000px) { &:not(.active) { .markdown-help { &:hover:before { color: #fff; } } } } // Give the tab with the .active class the highest z-index &.active { z-index: 200; } // Restore the normal height of the .active tab (inactive tab stays small, hidden behind) &.active .markdown, &.active .entry-preview-content { height: auto; overflow: auto; } // Restore the white bg of the currently .active tab, remove hand cursor from currently active tab &.active header { @media (max-width: 1000px) { cursor: auto; color: $brown; background: #fff; box-shadow: none; a { color: $brown; } } } // Hide markdown icon + wordcount when we hit mobile @media (max-width: 400px) { .markdown-help, .entry-word-count { display: none; } } } // .entry-markdown, .entry-preview .entry-markdown-content { textarea { border: 0; width: 100%; min-height: auto; height: 100%; max-width: 100%; margin: 0; padding: 10px 20px 50px 20px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; -webkit-overflow-scrolling: touch; @media (max-width: 600px) { padding: 10px; } @media (min-width: 601px) and (max-width: 1000px) { padding: 15px; } @media (min-width: 1001px) { top: 40px; } @media (max-height: 560px) { height: calc(100% - 40px); } &:focus { outline: 0; } } } // .entry-markdown-content .CodeMirror { height: auto; position: absolute; top: 0; left: 0; right: 0; bottom: 0; font-family: $font-family-mono; font-size: 1.4em; line-height: 1.3em; color: lighten($darkgrey, 10%); .CodeMirror-focused, .CodeMirror-selected { color: $darkgrey; background: lighten($blue, 20%); text-shadow: none; } ::selection { color: $darkgrey; background: lighten($blue, 20%); text-shadow: none; } } .CodeMirror-lines { padding: 65px 0 40px 0; /* Vertical padding around content */ @media (max-width: 1000px) {padding-top: 25px;} @media (max-width: 400px) {padding: 15px 0;} } .CodeMirror pre { padding: 0 40px; /* Horizontal padding of content */ @media (max-width: 400px) {padding: 0 15px;} } .cm-header { color: #000; font-size: 1.4em; line-height: 1.4em; font-weight: bold; } .cm-variable-2, .cm-variable-3, .cm-keyword { color: lighten($darkgrey, 10%); } .cm-string, .cm-strong, .cm-link, .cm-comment, .cm-quote, .cm-number, .cm-atom, .cm-tag { color: #000; font-weight: bold; } .entry-preview { // Align the tab of entry-preview on the right .floatingheader { @media (max-width: 1000px) { right: 0; left: auto; border-right: none; border-left: $lightbrown 2px solid; } } } .entry-preview-content { position: absolute; top: 0; right: 0; bottom: 0; left: 0; padding: 60px 40px 40px 40px; overflow: auto; word-break: break-word; hyphens: auto; @include user-select(none); cursor: default; // Tweak padding for smaller screens @media (max-width: 1000px) { padding-top: 20px; } @media (max-width: 400px) { padding: 15px; } } // Special case, when scrolling, add shadows to content headers. .scrolling { .floatingheader { @media (max-width: 1000px) { box-shadow: none; } &::before, &::after { @media (max-width: 1000px) { display: none; } } } .CodeMirror-scroll, .entry-preview-content { @media (max-width: 1000px) { box-shadow: 0 5px 5px rgba(0,0,0,0.05) inset; } } } // .scrolling } // .editor .markdown-help { position: relative; top: -5px; right: -5px; @include icon($i-question, '', lighten($brown, 15%)); float: right; padding: 5px; &:hover { @include icon($i-question, '', $brown); } } // // Post Preview // -------------------------------------------------- // The styles for the actual content inside the preview // TODO: These should just be defaults, overridden by editor.hbs in theme dir .entry-preview-content, .content-preview-content { font-size: 1.4em; line-height: 1.5em; a { color: $blue; text-decoration: underline; } p { margin: 1.2em 0 1.6em; &:first-of-type { margin-top: 0; } } h1 { font-size: 3em; } h2 { font-size: 2.2em; } h3 { font-size: 1.8em; } .btn { text-decoration: none; color: $grey; } .img-placeholder { border: 5px dashed $grey; height: 100px; position: relative; span { display: block; height: 30px; position: absolute; margin-top: -15px; top: 50%; width: 100%; text-align: center; } } a { &.image-edit { width: 16px; height: 16px; } } img { max-width: 100%; height: auto; margin: 0 auto; } } // Placeholder objects for