From e8d4019a4df7d3435142afb7f70e37870c853ab1 Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Sat, 8 Mar 2014 18:43:52 +0000 Subject: [PATCH] Replace SASS with assets from Ghost-UI closes #2368 - Remove Ruby dependency (Gemfiles) - Remove sass/fonts from core/client/assets/ - Add copy task to Gruntfile to copy over ghost-ui assets - Install Ghost-UI via bower - Changed .npmignore/.gitignore - Remove grunt-contrib-sass dependency - Remove mentions of Ruby in CONTRIBUTING.md --- ghost/admin/assets/fonts/icons.dev.svg | 287 --- ghost/admin/assets/fonts/icons.eot | Bin 12444 -> 0 bytes ghost/admin/assets/fonts/icons.svg | 287 --- ghost/admin/assets/fonts/icons.ttf | Bin 12288 -> 0 bytes ghost/admin/assets/fonts/icons.woff | Bin 22508 -> 0 bytes ghost/admin/assets/sass/ie.scss | 1 - ghost/admin/assets/sass/layouts/auth.scss | 337 ---- ghost/admin/assets/sass/layouts/editor.scss | 882 --------- ghost/admin/assets/sass/layouts/errors.scss | 107 -- ghost/admin/assets/sass/layouts/manage.scss | 291 --- ghost/admin/assets/sass/layouts/plugins.scss | 181 -- ghost/admin/assets/sass/layouts/settings.scss | 325 ---- ghost/admin/assets/sass/layouts/users.scss | 245 --- .../admin/assets/sass/modules/animations.scss | 39 - .../admin/assets/sass/modules/breakpoint.scss | 151 -- .../sass/modules/breakpoint/_context.scss | 133 -- .../sass/modules/breakpoint/_helpers.scss | 151 -- .../sass/modules/breakpoint/_no-query.scss | 15 - .../sass/modules/breakpoint/_parsers.scss | 104 - .../sass/modules/breakpoint/_respond-to.scss | 55 - .../modules/breakpoint/parsers/_double.scss | 33 - .../modules/breakpoint/parsers/_query.scss | 75 - .../breakpoint/parsers/_resolution.scss | 31 - .../modules/breakpoint/parsers/_single.scss | 26 - .../modules/breakpoint/parsers/_triple.scss | 36 - .../parsers/double/_default-pair.scss | 21 - .../breakpoint/parsers/double/_default.scss | 22 - .../parsers/double/_double-string.scss | 19 - .../parsers/resolution/_resolution.scss | 60 - .../breakpoint/parsers/single/_default.scss | 13 - .../breakpoint/parsers/triple/_default.scss | 18 - ghost/admin/assets/sass/modules/forms.scss | 490 ----- ghost/admin/assets/sass/modules/global.scss | 1685 ----------------- ghost/admin/assets/sass/modules/icons.scss | 212 --- ghost/admin/assets/sass/modules/mixins.scss | 198 -- .../admin/assets/sass/modules/normalize.scss | 396 ---- ghost/admin/assets/sass/screen.scss | 56 - 37 files changed, 6982 deletions(-) delete mode 100644 ghost/admin/assets/fonts/icons.dev.svg delete mode 100644 ghost/admin/assets/fonts/icons.eot delete mode 100644 ghost/admin/assets/fonts/icons.svg delete mode 100644 ghost/admin/assets/fonts/icons.ttf delete mode 100644 ghost/admin/assets/fonts/icons.woff delete mode 100644 ghost/admin/assets/sass/ie.scss delete mode 100644 ghost/admin/assets/sass/layouts/auth.scss delete mode 100644 ghost/admin/assets/sass/layouts/editor.scss delete mode 100644 ghost/admin/assets/sass/layouts/errors.scss delete mode 100644 ghost/admin/assets/sass/layouts/manage.scss delete mode 100644 ghost/admin/assets/sass/layouts/plugins.scss delete mode 100644 ghost/admin/assets/sass/layouts/settings.scss delete mode 100644 ghost/admin/assets/sass/layouts/users.scss delete mode 100644 ghost/admin/assets/sass/modules/animations.scss delete mode 100644 ghost/admin/assets/sass/modules/breakpoint.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/_context.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/_helpers.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/_no-query.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/_parsers.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/_respond-to.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/_double.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/_query.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/_resolution.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/_single.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/_triple.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default-pair.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/double/_double-string.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/resolution/_resolution.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/single/_default.scss delete mode 100755 ghost/admin/assets/sass/modules/breakpoint/parsers/triple/_default.scss delete mode 100644 ghost/admin/assets/sass/modules/forms.scss delete mode 100644 ghost/admin/assets/sass/modules/global.scss delete mode 100644 ghost/admin/assets/sass/modules/icons.scss delete mode 100644 ghost/admin/assets/sass/modules/mixins.scss delete mode 100644 ghost/admin/assets/sass/modules/normalize.scss delete mode 100644 ghost/admin/assets/sass/screen.scss diff --git a/ghost/admin/assets/fonts/icons.dev.svg b/ghost/admin/assets/fonts/icons.dev.svg deleted file mode 100644 index d864f76d17..0000000000 --- a/ghost/admin/assets/fonts/icons.dev.svg +++ /dev/null @@ -1,287 +0,0 @@ - - - - -This is a custom SVG font generated by IcoMoon. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ghost/admin/assets/fonts/icons.eot b/ghost/admin/assets/fonts/icons.eot deleted file mode 100644 index 9aee560550a52c0f2944366f2c5519917718d987..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12444 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 KdAjiX_x}Tr - - - -This is a custom SVG font generated by IcoMoon. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ghost/admin/assets/fonts/icons.ttf b/ghost/admin/assets/fonts/icons.ttf deleted file mode 100644 index 71d0f74cdded90a1ea9eb4bc5716c5a555702c8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 ThX4Qoc${NkX21&o0DS-ilyril diff --git a/ghost/admin/assets/sass/ie.scss b/ghost/admin/assets/sass/ie.scss deleted file mode 100644 index 8a4f4767b5..0000000000 --- a/ghost/admin/assets/sass/ie.scss +++ /dev/null @@ -1 +0,0 @@ -/* IE specific override styles. */ \ No newline at end of file diff --git a/ghost/admin/assets/sass/layouts/auth.scss b/ghost/admin/assets/sass/layouts/auth.scss deleted file mode 100644 index 3ebe4b0a86..0000000000 --- a/ghost/admin/assets/sass/layouts/auth.scss +++ /dev/null @@ -1,337 +0,0 @@ -/* - * These styles control elements specific to the Ghost admin login / signup screens. - * - * Table of Contents: - * - * 0. General - * 1. Login - * 2. Signup - * - */ - -/* ============================================================================= - 0. General - ============================================================================= */ - -.ghost-login, -.ghost-signup, -.ghost-forgotten, -.ghost-reset { - color: $midgrey; - background: $darkgrey; - - @include breakpoint($mobile) { - background: $darkgrey; - } - - main { - top: 15px; - } - - input:-webkit-autofill { - -webkit-box-shadow: 0 0 0px 1000px $lightgrey inset !important; - } - -}//.ghost-login - -.login-box, -.signup-box, -.forgotten-box, -.reset-box { - max-width: 530px; - height: 90%; - margin: 0 auto; - padding: 0; - display: table; - - @include breakpoint(630px) { - max-width: 264px; - text-align: center; - } -} - - -/* ============================================================================= - 1. Login - ============================================================================= */ - -.login-form { - @include box-sizing(border-box); - max-width: 530px; - color: lighten($midgrey, 15%); - display: table-cell; - vertical-align: middle; - - @include breakpoint(630px) { - max-width: 264px; - } - - div { // Yes. Really. - position:relative; - margin:0 0 5px 0; - background: lighten($darkgrey, 10%); - float: left; - - @include breakpoint(630px) { margin-bottom: 1em; } - } - - input { - display:inline-block; - clear:both; - margin:0; - padding: 8px 0 8px 8px; - width: 216px; - position: relative; - border: none; - color: #fff; - font-size: 1.1em; - font-weight: 200; - background: transparent; - box-shadow: none; - @include transition(background ease 0.25s); - - @include breakpoint(630px) { - width:264px; - @include transition(none); - } - - &:focus { - border: none; - background: lighten($darkgrey, 15%); - } - - } - - .email-wrap { - position:relative; - @include icon($i-mail, 12px) { - position:absolute; - bottom:11px; - left:8px; - z-index:100; - } - margin-right: 3px; - border-radius: 2px 0 0 2px; - - @include breakpoint(630px) { - margin-right:0; - border-radius: 2px; - } - - .email { - padding-left: 28px; - border-radius: 2px 0 0 2px; - } - } - - .password-wrap { - position:relative; - @include icon($i-lock, 10px) { - position:absolute; - bottom:12px; - left:11px; - z-index:100; - } - border-radius: 0 2px 2px 0; - - @include breakpoint(630px) { - border-radius: 2px; - } - - .password { - padding-left: 28px; - border-radius: 0 2px 2px 0; - } - - } - - button { - width: 85px; - height: 36px; - margin:0 0 0 10px; - padding: 0.5em 1.37em; - min-height: 30px; - min-width: 80px; - box-shadow: rgba(255,255,255,0.15) 0 1px 0 inset; - - @include breakpoint(630px) { - margin:0; - width: 100%; - margin-bottom: 1em; - } - } - - .meta { - clear:both; - color: $midgrey; - } - - a { - color: darken($midgrey, 10%); - font-size: 0.9em; - - &:hover { - color: lighten($midgrey, 5%); - text-decoration: none; - } - } - -} - - -/* ============================================================================= - 2. Signup and Reset - ============================================================================= */ - -.signup-form, .reset-form { - @include box-sizing(border-box); - max-width: 280px; - color: lighten($midgrey, 15%); - display: table-cell; - vertical-align: middle; - - @include breakpoint(630px) { - width: 264px; - } - - div { // Yes. Really. - position:relative; - margin:0 0 1em 0; - background: lighten($darkgrey, 10%); - float: left; - display: table; - } - - input { - margin:0; - width: 280px; - padding: 8px 10px; - position: relative; - border: none; - color: #fff; - font-size: 1.1em; - font-weight: 200; - background: transparent; - box-shadow: none; - @include transition(background ease 0.25s); - - @include breakpoint(630px) { - @include transition(none); - width: 264px; - } - - &:focus { - border: none; - background: lighten($darkgrey, 15%); - } - - } - - .name-wrap { - position:relative; - border-radius: 2px; - - .name { - border-radius: 2px; - } - } - - .email-wrap { - position:relative; - border-radius: 2px; - - .email { - border-radius: 2px; - } - } - - .password-wrap { - position:relative; - border-radius: 2px; - - .password { - border-radius: 2px; - } - } - - button { - @include box-sizing(border-box); - width: 100%; - height: 36px; - margin: 0 0 1em 0; - padding: 0.5em 1.37em; - min-height: 30px; - min-width: 80px; - box-shadow: rgba(255,255,255,0.15) 0 1px 0 inset; - } - -} - - -/* ============================================================================= - 3. Forgotten - ============================================================================= */ - -.forgotten-form { - @include box-sizing(border-box); - max-width: 280px; - color: lighten($midgrey, 15%); - display: table-cell; - vertical-align: middle; - - @include breakpoint(630px) { - max-width: 264px; - } - - div { // Yes. Really. - position:relative; - margin:0 0 1em 0; - background: lighten($darkgrey, 10%); - float: left; - } - - input { - margin:0; - padding: 8px 10px; - position: relative; - border: none; - color: #fff; - font-size: 1.1em; - font-weight: 200; - background: transparent; - box-shadow: none; - @include transition(background ease 0.25s); - - @include breakpoint(630px) { - @include transition(none); - max-width: 244px; - } - - &:focus { - border: none; - background: lighten($darkgrey, 15%); - } - - } - - .email-wrap { - position:relative; - border-radius: 2px; - - .email { - border-radius: 2px; - } - } - - button { - @include box-sizing(border-box); - width: 100%; - height: 36px; - margin: 0 0 1em 0; - padding: 0.5em 1.37em; - min-height: 30px; - min-width: 80px; - box-shadow: rgba(255,255,255,0.15) 0 1px 0 inset; - } - -} \ No newline at end of file diff --git a/ghost/admin/assets/sass/layouts/editor.scss b/ghost/admin/assets/sass/layouts/editor.scss deleted file mode 100644 index 9b1984acc0..0000000000 --- a/ghost/admin/assets/sass/layouts/editor.scss +++ /dev/null @@ -1,882 +0,0 @@ -/* - * These styles control elements specific to the post editor screen - * used for publishing content with Ghost. - * - * Table of Contents: - * - * Editor / Preview - * Post Preview Content - * Full Screen Mode - * Publish Bar - * CodeMirror - */ - - -/* ============================================================================= - Editor / Preview - ============================================================================= */ - -.editor { - - .notifications { - @include breakpoint($biggerthan-mobile) { - bottom: 40px; - } - } - - // The main post title - .entry-title { - @extend %box; - height: 53px; - padding: 2px 15px; - margin-bottom: 5px; - position: relative; - - @include breakpoint($mobile) { - 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-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 { - @include box-sizing(border-box); - 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; - - @include breakpoint($mobile) { - box-shadow: none; - } - - // Convert all content areas to small boxes - @include breakpoint($netbook) { - 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 - @include breakpoint($netbook) { - 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; - } - - .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); - } - } - - .entry-word-count { - float: right; - } - - } - - // 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 { - @include breakpoint($netbook) { - cursor: auto; - color: $brown; - background: #fff; - box-shadow: none; - a { - color: $brown; - } - } - } - - // Hide markdown icon + wordcount when we hit mobile - @include breakpoint($mobile) { - .markdown-help, - .entry-word-count { - display: none; - } - } - - } - - .entry-markdown-content { - - textarea { - border: 0; - width: 100%; - height: 100%; - max-width: 100%; - margin: 0; - padding: 0; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - - &:focus { - outline: 0; - } - } - - .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 */ - @include breakpoint($netbook) {padding-top: 25px;} - @include breakpoint($mobile) {padding: 15px 0;} - } - .CodeMirror pre { - padding: 0 40px; /* Horizontal padding of content */ - @include breakpoint($mobile) {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 { - @include breakpoint($netbook) { - 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 - @include breakpoint($netbook) {padding-top: 20px;} - @include breakpoint($mobile) {padding: 15px;} - } - } - - // Special case, when scrolling, add shadows to content headers. - .scrolling { - - .floatingheader { - @include breakpoint($netbook) { - box-shadow: none; - } - - &::before, - &::after { - @include breakpoint($netbook) {display: none;} - } - } - .CodeMirror-scroll, - .entry-preview-content { - @include breakpoint($netbook) { - box-shadow: 0 5px 5px rgba(0,0,0,0.05) inset; - } - } - } - -}//.editor - - -/* ============================================================================= - Post Preview Content - ============================================================================= */ - -// 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-child { - 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; - } - -} - - -/* ============================================================================= - Full Screen Mode - ============================================================================= */ - -body.zen { - background: lighten($lightbrown, 3%); - .usermenu {display: none;} - #global-header, #publish-bar { - opacity: 0; - height: 0; - overflow: hidden; - @include transition(all 0.5s ease-out); - } - - main {top: 15px;@include transition(all 0.5s ease-out);} - .entry-markdown, .entry-preview {bottom: 0;@include transition(all 0.5s ease-out);} - -} - - -/* ============================================================================= - Publish Bar - ============================================================================= */ - -#publish-bar { - @include box-sizing(border-box); - height: 40px; - padding: 0; - color: $midgrey; - background: darken($darkgrey, 4%); - position: fixed; - bottom: 0; - left: 0; - right: 0; - z-index: 900; - box-shadow: 0 -2px 8px rgba(0,0,0,0.2); - @include transform(translateZ(0)); - - @include breakpoint($netbook) {font-weight: normal;} - - .post-settings { - &:hover, - &.active { - color: $lightgrey; - } - } - - .post-settings-menu { - position: absolute; - bottom: 44px; - right: -3px; - } - - button { - min-height: 30px; - height: 30px; - line-height: 12px; - padding: 0 10px; - margin-top: 5px; - border-top: rgba(255,255,255,0.4) 1px solid; - } - - .button-link { border-top: none; } - - .options { - width: 30px; - min-height: 30px; - height: 30px; - margin-top: 5px; - box-shadow: rgba(255,255,255,0.4) 0 1px 0 inset; - } - - .splitbutton-save, - .splitbutton-delete{ - .button-save, - .button-delete{ - @include transition(width 0.25s ease, background-color 0.3s linear); - } - - .editor-options{ - @extend %menu; - @extend %menu-right; - bottom: 140%; - right: -3%; - - a{ - font-size: 14px; - } - } - } -} - -.extended-tags { // When the tag bar is exapanded - position: static; - min-height: 100%; - - #entry-tags { - &:after { - right: 10px; - } - } - .tags { - width: 281px; - } - - .tag-label, .tag-label.touch { - color: #fff; - } - - .tag-input { - width: 100%; - margin-top: 5px; - padding-top: 5px; - padding-left: 10px; - border-top: 1px solid $darkgrey; - - } - .right { - display: none; - } -} - -#entry-tags { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - text-transform: none; - padding: 10px 0 0 0; - - &:after { - content: ""; - position: fixed; - top: 10px; - right: 270px; - width: 20px; - height: 26px; - @include linear-gradient(left, rgba(26, 28, 29, 0.00), rgba(26, 28, 29, 1.00)); - z-index: 9999; - pointer-events: none; - - @include breakpoint($mobile) { - right: 161px; - } - } - - .tags { - position: relative; - display: inline-block; - vertical-align: middle; - width: auto; - max-width: 80%; - max-width: calc(100% - 320px); - height: 26px; - padding-left: 5px; - padding-bottom: 20px; - overflow-x: auto; - overflow-y: hidden; - -webkit-overflow-scrolling: touch; - white-space: nowrap; - @include transition(width 0.2s linear); - - @include breakpoint($mobile) { - @include box-sizing(border-box); - display: block; - width: 115px; - max-width: inherit; - padding-bottom: 0; - } - } - - .tag-label { - display: block; - float: left; - @include icon($i-tag); - padding: 1px 8px 0 8px; - @include transition; - - &:hover { - cursor: pointer; - color: $lightgrey; - } - - &.touch { - color: inherit; - } - } - - input[type="text"].tag-input { - display: inline-block; - padding: 0; - vertical-align: top; - color: $lightgrey; - font-weight: 300; - background: transparent; - border: none; - - &:focus { - outline: none; - } - } - - .tag { - @include icon-after($i-x, 8px, $darkgrey) { - margin-left: 4px; - vertical-align: 10%; - text-shadow: rgba(255,255,255,0.15) 0 1px 0; - @include transition; - } - display: inline; - margin-right: 5px; - padding: 0 5px; - color: $lightgrey; - white-space: nowrap; - background: lighten($grey, 15%); - border-radius: $rounded; - box-shadow: - rgba(255,255,255,0.2) 0 1px 0 inset, - #000 0 1px 3px; - - @include user-select(none); - - &:hover { - cursor: pointer; - @include icon-after($i-x, 8px, $lightgrey) { - margin-left: 4px; - vertical-align: 10%; - text-shadow: none; - } - - } - } -} - -.suggestions { - @extend %menu; - bottom: 100%; - - li.selected{ - background: $blue; - box-shadow: - rgba(255,255,255,0.2) 0 1px 0 inset, - rgba(0,0,0,0.5) 0 1px 5px; - } - - li a { - padding-left: 25px; - } - - mark{ - background: none; - color: white; - font-weight: bold; - } - -} - -#entry-controls { - @include box-sizing(border-box); - display: inline-block; - position: relative; - padding: 0; - z-index: 1; - - &.unsaved { - .post-settings-menu { - padding-bottom: 0; - - .post-setting:nth-child(3) td { - border-bottom: none; - } - - .delete { - display: none; - } - } - } -} - -#entry-actions { - margin-right: 6px; - position: relative; -} - -#entry-actions-menu { - position: absolute; - bottom: 50px; - right: -5px; -} - -/* ============================================================================= - Markdown Help Modal - ============================================================================= */ - -.markdown-help-container{ - padding-bottom: 20px; -} - -.modal-markdown-help-table { - margin-top: 0; -} - - -/* ============================================================================= - CodeMirror - ============================================================================= */ - -.CodeMirror { - /* Set height, width, borders, and global font properties here */ - font-family: monospace; - height: 300px; -} - -.CodeMirror-scroll { - /* Set scrolling behaviour here */ - overflow: auto; -} - -/* PADDING */ - -.CodeMirror-lines { - padding: 4px 0; /* Vertical padding around content */ -} - -.CodeMirror pre { - padding: 0 4px; /* Horizontal padding of content */ -} - -.CodeMirror-scrollbar-filler { - background-color: white; /* The little square between H and V scrollbars */ -} - -/* GUTTER */ - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; -} - -/* CURSOR */ - -.CodeMirror div.CodeMirror-cursor { - border-left: 1px solid black; - z-index: 3; -} -/* Shown when moving in bi-directional text */ -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver; -} - - -.cm-tab { display: inline-block; } - -/* DEFAULT THEME */ - -.cm-s-default .cm-keyword {color: #708;} -.cm-s-default .cm-atom {color: #219;} -.cm-s-default .cm-number {color: #164;} -.cm-s-default .cm-def {color: #00f;} -.cm-s-default .cm-variable {color: black;} -.cm-s-default .cm-variable-2 {color: #05a;} -.cm-s-default .cm-variable-3 {color: #085;} -.cm-s-default .cm-property {color: black;} -.cm-s-default .cm-operator {color: black;} -.cm-s-default .cm-comment {color: #a50;} -.cm-s-default .cm-string {color: #a11;} -.cm-s-default .cm-string-2 {color: #f50;} -.cm-s-default .cm-meta {color: #555;} -.cm-s-default .cm-error {color: #f00;} -.cm-s-default .cm-qualifier {color: #555;} -.cm-s-default .cm-builtin {color: #30a;} -.cm-s-default .cm-bracket {color: #997;} -.cm-s-default .cm-tag {color: #170;} -.cm-s-default .cm-attribute {color: #00c;} -.cm-s-default .cm-header {color: blue;} -.cm-s-default .cm-quote {color: #090;} -.cm-s-default .cm-hr {color: #999;} -.cm-s-default .cm-link {color: #00c;} - -.cm-negative {color: #d44;} -.cm-positive {color: #292;} -.cm-header, .cm-strong {font-weight: bold;} -.cm-em {font-style: italic;} -.cm-link {text-decoration: underline;} - -.cm-invalidchar {color: #f00;} - -/* STOP */ - -/* The rest of this file contains styles related to the mechanics of - the editor. You probably shouldn't touch them. */ - -.CodeMirror { - line-height: 1; - position: relative; - overflow: hidden; - background: white; - color: black; -} - -.CodeMirror-scroll { - /* 30px is the magic margin used to hide the element's real scrollbars */ - /* See overflow: hidden in .CodeMirror */ - margin-bottom: -30px; margin-right: -30px; - padding-bottom: 30px; padding-right: 30px; - height: 100%; - outline: none; /* Prevent dragging from highlighting the element */ - position: relative; -} -.CodeMirror-sizer { - position: relative; -} - -/* The fake, visible scrollbars. Used to force redraw during scrolling - before actuall scrolling happens, thus preventing shaking and - flickering artifacts. */ -.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler { - position: absolute; - z-index: 6; - display: none; -} - -.CodeMirror-vscrollbar { - right: 0; top: 0; - overflow-x: hidden; - overflow-y: scroll; -} - -.CodeMirror-hscrollbar { - bottom: 0; left: 0; - overflow-y: hidden; - overflow-x: scroll; -} - -.CodeMirror-scrollbar-filler { - right: 0; bottom: 0; - z-index: 6; -} - -.CodeMirror-gutters { - position: absolute; left: 0; top: 0; - height: 100%; - padding-bottom: 30px; - z-index: 3; -} - -.CodeMirror-lines { - cursor: text; -} - -.CodeMirror pre { - /* Reset some styles that the rest of the page might have set */ - -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; -} - -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal; -} - -.CodeMirror-wrap .CodeMirror-scroll { - overflow-x: hidden; -} - -.CodeMirror-measure { - position: absolute; - width: 100%; height: 0px; - overflow: hidden; - visibility: hidden; -} - -.CodeMirror-measure pre { position: static; } - -.CodeMirror div.CodeMirror-cursor { - position: absolute; - visibility: hidden; - border-right: none; - width: 0; -} - -.CodeMirror-focused div.CodeMirror-cursor { - visibility: visible; -} - -.CodeMirror-selected { background: #d9d9d9; } -.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } - -/* IE7 hack to prevent it from returning funny offsetTops on the spans */ -.CodeMirror span { *vertical-align: text-bottom; } - -@media print { -/* Hide the cursor when printing */ - .CodeMirror div.CodeMirror-cursor { - visibility: hidden; - } -} diff --git a/ghost/admin/assets/sass/layouts/errors.scss b/ghost/admin/assets/sass/layouts/errors.scss deleted file mode 100644 index e9a0b85d8c..0000000000 --- a/ghost/admin/assets/sass/layouts/errors.scss +++ /dev/null @@ -1,107 +0,0 @@ -/* - * These styles control elements specific to the error screens - * - * Table of Contents: - * - * General - * 404 - */ - -/* ============================================================================= - General - ============================================================================= */ -.error-content { - max-width: 530px; - margin: 0 auto; - padding: 0; - display: table; - height: 100%; - - @include breakpoint(630px) { - max-width: 264px; - text-align: center; - } -} - -.error-details { - display: table-cell; - vertical-align: middle; -} - -.error-image { - display: inline-block; - vertical-align: middle; - width: 96px; - height: 150px; - - @include breakpoint(630px) { - width: 72px; - height: 112px; - } - - img { - width: 100%; - height: 100%; - } -} - -.error-message { - position: relative; - top: -5px; - display: inline-block; - vertical-align: middle; - margin-left: 10px; -} - -.error-code { - margin: 0; - font-size: 7.8em; - line-height: 0.9em; - color: #979797; - - @include breakpoint(630px) { - font-size: 5.8em; - } -} - -.error-description { - margin: 0; - padding: 0; - font-weight: 300; - font-size: 1.9em; - color: #979797; - border: none; - - @include breakpoint(630px) { - font-size: 1.4em; - } -} - -.error-stack { - margin: 1em auto; - padding: 2em; - max-width: 800px; - background-color: rgba(255,255,255,0.3); -} - -.error-stack-list { - list-style-type: none; - padding: 0; - margin: 0; -} - -.error-stack-list li { - display: block; - - &::before { - color: #BBB; - content: "\21AA"; - display: inline-block; - font-size: 1.2em; - margin-right: 0.5em; - } -} - -.error-stack-function { - font-weight: bold; -} \ No newline at end of file diff --git a/ghost/admin/assets/sass/layouts/manage.scss b/ghost/admin/assets/sass/layouts/manage.scss deleted file mode 100644 index fa6f6d2af1..0000000000 --- a/ghost/admin/assets/sass/layouts/manage.scss +++ /dev/null @@ -1,291 +0,0 @@ -/* - * These styles control elements specific to the manage posts screen - * used for previewing and reading existing content in Ghost. - * - * Table of Contents: - * - * Manage - * Preview - * - */ - - -/* ============================================================================= - Manage - ============================================================================= */ - -.manage { - .content-view-container { - position: relative; - height: 100%; - width: 100%; - - @include breakpoint($tablet) { - overflow-x: hidden; - } - } - .content-list { - @include box-sizing(border-box); - width: 35%; - padding: 15px; - position: absolute; - bottom:0; - top:0; - left:0; - border-right:$lightbrown 2px solid; - background: #fff; - box-shadow: $shadow; - - @include breakpoint($tablet) { - width:auto; - right:0; - z-index: 500; - border:none; - } - - - .content-filter { - position:relative; - z-index: 300; - > a { - padding: 5px; - margin-left:-5px; - } - - .menu-drop { - display: block; - } - } - - .button-add { - @include icon($i-add); - position:absolute; - top:10px; - right:15px; - z-index: 700; - color: #fff; - padding-left:5px; - } - - - .content-list-content { - position:absolute; - top:0; - right:0; - bottom:0; - left:0; - overflow: auto; - padding-top: 40px; - } - - .entry-title { - font-size: 1.4em; - line-height:1.1em; - margin-bottom:0.5em; - font-weight: normal; - } - - .views { - @include icon($i-stats, 10px, $brown); - float:right; - text-align: right; - margin-left:15px; - @include breakpoint($tablet) { - float:none; - } - } - - .featured .status { - @include icon($i-featured, 11px) { - margin-right: 10px; - vertical-align: 7%; - }; - } - - .status .draft { - color: $red; - } - .status .scheduled { - color: $orange; - } - - - ol { - list-style: none; - padding:0; - margin:0; - border-top: $lightbrown 1px solid; - - li { - margin:0; - padding: 0; - border-bottom: $lightbrown 1px solid; - position:relative; - - a { - - display:block; - padding:20px 15px; - color: $brown; - @include breakpoint($mobile) { padding:15px; } - @include breakpoint($tablet) { padding-right: 40px; } - - @include icon-after($i-chevron) { - position:absolute; - top:50%; - margin-top:-6px; - right:15px; - } - @include breakpoint($biggerthan-tablet) { &::after {display: none} } - - &:hover { text-decoration: none; } - - } - - }//li - - li.active { - @include breakpoint($biggerthan-tablet) { - // only apply active styles on larger devices - - border-bottom: lighten($midgrey, 40%) 1px solid; - background: lighten($midgrey, 45%); - box-shadow: - lighten($midgrey, 40%) 0 -1px 0, // top border - rgba(0,0,0,0.06) 7px 0 0 inset, // big left border - lighten($midgrey, 40%) 1px 0 0 inset; // small left border - - a:hover { - box-shadow: rgba(0,0,0,0.1) 7px 0 0 inset; - @include transition(all 0.4s ease); - } - - .entry-title { font-weight: bold; } - .entry-meta { color: $darkgrey; } - - .views { - @include icon($i-stats, 10px, $darkgrey); - color: $darkgrey; - font-weight: normal; - } - - } - }//li.active - } - - }//.content-list - - -/* ============================================================================= - Preview - ============================================================================= */ - - .content-preview { - @include box-sizing(border-box); - width: 65%; - padding: 15px; - position: absolute; - bottom:0; - top:0; - right:0; - border-left:$lightbrown 2px solid; - background: #fff; - box-shadow: $shadow; - @include breakpoint($tablet) { - width: auto; - left: 100%; - right: -100%; - margin-left: 15px; - border:none; - } - - .unfeatured { - @include icon($i-unfeatured, 14px); - vertical-align: -6%; - margin: 0 7px 0 -5px; - padding: 5px; - } - .featured { - @include icon($i-featured, 14px); - vertical-align: -6%; - margin: 0 7px 0 -5px; - padding: 5px; - } - - .normal { - text-transform: none; - margin:0 3px; - } - - .content-preview-content { - position: absolute; - top:0; - right:0; - bottom:0; - left:0; - overflow: auto; - padding: 80px 40px; - word-break: break-word; - hyphens: auto; - - .wrapper { - max-width: 700px; - margin:0 auto; - } - } - - .post-controls { - float:right; - position: relative; - } - - .post-settings-menu { - position: absolute; - top: 35px; - right: -3px; - } - - .post-edit { - @include icon($i-edit, 14px); - margin-right:7px; - padding: 5px; - } - - img { - width:100%; - height:auto; - } - - }//.preview-post - - .no-posts-box { - position: relative; - height: 90%; - margin: 0px auto; - padding: 0px; - display: table; - z-index: 600; - @include breakpoint($tablet) { - position: fixed; - top: 45%; - left: 50%; - } - - .no-posts { - vertical-align: middle; - display: table-cell; - text-align: center; - @include breakpoint($tablet) { - display: block; - position: relative; - left: -50%; - } - - h3 { - color: $brown; - font-weight: 200; - font-size: 2em; - } - } - }//.no-posts-box -}//.manage diff --git a/ghost/admin/assets/sass/layouts/plugins.scss b/ghost/admin/assets/sass/layouts/plugins.scss deleted file mode 100644 index f3ff6151ab..0000000000 --- a/ghost/admin/assets/sass/layouts/plugins.scss +++ /dev/null @@ -1,181 +0,0 @@ -/* ============================================================================= - Plugins - ============================================================================= */ - -.settings { - - .plugin-section { - padding-bottom: 20px; - } - - .plugin-section-header { - h3 { - margin: 15px 0; - font-size: 1.1em; - font-weight: normal; - color: $brown; - } - } - - .plugin-section-footer { - text-align: right; - } - - .button-update-all { - @include icon($i-lightning, 1em, #FFC125) { - margin-right: 5px; - }; - } - - .button-cancel { - @include icon($i-x, 1em, #fff) { - margin-right: 5px; - }; - } - - .plugin-section-table { - margin-top: 5px; - - tbody > tr:nth-child(odd) > td { - background: none; - } - - .plugin-section-item { - - &.inactive { - .plugin-meta { - opacity: 0.4; - } - - td:last-child { - .plugin-meta { - opacity: 1; - } - } - } - - td { - padding: 20px 0; - border-bottom:$lightbrown 1px solid; - - &:first-child { - padding-left: 0px; - border-top:$lightbrown 1px solid; - - .plugin-meta { - padding: 0px; - width: 75%; - border-left: none; - text-align: left; - } - } - - &:last-child { - .plugin-meta { - padding: 0px; - text-align: right; - } - } - } - } - - .plugin-icon { - display: inline-block; - width: 40px; - height: 40px; - margin-right: 15px; - background: #FFC125; - border-radius: 5px; - vertical-align: middle; - - img { - width: 100%; - } - } - - .plugin-meta { - @include box-sizing(border-box); - display: inline-block; - width: 100%; - height: 100%; - padding: 0 20px; - vertical-align: middle; - border-left: $lightbrown 1px solid; - text-align: center; - } - - .plugin-info { - display: block; - color: lighten($grey, 5%); - font-size: 1.2em; - font-weight: normal; - vertical-align: top; - } - - .plugin-title { - color: $grey; - } - - .plugin-sub-info { - display: block; - color: $midgrey; - } - - .plugin-download-progress { - position: relative; - display: block; - height: 6px; - margin-top: 10px; - background: $lightbrown; - border-radius: 3px; - - > span { - position: absolute; - left: 0; - top: 0; - content: ""; - height: 100%; - background-color: $blue; - border-radius: 3px; - } - } - - .rating { - - unicode-bidi: bidi-override; - text-align: center; - - > span { - display: inline-block; - position: relative; - width: 1.1em; - height: 1.1em; - font-size: 0.8em; - - &:before { - content: "\2605"; - position: absolute; - left: 0; - opacity: 0.5; - } - - &.active { - &:before { - content: "\2605"; - opacity: 1; - } - } - } - - } - - .plugin-settings-icon { - display: block; - margin-top: 9px; - font-size: 1.4em; - @include icon($i-settings, 1em, $grey); - } - - } //.plugin-section-table - -} //.settings \ No newline at end of file diff --git a/ghost/admin/assets/sass/layouts/settings.scss b/ghost/admin/assets/sass/layouts/settings.scss deleted file mode 100644 index ba429b5a4f..0000000000 --- a/ghost/admin/assets/sass/layouts/settings.scss +++ /dev/null @@ -1,325 +0,0 @@ -/* - * These styles control elements specific to the settings screen - * used for configuring your Ghost install. - * - * Table of Contents: - * - * General - * Sidebar - * Content - * - */ - - -/* ============================================================================= - Settings - ============================================================================= */ - -.settings { - // The main white bg for the page - .wrapper { - background: #fff; - box-shadow: $shadow; - position: relative; - width: 100%; - height: 100%; - margin:0; - padding:0; - - @include breakpoint($tablet) { - overflow-x: hidden; - } - } - - .title { - text-transform: uppercase; - font-weight: normal; - font-size: 1.6em; - line-height: 0.8em; - margin:0 0 18px 0; - padding:0; - border: none; - } - - -/* ============================================================================= - Sidebar - ============================================================================= */ - - //The whole left column sidebar, duh. - .settings-sidebar { - width:20%; - position:absolute; - top:0; - left:0; - bottom:0; - z-index: 700; - background: #fff; - box-shadow: $lightbrown 1px 0 0; - @include breakpoint($tablet) { - width:100%; - box-shadow: none; - } - - > header { - position: relative; - z-index: 400; - height: 17px; - padding: 30px 15px 30px 40px; - margin-bottom: 0; - border-bottom: none; - box-shadow: #edece4 0 -1px 0 inset, #edece4 1px 0 0; - //Transparent gradient to make bg fade out as it goes out the top. - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(25%,rgba(255,255,255,1)), color-stop(100%,rgba(255,255,255,0.90))); - background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 25%,rgba(255,255,255,0.90) 100%); - background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 25%,rgba(255,255,255,0.90) 100%); - - @include breakpoint($netbook) { - padding-left: 15px; - }; - } - }//.settings-sidebar - - //Main settings-menu styles, apply to every item - .settings-menu { - position:absolute; - top: 0; - left:0; - bottom:0; - right:-1px; - overflow: auto; - @include breakpoint($tablet) { right:0; }; - - // Create placeholder the same height as the floating header - // to push content down by the same amount - &:before { - display: block; - content: ""; - height: 77px; //30px + 17px title + 30px - } - - ul { - border-top:none; - @include breakpoint($tablet) { border-bottom: #edece4 1px solid; } - } - - li { - margin-right:1px; - border-top: #fff 1px solid; - @include breakpoint($tablet) { - margin-right:0; - border-top: #edece4 1px solid; - } - - a { - padding:15px 15px 15px 40px; - border-bottom:none; - @include breakpoint($netbook) { padding-left: 15px; } - @include breakpoint($tablet) { - @include icon-after($i-chevron) {float:right;margin-top:5px;}; - } - } - - &:first-child { border-top: none; } - &:first-child.active { border-top:none; } - - &.active { - @include breakpoint($biggerthan-tablet) { - // only apply active styles on larger devices - - margin-right:0; - position:relative; - z-index: 300; - border-top: #edece4 1px solid; - box-shadow: - #fff 1px 0 0, - #edece4 0 1px 0; - @include transition; - - a { - color: $darkgrey; - font-weight: bold; - background: #fff; - - } - - } - }//.active - - }//li - - // Give all icons some space - li a:before { - margin-right: 20px; - @include breakpoint($netbook) { - margin-right: 15px; - } - } - - // Add the icons for specific menu items - .general a { @include icon($i-settings) } - .publishing a { @include icon($i-content) } - .services a { @include icon($i-services) } - .users a { @include icon($i-users) } - .appearance a { @include icon($i-appearance) } - .apps a { @include icon($i-plugins) } - - }//.settings-menu - - -/* ============================================================================= - Content - ============================================================================= */ - - // The main content panel on the right - .settings-content { - padding:0; - position:absolute; - top:0; - right:0; - left:20%; - bottom:0; - background: #fff; - - @include breakpoint($tablet) { - display: none; - width: 100%; - left: 100%; - right: -100%; - margin-left: 15px; - } - - img { - max-width: 100%; - } - - display: none; - &.active {display:block;} - - > header { - position: relative; - z-index: 200; - height: 17px; - padding: 30px 220px 29px 40px; - border-bottom:$lightbrown 1px solid; - margin-bottom:40px; - text-transform: none; - font-weight: normal; - line-height: inherit; - color: inherit; - //Transparent gradient to make bg fade out as it goes out the top. - background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 25%, rgba(255,255,255,0.90) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(25%,rgba(255,255,255,1)), color-stop(100%,rgba(255,255,255,0.90))); - background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 25%,rgba(255,255,255,0.90) 100%); - background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 25%,rgba(255,255,255,0.90) 100%); - background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 25%,rgba(255,255,255,0.90) 100%); - background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(255,255,255,1) 25%,rgba(255,255,255,0.90) 100%); - - @include breakpoint($netbook) { padding-left:15px; } - @include breakpoint($tablet) { padding-left:115px; } - @include breakpoint($letterbox) { - height: auto; - padding: 5px; - position: absolute; - top:0; - right:0; - border:none; - background: transparent; - - .title { display:none; } - } - @include breakpoint(650px) { - padding-left:15px; - - .button-back { - position: fixed; - top: 5px; - left: 14px; - min-height: 0; - height: 30px; - - &:before { - left: -9px; - border-width: 15px 9px 15px 0; - } - } - } - - }//header - - .page-actions { - position:absolute; - top:20px; - right:40px; - z-index: 700; - font-size: 1em; - - @include breakpoint($netbook) { right:15px; } - @include breakpoint(650px) { - position: fixed; - top: 5px; - right: 4px; - - button { - min-height: 0; - height: 30px; - padding: 0.5em 1.37em; - } - } - - .button-add { - position:relative; - padding-left:50px; - @include icon($i-add, 1.4em, rgba(255,255,255,0.6)) { - position: absolute; - top:0; - padding:9px 8px 0 0; - left:9px; - bottom:0; - width: 20px; - border-right: darken($green, 8%) 1px solid; - }; - } - } - - .content { - position: absolute; - top:0; - right:0; - left:0; - bottom:0; - padding:40px; - overflow: auto; - -webkit-overflow-scrolling: touch; - - // Create placeholder the same height as the floating header - // to push content down by the same amount - &:before { - display: block; - content: ""; - height: 77px; //30px + 17px title + 30px - @include breakpoint($letterbox) { display: none; } - } - - &.no-padding { - padding: 0; - } - - @include breakpoint($netbook) { padding-left:15px; } - @include breakpoint(550px) { padding: 0 15px 40px; } - } - - .description-container, .bio-container { - max-width: 370px; - } - - .word-count { - margin-right: 30px; - float: right; - font-weight: bold; - color: darken($brown, 5%); - } - - }//.settings-content - -}//.settings diff --git a/ghost/admin/assets/sass/layouts/users.scss b/ghost/admin/assets/sass/layouts/users.scss deleted file mode 100644 index 4d45c1f6c8..0000000000 --- a/ghost/admin/assets/sass/layouts/users.scss +++ /dev/null @@ -1,245 +0,0 @@ -/* ============================================================================= - Users List - ============================================================================= */ - -.settings { - - .user-group-header { - margin-bottom: 0px; - padding-bottom: 20px; - border: 0 none; - border-bottom: 1px solid darken($lightbrown, 10%); - - h3 { - display: inline-block; - margin: 0; - color: $midbrown; - font-weight: normal; - font-size: 1.1em; - line-height: 1em; - } - - } - - .user-search { - display: inline-block; - float: right; - - label { margin: 0} - - &:hover .user-search-input, .user-search-input:focus { - width: 260px; - padding: 0 10px; - } - - .user-search-input { - @include box-sizing(border-box); - width: 0px; - padding: 0; - border: none; - border-bottom: lighten($lightbrown, 2%) 1px solid; - @include transition(width 0.2s ease-in-out); - box-shadow: none; - } - - .search-icon { - @include icon($i-search, 1em, $midbrown); - } - } - - .users { - padding: 0px; - margin-top: 0px; - list-style: none; - } - - .user { - @include box-sizing(border-box); - display: block; - width: 100%; - padding: 20px; - border: 0 none; - border-top: 1px solid $lightgrey; - - &:first-child { - border: none; - } - - .user-image { - display: inline-block; - width: 40px; - height: 40px; - margin-right: 17px; - vertical-align: middle; - background-color: $lightbrown; - border-radius: 20px; - - &.invite { - @include box-sizing(border-box); - padding-top: 8px; - text-align: center; - @include icon($i-mail, 1em, $brown); - } - - img { - width: 40px; - height: 40px; - border-radius: 20px; - } - } - - .user-meta { - display: inline-block; - vertical-align: middle; - } - - .user-name { - margin: 0; - margin-top: 0.4em; - font-weight: 400; - font-size: 1.2em; - line-height: 1em; - } - - .user-last-seen { - line-height: 1em; - } - - } - - .user-role { - padding: 2px 8px; - float: right; - font-size: 0.8em; - color: #fff; - text-transform: uppercase; - - &.admin { - background-color: #DE523A; - } - &.editor { - background-color: #4A8CBD; - } - } - -/* ============================================================================= - User Profile - ============================================================================= */ - - .user-profile-header { - position: relative; - - // Gradient overlay - &:after { - content: ""; - position: absolute; - left: 0; - right: 0; - bottom: 0; - height: 110px; - @include linear-gradient( rgba(0,0,0,0), rgba(0,0,0,0.3) ); - } - } - - .cover-image { - display: block; - line-height: 0; - width: 100%; - height: auto; - min-height: 180px; - } - - .edit-cover-image { - position: absolute; - right: 40px; - bottom: 38px; - background: rgba(0,0,0,0.3); - border-radius: 0; - color: rgba(255,255,255,0.8); - z-index: 2; - border-radius: $rounded; - @include transition( - color 0.3s ease, - background 0.3s ease - ); - @include breakpoint($netbook) { right: 15px;} - - &:hover { - color: #fff; - background: rgba(0,0,0,0.5); - } - } - - .user-profile { - position: relative; - top: -100px; - z-index: 1; - - fieldset { - padding: 0 40px; - } - } - - fieldset.user-details-top { - margin-bottom: 0; - padding: 10px 0 0 0; - - p { - color: #fff; - } - } - - .user-image { - @include box-sizing(border-box); - display: block; - position: relative; - width: 120px; - height: 120px; - float: left; - margin-left: 40px; - margin-right: 20px; - text-align: center; - border-radius: 100%; - overflow: hidden; - border: 5px solid #fff; - background: #fff; - z-index: 2; - - .img { - display: block; - width: 110px; - height: 110px; - background-size: cover; - background-position: center center; - border-radius: 100%; - } - - &:hover { - .edit-user-image { - opacity: 1; - } - } - } - - .edit-user-image { - @include position(absolute, 0px 0px 0px 0px); - border-radius: 100%; - background: rgba(0,0,0,0.5); - opacity: 0; - color: #fff; - line-height: 105px; - text-transform: uppercase; - text-decoration: none; - @include transition(opacity 0.3s ease); - } - - #user-name { - border-color: #fff; - } - - .user-details-bottom { - padding: 0 40px; - margin: -30px 0 0 0; - } - -} //.settings diff --git a/ghost/admin/assets/sass/modules/animations.scss b/ghost/admin/assets/sass/modules/animations.scss deleted file mode 100644 index b9fb4e8a79..0000000000 --- a/ghost/admin/assets/sass/modules/animations.scss +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Specific styles for re-usable animations in Ghost admin. - * - * Table of Contents: - * - * - */ - - -/* ============================================================================= - General - ============================================================================= */ - -@-webkit-keyframes off-canvas { - 0% { left:0; } - 100% { left:300px; } -} -@-moz-keyframes off-canvas { - 0% { opacity: 0; } - 100% { opacity: 1; } -} -@-o-keyframes off-canvas { - 0% { opacity: 0; } - 100% { opacity: 1; } -} -@keyframes off-canvas { - 0% { opacity: 0; } - 100% { opacity: 1; } -} - -@include keyframes(fadeIn) { - from { - opacity: 0; - } - to { - opacity: 1; - } -} - diff --git a/ghost/admin/assets/sass/modules/breakpoint.scss b/ghost/admin/assets/sass/modules/breakpoint.scss deleted file mode 100644 index cb6a9dfa69..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint.scss +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Breakpoint Sass 2.0.6 - * Last updated: July 2013 - * Copyright: Mason Wendell 2012 - MIT Licensed - * Source: https://github.com/canarymason/breakpoint - */ - -////////////////////////////// -// Default Variables -////////////////////////////// -// Default Features -$breakpoint-default-media: all !default; -$breakpoint-default-feature: min-width !default; -$breakpoint-default-pair: width !default; - -// Default Transforms -$breakpoint-force-media-all: false !default; -$breakpoint-to-ems: false !default; -$breakpoint-resolutions: true !default; - -// Default No Query Options -$breakpoint-no-queries: false !default; -$breakpoint-no-query-fallbacks: false !default; - -// Deftault Base Font Size -$breakpoint-base-font-size: 16px !default; - -// Legacy Syntax Support -$breakpoint-legacy-syntax: false !default; - -////////////////////////////// -// Imports -////////////////////////////// -@import 'breakpoint/context'; -@import 'breakpoint/helpers'; -@import 'breakpoint/parsers'; -@import 'breakpoint/no-query'; - -@import 'breakpoint/respond-to'; - -////////////////////////////// -// Breakpoint Mixin -////////////////////////////// - -@mixin breakpoint($query, $no-query: false) { - // Internal Variables - $query-string: ''; - - // Reset contexts - @include private-breakpoint-reset-contexts(); - - // Test to see if it's a comma-separated list - $or-list: is-breakpoint-list($query); - $query-fallback: false; - - - @if ($or-list != false and $breakpoint-legacy-syntax == false) { - $length: length($query); - - $last: nth($query, $length); - $query-fallback: breakpoint-no-query($last); - - @if ($query-fallback != false) { - $length: $length - 1; - } - - - @for $i from 1 through $length { - @if $i == 1 { - $query-string: breakpoint-parse(nth($query, $i)); - } - @else { - $query-string: $query-string + ', ' + breakpoint-parse(nth($query, $i)); - } - } - } - @else { - @if ($breakpoint-legacy-syntax == true) { - $length: length($query); - - $last: nth($query, $length); - $query-fallback: breakpoint-no-query($last); - - @if ($query-fallback != false) { - $length: $length - 1; - } - - $mq: (); - - @for $i from 1 through $length { - $mq: append($mq, nth($query, $i), comma); - } - - $query-string: breakpoint-parse($mq); - } - @else { - $query-string: breakpoint-parse($query); - } - } - - // Allow for an as-needed override or usage of no query fallback. - @if $no-query != false { - $query-fallback: $no-query; - } - - - // Print Out Query String - @if not $breakpoint-no-queries { - @media #{$query-string} { - @content; - } - } - - @if $breakpoint-no-query-fallbacks != false { - - $type: type-of($breakpoint-no-query-fallbacks); - $print: false; - - @if ($type == 'bool') { - $print: true; - } - @else if ($type == 'string') { - @if $query-fallback == $breakpoint-no-query-fallbacks { - $print: true; - } - } - @else if ($type == 'list') { - @each $wrapper in $breakpoint-no-query-fallbacks { - @if $query-fallback == $wrapper { - $print: true; - } - } - } - - // Write Fallback - @if ($query-fallback != false) and ($print == true) { - $type-fallback: type-of($query-fallback); - - @if ($type-fallback != 'bool') { - #{$query-fallback} & { - @content; - } - } - @else { - @content; - } - } - } - - @include private-breakpoint-reset-contexts(); -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/_context.scss b/ghost/admin/assets/sass/modules/breakpoint/_context.scss deleted file mode 100755 index cf645257ce..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/_context.scss +++ /dev/null @@ -1,133 +0,0 @@ -////////////////////////////// -// Private Breakpoint Variables -////////////////////////////// -$private-breakpoint-context-holder: (); -$private-breakpoint-context-placeholder: 0; - -////////////////////////////// -// Breakpoint Has Context -// Returns whether or not you are inside a Breakpoint query -////////////////////////////// -@function breakpoint-has-context() { - @if length($private-breakpoint-context-placeholder) { - @return true; - } - @else { - @return false; - } -} - - -////////////////////////////// -// Breakpoint Get Context -// $feature: Input feature to get it's current MQ context. Returns false if no context -////////////////////////////// -@function breakpoint-get-context($feature) { - @each $context in $private-breakpoint-context-holder { - @if $feature == nth($context, 1) { - // strip feature name - $values: (); - @for $i from 2 through length($context) { - $values: append($values, nth($context, $i), comma); - } - - $length: length($values) + 1; - @for $i from $length through $private-breakpoint-context-placeholder { - // Apply the Default Media type if feature is media - @if $feature == 'media' { - $values: append($values, $breakpoint-default-media, comma); - } - @else { - $values: append($values, false, comma); - } - } - - @return $values; - } - } - - @return false; -} - -////////////////////////////// -// Private function to set context -////////////////////////////// -@function private-breakpoint-set-context($feature, $value) { - @if $value == 'monochrome' { - $feature: 'monochrome'; - } - - $placeholder-plus-one: ($private-breakpoint-context-placeholder + 1); - - $holder: (); - - @if $private-breakpoint-context-placeholder == 1 { - $holder: ($feature $value); - $private-breakpoint-context-holder: append($private-breakpoint-context-holder, $holder, comma); - @return true; - - } @else { - $feature-used: false; - @each $context in $private-breakpoint-context-holder { - @if nth($context, 1) == $feature { - $feature-used: $context; - } - } - - @if $feature-used != false { - $holder: $feature; - @for $i from 2 through $placeholder-plus-one { - @if $i <= length($feature-used) { - $holder: append($holder, nth($feature-used, $i), space); - } @elseif $i < $placeholder-plus-one { - $holder: append($holder, false, space); - } @else { - $holder: append($holder, $value, space); - } - } - } - @elseif $feature-used == false { - $holder: $feature; - @for $i from 2 through $placeholder-plus-one { - @if $i < $placeholder-plus-one { - // Apply the Default Media type if feature is media - @if $feature == 'media' { - $holder: append($holder, $breakpoint-default-media, space); - } - @else { - $holder: append($holder, false, space); - } - - } @else { - $holder: append($holder, $value, space); - } - } - } - - // Rebuild context - $rebuild: (); - @if $feature-used != false { - @each $context in $private-breakpoint-context-holder { - @if nth($context, 1) == nth($holder, 1) { - $rebuild: append($rebuild, $holder, comma); - } @else { - $rebuild: append($rebuild, $context, comma); - } - } - - } @else { - $rebuild: append($private-breakpoint-context-holder, $holder, comma); - } - $private-breakpoint-context-holder: $rebuild; - } - - @return true; -} - -////////////////////////////// -// Private function to reset context -////////////////////////////// -@mixin private-breakpoint-reset-contexts { - $private-breakpoint-context-holder: (); - $private-breakpoint-context-placeholder: 0; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/_helpers.scss b/ghost/admin/assets/sass/modules/breakpoint/_helpers.scss deleted file mode 100755 index 7a3dede620..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/_helpers.scss +++ /dev/null @@ -1,151 +0,0 @@ -////////////////////////////// -// Converts the input value to Base EMs -////////////////////////////// -@function breakpoint-to-base-em($value) { - $value-unit: unit($value); - - // Will convert relative EMs into root EMs. - @if $breakpoint-base-font-size and type-of($breakpoint-base-font-size) == 'number' and $value-unit == 'em' { - $base-unit: unit($breakpoint-base-font-size); - - @if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' { - @return base-conversion($value) / base-conversion($breakpoint-base-font-size) * 1em; - } - @else { - @warn '#{$breakpoint-base-font-size} is not set in valid units for font size!'; - @return false; - } - } - @else { - @return base-conversion($value); - } -} - -@function base-conversion($value) { - $unit: unit($value); - - @if $unit == 'px' { - @return $value / 16px * 1em; - } - @else if $unit == '%' { - @return $value / 100% * 1em; - } - @else if $unit == 'em' { - @return $value; - } - @else if $unit == 'pt' { - @return $value / 12pt * 1em; - } - @else { - @return $value; -// @warn 'Everything is terrible! What have you done?!'; - } -} - -////////////////////////////// -// Returns whether the feature can have a min/max pair -////////////////////////////// -$breakpoint-min-max-features: 'color', - 'color-index', - 'aspect-ratio', - 'device-aspect-ratio', - 'device-height', - 'device-width', - 'height', - 'monochrome', - 'resolution', - 'width'; - -@function breakpoint-min-max($feature) { - @each $item in $breakpoint-min-max-features { - @if $feature == $item { - @return true; - } - } - @return false; -} - -////////////////////////////// -// Returns whether the feature can have a string value -////////////////////////////// -$breakpoint-string-features: 'orientation', - 'scan', - 'color', - 'aspect-ratio', - 'device-aspect-ratio', - 'pointer', - 'luminosity'; - -@function breakpoint-string-value($feature) { - @each $item in $breakpoint-string-features { - @if breakpoint-min-max($item) { - @if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' { - @return true; - } - } - @else if $feature == $item { - @return true; - } - } - @return false; -} - -////////////////////////////// -// Returns whether the feature is a media type -////////////////////////////// -$breakpoint-media-types: 'all', - 'braille', - 'embossed', - 'handheld', - 'print', - 'projection', - 'screen', - 'speech', - 'tty', - 'tv'; - -@function breakpoint-is-media($feature) { - @each $media in $breakpoint-media-types { - @if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') { - @return true; - } - } - - @return false; -} - -////////////////////////////// -// Returns whether the feature can stand alone -////////////////////////////// -$breakpoint-single-string-features: 'color', - 'color-index', - 'grid', - 'monochrome'; - -@function breakpoint-single-string($feature) { - @each $item in $breakpoint-single-string-features { - @if $feature == $item { - @return true; - } - } - @return false; -} - -////////////////////////////// -// Returns whether the feature -////////////////////////////// -@function breakpoint-is-resolution($feature) { - $resolutions: 'device-pixel-ratio', 'dpr'; - - @if $breakpoint-resolutions { - $resolutions: append($resolutions, 'resolution'); - } - - @each $reso in $resolutions { - @if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') { - @return true; - } - } - - @return false; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/_no-query.scss b/ghost/admin/assets/sass/modules/breakpoint/_no-query.scss deleted file mode 100755 index 0b5a81f697..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/_no-query.scss +++ /dev/null @@ -1,15 +0,0 @@ -@function breakpoint-no-query($query) { - @if type-of($query) == 'list' { - $keyword: nth($query, 1); - - @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') { - @return nth($query, 2); - } - @else { - @return false; - } - } - @else { - @return false; - } -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/_parsers.scss b/ghost/admin/assets/sass/modules/breakpoint/_parsers.scss deleted file mode 100755 index 69123304fe..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/_parsers.scss +++ /dev/null @@ -1,104 +0,0 @@ -////////////////////////////// -// Import Parser Pieces -////////////////////////////// -@import "parsers/query"; -@import "parsers/single"; -@import "parsers/double"; -@import "parsers/triple"; -@import "parsers/resolution"; - -////////////////////////////// -// General Breakpoint Parser -////////////////////////////// -@function breakpoint-parse($query) { - $private-breakpoint-context-placeholder: $private-breakpoint-context-placeholder + 1; - - // Set up Media Type - $query-print: ''; - - $force-all: (($breakpoint-force-media-all == true) and ($breakpoint-default-media == 'all')); - $empty-media: true; - @if ($force-all == true) or ($breakpoint-default-media != 'all') { - // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all) - $query-print: $breakpoint-default-media; - $empty-media: false; - } - - - $query-resolution: false; - - $query-holder: breakpoint-parse-query($query); - - - - // Loop over each parsed out query and write it to $query-print - $first: true; - - @each $feature in $query-holder { - $length: length($feature); - - // Parse a single feature - @if ($length == 1) { - // Feature is currenty a list, grab the actual value - $feature: nth($feature, 1); - - // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type - @if (breakpoint-is-media($feature)) { - @if ($force-all == true) or ($feature != 'all') { - // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all) - $query-print: $feature; - $empty-media: false; - - // Set Context - $context-setter: private-breakpoint-set-context(media, $query-print); - } - } - @else { - $parsed: breakpoint-parse-single($feature, $empty-media, $first); - $query-print: '#{$query-print} #{$parsed}'; - $first: false; - } - } - // Parse a double feature - @else if ($length == 2) { - @if (breakpoint-is-resolution($feature) != false) { - $query-resolution: $feature; - } - @else { - $parsed: null; - // If it's a string/number pair, - // we check to see if one is a single-string value, - // then we parse it as a normal double - $alpha: nth($feature, 1); - $beta: nth($feature, 2); - @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) { - $parsed: breakpoint-parse-single($alpha, $empty-media, $first); - $query-print: '#{$query-print} #{$parsed}'; - $first: false; - $parsed: breakpoint-parse-single($beta, $empty-media, $first); - $query-print: '#{$query-print} #{$parsed}'; - } - @else { - $parsed: breakpoint-parse-double($feature, $empty-media, $first); - $query-print: '#{$query-print} #{$parsed}'; - $first: false; - } - } - } - // Parse a triple feature - @else if ($length == 3) { - $parsed: breakpoint-parse-triple($feature, $empty-media, $first); - $query-print: '#{$query-print} #{$parsed}'; - $first: false; - } - - } - - @if ($query-resolution != false) { - $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first); - } - - // @return 'all'; - - @return $query-print; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/_respond-to.scss b/ghost/admin/assets/sass/modules/breakpoint/_respond-to.scss deleted file mode 100755 index 417db705e6..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/_respond-to.scss +++ /dev/null @@ -1,55 +0,0 @@ -//////////////////////// -// Default the Breakpoints variable -//////////////////////// -$breakpoints: () !default; - -//////////////////////// -// Respond-to API Mixin -//////////////////////// - -@mixin respond-to($context, $no-query: false) { - @if type-of($breakpoints) != 'list' { - // Just in case someone writes gibberish to the $breakpoints variable. - @warn "Your breakpoints aren't a list! See https://github.com/snugug/respond-to#api if you'd like a reminder on how to use Respond-to"; - } - @if length($breakpoints) != 0 { - // If there's only one breakpoint, SASS will think it's a space separated list :P - @if length($breakpoints) == 2 and type-of(nth($breakpoints, 1)) != 'list' { - $breakpoints: append((), (nth($breakpoints, 1), nth($breakpoints, 2))); - } - @each $bkpt in $breakpoints { - @if $context == nth($bkpt, 1) { - $length: length($bkpt); - $mq: false !default; - - @for $i from 2 through $length { - // If it's the first item, override $mq - @if $i == 2 { - $mq: nth($bkpt, $i); - } - // Else, join $mq - @else { - $mq: join($mq, nth($bkpt, $i)); - } - } - - @include breakpoint($mq, $no-query) { - @content; - } - } - } - } - @else { - @warn "You haven't created any breakpoints yet! Make some already! See https://github.com/snugug/respond-to#api if you'd like a reminder on how to use Respond-to"; - @content; - } -} - -////////////////////////////// -// Add Breakpoint to Breakpoints -////////////////////////////// -@function add-breakpoint($name, $bkpt) { - $bkpt: $name $bkpt; - $output: append($breakpoints, $bkpt, 'comma'); - @return $output; -} \ No newline at end of file diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/_double.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/_double.scss deleted file mode 100755 index 24580c1516..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/_double.scss +++ /dev/null @@ -1,33 +0,0 @@ -////////////////////////////// -// Import Pieces -////////////////////////////// -@import "double/default-pair"; -@import "double/double-string"; -@import "double/default"; - -@function breakpoint-parse-double($feature, $empty-media, $first) { - $parsed: ''; - $leader: ''; - // If we're forcing - @if not ($empty-media) or not ($first) { - $leader: 'and '; - } - - $first: nth($feature, 1); - $second: nth($feature, 2); - - // If we've got two numbers, we know we need to use the default pair because there are no media queries that has a media feature that is a number - @if type-of($first) == 'number' and type-of($second) == 'number' { - $parsed: breakpoint-parse-default-pair($first, $second); - } - // If they are both strings, we send it through the string parser - @else if type-of($first) == 'string' and type-of($second) == 'string' { - $parsed: breakpoint-parse-double-string($first, $second); - } - // If it's a string/number pair, we parse it as a normal double - @else { - $parsed: breakpoint-parse-double-default($first, $second); - } - - @return $leader + $parsed; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/_query.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/_query.scss deleted file mode 100755 index b8fa8f7613..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/_query.scss +++ /dev/null @@ -1,75 +0,0 @@ -@function breakpoint-parse-query($query) { - // Parse features out of an individual query - $feature-holder: (); - $query-holder: (); - $length: length($query); - - @if $length == 2 { - // If we've got a string/number, number/string, check to see if it's a valid string/number pair or two singles - @if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'number') or (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'string') { - - $number: ''; - $value: ''; - - @if type-of(nth($query, 1)) == 'string' { - $number: nth($query, 2); - $value: nth($query, 1); - } - @else { - $number: nth($query, 1); - $value: nth($query, 2); - } - - // If the string value can be a single value, check to see if the number passed in is a valid input for said single value. Fortunately, all current single-value options only accept unitless numbers, so this check is easy. - @if breakpoint-single-string($value) { - @if unitless($number) { - $feature-holder: append($value, $number, space); - $query-holder: append($query-holder, $feature-holder, comma); - @return $query-holder; - } - } - // If the string is a media type, split the query - @if breakpoint-is-media($value) { - $query-holder: append($query-holder, nth($query, 1)); - $query-holder: append($query-holder, nth($query, 2)); - @return $query-holder; - } - // If it's not a single feature, we're just going to assume it's a proper string/value pair, and roll with it. - @else { - $feature-holder: append($value, $number, space); - $query-holder: append($query-holder, $feature-holder, comma); - @return $query-holder; - } - - } - // If they're both numbers, we assume it's a double and roll with that - @else if (type-of(nth($query, 1)) == 'number' and type-of(nth($query, 2)) == 'number') { - $feature-holder: append(nth($query, 1), nth($query, 2), space); - $query-holder: append($query-holder, $feature-holder, comma); - @return $query-holder; - } - // If they're both strings and neither are singles, we roll with that. - @else if (type-of(nth($query, 1)) == 'string' and type-of(nth($query, 2)) == 'string') { - @if not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) { - $feature-holder: append(nth($query, 1), nth($query, 2), space); - $query-holder: append($query-holder, $feature-holder, comma); - @return $query-holder; - } - } - } - @else if $length == 3 { - // If we've got three items and none is a list, we check to see - @if type-of(nth($query, 1)) != 'list' and type-of(nth($query, 2)) != 'list' and type-of(nth($query, 3)) != 'list' { - // If none of the items are single string values and none of the values are media values, we're good. - @if (not breakpoint-single-string(nth($query, 1)) and not breakpoint-single-string(nth($query, 2)) and not breakpoint-single-string(nth($query, 3))) and ((not breakpoint-is-media(nth($query, 1)) and not breakpoint-is-media(nth($query, 2)) and not breakpoint-is-media(nth($query, 3)))) { - $feature-holder: append(nth($query, 1), nth($query, 2), space); - $feature-holder: append($feature-holder, nth($query, 3), space); - $query-holder: append($query-holder, $feature-holder, comma); - @return $query-holder; - } - } - } - - // If it's a single item, or if it's not a special case double or tripple, we can simply return the query. - @return $query; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/_resolution.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/_resolution.scss deleted file mode 100755 index 53a416223e..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/_resolution.scss +++ /dev/null @@ -1,31 +0,0 @@ -@import "resolution/resolution"; - -@function breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first) { - $leader: ''; - // If we're forcing - @if not ($empty-media) or not ($first) { - $leader: 'and '; - } - - @if $breakpoint-resolutions and $query-resolution { - $resolutions: breakpoint-make-resolutions($query-resolution); - $length: length($resolutions); - $query-holder: ''; - - @for $i from 1 through $length { - $query: '#{$query-print} #{$leader}#{nth($resolutions, $i)}'; - @if $i == 1 { - $query-holder: $query; - } - @else { - $query-holder: '#{$query-holder}, #{$query}'; - } - } - - @return $query-holder; - } - @else { - // Return with attached resolution - @return $query-print; - } -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/_single.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/_single.scss deleted file mode 100755 index d9fd764a72..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/_single.scss +++ /dev/null @@ -1,26 +0,0 @@ -////////////////////////////// -// Import Pieces -////////////////////////////// -@import "single/default"; - -@function breakpoint-parse-single($feature, $empty-media, $first) { - $parsed: ''; - $leader: ''; - // If we're forcing - @if not ($empty-media) or not ($first) { - $leader: 'and '; - } - - // If it's a single feature that can stand alone, we let it - @if (breakpoint-single-string($feature)) { - $parsed: $feature; - // Set Context - $context-setter: private-breakpoint-set-context($feature, $feature); - } - // If it's not a stand alone feature, we pass it off to the default handler. - @else { - $parsed: breakpoint-parse-default($feature); - } - - @return $leader + '(' + $parsed + ')'; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/_triple.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/_triple.scss deleted file mode 100755 index e2732067f9..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/_triple.scss +++ /dev/null @@ -1,36 +0,0 @@ -////////////////////////////// -// Import Pieces -////////////////////////////// -@import "triple/default"; - -@function breakpoint-parse-triple($feature, $empty-media, $first) { - $parsed: ''; - $leader: ''; - - // If we're forcing - @if not ($empty-media) or not ($first) { - $leader: 'and '; - } - - // separate the string features from the value numbers - $string: null; - $numbers: null; - @each $val in $feature { - @if type-of($val) == string { - $string: $val; - } - @else { - @if type-of($numbers) == 'null' { - $numbers: $val; - } - @else { - $numbers: append($numbers, $val); - } - } - } - - $parsed: breakpoint-parse-triple-default($string, nth($numbers, 1), nth($numbers, 2)); - - @return $leader + $parsed; - -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default-pair.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default-pair.scss deleted file mode 100755 index 27e0bdbc9b..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default-pair.scss +++ /dev/null @@ -1,21 +0,0 @@ -@function breakpoint-parse-default-pair($first, $second) { - $default: $breakpoint-default-pair; - $min: ''; - $max: ''; - - // Sort into min and max - $min: min($first, $second); - $max: max($first, $second); - - // Set Context - $context-setter: private-breakpoint-set-context(min-#{$default}, $min); - $context-setter: private-breakpoint-set-context(max-#{$default}, $max); - - // Make them EMs if need be - @if ($breakpoint-to-ems == true) { - $min: breakpoint-to-base-em($min); - $max: breakpoint-to-base-em($max); - } - - @return '(min-#{$default}: #{$min}) and (max-#{$default}: #{$max})'; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default.scss deleted file mode 100755 index a19a2f4723..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_default.scss +++ /dev/null @@ -1,22 +0,0 @@ -@function breakpoint-parse-double-default($first, $second) { - $feature: ''; - $value: ''; - - @if type-of($first) == 'string' { - $feature: $first; - $value: $second; - } - @else { - $feature: $second; - $value: $first; - } - - // Set Context - $context-setter: private-breakpoint-set-context($feature, $value); - - @if ($breakpoint-to-ems == true) { - $value: breakpoint-to-base-em($value); - } - - @return '(#{$feature}: #{$value})' -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_double-string.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_double-string.scss deleted file mode 100755 index 4c5ce4651c..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/double/_double-string.scss +++ /dev/null @@ -1,19 +0,0 @@ -@function breakpoint-parse-double-string($first, $second) { - $feature: ''; - $value: ''; - - // Test to see which is the feature and which is the value - @if (breakpoint-string-value($first) == true) { - $feature: $first; - $value: $second; - } - @else { - $feature: $second; - $value: $first; - } - - // Set Context - $context-setter: private-breakpoint-set-context($feature, $value); - - @return '(#{$feature}: #{$value})'; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/resolution/_resolution.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/resolution/_resolution.scss deleted file mode 100755 index 3680421269..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/resolution/_resolution.scss +++ /dev/null @@ -1,60 +0,0 @@ -@function breakpoint-make-resolutions($resolution) { - $length: length($resolution); - - $output: (); - - @if $length == 2 { - $feature: ''; - $value: ''; - - // Find which is number - @if type-of(nth($resolution, 1)) == 'number' { - $value: nth($resolution, 1); - } - @else { - $value: nth($resolution, 2); - } - - // Determine min/max/standard - @if index($resolution, 'min-resolution') { - $feature: 'min-'; - } - @else if index($resolution, 'max-resolution') { - $feature: 'max-'; - } - - $standard: '(#{$feature}resolution: #{$value})'; - - // If we're not dealing with dppx, - @if unit($value) != 'dppx' { - $base: 96dpi; - @if unit($value) == 'dpcm' { - $base: 243.84dpcm; - } - // Write out feature tests - $webkit: ''; - $moz: ''; - $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / $base})'; - $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / $base})'; - // Append to output - $output: append($output, $standard, space); - $output: append($output, $webkit, space); - $output: append($output, $moz, space); - } - @else { - $webkit: ''; - $moz: ''; - $webkit: '(-webkit-#{$feature}device-pixel-ratio: #{$value / 1dppx})'; - $moz: '(#{$feature}-moz-device-pixel-ratio: #{$value / 1dppx})'; - $fallback: '(#{$feature}resolution: #{$value / 1dppx * 96dpi})'; - // Append to output - $output: append($output, $standard, space); - $output: append($output, $webkit, space); - $output: append($output, $moz, space); - $output: append($output, $fallback, space); - } - - } - - @return $output; -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/single/_default.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/single/_default.scss deleted file mode 100755 index bb3a753e2c..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/single/_default.scss +++ /dev/null @@ -1,13 +0,0 @@ -@function breakpoint-parse-default($feature) { - $default: $breakpoint-default-feature; - - // Set Context - $context-setter: private-breakpoint-set-context($default, $feature); - - @if ($breakpoint-to-ems == true) and (type-of($feature) == 'number') { - @return '#{$default}: #{breakpoint-to-base-em($feature)}'; - } - @else { - @return '#{$default}: #{$feature}'; - } -} diff --git a/ghost/admin/assets/sass/modules/breakpoint/parsers/triple/_default.scss b/ghost/admin/assets/sass/modules/breakpoint/parsers/triple/_default.scss deleted file mode 100755 index da256bd3ad..0000000000 --- a/ghost/admin/assets/sass/modules/breakpoint/parsers/triple/_default.scss +++ /dev/null @@ -1,18 +0,0 @@ -@function breakpoint-parse-triple-default($feature, $first, $second) { - - // Sort into min and max - $min: min($first, $second); - $max: max($first, $second); - - // Set Context - $context-setter: private-breakpoint-set-context(min-#{$feature}, $min); - $context-setter: private-breakpoint-set-context(max-#{$feature}, $max); - - // Make them EMs if need be - @if ($breakpoint-to-ems == true) { - $min: breakpoint-to-base-em($min); - $max: breakpoint-to-base-em($max); - } - - @return '(min-#{$feature}: #{$min}) and (max-#{$feature}: #{$max})'; -} diff --git a/ghost/admin/assets/sass/modules/forms.scss b/ghost/admin/assets/sass/modules/forms.scss deleted file mode 100644 index 2096dfda36..0000000000 --- a/ghost/admin/assets/sass/modules/forms.scss +++ /dev/null @@ -1,490 +0,0 @@ -/* - * These are the global generic form styles used throughout the Ghost admin, - * but mainly in the settings pages. Don't fuck with them. - * - * Table of Contents: - * - * General - * Checkboxes - * Buttons - * Split Buttons - * - */ - - -/* ============================================================================= - General - ============================================================================= */ - -%label { - display: inline-block; - position: absolute; - top: 0.5em; - left: 0; - width: 120px; - font-weight: bold; - color: $brown; - text-align: right; - - @include breakpoint(550px) { - display: block; - position: relative; - top: auto; - left: auto; - width: auto; - margin-bottom: 5px; - text-align: left; - } -} - -form { - - label, - .label { - @extend %label; - } - - p { - max-width: 400px; - color: darken($brown, 5%); - font-size: 1em; - margin: 0; - } - -}//form - -fieldset { - border: none; - margin: 0 0 3em 0; - padding: 0; -} - -legend { - display: block; - width: 100%; - margin: 2em 0; - border-bottom:$lightbrown 1px solid; - font-size: 1.2em; - line-height: 2.0em; - color: $brown; -} - -input, textarea, select { - @include box-sizing(border-box); - width: 276px; - padding: 5px 7px; - margin: 0; - outline: 0; - font-size: 1.1em; - line-height: 1.4em; - background: #fff; - border: darken($lightbrown, 5%) 1px solid; - border-radius: $rounded; - @include transition(all 0.15s ease-in-out); - - @include breakpoint(550px) { - width: 100%; - } -} - -textarea { - width: 100%; - max-width: 340px; - min-width: 250px; - height: auto; - min-height: 6.5em; -} - -input, select, textarea { - margin-bottom: 5px; -} - -input[type="text"]:focus, -input[type="email"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="url"]:focus, -input[type="password"]:focus, -input[type="number"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="week"]:focus, -input[type="time"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -textarea:focus { - border: $brown 1px solid; - background: #fff; - outline: none; - outline-width: 0; -} - -select { - @include box-sizing(border-box); - width: 270px; - height: 30px; - line-height: 30px; - - @include breakpoint(550px) { - width: 100%; - } -} -// 'vanilla' CSS hack to specifically target Firefox -@-moz-document url-prefix() { - select { - height: auto; - } -} - -.form-group { - position: relative; - margin: 1.5em 0; - padding-left: 140px; - - @include breakpoint(550px) { padding-left: 0; } -} - -/* ============================================================================= - Checkboxes - ============================================================================= */ - -// Hide the default checkbox -input[type="checkbox"] { - display: none; -} - -// Turn the label element into a fake checkbox -.checkbox { - @include box-sizing(border-box); - position: relative; - top: auto; - margin-top: 0.5em; - display: inline-block; - width: 18px; - height: 18px; - cursor: pointer; - border-radius: $rounded; - background: lighten($lightbrown, 5%); - border: darken($lightbrown, 5%) 1px solid; - @include transition(all 0.2s ease); - - // Create a checkmark, hidden by default - &:after { - opacity: 0; - content: ""; - position: absolute; - width: 7px; - height: 3px; - top: 5px; - left: 4px; - border: 3px solid #fff; - border-top: none; - border-right: none; - @include transform(rotate(-45deg)); - @include transition(all 0.2s ease); - } -} - -// If the checkbox is checked, show the the :after element -input[type=checkbox]:checked + .checkbox { background: $green; border: lighten($green, 10%); } -input[type=checkbox]:checked + .checkbox:after { opacity: 1; } - - -/* ============================================================================= - Buttons - ============================================================================= */ - -/* - * Buttons are used for primary calls to action on a page. - * - * Usage: - * - */ - -// This base style is used on all buttons -%button { - @include box-sizing(border-box); - min-height: 35px; - width: auto; - display: inline-block; - padding: 0.9em 1.37em; - cursor: pointer; - text-decoration: none; - color: #fff; - font-size: 11px; // Hack because Firefox sucks ass. - line-height: 13px; // Hack because Firefox sucks ass. - font-weight: 300; - text-align: center; - letter-spacing: 1px; - text-transform: uppercase; - text-shadow: none; - border-radius: 0.2em; - border: rgba(0,0,0,0.05) 0.1em solid; - @include transition(background 0.3s ease, border-color 0.3s ease); - - &:hover { - border-color: transparent; - background: #f8f8f8; - text-decoration: none; - } - - &:active { - box-shadow: rgba(0,0,0,0.3) 0 1px 3px inset; - } - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } - - &.large { - padding: 1em 1.8em; - font-size: 14px; - line-height: 16px; - } -} - -// This is the default button style -.button, -button, -input[type="button"] { - @extend %button; - color:#777; - font-weight: normal; - background: #eee; - box-shadow: none; - &:hover { - border-color: rgba(0,0,0,0.1); - } -} - -// Button for save/next/continue/confirm actions -.button-save, -button[type="submit"], -input[type="submit"] { - @extend %button; - background: $blue; - box-shadow: none; - &:hover {background: darken($blue, 10%);} -} - -// Button for actions which add stuff -.button-add { - @extend %button; - background: $green; - &:hover {background: darken($green, 8%);} -} - -// Button for deleting/removing stuff -.button-delete, -button[type="reset"], -input[type="reset"] { - @extend %button; - background: $red; - box-shadow: none; - &:hover {background: darken($red, 10%);} -} - -// Alternative button with more visual attention, but no extra semantic meaning -.button-alt { - @extend %button; - background: lighten($darkgrey, 10%); - &:hover {background: $darkgrey;} -} - -// This applies normal link styles to de-emphasise a button -.button-link { - @extend %button; - color: $blue; - background: transparent; - border: none; - &:hover { - background: transparent; - text-decoration: underline; - } -} - -// Back button for pane animations -.button-back { - @extend %button; - position: absolute; - top: 20px; - left: 20px; - margin-right: 30px; - padding: 0.5em 1.37em 0.5em 1.10em; - display: none; - color: #fff; - background: $blue; - border: none; - border-top-left-radius: 0; - border-bottom-left-radius: 0; - - &:before { - content: ' '; - position: absolute; - top: 0; - left: -10px; - width: 0; - height: 0; - border-width: 18px 10px 18px 0; - border-color: transparent $blue transparent transparent; - border-style: solid solid solid none; - @include transform(scale(0.9999)); - @include transition(border-color 0.3s ease); - } - - &:hover { - color: #fff; - background: darken($blue, 10%); - border-color: darken($blue, 10%); - &:before { - border-right-color: darken($blue, 10%); - } - } - - @include breakpoint($tablet) { - display: inline-block; - } -} - - -/* ============================================================================= - Split Buttons - ============================================================================= */ - -/* - * The splitbutton adds addition values to a button, via a dropdown (or drop-up). - * - * Usage: - *
- * - * - *
- */ - -// These are the base styles applied to all splitbuttons -%splitbutton { - display: inline-block; - position: relative; - font-size: 0; // hack to stop space after button - white-space: nowrap; - - button { - font-size: 11px; // hack to restore font size - @include border-right-radius(0); - } - - // This is the additional dropdown arrow, to the right of the button. - .options { - display: inline-block; - position:relative; - width: 35px; - height: 35px; - margin-left: -1px; - vertical-align: top; - text-align: center; - color: #fff; - background: #e5e5e5; - border-radius: 0 2px 2px 0; - box-shadow: - rgba(0,0,0,0.02) 0 1px 0 inset, - rgba(0,0,0,0.02) -1px 0 0 inset, - rgba(0,0,0,0.02) 0 -1px 0 inset; - @include icon($i-chevron-down, 9px) { - position: absolute; - top: 50%; - right: 50%; - margin-top: -3px; - margin-right: -5px; - @include transition(margin-top 0.3s ease); - /* Transition of transform properties are split out due to a - defect in the vendor prefixing of transform transitions. - See: http://github.com/thoughtbot/bourbon/pull/86 */ - @include transition-property(transform); - @include transition-duration(0.3); - @include transition-timing-function(ease); - }; - @include transition(background-color 0.3s linear); - - // Keep the arrow spun when the associated menu is open - &.active:before { - @include transform(rotate(360deg)); - } - - &.up.active:before { - margin-top:-4px; - @include transform(rotate(540deg)); - } - - // Spin the arrow on hover and while menu is open - &:hover { - box-shadow: none; - background: #f8f8f8; - @include icon($i-chevron-down) { - @include transform(rotate(360deg)); - }; - } - - // If it has a class of "up" spin it an extra 180degress to point up - &.up:hover { - @include icon($i-chevron-down) { - margin-top:-4px; - @include transform(rotate(540deg)); - @include transition-property(transform); - @include transition-duration(0.6); - @include transition-timing-function(ease); - }; - } - } -} - -// The default splitbutton -.splitbutton { - @extend %splitbutton; - .options { - color:#777; - &:hover { - box-shadow: - rgba(0,0,0,0.07) 0 1px 0 inset, - rgba(0,0,0,0.07) -1px 0 0 inset, - rgba(0,0,0,0.07) 0 -1px 0 inset; - } - } -} - -// For save/next/continue/confirm actions -.splitbutton-save { - @extend %splitbutton; - .options { - background: darken($blue, 5%); - &:hover, &.active {background: darken($blue, 10%);} - } -} - -// For actions which add something -.splitbutton-add { - @extend %splitbutton; - .options { - background: darken($green, 6%); - &:hover {background: darken($green, 8%);} - } -} - -// For actions which delete something -.splitbutton-delete { - @extend %splitbutton; - .options { - background: darken($red, 6%); - &:hover {background: darken($red, 10%);} - } -} - -// Alternative style with more visual attention, but no extra semantic meaning -.splitbutton-alt { - @extend %splitbutton; - .options { - background: lighten($darkgrey, 4%); - &:hover {background: $darkgrey;} - } -} - diff --git a/ghost/admin/assets/sass/modules/global.scss b/ghost/admin/assets/sass/modules/global.scss deleted file mode 100644 index 0db58341f4..0000000000 --- a/ghost/admin/assets/sass/modules/global.scss +++ /dev/null @@ -1,1685 +0,0 @@ -/* - * Global styles for Ghost which are used throughout the admin interface - * Utility classes defined here to keep other libraries (Normalize) from - * being modified, preventing upgrade later. - * - * Table of Contents - * - * Utility Classes - * Global Styles - * Global Navigation - * Mobile Navigation - * Drop-down / Pop-up Menu - * Notifications - * Modals - * Main Elements - * Floating Headers - * Image Uploader - * Misc - */ - - -/* ========================================================================== - Utility Classes - ========================================================================== */ - -.hidden { @include hidden; } // TODO: Merge this with .visuallyhidden -.invisible { visibility: hidden; } -.right { float: right; } -.left { float: left; } - -.markdown, pre, code { font-family: $font-family-mono; } - -.visuallyhidden, -.screen-reader-text { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} - -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; -} - -.clearfix:before, -.clearfix:after { - content: " "; - display: table; -} -.clearfix:after { clear: both; } -.clearfix { *zoom: 1; } - - -/* ========================================================================== - Global Styles - ========================================================================== */ - -html { - font: normal 81.2%/1.65 "Open Sans", sans-serif; -} - -body { - width:100%; - color: $darkgrey; - font-weight: 300; - background: $lightbrown; - @include breakpoint($mobile) { background: #fff; } -} - -::-moz-selection { - color: $darkgrey; - background: lighten($blue, 20%); - text-shadow: none; -} - -::selection { - color: $darkgrey; - background: lighten($blue, 20%); - text-shadow: none; -} - -article aside { - width: 30%; - padding: 0 2.2em; - margin: 0 2.2em 1.6em 2.2em; - float: right; - background: $lightbrown; - border-radius: 3px; -} - -// Headings - -h1, h2, h3, -h4, h5, h6 { - color: $darkgrey; - text-rendering: optimizeLegibility; - line-height: 1; - margin-top: 0; -} - -h2 { - padding-top: 0.8em; - margin-top: 0.8em; - border-top: $lightbrown 1px solid; -} - -h1 a:hover { - text-decoration: none; - - box-shadow: $blue 0 -5px 0 inset; -} - -h2 a:hover { - text-decoration: none; - box-shadow: $blue 0 -4px 0 inset; -} - -h3 a:hover { - text-decoration: none; - box-shadow: $blue 0 -3px 0 inset; -} - -h4 a:hover, -h5 a:hover, -h6 a:hover { - text-decoration: none; - box-shadow: $blue 0 -1px 0 inset; -} - -hgroup { - @include baseline; - - h1, h2, h3, - h4, h5, h6 { - padding:0; - margin:0; - border:none; - margin-bottom: 5px; - - a { - color: $darkgrey; - - &:hover { - box-shadow: $darkgrey 0 -1px 0 inset; - } - - } - - /* - * Make everything except the first - * heading appear smaller/thinner. - */ - &:nth-child(n+2) { - font-size: 1.8em; - font-weight: 300; - color: $brown; - } - - } - -} - -// Text elements - -p, ul, ol { @include baseline; } - -ol ol, ul ul, -ul ol, ol ul { - margin: 0.4em 0; -} - -a { - color:$blue; - text-decoration:none; - @include transition(all 0.15s ease-in-out); - - &:hover { - text-decoration:underline; - } - - &.highlight { - color: $orange; - font-weight: bold; - } -} - -hr { - display: block; - height: 1px; - border: 0; - border-top: 1px solid $lightbrown; - margin: 3.2em 0; - padding: 0; -} - -blockquote { - @include baseline; - @include box-sizing(border-box); - padding: 0 1.6em 0 1.6em; - border-left: $lightbrown 0.6em solid; - - p { - margin:0.8em 0; - font-size:1.2em; - font-weight: 300; - } - - small { - display: inline-block; - margin: 0.8em 0 0.8em 1.5em; - font-size:0.9em; - color: $brown; - - &:before { content: '\2014 \00A0'; } - } - - cite { - font-weight:bold; - a { font-weight: normal; } - } -} - -dl { - @include baseline; - - dt { - float: left; - width: 180px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; - font-weight: bold; - margin-bottom: 1em - } - - dd { - margin-left: 200px; - margin-bottom: 1em - } -} - -mark { - background-color: #ffc336; -} - -code, tt { - font-family: $font-family-mono; - font-size: 0.85em; - white-space: pre-wrap; - background: lighten($lightbrown, 2%); - border: 1px solid darken($lightbrown, 8%); - border-radius: 2px; - padding: 1px 3px; -} - -pre { - @include baseline; - @include box-sizing(border-box); - background: lighten($lightbrown, 2%); - border: 1px solid darken($lightbrown, 8%); - width: 100%; - padding: 10px; - font-family: $font-family-mono; - font-size: 0.9em; - white-space: pre; - overflow: auto; - border-radius: 3px; - - code, tt { - font-size: inherit; - white-space: -moz-pre-wrap; - white-space: pre-wrap; - background: transparent; - border: none; - padding: 0; - } -} - -kbd { - display: inline-block; - margin-bottom: 0.4em; - padding: 1px 8px; - border: #ccc 1px solid; - color: $darkgrey; - text-shadow: #fff 0 1px 0; - font-size: 0.9em; - font-weight: bold; - background: #f4f4f4; - border-radius: 4px; - box-shadow: - 0 1px 0 rgba(0, 0, 0, 0.2), - 0 1px 0 0 #fff inset; -} - -// Tabular Data - -table { - @include baseline; - @include box-sizing(border-box); - width:100%; - max-width: 100%; - background-color: transparent; - - th, - td { - padding: 8px; - line-height: 20px; - text-align: left; - vertical-align: middle; - border-top: 1px solid $lightbrown; - } - - th { color: $brown; } - - caption + thead tr:first-child th, - caption + thead tr:first-child td, - colgroup + thead tr:first-child th, - colgroup + thead tr:first-child td, - thead:first-child tr:first-child th, - thead:first-child tr:first-child td { - border-top: 0; - } - - tbody + tbody { border-top: 2px solid $lightbrown; } - - table table { background-color: #fff; } - - tbody > tr:nth-child(odd) > td, - tbody > tr:nth-child(odd) > th { - background-color: lighten($lightbrown, 5%); - } - - &.plain { - tbody > tr:nth-child(odd) > td, - tbody > tr:nth-child(odd) > th { - background: transparent; - } - } -} - -// General Navigation - -nav { - ul { - list-style: none; - margin:0; - padding:0; - border-top:$lightbrown 1px solid; - } - - li { - a { - display:block; - padding:10px 15px; - color:$brown; - border-bottom:$lightbrown 1px solid; - - &:hover { - color:$darkgrey; - background: $lightbrown; - text-decoration: none; - } - - &:before { margin-right:1em; } // Make space for icons - - } - } -} - -/* ========================================================================== - Main Navigation - ========================================================================== */ - -.ghost-logo { - @include icon($i-ghost) { line-height: 0; } - display: block; - float:left; - height:40px; - padding:12px 15px; - color: lighten($grey, 10%); - @include box-sizing(border-box); - - &:hover {text-decoration:none;} -} - -.ghost-logo:hover { - color: $lightgrey; - background:darken($darkgrey, 2%); -} - - - -.navbar { - height: 40px; - font-size: 0.85em; - background: $darkgrey; - @include breakpoint($netbook) {font-weight:normal} - - // The main navbar styles, apply to to everything. - nav { - - ul { - float:left; - border-left:$grey 1px solid; - border-top:none; - } - - li { - float:left; - font-size: 1em; - position:relative; - border-right:$grey 1px solid; - - a { - display: block; - height:40px; - padding:11px 15px; - border-bottom:none; - color: $midgrey; - text-transform: uppercase; - @include box-sizing(border-box); - } - - a:hover, - &.active a { - color: $lightgrey; - text-decoration: none; - position:relative; - background:darken($grey, 2%); - box-shadow: 0 -2px 2px rgba(0,0,0,0.2) inset; - } - - // Make a little arrow pointing up at the currently active menu item - &.active a:after { - content:""; - position:absolute; - bottom:0; - left:50%; - margin-left:-5px; - border-width:0 5px 5px 5px; - border-style:solid; - border-color:$lightbrown transparent; - display:block; - width:0; - - @include breakpoint($mobile) { - border-color: #fff transparent; - } - - } - - ul { - position: absolute; - top:40px; - right:0; - min-width:200px; - background: $darkgrey; - } - - li { - width: 100%; - border-right: none; - } - - } - - // Add some icons to specific nav items - a:before {margin-right: 5px;} - .dashboard a { @include icon($i-stats) {vertical-align: -10%} } - .content a { @include icon($i-content) } - .editor a { @include icon($i-add) } - .settings a { @include icon($i-settings2) } - - }//nav ul - - // Style any nav items which have dropdowns - .subnav { - position: relative; - - // The anchor which toggles the menu open/closed - > a { - @include icon-after($i-chevron-down, 8px) {margin-left: 8px}; - - &.active { - color: $lightgrey; - background: darken($grey, 3%); - @include transition(none); - box-shadow: none; - } - } - - // The dropdown menu - ul { - display: none; - padding: 7px 0; - border-left: none; - position: absolute; - top:40px; - left:-1px; - z-index: 800; - background:darken($grey, 3%); - box-shadow: rgba(0,0,0,0.2) 0 4px 6px; - } - - li { - a { - color: $lightgrey; - - &:hover { - background: darken($darkgrey, 10%); - @include transition(none); - box-shadow: none; - } - - &:before { margin-right: 1em; } // space for icons - } - } - - .divider { - height: 1px; - margin: 7px 0; - overflow: hidden; - background: $grey; - } - - }//.subnav - -}//.navbar - -// The user menu in the top right corner of the screen -.usermenu.subnav { - position:absolute; - top:0; - right:0; - border-right:none; - border-left:$grey 1px solid; - - > a { - padding-left:43px; //15px + 18px avatar + 10px - } - - .avatar { - height:18px; - width:18px; - border-radius: 50px; - position:absolute; - top:11px; - left:15px; - } - - > ul { - right: 0; - left: auto; - } - - //Add some icons to specific items - .usermenu-profile a { @include icon($i-user) } - .usermenu-help a { @include icon($i-support, 1.1em) } - .usermenu-shortcuts a { @include icon($i-pc) } - .usermenu-signout a { @include icon($i-power) } -} - - -/* ========================================================================== - Mobile Navigation - ========================================================================== */ - -// Yo dawg, I heard you like nav menus so I put nav menus in your nav menus -#global-header { - @include breakpoint(650px) { - - .ghost-logo { - @include icon($i-menu, 14px); - height:40px; - width: 40px; - text-align: center; - padding:12px 0; - @include transition(margin-left 0.3s ease 0s); - .off-canvas & { - margin-left: 280px; - @include transition(margin-left 0.3s ease 0.1s); - } - } - - ul { - position: fixed; - overflow: auto; - top: 0; - right: auto; - bottom: 0; - left: -280px; - z-index: 980; - width: 280px; - padding-top: 40px; - font-weight:normal; - background: $darkgrey; - border-left:none; - @include transition(left 0.3s ease 0.2s); - .off-canvas & { - left: 0; - @include transition(left 0.3s ease 0s); - } - } - - li { - float:none; - border-right:none; - border-bottom:$grey 1px solid; - - a:hover, - &.active a {box-shadow: none;} - - &.active a:after {display:none;} - - a:before {margin-right: 1em;} - - ul { - position: static; - min-width:0; - background: $darkgrey; - } - - li {width: auto;} - - } - - .usermenu { - position:fixed; - top:0; - right:auto; - bottom: auto; - left:-280px; - height:40px; - z-index: 990; - width:279px; - border-left:none; - border-right: darken($grey, 7%) 1px solid; - border-bottom: darken($grey, 5%) 1px solid; - @include gradient(darken($darkgrey, 8%), darken($darkgrey, 3%)); - @include transition(left 0.3s ease 0.2s); - .off-canvas & { - left: 0; - @include transition(left 0.3s ease 0s); - } - > a { - &:hover { background: inherit; } - &.active { background: darken($grey, 3%); } - } - - > ul { - padding: 0; - box-shadow: none; - width: 100%; - font-weight: 300; - } - - .open { - box-shadow: rgba(0,0,0,0.4) 0 10px 20px; - } - - li { - border-bottom: darken($grey, 3%) 1px solid; - - a { - background: darken($grey, 3%); - - &:hover {background: darken($grey, 8%)} - &:before { margin-right: 1em; } // space for icons - } - - } - - .divider {display: none} - - } - } -} - - -/* ========================================================================== - Drop-down / Pop-up Menu - ========================================================================== */ - -.dropdown { - @include icon-after($i-chevron-down, 8px) { - padding-left: 6px; - vertical-align: 0; - }; - - &.active { - color: $darkgrey; - @include icon-after($i-chevron-down, 8px); - } -} - - -// This is the base menu extend used for styles on interaction menus -%menu { - display: inline-block; - position:absolute; - z-index: 960; - padding:6px 0; - border:none; - list-style: none; - color: $lightgrey; - background: $darkgrey; - border-radius: 3px; - box-shadow: rgba(0,0,0,0.5) 0 1px 15px; - - // The triangle chiclet that points to where the menu came from - // By default, this is bottom center. - &:before { - content:""; - position:absolute; - bottom:-10px; - left:50%; - margin-left:-10px; - border-width:10px 10px 0 10px; - border-style:solid; - border-color:$darkgrey transparent; - display:block; - width:0; - } - - li {overflow:hidden;} // Stop :hover shadow from overflowing - - a, p { - @include box-sizing(border-box); - display: block; - position: relative; - padding:10px 25px 10px 35px; - border: none; - @include box-sizing(border-box); - color: $lightgrey !important; // It's dirty, but it's needed. - text-transform: none; - text-decoration: none; - - &:hover { - background: $blue; - box-shadow: - rgba(255,255,255,0.2) 0 1px 0 inset, - rgba(0,0,0,0.5) 0 1px 5px; - } - - } - - // Add a check mark to the currently active menu item - .active a { - @include icon($i-check) { - position: absolute; - top: 14px; - left: 11px; - } - } - -} - -// This extend moves the chiclet to the top, for menus which drop down. -%menu-drop { - &:before { - top: -10px; - bottom: auto; - border-width:0 10px 10px 10px; - } -} - -// Chiclet to the left, for menus appearing close to left edge of the screen. -%menu-left { - &:before { - left:10px; - margin-left:0; - } -} - -// Chiclet to the right, for menus appearing close to right edge of the screen. -%menu-right { - &:before { - left: auto; - right:10px; - margin-left:0; - } -} - -// Pop menu, chiclet bottom center. -.menu { - @extend %menu; -} - -// Pop left, chiclet bottom left. -.menu-left { - @extend %menu; - @extend %menu-left; -} - -// Pop right, chiclet bottom right. -.menu-right { - @extend %menu; - @extend %menu-right; -} - -// Drop menu, chiclet top center. -.menu-drop { - @extend %menu; - @extend %menu-drop; -} - -// Drop left, chiclet top left. -.menu-drop-left { - @extend %menu; - @extend %menu-drop; - @extend %menu-left; -} - -// Drop right, chiclet top right. -.menu-drop-right { - @extend %menu; - @extend %menu-drop; - @extend %menu-right; -} - -/* ========================================================================== - Post Settings - ========================================================================== */ - -.post-settings { - @include icon($i-settings, 14px); - @include box-sizing(border-box); - display: inline-block; - padding: 0 10px; - color: $midgrey; - @include transition; - position: relative; - top: 1px; - - &:hover, - &.active { - color: $darkgrey; - } -} - -.post-settings-menu { - padding-top: 0; - text-transform: none; - - table { - margin: 0; - } - - td { - padding: 0; - border-top: none; - border-bottom: lighten($grey, 5%) 1px solid; - } - - .post-setting-label { - padding: 8px 10px 8px 15px; - border-right: lighten($grey, 5%) 1px solid; - text-align: right; - } - - %label { - position: static; - width: auto; - font-weight: normal; - color: $midgrey; - white-space: nowrap; - } - - input { - width: 200px; - margin: 0; - - @include breakpoint(550px) { width: 200px; } - - &[type="text"] { - border: none; - padding: 8px 0 8px 10px; - color: $lightgrey; - border-radius: 0; - background: transparent; - - &:focus { - background: $grey; - border: none; - } - } - } - - .post-setting-item { - padding: 5px 0 0 10px; - } - - .checkbox { - position: relative; - margin-top: 0; - width: 18px; - border: lighten($grey, 10%) 1px solid; - background: $grey; - } - - .delete { - display: block; - padding: 10px 15px; - @include icon($i-trash) { - position: relative; - top: -1px; - margin-right: 10px - }; - - &:hover { background: $red; } - } -} - - -/* ========================================================================== - Notifications - ========================================================================== */ - -.notifications { - @include breakpoint($biggerthan-mobile) { - position: absolute; - bottom: 0; - left: 0; - z-index: 980; - width: 300px; - } - - @include breakpoint($mobile) { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 9999; - } -} - -.js-bb-notification { - @include transform(translateZ(0)); -} - -%notification, .notification { - @include icon($i-notification) { - position: absolute; - top: 0; - left: 0; - @include box-sizing(border-box); - height: 100%; - width: 44px; - padding: 14px 15px; - text-align: center; - color: rgba(255,255,255,0.8); - background: rgba(0,0,0,0.1); - }; - @include box-sizing(border-box); - width: 100%; - min-height: 40px; - padding: 10px 43px 10px 57px; - margin: 0 0 15px 0; - color: rgba(255,255,255,0.9); - background: $blue; - position:relative; - box-shadow: $shadow; - @include transform(translateZ(0)); - - @include breakpoint($mobile) {margin-bottom: 1px;} - - .close { - @include icon-after($i-close) { - padding:6px; - position:absolute; - top:8px; - right:9px; - }; - display: inline-block; - color: rgba(255,255,255,0.6); - cursor: pointer; - &:hover { color: #fff; } - - } - - a { - color: inherit; - text-decoration: underline; - } -} - -.notification-success { - @extend %notification; - @include icon($i-success); - background: $green; - - &.notification-passive { - @include animation(fade-out 1s linear); - @include animation-delay(3s); - @include animation-iteration-count(1); - @include animation-fill-mode(forwards); - } -} - -.notification-error { - @extend %notification; - @include icon($i-error); - background: $red; -} - - -.notification-warn { - @extend %notification; - @include icon($i-info); - background: $orange; -} - -.notification-info { - @extend %notification; - @include icon($i-info); - background: $blue; -} - -// Hide extra space taken up by update notification -.update-available main { - bottom: 56px; -} - - -/* ========================================================================== - Modals - ========================================================================== */ -#modal-container { - @include box-sizing(border-box); - display: none; - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - overflow-x: auto; - overflow-y: scroll; - z-index: 1040; - pointer-events: none; - @include transition(all 0.15s linear 0s); - @include transform(translateZ(0)); -} - -.fade { - opacity: 0; - @include transition(opacity 0.2s linear 0s); - @include transform(translateZ(0)); - - &.in { - opacity: 1; - } -} - -.modal-background { - display: none; - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background: rgba(0,0,0,0.4); - z-index: 1030; -} - -%modal, .modal { - @include box-sizing(border-box); - left: 50%; - right: auto; - width: 450px; - margin-left: auto; - margin-right: auto; - padding-top: 30px; - padding-bottom: 30px; - z-index: 1050; - pointer-events: auto; - - - @include breakpoint($tablet) { - width: auto; - padding: 10px; - }; - - button { - min-width: 100px; - } - - @include breakpoint($tablet) { - width: 100%; - margin-left: 0; - } - - //Uploaders - .image-uploader, - .pre-image-uploader { - margin: 0; - } -} - -.modal-info { - @extend %modal; -} - -.modal-action { - @extend %modal; - padding: 60px 0 30px; - - @include breakpoint($tablet) { - padding: 30px 0; - } -} - -.modal-content { - @include box-sizing(padding-box); - position: relative; - padding: 20px; - background-clip: padding-box; - background-color: #FFFFFF; - border-radius: $rounded; - box-shadow: rgba(0,0,0,0.2) 0 0 0 6px; - - .close { - @include box-sizing(border-box); - position: absolute; - top: 15px; - right: 15px; - width: 16px; - min-height: 16px; - padding: 0; - margin: 0; - border: none; - z-index: 9999; - - @include icon($i-x, 1em, $midgrey); - @include transition(opacity 0.3s linear); - - &:hover { - color: $darkgrey; - } - } -} -.modal-header { - position: relative; - padding: 20px; - border-bottom: 1px solid $lightbrown; - - h1 { - display: inline-block; - margin: 0; - font-size: 1.5em; - font-weight: bold; - } -} - -.modal-body { - position: relative; - min-height: 100px; - overflow-y: auto; -} - -.modal-footer { - margin-top: 20px; -} - -.modal-style-wide { - width: 550px; - - @include breakpoint($tablet) { - width: 100%; - } -} - -.modal-style-centered { - text-align: center; -} - - -/* ========================================================================== - Main Elements - ========================================================================== */ - -main { - position: absolute; - top: 55px; - right: 15px; - bottom: 0; - left: 15px; - padding: 0; - - @include breakpoint($mobile) { - top: 40px; - left:0; - right:0; - } - -} - - -/* ========================================================================== - Floating Headers - ========================================================================== */ - -// Semi-opaque fixed-position headers - used on content/editor -.floatingheader { - @include box-sizing(border-box); - position: absolute; - top:0; - left:0; - right:0; - z-index: 400; - height: 40px; - padding: 10px 15px; - text-transform: uppercase; - color: $brown; - //Transparent gradient to make bg fade out as it goes out the top. - @include linear-gradient(top, white 0%, white 25%, rgba(255,255,255,0.9) 100%, $fallback: transparent); - - button, .button { - display: inline-block; - font-size: 10px; - min-height: 20px; - height: 20px; - padding: 3px 4px; - vertical-align: top; - - &.button-back { - position: relative; - top: -2px; - left: 3px; - display: none; - padding: 0 6px 0 3px; - - &:active { - box-shadow: none; - } - - &:before { - left: -8px; - border-width: 10px 8px 10px 0; - } - - @include breakpoint($tablet) { - display: inline-block; - } - } - } - - small { - font-size: 0.85em; - } - - a { - color: $brown; - &:hover { color: $darkgrey; } - } - -}//.floatingheader - -// Special case, when scrolling, add shadows to content headers. -.scrolling { - - .floatingheader { - box-shadow: - rgba(0,0,0,0.02) 0 1px 2px, - rgba(255, 255, 255, 0.5) 0 -1px 0 inset; - - &::before { - content: ""; - height:40px; - width: 80%; - position:absolute; - bottom:0; - left:50%; - margin-left: -40%; - box-shadow: rgba(0,0,0,0.02) 0 2px 2px; - } - &::after { - content: ""; - height:40px; - width: 30%; - position:absolute; - bottom:0; - left:50%; - margin-left: -15%; - box-shadow: rgba(0,0,0,0.02) 0 3px 3px; - } - } - -} - - -/* ========================================================================== - Image Uploader - ========================================================================== */ - -.image-uploader { - @include box-sizing(border-box); - @include baseline; - position: relative; - overflow:hidden; - padding: 55px 60px; - border: $lightbrown 3px dashed; - width: 100%; - height: auto; - text-align: center; - color: $brown; - background: #F9F8F5; - - a { - color: $brown; - text-decoration: none; - - &:hover { - color: $darkgrey; - } - } - .description { - margin-top: 10px; - } - .media { - @include icon($i-image, 60px, darken($lightbrown, 3%)) { - display: inline-block; - vertical-align: initial; - @include transition(transform 1s ease); - } - } - - .image-url, - .image-upload { - line-height: 12px; - padding: 10px; - display: block; - position: absolute; - bottom: 0; - left: 0; - color: $brown; - text-decoration: none; - @include user-select(none); - - &:hover { - cursor: pointer; - } - } - - .image-webcam { - @include icon($i-camera, 12px); - } - - .image-url { - @include icon($i-link, 12px); - } - - .image-upload { - @include icon($i-image, 12px); - } - - .button-add { - display: inline-block; - position:relative; - z-index: 700; - color: #fff; - padding-left:5px; - } - .button-save { - margin: 0 0 0 10px; - } - - - - input { - &.main{ - position: absolute; - right: 0; - margin: 0; - opacity: 0; - @include transform-origin(right); - @include transform( scale(14)); - font-size: 23px; - direction: ltr; - cursor: pointer; - &.right { - right: 9999px; - height: 0; - } - } - - &.url{ - font: -webkit-small-control; - box-sizing: border-box; - width: 276px; - vertical-align: middle; - padding: 9px 7px; - margin: 10px 0; - outline: 0; - font-size: 1.1em; - background: #fff; - border: #e3e1d5 1px solid; - border-radius: 4px; - -webkit-transition: all 0.15s ease-in-out; - -moz-transition: all 0.15s ease-in-out; - } - } - - .progress { - position: relative; - margin: -19px 0 44px 0; - display: block; - overflow: hidden; - @include linear-gradient(to bottom, #f5f5f5, #f9f9f9); - border-radius: 12px; - box-shadow: (rgba(0,0,0,0.1) 0 1px 2px inset); - } - - .fileupload-loading { - display: block; - top: 50%; - width: 35px; - height: 28px; - margin: -28px auto 0; - background-size: contain; - } - - .failed { - position: relative; - top: -40px; - font-size: 16px; - } - - .bar { - height: 12px; - background: $blue; - - &.fail { - background: $red; - } - } - -} - -.pre-image-uploader { - @include box-sizing(border-box); - @include baseline; - position: relative; - overflow: hidden; - height: auto; - color: $brown; - background: rgba(0,0,0,0.1); - border-radius: 2px; - min-height: 46px; - - input { - position: absolute; - left: 9999px; - opacity: 0; - } - - a { - z-index: 10000; - color: $brown; - text-decoration: none; - - &:hover { - color: $darkgrey; - } - } - - img { - display: block; - max-width: 100%; - margin: 0 auto; - line-height: 0; - } - - .image-cancel { - @include icon($i-trash, 11px); - position: absolute; - top: 10px; - right: 10px; - padding: 8px; - z-index: 300; - color: #fff; - text-decoration: none; - line-height: 0; - border-radius: $rounded; - background: rgba(0,0,0,0.6); - box-shadow: rgba(255,255,255,0.2) 0 0 0 1px; - - &:hover { - color: #fff; - cursor: pointer; - background: $red; - } - } - -}//.pre-image-uploader - - -/* ========================================================================== - NProgress - ========================================================================== */ - -/* Make clicks pass-through */ -#nprogress { - pointer-events: none; - -webkit-pointer-events: none; -} - -#nprogress .bar { - background: $blue; - - position: fixed; - z-index: 100; - top: 0; - left: 0; - - width: 100%; - height: 2px; -} - -/* Fancy blur effect */ -#nprogress .peg { - display: block; - position: absolute; - right: 0px; - width: 100px; - height: 100%; - box-shadow: 0 0 10px $blue, 0 0 5px $blue; - opacity: 1.0; - - -webkit-transform: rotate(3deg) translate(0px, -4px); - -moz-transform: rotate(3deg) translate(0px, -4px); - -ms-transform: rotate(3deg) translate(0px, -4px); - -o-transform: rotate(3deg) translate(0px, -4px); - transform: rotate(3deg) translate(0px, -4px); -} - -/* Remove these to get rid of the spinner */ -#nprogress .spinner { - display: block; - position: fixed; - z-index: 100; - top: 15px; - right: 15px; -} - -#nprogress .spinner-icon { - width: 14px; - height: 14px; - - border: solid 2px transparent; - border-top-color: $blue; - border-left-color: $blue; - border-radius: 10px; - - -webkit-animation: nprogress-spinner 400ms linear infinite; - -moz-animation: nprogress-spinner 400ms linear infinite; - -ms-animation: nprogress-spinner 400ms linear infinite; - -o-animation: nprogress-spinner 400ms linear infinite; - animation: nprogress-spinner 400ms linear infinite; -} - -@-webkit-keyframes nprogress-spinner { - 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } -} -@-moz-keyframes nprogress-spinner { - 0% { -moz-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -moz-transform: rotate(360deg); transform: rotate(360deg); } -} -@-o-keyframes nprogress-spinner { - 0% { -o-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -o-transform: rotate(360deg); transform: rotate(360deg); } -} -@-ms-keyframes nprogress-spinner { - 0% { -ms-transform: rotate(0deg); transform: rotate(0deg); } - 100% { -ms-transform: rotate(360deg); transform: rotate(360deg); } -} -@keyframes nprogress-spinner { - 0% { transform: rotate(0deg); transform: rotate(0deg); } - 100% { transform: rotate(360deg); transform: rotate(360deg); } -} - -/* ========================================================================== - Misc - ========================================================================== */ - -//Simple -.wrapper { - position:relative; -} - -.palette { - margin-bottom: 15px; - - section { - padding:5px 10px; - width: 90px; - height:90px; - float:left; - color:rgba(0,0,0,0.5); - position:relative; - font-size:12px; - font-weight: bold; - font-family: $font-family-mono; - overflow: hidden; - @include transition(all 0.15s ease-in-out); - - &:hover { - box-shadow: - rgba(0,0,0,0.05) 5px 0 0 inset, - rgba(0,0,0,0.05) -5px 0 0 inset, - rgba(0,0,0,0.05) 0 5px 0 inset, - rgba(0,0,0,0.05) 0 -5px 0 inset; - @include transition(all 0.15s ease-in-out); - } - - small { - position:absolute; - top:20px; - left:10px; - font-size:11px; - font-weight: normal; - font-family: $font-family; - display: block; - width:100px; - opacity: 0.6; - @include transition(all 0.15s ease-in-out); - } - - &:hover small { - opacity: 1; - @include transition(all 0.15s ease-in-out); - } - } - - .brown { - background:$brown; - } - .midbrown { - background:$midbrown; - } - .lightbrown { - background:$lightbrown; - } - - .darkgrey { - color:rgba(255,255,255,0.5); - background:$darkgrey; - } - .grey { - color:rgba(255,255,255,0.5); - background:$grey; - } - .midgrey { - background:$midgrey; - } - .lightgrey { - background:$lightgrey; - } - - .blue { - color:#fff; - background:$blue; - } - .red { - color:#fff; - background:$red; - } - .orange { - color:#fff; - background:$orange; - } - -} \ No newline at end of file diff --git a/ghost/admin/assets/sass/modules/icons.scss b/ghost/admin/assets/sass/modules/icons.scss deleted file mode 100644 index 576b3bc43a..0000000000 --- a/ghost/admin/assets/sass/modules/icons.scss +++ /dev/null @@ -1,212 +0,0 @@ -/* - * The icons used in Ghost are the Pictos set by Drew Wilson - http://pictos.cc - * They are embedded via a custom icon font built with http://icomoon.io - * - * Table of Contents: - * - * Font Face - * Icon Element - * Icon Variables / Short Names - * Usage Docs - */ - - -/* ============================================================================= - The Font Face - ============================================================================= */ - -// Generated by icomoon.co -@font-face { - font-family: 'Icons'; - src:url('../fonts/icons.eot'); - src:url('../fonts/icons.eot?#iefix') format('embedded-opentype'), - url('../fonts/icons.woff') format('woff'), - url('../fonts/icons.ttf') format('truetype'), - url('../fonts/icons.svg#icons') format('svg'); - font-weight: normal; - font-style: normal; -} - - -/* ============================================================================= - The Icon Element - ============================================================================= */ - -@mixin icon($char, $size: '', $color: '') { - &:before { - // Base - font-family: "Icons"; - font-weight: normal; - font-style: normal; - vertical-align: -7%; - text-transform:none; - speak: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - - //Function - content: '#{$char}'; - @if $size != '' { - font-size: $size; - } - @if $color != '' { - color: $color; - } - @content; - } - - &:hover { - text-decoration:none; - } -} - -/* - * Special use case for when we want to add an icon after an element rather - * than before it. For things like dropdowns. - */ - -@mixin icon-after($char, $size: '', $color: '') { - &:after { - // Base - font-family: "Icons"; - font-weight: normal; - font-style: normal; - vertical-align: -7%; - text-transform:none; - speak: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - - // Function - content: '#{$char}'; - @if $size != '' { - font-size: $size; - } - @if $color != '' { - color: $color; - } - @content; - } - - &:hover { - text-decoration:none; - } -} - - -/* ============================================================================= - Icon Variables / Short Names - ============================================================================= */ - -/* - * For accessibility, icon characters in the icon font are stored in Unicode's - * Private Use Area characters. This means that screen readers won't attempt to - * read them out loud. For code maintainability, we then store these Unicode - * references inside Sass variables. - */ - -// Placeholder -$i: \e018; - -// Icons -$i-ghost: \e000; -$i-chevron-down: \e001; -$i-users: \e002; -$i-tag: \e003; -$i-tablet: \e004; -$i-menu: \e005; -$i-settings: \e006; -$i-search: \e007; -$i-search-left: \e008; -$i-rss: \e009; -$i-preview: \e00a; -$i-plugins: \e00b; -$i-pin: \e00c; -$i-pc: \e00d; -$i-pacman: \e00e; -$i-edit: \e00f; -$i-mobile: \e010; -$i-image: \e011; -$i-mail: \e012; -$i-list: \e013; -$i-info: \e014; -$i-home: \e015; -$i-grid: \e016; -$i-fullscreen: \e017; -$i-question: \e018; -$i-external: \e019; -$i-error: \e01a; -$i-comments: \e01b; -$i-close: \e01c; -$i-chevron: \e01d; -$i-calendar: \e01e; -$i-archive: \e01f; -$i-services: \e020; -$i-appearance: \e021; -$i-video: \e022; -$i-trash: \e023; -$i-reply: \e024; -$i-stats: \e025; -$i-featured: \e026; -$i-unfeatured: \e027; -$i-clock: \e028; -$i-settings2: \e029; -$i-camera: \e02a; -$i-power: \e02b; -$i-lock: \e02c; -$i-content: \e02d; -$i-user: \e02e; -$i-support: \e02f; -$i-success: \e030; -$i-notification: \e031; -$i-add: \e032; -$i-check: \e033; -$i-x: \e034; -$i-link: \e035; -$i-camera: \e036; -$i-repost: \e037; -$i-weather-rain: \e038; -$i-weather-sun: \e039; -$i-weather-partial: \e03a; -$i-weather-snow: \e03b; -$i-weather-cloudy: \e03c; -$i-lightning: \e03d; - - -/* ============================================================================= - Usage - ============================================================================= - -To create a button with a label that is prefixed with a camera icon, we might -write our Sass something like this: - -#button { - display: block; - width: 200px; - height: 40px; - @include icon($i-camera, 16px, #fff) {vertical-align:-10%;}; -} - -This would then output full CSS something like this: - -#button { - display: block; - width: 200px; - height: 40px; -} - -#button:before { - content: "\e02a"; - size: 16px; - color: #fff; - font-family: "Icons"; - font-weight: normal; - font-style: normal; - vertical-align: -10%; - text-transform:none; - speak: none; - line-height: 1; - -webkit-font-smoothing: antialiased; -} - -*/ \ No newline at end of file diff --git a/ghost/admin/assets/sass/modules/mixins.scss b/ghost/admin/assets/sass/modules/mixins.scss deleted file mode 100644 index 6f42cc4058..0000000000 --- a/ghost/admin/assets/sass/modules/mixins.scss +++ /dev/null @@ -1,198 +0,0 @@ -/* - * These are Sass variables used to make our CSS more dynamic by re-using - * common property values throughout our styles. Don't overdo it. - * - * Table of Contents: - * - * Bourbon - * Breakpoint - * Typography - * Colors - * Gradients - * Global Styles - * - */ - - -/* ============================================================================= - Bourbon - ============================================================================= */ - -// Bourbon - http://bourbon.io/ -@import "bourbon/_bourbon"; -$rounded: 2px; -$shadow: rgba(0,0,0,0.05) 0 1px 5px; -$default-transition-duration: 0.3s; - - -/* ============================================================================= - Breakpoint - ============================================================================= */ - -// Breakpoint - http://breakpoint-sass.com/ -@import "breakpoint"; -$breakpoint-default-feature: max-width; - -// Max widths -$netbook: 1000px; -$tablet: 800px; -$mobile: 400px; - -// Min widths -$biggerthan-widescreen: min-width 1500px, min-width 1500px; -$biggerthan-netbook: min-width 1000px, min-width 1000px; -$biggerthan-tablet: min-width 800px, min-width 800px; -$biggerthan-mobile: min-width 401px, min-width 401px; - -// Heights -$letterbox: max-height 600px, max-height 600px; - -// Pixel Densities -$retina: 2 device-pixel-ratio; - - -/* ============================================================================= - Typography - ============================================================================= */ - -$font-family: 'Open Sans', sans-serif; -$font-family-serif: serif; -$font-family-mono: Inconsolata, monospace; - -@mixin baseline { - margin: 1.6em 0; -} - -//Does this really need to be a mixin? -@mixin hidden { - text-indent: -9999px; - visibility: hidden; - display: none; -} - - -/* ============================================================================= - Colors - ============================================================================= */ - -$darkgrey: #242628; -$grey: #35393b; -$midgrey: #7d878a; -$lightgrey: #e2edf2; - -$brown: #aaa9a2; -$midbrown: #c0bfb6; -$lightbrown: #edece4; - -$blue: #5BA4E5; -$red: #e25440; -$orange: #F2A925; -$green: #9FBB58; - - -/* ============================================================================= - Gradients - ============================================================================= */ - -/* - * Auto Gradients - * - * If the gradient mixin is called with 1 value: gradient(#444) - then a second - * color which is 10% lighter than the entered value will be auto-generated. If - * the gradient mixin is called with 2 values: gradient(#444,#666) - then those - * two values will be used instead, as normal. - */ - -@mixin gradient($color1: #aaa, $color2: none) { - - @if $color2 == 'none' { - background-color: lighten($color1, 10%); - background-image: -webkit-linear-gradient(bottom, $color1, lighten($color1, 10%)); - background-image: -moz-linear-gradient(bottom, $color1, lighten($color1, 10%)); - background-image: -ms-linear-gradient(bottom, $color1, lighten($color1, 10%)); - background-image: linear-gradient(bottom, $color1, lighten($color1, 10%)); - } @else { - background-color: $color2; - background-image: -webkit-linear-gradient(bottom, $color1, $color2); - background-image: -moz-linear-gradient(bottom, $color1, $color2); - background-image: -ms-linear-gradient(bottom, $color1, $color2); - background-image: linear-gradient(to top, $color1, $color2); - } - -} - -// The same as the above, but with the colours reversed. - -@mixin inversegradient($color1: #aaa, $color2: none) { - - @if $color2 == 'none' { - background-color: $color1; - background-image: -webkit-linear-gradient(bottom, lighten($color1, 10%), $color1); - background-image: -moz-linear-gradient(bottom, lighten($color1, 10%), $color1); - background-image: -ms-linear-gradient(bottom, lighten($color1, 10%), $color1); - background-image: linear-gradient(bottom, lighten($color1, 10%), $color1); - } @else { - background-color: $color1; - background-image: -webkit-linear-gradient(bottom, $color2, $color1); - background-image: -moz-linear-gradient(bottom, $color2, $color1); - background-image: -ms-linear-gradient(bottom, $color2, $color1); - background-image: linear-gradient(to top, $color2, $color1); - } - -} - - -/* ============================================================================= - Global Elements - ============================================================================= */ - -%box, .box { - padding: 15px; - margin-bottom: 15px; - background: #fff; - position: relative; - box-shadow: $shadow; - - header { - height:14px; - border-bottom: 1px solid $lightbrown; - padding-bottom: 15px; - margin-bottom: 15px; - text-transform: uppercase; - font-size:0.85em; - color: $brown; - } - - footer { - height:14px; - border-top: 1px solid $lightbrown; - padding-top: 10px; - margin-top:15px; - text-transform: uppercase; - font-size:0.85em; - color: $brown; - } - - header a, - footer a { - color:$brown; - - &:hover { - color:$darkgrey; - text-decoration: none; - } - } -} - -/* ============================================================================= - Animations - ============================================================================= */ - -@include keyframes(fade-out) { - from { - opacity: 1; - } - to { - opacity: 0; - } -} diff --git a/ghost/admin/assets/sass/modules/normalize.scss b/ghost/admin/assets/sass/modules/normalize.scss deleted file mode 100644 index 559de6afbd..0000000000 --- a/ghost/admin/assets/sass/modules/normalize.scss +++ /dev/null @@ -1,396 +0,0 @@ -/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ - -/* ========================================================================== - HTML5 display definitions - ========================================================================== */ - -/** - * Correct `block` display not defined in IE 8/9. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -nav, -section, -summary { - display: block; -} - -/** - * Correct `inline-block` display not defined in IE 8/9. - */ - -audio, -canvas, -video { - display: inline-block; -} - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -[hidden] { - display: none; -} - -/* ========================================================================== - Base - ========================================================================== */ - -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -ms-text-size-adjust: 100%; /* 2 */ -} - -/** - * Remove default margin. - */ - -body { - margin: 0; -} - -/* ========================================================================== - Links - ========================================================================== */ - -/** - * Address `outline` inconsistency between Chrome and other browsers. - */ - -a:focus { - outline: thin dotted; -} - -/** - * Improve readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* ========================================================================== - Typography - ========================================================================== */ - -/** - * Address variable `h1` font-size and margin within `section` and `article` - * contexts in Firefox 4+, Safari 5, and Chrome. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/** - * Address styling not present in IE 8/9, Safari 5, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/** - * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/** - * Address styling not present in Safari 5 and Chrome. - */ - -dfn { - font-style: italic; -} - -/** - * Address differences between Firefox and other browsers. - */ - -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; -} - -/** - * Address styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - -/** - * Correct font family set oddly in Safari 5 and Chrome. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; -} - -/** - * Improve readability of pre-formatted text in all browsers. - */ - -pre { - white-space: pre-wrap; -} - -/** - * Set consistent quote types. - */ - -q { - quotes: "\201C" "\201D" "\2018" "\2019"; -} - -/** - * Address inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* ========================================================================== - Embedded content - ========================================================================== */ - -/** - * Remove border when inside `a` element in IE 8/9. - */ - -img { - border: 0; -} - -/** - * Correct overflow displayed oddly in IE 9. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* ========================================================================== - Figures - ========================================================================== */ - -/** - * Address margin not present in IE 8/9 and Safari 5. - */ - -figure { - margin: 0; -} - -/* ========================================================================== - Forms - ========================================================================== */ - -/** - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/** - * 1. Correct `color` not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * 1. Correct font family not being inherited in all browsers. - * 2. Correct font size not being inherited in all browsers. - * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. - */ - -button, -input, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 2 */ - margin: 0; /* 3 */ -} - -/** - * Address Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -button, -input { - line-height: normal; -} - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. - * Correct `select` style inheritance in Firefox 4+ and Opera. - */ - -button, -select { - text-transform: none; -} - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/** - * Re-set default cursor for disabled elements. - */ - -button[disabled], -html input[disabled] { - cursor: default; -} - -/** - * 1. Address box sizing set to `content-box` in IE 8/9. - * 2. Remove excess padding in IE 8/9. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/** - * Remove inner padding and search cancel button in Safari 5 and Chrome - * on OS X. - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * Remove inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/** - * 1. Remove default vertical scrollbar in IE 8/9. - * 2. Improve readability and alignment in all browsers. - */ - -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ -} - -/* ========================================================================== - Tables - ========================================================================== */ - -/** - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file diff --git a/ghost/admin/assets/sass/screen.scss b/ghost/admin/assets/sass/screen.scss deleted file mode 100644 index deb4209a38..0000000000 --- a/ghost/admin/assets/sass/screen.scss +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Welcome to Ghost - all styles for the Ghost platform are located within - * this set of Sass files. Use this file like a table of contents. - */ - -/* ========================================================================== - Modules - These styles are re-used in many areas, and are grouped by type. - ========================================================================== */ - - @import "modules/mixins"; - /* Sass variables like colours, font sizes, basic styles. */ - - @import "modules/normalize"; - /* Browser cross compatibility normalisation*/ - - @import "modules/icons"; - /* All the styles controlling icons. */ - - @import "modules/animations"; - /* Keyframe animations. */ - - @import "modules/global"; - /* Global elements for the UI, like the header and footer. */ - - @import "modules/forms"; - /* All the styles controlling forms and form fields. */ - - - -/* ========================================================================== - Layouts - Styles for specific admin screen layouts, grouped by screen. - ========================================================================== */ - - @import "layouts/manage"; - /* The manage posts screen. */ - - @import "layouts/editor"; - /* The write/edit post screen. */ - - @import "layouts/auth"; - /* The login screen. */ - - @import "layouts/errors"; - /* The error screens. */ - - /* ========================================================================== - Settings Layouts - Styles for the individual settings panes, grouped by pane. - ========================================================================== */ - @import "layouts/settings"; - /* The settings screen. */ - - @import "layouts/users"; - /* The users pane. */ - - @import "layouts/plugins"; - /* The plugins pane. */ \ No newline at end of file