Fixed tests

no issue

- replace test themes
  - otherwise they are all invalid with the new GScan version
- fix general tests because of Ghost 2.0 logic
This commit is contained in:
kirrg001 2018-08-12 16:31:08 +02:00 committed by Katharina Irrgang
parent a7a3c27a2e
commit 1af0dbc717
31 changed files with 5786 additions and 141 deletions

View File

@ -0,0 +1,22 @@
Copyright (c) 2013-2018 Ghost Foundation
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

View File

@ -12,7 +12,7 @@ The default theme for [Ghost](http://github.com/tryghost/ghost/). This is the la
Ghost uses a simple templating language called [Handlebars](http://handlebarsjs.com/) for its themes. Ghost uses a simple templating language called [Handlebars](http://handlebarsjs.com/) for its themes.
We've documented our default theme pretty heavily so that it should be fairly easy to work out what's going on just by reading the code and the comments. Once you feel comfortable with how everything works, we also have full [theme API documentation](https://themes.ghost.org/) which explains every possible Handlebars helper and template. We've documented our default theme pretty heavily so that it should be fairly easy to work out what's going on just by reading the code and the comments. Once you feel comfortable with how everything works, we also have full [theme API documentation](https://themes.ghost.org) which explains every possible Handlebars helper and template.
**The main files are:** **The main files are:**
@ -34,12 +34,18 @@ One really neat trick is that you can also create custom one-off templates just
Casper styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need Node and Gulp installed globally. After that, from the theme's root directory: Casper styles are compiled using Gulp/PostCSS to polyfill future CSS spec. You'll need Node and Gulp installed globally. After that, from the theme's root directory:
`$ npm install` ```bash
$ yarn install
`$ gulp` $ yarn dev
```
Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically. Now you can edit `/assets/css/` files, which will be compiled to `/assets/built/` automatically.
The `zip` Gulp task packages the theme files into `dist/<theme-name>.zip`, which you can then upload to your site.
```bash
$ yarn zip
```
# PostCSS Features Used # PostCSS Features Used

View File

@ -0,0 +1,2 @@
a,abbr,acronym,address,applet,article,aside,audio,big,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}img{max-width:100%}html{box-sizing:border-box;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}a{background-color:transparent}a:active,a:hover{outline:0}b,strong{font-weight:700}dfn,em,i{font-style:italic}h1{margin:.67em 0;font-size:2em}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}mark{background-color:#fdffb6}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;color:inherit;font:inherit}button{overflow:visible;border:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input:focus{outline:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}legend{padding:0;border:0}textarea{overflow:auto}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}html{overflow-y:scroll;font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden}body{color:#3c484e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.5rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}::-moz-selection{text-shadow:none;background:#cbeafb}::selection{text-shadow:none;background:#cbeafb}hr{position:relative;display:block;width:100%;margin:2.5em 0 3.5em;padding:0;height:1px;border:0;border-top:1px solid #e3e9ed}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{margin:0;padding:0;border:0}textarea{resize:vertical}blockquote,dl,ol,p,ul{margin:0 0 1.5em}ol,ul{padding-left:1.3em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}ol,ul{max-width:100%}li{margin:.5em 0;padding-left:.3em;line-height:1.6em}dt{float:left;margin:0 20px 0 0;width:120px;color:#15171a;font-weight:500;text-align:right}dd{margin:0 0 5px;text-align:left}blockquote{margin:1.5em 0;padding:0 1.6em;border-left:.5em solid #e5eff5}blockquote p{margin:.8em 0;font-size:1.2em;font-weight:300}blockquote small{display:inline-block;margin:.8em 0 .8em 1.5em;font-size:.9em;opacity:.8}blockquote small:before{content:"\2014 \00A0"}blockquote cite{font-weight:700}blockquote cite a{font-weight:400}a{color:#26a8ed;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.15;font-weight:700;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5rem;font-weight:700}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2rem}@media (max-width:500px){h2{font-size:1.8rem}}h3{margin:1.5em 0 .5em;font-size:1.8rem;font-weight:500}@media (max-width:500px){h3{font-size:1.7rem}}h4{margin:1.5em 0 .5em;font-size:1.6rem;font-weight:500}h5,h6{margin:1.5em 0 .5em;font-size:1.4rem;font-weight:500}
/*# sourceMappingURL=global.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,237 @@
{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "lower",
"block-indent": " ",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"quotes": "double",
"space-before-colon": "",
"space-after-colon": " ",
"space-before-combinator": " ",
"space-after-combinator": " ",
"space-between-declarations": "\n",
"space-before-opening-brace": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": "\n",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"strip-spaces": true,
"tab-size": 4,
"unitless-zero": true,
"sort-order": [ [
"content",
"visibility",
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"order",
"flex",
"flex-grow",
"flex-shrink",
"flex-basis",
"align-self",
"display",
"flex-flow",
"flex-direction",
"flex-wrap",
"justify-content",
"align-items",
"align-content",
"flex-order",
"flex-pack",
"flex-align",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"-webkit-overflow-scrolling",
"clip",
"box-sizing",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"min-width",
"min-height",
"max-width",
"max-height",
"width",
"height",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"border",
"border-spacing",
"border-collapse",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"border-top-image",
"border-right-image",
"border-bottom-image",
"border-left-image",
"border-corner-image",
"border-top-left-image",
"border-top-right-image",
"border-bottom-right-image",
"border-bottom-left-image",
"color",
"font",
"font-family",
"font-size",
"line-height",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"font-feature-settings",
"letter-spacing",
"text-rendering",
"text-align",
"text-align-last",
"text-decoration",
"text-emphasis",
"text-emphasis-position",
"text-emphasis-style",
"text-emphasis-color",
"text-indent",
"text-justify",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-shadow",
"white-space",
"word-spacing",
"word-wrap",
"word-break",
"tab-size",
"hyphens",
"user-select",
"fill",
"stroke",
"background",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"background-color",
"background-image",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-size",
"background-repeat",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"box-decoration-break",
"box-shadow",
"table-layout",
"caption-side",
"empty-cells",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"quotes",
"counter-increment",
"counter-reset",
"vertical-align",
"src",
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"filter",
"resize",
"cursor",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"pointer-events",
"unicode-bidi",
"direction",
"columns",
"column-span",
"column-width",
"column-count",
"column-fill",
"column-gap",
"column-rule",
"column-rule-width",
"column-rule-style",
"column-rule-color",
"break-before",
"break-inside",
"break-after",
"page-break-before",
"page-break-inside",
"page-break-after",
"orphans",
"widows",
"zoom",
"max-zoom",
"min-zoom",
"user-zoom",
"orientation"
] ]
}

View File

@ -0,0 +1,240 @@
{
"remove-empty-rulesets": true,
"always-semicolon": true,
"color-case": "lower",
"block-indent": " ",
"color-shorthand": true,
"element-case": "lower",
"eof-newline": true,
"leading-zero": true,
"quotes": "double",
"space-before-colon": "",
"space-after-colon": " ",
"space-before-combinator": " ",
"space-after-combinator": " ",
"space-between-declarations": "\n",
"space-before-opening-brace": " ",
"space-after-opening-brace": "\n",
"space-after-selector-delimiter": "\n",
"space-before-selector-delimiter": "",
"space-before-closing-brace": "\n",
"strip-spaces": true,
"tab-size": 4,
"unitless-zero": true,
"sort-order": [ [
"content",
"visibility",
"position",
"top",
"right",
"bottom",
"left",
"z-index",
"order",
"flex",
"flex-grow",
"flex-shrink",
"flex-basis",
"align-self",
"display",
"flex-flow",
"flex-direction",
"justify-content",
"align-items",
"align-content",
"flex-wrap",
"flex-order",
"flex-pack",
"flex-align",
"float",
"clear",
"box-sizing",
"width",
"height",
"min-width",
"min-height",
"max-width",
"max-height",
"overflow",
"overflow-x",
"overflow-y",
"clip",
"margin",
"margin-top",
"margin-right",
"margin-bottom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"outline",
"outline-width",
"outline-style",
"outline-color",
"outline-offset",
"border",
"border-spacing",
"border-collapse",
"border-width",
"border-style",
"border-color",
"border-top",
"border-top-width",
"border-top-style",
"border-top-color",
"border-right",
"border-right-width",
"border-right-style",
"border-right-color",
"border-bottom",
"border-bottom-width",
"border-bottom-style",
"border-bottom-color",
"border-left",
"border-left-width",
"border-left-style",
"border-left-color",
"border-image",
"border-image-source",
"border-image-slice",
"border-image-width",
"border-image-outset",
"border-image-repeat",
"border-top-image",
"border-right-image",
"border-bottom-image",
"border-left-image",
"border-corner-image",
"border-top-left-image",
"border-top-right-image",
"border-bottom-right-image",
"border-bottom-left-image",
"table-layout",
"caption-side",
"empty-cells",
"list-style",
"list-style-position",
"list-style-type",
"list-style-image",
"quotes",
"counter-increment",
"counter-reset",
"vertical-align",
"stroke",
"fill",
"stroke-width",
"stroke-opacity",
"color",
"font",
"font-family",
"font-size",
"line-height",
"font-weight",
"font-style",
"font-variant",
"font-size-adjust",
"font-stretch",
"text-rendering",
"font-feature-settings",
"letter-spacing",
"hyphens",
"text-align",
"text-align-last",
"text-decoration",
"text-emphasis",
"text-emphasis-position",
"text-emphasis-style",
"text-emphasis-color",
"text-indent",
"text-justify",
"text-outline",
"text-transform",
"text-wrap",
"text-overflow",
"text-overflow-ellipsis",
"text-overflow-mode",
"text-shadow",
"white-space",
"word-spacing",
"word-wrap",
"word-break",
"tab-size",
"user-select",
"src",
"resize",
"cursor",
"nav-index",
"nav-up",
"nav-right",
"nav-down",
"nav-left",
"background",
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader",
"background-color",
"background-image",
"background-size",
"background-attachment",
"background-position",
"background-position-x",
"background-position-y",
"background-clip",
"background-origin",
"background-repeat",
"border-radius",
"border-top-left-radius",
"border-top-right-radius",
"border-bottom-right-radius",
"border-bottom-left-radius",
"box-decoration-break",
"box-shadow",
"opacity",
"filter:progid:DXImageTransform.Microsoft.Alpha(Opacity",
"filter",
"transition",
"transition-delay",
"transition-timing-function",
"transition-duration",
"transition-property",
"transform",
"transform-origin",
"animation",
"animation-name",
"animation-duration",
"animation-play-state",
"animation-timing-function",
"animation-delay",
"animation-iteration-count",
"animation-direction",
"animation-fill-mode",
"pointer-events",
"unicode-bidi",
"direction",
"columns",
"column-span",
"column-width",
"column-count",
"column-fill",
"column-gap",
"column-rule",
"column-rule-width",
"column-rule-style",
"column-rule-color",
"break-before",
"break-inside",
"break-after",
"page-break-before",
"page-break-inside",
"page-break-after",
"orphans",
"widows",
"zoom",
"max-zoom",
"min-zoom",
"user-zoom",
"orientation",
"-webkit-overflow-scrolling",
"-ms-overflow-scrolling"
] ]
}

View File

@ -0,0 +1,486 @@
/* Variables
/* ---------------------------------------------------------- */
:root {
/* Colours */
--blue: #3eb0ef;
--green: #a4d037;
--purple: #ad26b4;
--yellow: #fecd35;
--red: #f05230;
--darkgrey: #15171A;
--midgrey: #738a94;
--lightgrey: #c5d2d9;
--whitegrey: #e5eff5;
--pink: #fa3a57;
--brown: #a3821a;
}
/* Reset
/* ---------------------------------------------------------- */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
font-size: 100%;
vertical-align: baseline;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: "";
content: none;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
img {
max-width: 100%;
}
html {
box-sizing: border-box;
font-family: sans-serif;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline: 0;
}
b,
strong {
font-weight: bold;
}
i,
em,
dfn {
font-style: italic;
}
h1 {
margin: 0.67em 0;
font-size: 2em;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
mark {
background-color: #fdffb6;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
margin: 0; /* 3 */
color: inherit; /* 1 */
font: inherit; /* 2 */
}
button {
overflow: visible;
border: none;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
/* 1 */
input[type="reset"],
input[type="submit"] {
cursor: pointer; /* 3 */
-webkit-appearance: button; /* 2 */
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
padding: 0;
border: 0;
}
input {
line-height: normal;
}
input:focus {
outline: none;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
box-sizing: content-box; /* 2 */
-webkit-appearance: textfield; /* 1 */
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
legend {
padding: 0; /* 2 */
border: 0; /* 1 */
}
textarea {
overflow: auto;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
td,
th {
padding: 0;
}
/* ==========================================================================
Base styles: opinionated defaults
========================================================================== */
html {
overflow-x: hidden;
overflow-y: scroll;
font-size: 62.5%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
overflow-x: hidden;
color: color(var(--midgrey) l(-25%));
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 1.5rem;
line-height: 1.6em;
font-weight: 400;
font-style: normal;
letter-spacing: 0;
text-rendering: optimizeLegibility;
background: #fff;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-moz-font-feature-settings: "liga" on;
}
::selection {
text-shadow: none;
background: color(var(--blue) lightness(+30%));
}
hr {
position: relative;
display: block;
width: 100%;
margin: 2.5em 0 3.5em;
padding: 0;
height: 1px;
border: 0;
border-top: 1px solid color(var(--lightgrey) l(+10%));
}
audio,
canvas,
iframe,
img,
svg,
video {
vertical-align: middle;
}
fieldset {
margin: 0;
padding: 0;
border: 0;
}
textarea {
resize: vertical;
}
p,
ul,
ol,
dl,
blockquote {
margin: 0 0 1.5em 0;
}
ol,
ul {
padding-left: 1.3em;
padding-right: 1.5em;
}
ol ol,
ul ul,
ul ol,
ol ul {
margin: 0.5em 0 1em;
}
ul {
list-style: disc;
}
ol {
list-style: decimal;
}
ul,
ol {
max-width: 100%;
}
li {
margin: 0.5em 0;
padding-left: 0.3em;
line-height: 1.6em;
}
dt {
float: left;
margin: 0 20px 0 0;
width: 120px;
color: var(--darkgrey);
font-weight: 500;
text-align: right;
}
dd {
margin: 0 0 5px 0;
text-align: left;
}
blockquote {
margin: 1.5em 0;
padding: 0 1.6em 0 1.6em;
border-left: var(--whitegrey) 0.5em solid;
}
blockquote p {
margin: 0.8em 0;
font-size: 1.2em;
font-weight: 300;
}
blockquote small {
display: inline-block;
margin: 0.8em 0 0.8em 1.5em;
font-size: 0.9em;
opacity: 0.8;
}
/* Quotation marks */
blockquote small:before {
content: "\2014 \00A0";
}
blockquote cite {
font-weight: bold;
}
blockquote cite a {
font-weight: normal;
}
a {
color: color(var(--blue) l(-5%));
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-top: 0;
line-height: 1.15;
font-weight: 700;
text-rendering: optimizeLegibility;
}
h1 {
margin: 0 0 0.5em 0;
font-size: 5rem;
font-weight: 700;
}
@media (max-width: 500px) {
h1 {
font-size: 2.2rem;
}
}
h2 {
margin: 1.5em 0 0.5em 0;
font-size: 2rem;
}
@media (max-width: 500px) {
h2 {
font-size: 1.8rem;
}
}
h3 {
margin: 1.5em 0 0.5em 0;
font-size: 1.8rem;
font-weight: 500;
}
@media (max-width: 500px) {
h3 {
font-size: 1.7rem;
}
}
h4 {
margin: 1.5em 0 0.5em 0;
font-size: 1.6rem;
font-weight: 500;
}
h5 {
margin: 1.5em 0 0.5em 0;
font-size: 1.4rem;
font-weight: 500;
}
h6 {
margin: 1.5em 0 0.5em 0;
font-size: 1.4rem;
font-weight: 500;
}

View File

@ -13,9 +13,12 @@ production stylesheet in assets/built/screen.css
7. Single Post 7. Single Post
7.1. Subscribe Form 7.1. Subscribe Form
7.2. Post Footer 7.2. Post Footer
7.2.1 Single Author Byline
7.2.2 Multiple Author Byline
7.3. Comments 7.3. Comments
7.4. Related Posts 7.4. Related Posts
7.5. Floating Header 7.5. Floating Header
7.6. Koenig Styles
8. Author Template 8. Author Template
9. Error Template 9. Error Template
10. Subscribe Overlay 10. Subscribe Overlay
@ -36,8 +39,8 @@ body {
display: block; display: block;
width: 100%; width: 100%;
height: 100%; height: 100%;
background-size: cover;
background-position: center center; background-position: center center;
background-size: cover;
border-radius: 100%; border-radius: 100%;
} }
@ -70,9 +73,9 @@ body {
/* Centered content container blocks */ /* Centered content container blocks */
.inner { .inner {
width: 100%;
max-width: 1040px;
margin: 0 auto; margin: 0 auto;
max-width: 1040px;
width: 100%;
} }
/* Usage: /* Usage:
@ -149,9 +152,9 @@ body {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
padding: 10vw 4vw;
min-height: 200px; min-height: 200px;
max-height: 450px; max-height: 450px;
padding: 10vw 4vw;
text-align: center; text-align: center;
} }
@ -196,8 +199,8 @@ body {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
height: 40px;
overflow-y: hidden; overflow-y: hidden;
height: 40px;
font-size: 1.2rem; font-size: 1.2rem;
} }
@ -206,11 +209,12 @@ body {
align-items: center; align-items: center;
overflow-x: auto; overflow-x: auto;
overflow-y: hidden; overflow-y: hidden;
-webkit-overflow-scrolling: touch;
margin-right: 10px; margin-right: 10px;
padding-bottom: 80px; padding-bottom: 80px;
letter-spacing: 0.4px; letter-spacing: 0.4px;
white-space: nowrap; white-space: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-scrolling: touch; -ms-overflow-scrolling: touch;
} }
@ -348,8 +352,8 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
} }
.rss-button svg { .rss-button svg {
height: 2.1rem;
margin-bottom: 1px; margin-bottom: 1px;
height: 2.1rem;
fill: #fff; fill: #fff;
} }
@ -383,9 +387,9 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
flex: 1 1 300px; flex: 1 1 300px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-height: 300px;
overflow: hidden; overflow: hidden;
margin: 0 20px 40px; margin: 0 20px 40px;
min-height: 300px;
background: #fff center center; background: #fff center center;
background-size: cover; background-size: cover;
border-radius: 5px; border-radius: 5px;
@ -394,9 +398,9 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
} }
.post-card:hover { .post-card:hover {
box-shadow: 0 0 1px rgba(39,44,49,0.10), 0 3px 16px rgba(39, 44, 49,0.07); box-shadow: rgba(39,44,49,0.07) 8px 28px 50px, rgba(39, 44, 49, 0.04) 1px 6px 12px;
transition: all 0.3s ease; transition: all 0.4s ease;
transform: translate3D(0, -1px, 0); transform: translate3D(0, -1px, 0) scale(1.02);
} }
.post-card-image-link { .post-card-image-link {
@ -415,6 +419,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
.post-card-content-link { .post-card-content-link {
position: relative; position: relative;
flex-grow: 1;
display: block; display: block;
padding: 25px 25px 0; padding: 25px 25px 0;
color: var(--darkgrey); color: var(--darkgrey);
@ -451,20 +456,138 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
} }
.post-card-meta { .post-card-meta {
display: flex;
justify-content: space-between;
align-items: flex-end;
padding: 0 25px 25px; padding: 0 25px 25px;
} }
.author-profile-image { .author-profile-image,
width: 25px; .avatar-wrapper {
height: 25px; display: block;
margin-right: 5px; width: 100%;
height: 100%;
background: color(var(--lightgrey) l(+10%));
border-radius: 100%; border-radius: 100%;
object-fit: cover; object-fit: cover;
} }
.post-card-author { .post-card-meta .profile-image-wrapper,
font-size: 1.3rem; .post-card-meta .avatar-wrapper {
position: relative;
}
.author-list {
display: flex;
flex-wrap: wrap-reverse;
margin: 0;
padding: 0;
list-style: none;
}
.author-list-item {
position: relative;
flex-shrink: 0;
margin: 0;
padding: 0;
}
.author-list-item:nth-child(1) {
z-index: 10;
}
.author-list-item:nth-child(2) {
z-index: 9;
}
.author-list-item:nth-child(3) {
z-index: 8;
}
.author-list-item:nth-child(4) {
z-index: 7;
}
.author-list-item:nth-child(5) {
z-index: 6;
}
.author-list-item:nth-child(6) {
z-index: 5;
}
.author-list-item:nth-child(7) {
z-index: 4;
}
.author-list-item:nth-child(8) {
z-index: 3;
}
.author-list-item:nth-child(9) {
z-index: 2;
}
.author-list-item:nth-child(10) {
z-index: 1;
}
.static-avatar {
display: block;
overflow: hidden;
margin: 0 -5px;
width: 34px;
height: 34px;
border: #fff 2px solid;
border-radius: 100%;
}
.moving-avatar {
display: block;
overflow: hidden;
margin: 0 -6px;
width: 56px;
height: 56px;
border: #fff 2px solid;
border-radius: 100%;
transition: all 0.5s cubic-bezier(0.4, 0.01, 0.165, 0.99) 0.7s;
}
@media (min-width: 800px) {
.author-list:hover .moving-avatar {
margin: 0;
transition: all 0.3s cubic-bezier(0.4, 0.01, 0.165, 0.99);
}
}
.author-name-tooltip {
position: absolute;
bottom: 105%;
z-index: 999;
display: block;
padding: 2px 8px;
color: white;
font-size: 1.2rem;
letter-spacing: 0.2px;
white-space: nowrap;
background: var(--darkgrey);
border-radius: 3px;
box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px;
opacity: 0;
transition: all 0.3s cubic-bezier(0.4, 0.01, 0.165, 0.99);
transform: translateY(6px);
pointer-events: none;
}
.author-list-item:hover .author-name-tooltip {
opacity: 1.0;
transform: translateY(0px);
}
@media (max-width: 650px) {
.author-name-tooltip {
display: none;
}
}
.reading-time {
flex-shrink: 0;
margin-left: 20px;
color: var(--midgrey);
font-size: 1.2rem;
line-height: 33px;
font-weight: 500; font-weight: 500;
letter-spacing: 0.5px; letter-spacing: 0.5px;
text-transform: uppercase; text-transform: uppercase;
@ -549,9 +672,9 @@ The first (most recent) post in the list is styled to be bigger than the others
/* ^ Required to make .post-full-content:before/after z-index stacking work */ /* ^ Required to make .post-full-content:before/after z-index stacking work */
.post-full-header { .post-full-header {
max-width: 1040px;
margin: 0 auto; margin: 0 auto;
padding: 6vw 3vw 3vw; padding: 6vw 3vw 3vw;
max-width: 1040px;
text-align: center; text-align: center;
} }
@media (max-width: 500px) { @media (max-width: 500px) {
@ -585,8 +708,8 @@ The first (most recent) post in the list is styled to be bigger than the others
} }
.post-full-image { .post-full-image {
height: 800px;
margin: 0 -10vw -165px; margin: 0 -10vw -165px;
height: 800px;
background: var(--lightgrey) center center; background: var(--lightgrey) center center;
background-size: cover; background-size: cover;
border-radius: 5px; border-radius: 5px;
@ -594,8 +717,8 @@ The first (most recent) post in the list is styled to be bigger than the others
@media (max-width: 1170px) { @media (max-width: 1170px) {
.post-full-image { .post-full-image {
height: 600px;
margin: 0 -4vw -100px; margin: 0 -4vw -100px;
height: 600px;
border-radius: 0; border-radius: 0;
} }
} }
@ -608,9 +731,9 @@ The first (most recent) post in the list is styled to be bigger than the others
.post-full-content { .post-full-content {
position: relative; position: relative;
min-height: 230px;
margin: 0 auto; margin: 0 auto;
padding: 70px 100px 0; padding: 70px 100px 0;
min-height: 230px;
font-family: Georgia, serif; font-family: Georgia, serif;
font-size: 2.2rem; font-size: 2.2rem;
line-height: 1.6em; line-height: 1.6em;
@ -665,13 +788,6 @@ The first (most recent) post in the list is styled to be bigger than the others
display: none; display: none;
} }
.kg-card-markdown {
display: flex;
flex-direction: column;
align-items: center;
max-width: 920px;
}
.post-full-content h1, .post-full-content h1,
.post-full-content h2, .post-full-content h2,
.post-full-content h3, .post-full-content h3,
@ -697,11 +813,6 @@ The first (most recent) post in the list is styled to be bigger than the others
margin: 0; margin: 0;
} }
.post-template .kg-card-markdown > p:first-child {
font-size: 1.25em;
line-height: 1.5em;
}
.post-full-content a { .post-full-content a {
color: #000; color: #000;
box-shadow: var(--blue) 0 -1px 0 inset; box-shadow: var(--blue) 0 -1px 0 inset;
@ -729,8 +840,8 @@ The first (most recent) post in the list is styled to be bigger than the others
.post-full-content img, .post-full-content img,
.post-full-content video { .post-full-content video {
display: block; display: block;
max-width: 1040px;
margin: 1.5em auto; margin: 1.5em auto;
max-width: 1040px;
} }
@media (max-width: 1040px) { @media (max-width: 1040px) {
.post-full-content img, .post-full-content img,
@ -749,8 +860,8 @@ Usage (In Ghost edtior):
*/ */
.post-full-content img[src$="#full"] { .post-full-content img[src$="#full"] {
width: 100vw;
max-width: none; max-width: none;
width: 100vw;
} }
@ -766,6 +877,7 @@ Usage (In Ghost editor):
display: block; display: block;
margin-top: -3em; margin-top: -3em;
margin-bottom: 1.5em; margin-bottom: 1.5em;
text-align: center;
} }
@ -801,10 +913,10 @@ Usage (In Ghost editor):
} }
.post-full-content pre { .post-full-content pre {
max-width: 100%;
overflow-x: auto; overflow-x: auto;
margin: 1.5em 0 3em; margin: 1.5em 0 3em;
padding: 20px; padding: 20px;
max-width: 100%;
border: color(var(--darkgrey) l(-10%)) 1px solid; border: color(var(--darkgrey) l(-10%)) 1px solid;
color: var(--whitegrey); color: var(--whitegrey);
font-size: 1.4rem; font-size: 1.4rem;
@ -820,6 +932,10 @@ Usage (In Ghost editor):
background: transparent; background: transparent;
} }
.post-full-content pre code * {
color: inherit;
}
.post-full-content .fluid-width-video-wrapper { .post-full-content .fluid-width-video-wrapper {
margin: 1.5em 0 3em; margin: 1.5em 0 3em;
} }
@ -834,9 +950,9 @@ Usage (In Ghost editor):
top: -15px; top: -15px;
left: 50%; left: 50%;
display: block; display: block;
margin-left: -10px;
width: 1px; width: 1px;
height: 30px; height: 30px;
margin-left: -10px;
background: color(var(--lightgrey) l(+10%)); background: color(var(--lightgrey) l(+10%));
box-shadow: #fff 0 0 0 5px; box-shadow: #fff 0 0 0 5px;
transform: rotate(45deg); transform: rotate(45deg);
@ -909,8 +1025,8 @@ Usage (In Ghost editor):
} }
@media (min-width: 1180px) { @media (min-width: 1180px) {
.post-full-content h5 { .post-full-content h5 {
width: 100vw;
max-width: 1060px; max-width: 1060px;
width: 100vw;
} }
} }
@media (max-width: 500px) { @media (max-width: 500px) {
@ -961,8 +1077,8 @@ Usage (In Ghost editor):
font-size: 2.9rem; font-size: 2.9rem;
} }
.post-full-image { .post-full-image {
height: 350px;
margin-bottom: 4vw; margin-bottom: 4vw;
height: 350px;
} }
.post-full-content { .post-full-content {
padding: 0; padding: 0;
@ -976,24 +1092,24 @@ Usage (In Ghost editor):
/* Tables */ /* Tables */
.post-full-content table { .post-full-content table {
display: inline-block; display: inline-block;
width: auto;
max-width: 100%;
overflow-x: auto; overflow-x: auto;
margin: 0.5em 0 2.5em; margin: 0.5em 0 2.5em;
max-width: 100%;
width: auto;
border-spacing: 0; border-spacing: 0;
border-collapse: collapse; border-collapse: collapse;
vertical-align: top;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 1.6rem; font-size: 1.6rem;
white-space: nowrap; white-space: nowrap;
vertical-align: top;
} }
.post-full-content table { .post-full-content table {
background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;
background-size: 10px 100%, 10px 100%;
background-attachment: scroll, scroll;
background-repeat: no-repeat;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
background: radial-gradient(ellipse at left, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 0 center, radial-gradient(ellipse at right, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 75%) 100% center;
background-attachment: scroll, scroll;
background-size: 10px 100%, 10px 100%;
background-repeat: no-repeat;
} }
.post-full-content table td:first-child { .post-full-content table td:first-child {
@ -1004,8 +1120,8 @@ Usage (In Ghost editor):
.post-full-content table td:last-child { .post-full-content table td:last-child {
background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%); background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);
background-size: 20px 100%;
background-position: 100% 0; background-position: 100% 0;
background-size: 20px 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
@ -1059,8 +1175,8 @@ Usage (In Ghost editor):
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
max-width: 420px;
margin: 0 auto; margin: 0 auto;
max-width: 420px;
} }
.subscribe-form .form-group { .subscribe-form .form-group {
@ -1069,8 +1185,8 @@ Usage (In Ghost editor):
.subscribe-email { .subscribe-email {
display: block; display: block;
width: 100%;
padding: 10px; padding: 10px;
width: 100%;
border: color(var(--lightgrey) l(+7%)) 1px solid; border: color(var(--lightgrey) l(+7%)) 1px solid;
color: var(--midgrey); color: var(--midgrey);
font-size: 1.8rem; font-size: 1.8rem;
@ -1090,9 +1206,9 @@ Usage (In Ghost editor):
.subscribe-form button { .subscribe-form button {
display: inline-block; display: inline-block;
height: 41px;
margin: 0 0 0 10px; margin: 0 0 0 10px;
padding: 0 20px; padding: 0 20px;
height: 41px;
outline: none; outline: none;
color: #fff; color: #fff;
font-size: 1.5rem; font-size: 1.5rem;
@ -1134,8 +1250,8 @@ Usage (In Ghost editor):
width: 100%; width: 100%;
} }
.subscribe-form button { .subscribe-form button {
width: 100%;
margin: 10px 0 0 0; margin: 10px 0 0 0;
width: 100%;
} }
} }
@ -1147,24 +1263,27 @@ Usage (In Ghost editor):
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
max-width: 840px;
margin: 0 auto; margin: 0 auto;
padding: 3vw 0 6vw 0; padding: 3vw 0 6vw 0;
max-width: 840px;
} }
/* 7.2.1 Single Author Byline
/* ---------------------------------------------------------- */
.author-card { .author-card {
display: flex; display: flex;
align-items: center;
} }
.author-card .author-profile-image { .author-card .author-profile-image,
.author-card .avatar-wrapper {
margin-right: 15px;
width: 60px; width: 60px;
height: 60px; height: 60px;
margin-right: 15px;
} }
.author-card-name { .author-card-name {
margin: 0 0 2px 0; margin: 8px 0 2px 0;
padding: 0; padding: 0;
font-size: 2rem; font-size: 2rem;
} }
@ -1207,13 +1326,144 @@ Usage (In Ghost editor):
text-decoration: none; text-decoration: none;
} }
/* 7.2.2 Multiple Author Byline
/* ---------------------------------------------------------- */
.post-full-authors {
flex-grow: 1;
display: flex;
flex-direction: column;
align-items: center;
margin-top: 20px;
padding-top: 40px;
border-top: color(var(--lightgrey) l(+10%)) 1px solid;
}
.post-full-authors-content {
margin-bottom: 20px;
}
.post-full-authors-content p {
margin-bottom: 0;
color: var(--midgrey);
font-size: 1.4rem;
letter-spacing: 0.2px;
text-align: center;
text-transform: uppercase;
}
.post-full-authors-content a {
display: inline-block;
color: color(var(--darkgrey) l(+20%));
font-size: 1.4rem;
font-weight: 600;
text-transform: uppercase;
}
.post-full-footer .author-list {
justify-content: center;
padding: 10px 20px;
}
.author-card .author-profile-image,
.author-card .avatar-wrapper {
position: relative;
margin-right: 15px;
}
.author-list-item .author-card {
position: absolute;
bottom: 130%;
left: 50%;
z-index: 300;
display: block;
margin-left: -160px;
width: 320px;
font-size: 1.4rem;
letter-spacing: 0.2px;
background: white;
border-radius: 6px;
box-shadow: rgba(39,44,49,0.08) 0 12px 26px, rgba(39, 44, 49, 0.03) 1px 3px 8px;
opacity: 0;
transition: all 0.3s cubic-bezier(0.4, 0.01, 0.165, 0.99);
transform: scale(0.98) translateY(15px);
pointer-events: none;
}
.author-list-item .author-card:before {
content: "";
position: absolute;
top: 100%;
left: 50%;
display: block;
margin-left: -12px;
width: 0;
height: 0;
border-top: 12px solid #fff;
border-right: 12px solid transparent;
border-left: 12px solid transparent;
}
.author-list-item .author-card.hovered {
opacity: 1.0;
transform: scale(1) translateY(0px);
pointer-events: auto;
}
.author-card .basic-info {
display: flex;
flex-direction: column;
align-items: center;
padding: 30px 20px 20px 20px;
color: #fff;
background: var(--darkgrey);
border-radius: 6px 6px 0 0;
}
.author-card .basic-info h2 {
margin: 1em 0 0.5em;
}
.author-card .bio {
padding: 20px 20px 0;
}
@media (max-width: 650px) {
.author-list-item .author-card {
display: none;
}
}
.basic-info .author-profile-image {
margin: 0;
width: 88px;
height: 88px;
border: none;
}
.basic-info .avatar-wrapper {
position: relative;
margin: 0;
width: 88px;
height: 88px;
border: none;
background: rgba(229, 239, 245, 0.1);
}
.basic-info .avatar-wrapper svg {
margin: 0;
width: 88px;
height: 88px;
opacity: 0.15;
}
/* 7.3. Comments /* 7.3. Comments
/* ---------------------------------------------------------- */ /* ---------------------------------------------------------- */
.post-full-comments { .post-full-comments {
max-width: 840px;
margin: 0 auto; margin: 0 auto;
max-width: 840px;
} }
@ -1298,8 +1548,9 @@ Usage (In Ghost editor):
.read-next-divider svg { .read-next-divider svg {
width: 40px; width: 40px;
stroke: #fff;
fill: transparent; fill: transparent;
stroke: #fff;
stroke-width: 0.5px; stroke-width: 0.5px;
stroke-opacity: 0.65; stroke-opacity: 0.65;
} }
@ -1317,8 +1568,8 @@ Usage (In Ghost editor):
flex-direction: column; flex-direction: column;
margin: 0 auto; margin: 0 auto;
padding: 0; padding: 0;
list-style: none;
text-align: center; text-align: center;
list-style: none;
} }
.read-next-card-content li { .read-next-card-content li {
@ -1334,9 +1585,9 @@ Usage (In Ghost editor):
display: block; display: block;
padding: 20px 0; padding: 20px 0;
border-bottom: rgba(255,255,255,0.3) 1px solid; border-bottom: rgba(255,255,255,0.3) 1px solid;
vertical-align: top;
color: #fff; color: #fff;
font-weight: 500; font-weight: 500;
vertical-align: top;
transition: opacity 0.3s ease; transition: opacity 0.3s ease;
} }
@ -1407,8 +1658,8 @@ Usage (In Ghost editor):
} }
.floating-header-logo img { .floating-header-logo img {
max-height: 20px;
margin: 0 10px 0 0; margin: 0 10px 0 0;
max-height: 20px;
} }
.floating-header-divider { .floating-header-divider {
@ -1459,9 +1710,9 @@ Usage (In Ghost editor):
} }
.floating-header-share-label svg { .floating-header-share-label svg {
margin: 0 5px 0 10px;
width: 18px; width: 18px;
height: 18px; height: 18px;
margin: 0 5px 0 10px;
stroke: rgba(0,0,0,0.7); stroke: rgba(0,0,0,0.7);
transform: rotate(90deg); transform: rotate(90deg);
} }
@ -1565,23 +1816,98 @@ Usage (In Ghost editor):
} }
/* 7.6. Koenig Styles
/* ---------------------------------------------------------- */
.post-content {
display: flex;
flex-direction: column;
align-items: center;
max-width: 920px;
}
.post-template .post-content > p:first-child {
font-size: 1.25em;
line-height: 1.5em;
}
.post-full-content .kg-image {
max-width: 100%;
}
/* Preventing full-width image overlap with post image. */
.post-full-image + .post-full-content .kg-content *:first-child .kg-image {
width: 100%;
}
.post-full-content .kg-width-wide .kg-image {
max-width: 1040px;
}
.post-full-content .kg-width-full .kg-image {
max-width: 100vw;
}
.post-content figcaption {
font-size: 80%;
line-height: 1.6em;
text-align: center;
}
.kg-image-card {
margin: 0 0 1.5em;
}
.kg-image-card figcaption {
margin: -1.0em 0 1.5em;
}
.kg-embed-card {
display: flex;
flex-direction: column;
align-items: center;
margin: 1.5em 0 3em;
min-width: 100%;
}
.kg-embed-card figcaption {
margin: 0.5em 0 0;
}
.kg-embed-card .fluid-width-video-wrapper {
margin: 0;
}
.kg-image-full + figcaption {
padding: 0 1.5em;
}
@media (max-width: 1040px) {
.post-full-content .kg-width-full .kg-image {
width: 100vw;
}
}
/* 8. Author Template /* 8. Author Template
/* ---------------------------------------------------------- */ /* ---------------------------------------------------------- */
.site-header-content .author-profile-image { .site-header-content .author-profile-image {
z-index: 10; z-index: 10;
flex-shrink: 0; flex-shrink: 0;
margin: 0 0 20px 0;
width: 100px; width: 100px;
height: 100px; height: 100px;
margin: 0 0 20px 0;
box-shadow: rgba(255,255,255,0.1) 0 0 0 6px; box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;
} }
.site-header-content .author-bio { .site-header-content .author-bio {
z-index: 10; z-index: 10;
flex-shrink: 0; flex-shrink: 0;
max-width: 600px;
margin: 5px 0 10px 0; margin: 5px 0 10px 0;
max-width: 600px;
font-size: 2rem; font-size: 2rem;
line-height: 1.3em; line-height: 1.3em;
font-weight: 300; font-weight: 300;
@ -1733,8 +2059,8 @@ Usage (In Ghost editor):
} }
.subscribe-overlay-description { .subscribe-overlay-description {
max-width: 650px;
margin: 0 auto 50px; margin: 0 auto 50px;
max-width: 650px;
font-family: Georgia, serif; font-family: Georgia, serif;
font-size: 3rem; font-size: 3rem;
line-height: 1.3em; line-height: 1.3em;
@ -1746,8 +2072,8 @@ Usage (In Ghost editor):
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
max-width: 500px;
margin: 0 auto; margin: 0 auto;
max-width: 500px;
} }
.subscribe-overlay .form-group { .subscribe-overlay .form-group {
@ -1756,8 +2082,8 @@ Usage (In Ghost editor):
.subscribe-overlay .subscribe-email { .subscribe-overlay .subscribe-email {
display: block; display: block;
width: 100%;
padding: 14px 20px; padding: 14px 20px;
width: 100%;
border: none; border: none;
color: var(--midgrey); color: var(--midgrey);
font-size: 2rem; font-size: 2rem;
@ -1778,9 +2104,9 @@ Usage (In Ghost editor):
.subscribe-overlay button { .subscribe-overlay button {
display: inline-block; display: inline-block;
height: 52px;
margin: 0 0 0 15px; margin: 0 0 0 15px;
padding: 0 25px; padding: 0 25px;
height: 52px;
outline: none; outline: none;
color: #fff; color: #fff;
font-size: 1.7rem; font-size: 1.7rem;
@ -1858,15 +2184,15 @@ Usage (In Ghost editor):
.site-footer-content { .site-footer-content {
display: flex; display: flex;
flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-wrap: wrap;
color: rgba(255,255,255,0.7); color: rgba(255,255,255,0.7);
font-size: 1.3rem; font-size: 1.3rem;
} }
.site-footer-content a { .site-footer-content a {
color: rgba(255,255,255,0.7);; color: rgba(255,255,255,0.7);
} }
.site-footer-content a:hover { .site-footer-content a:hover {

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -22,15 +22,15 @@
{{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}} <span class="bull">&bull;</span> {{plural ../pagination.total empty='No posts' singular='% post' plural='% posts'}} <span class="bull">&bull;</span>
</div> </div>
{{#if website}} {{#if website}}
<a class="social-link social-link-wb" href="{{website}}" target="_blank">{{> "icons/website"}}</a> <a class="social-link social-link-wb" href="{{website}}" target="_blank" rel="noopener">{{> "icons/website"}}</a>
{{/if}} {{/if}}
{{#if twitter}} {{#if twitter}}
<a class="social-link social-link-tw" href="{{twitter_url}}" target="_blank">{{> "icons/twitter"}}</a> <a class="social-link social-link-tw" href="{{twitter_url}}" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
{{/if}} {{/if}}
{{#if facebook}} {{#if facebook}}
<a class="social-link social-link-fb" href="{{facebook_url}}" target="_blank">{{> "icons/facebook"}}</a> <a class="social-link social-link-fb" href="{{facebook_url}}" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
{{/if}} {{/if}}
<a class="social-link social-link-rss" href="http://cloud.feedly.com/#subscription/feed/{{url absolute="true"}}/rss/" target="_blank">{{> "icons/rss"}}</a> <a class="social-link social-link-rss" href="https://feedly.com/i/subscription/feed/{{url absolute="true"}}rss/" target="_blank" rel="noopener">{{> "icons/rss"}}</a>
</div> </div>
</div> </div>
</div> </div>
@ -38,7 +38,7 @@
{{/author}} {{/author}}
{{!-- The main content area --}} {{!-- The main content area --}}
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<div class="post-feed"> <div class="post-feed">

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="{{lang}}">
<head> <head>
{{!-- Document Settings --}} {{!-- Document Settings --}}
@ -14,7 +14,7 @@
{{!-- Styles'n'Scripts --}} {{!-- Styles'n'Scripts --}}
<link rel="stylesheet" type="text/css" href="{{asset "built/screen.css"}}" /> <link rel="stylesheet" type="text/css" href="{{asset "built/screen.css"}}" />
{{!-- This tag outputes SEO meta+structured data and other important settings --}} {{!-- This tag outputs SEO meta+structured data and other important settings --}}
{{ghost_head}} {{ghost_head}}
</head> </head>
@ -31,9 +31,9 @@
<section class="copyright"><a href="{{@blog.url}}">{{@blog.title}}</a> &copy; {{date format="YYYY"}}</section> <section class="copyright"><a href="{{@blog.url}}">{{@blog.title}}</a> &copy; {{date format="YYYY"}}</section>
<nav class="site-footer-nav"> <nav class="site-footer-nav">
<a href="{{@blog.url}}">Latest Posts</a> <a href="{{@blog.url}}">Latest Posts</a>
{{#if @blog.facebook}}<a href="{{facebook_url @blog.facebook}}" target="_blank">Facebook</a>{{/if}} {{#if @blog.facebook}}<a href="{{facebook_url @blog.facebook}}" target="_blank" rel="noopener">Facebook</a>{{/if}}
{{#if @blog.twitter}}<a href="{{twitter_url @blog.twitter}}" target="_blank">Twitter</a>{{/if}} {{#if @blog.twitter}}<a href="{{twitter_url @blog.twitter}}" target="_blank" rel="noopener">Twitter</a>{{/if}}
<a href="https://ghost.org" target="_blank">Ghost</a> <a href="https://ghost.org" target="_blank" rel="noopener">Ghost</a>
</nav> </nav>
</div> </div>
</footer> </footer>
@ -65,6 +65,9 @@
{{#if pagination.pages}} {{#if pagination.pages}}
<script> <script>
// maxPages is a global variable that is needed to determine
// if we need to load more pages for the infinitescroll, or if
// we reached the last page already.
var maxPages = parseInt('{{pagination.pages}}'); var maxPages = parseInt('{{pagination.pages}}');
</script> </script>
<script src="{{asset "js/infinitescroll.js"}}"></script> <script src="{{asset "js/infinitescroll.js"}}"></script>

View File

@ -28,7 +28,7 @@ It's a good idea to keep this template as minimal as possible in terms of both f
</div> </div>
</header> </header>
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<section class="error-message"> <section class="error-message">

View File

@ -29,7 +29,7 @@ You'll notice that we *don't* use any JavsScript, or ghost_head / ghost_foot in
</div> </div>
</header> </header>
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<section class="error-message"> <section class="error-message">

View File

@ -0,0 +1,69 @@
var gulp = require('gulp');
// gulp plugins and utils
var gutil = require('gulp-util');
var livereload = require('gulp-livereload');
var postcss = require('gulp-postcss');
var sourcemaps = require('gulp-sourcemaps');
var zip = require('gulp-zip');
// postcss plugins
var autoprefixer = require('autoprefixer');
var colorFunction = require('postcss-color-function');
var cssnano = require('cssnano');
var customProperties = require('postcss-custom-properties');
var easyimport = require('postcss-easy-import');
var swallowError = function swallowError(error) {
gutil.log(error.toString());
gutil.beep();
this.emit('end');
};
var nodemonServerInit = function () {
livereload.listen(1234);
};
gulp.task('build', ['css'], function (/* cb */) {
return nodemonServerInit();
});
gulp.task('css', function () {
var processors = [
easyimport,
customProperties,
colorFunction(),
autoprefixer({browsers: ['last 2 versions']}),
cssnano()
];
return gulp.src('assets/css/*.css')
.on('error', swallowError)
.pipe(sourcemaps.init())
.pipe(postcss(processors))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('assets/built/'))
.pipe(livereload());
});
gulp.task('watch', function () {
gulp.watch('assets/css/**', ['css']);
});
gulp.task('zip', ['css'], function () {
var targetDir = 'dist/';
var themeName = require('./package.json').name;
var filename = themeName + '.zip';
return gulp.src([
'**',
'!node_modules', '!node_modules/**',
'!dist', '!dist/**'
])
.pipe(zip(filename))
.pipe(gulp.dest(targetDir));
});
gulp.task('default', ['build'], function () {
gulp.start('watch');
});

View File

@ -20,7 +20,7 @@ into the {body} of the default.hbs template --}}
</header> </header>
{{!-- The main content area --}} {{!-- The main content area --}}
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<div class="post-feed"> <div class="post-feed">

View File

@ -2,15 +2,19 @@
"name": "casper", "name": "casper",
"description": "The default personal blogging theme for Ghost. Beautiful, minimal and responsive.", "description": "The default personal blogging theme for Ghost. Beautiful, minimal and responsive.",
"demo": "https://demo.ghost.io", "demo": "https://demo.ghost.io",
"version": "2.1.2", "version": "2.4.2",
"engines": { "engines": {
"ghost": ">=1.2.0" "ghost": ">=2.0.0"
}, },
"license": "MIT", "license": "MIT",
"screenshots": { "screenshots": {
"desktop": "assets/screenshot-desktop.jpg", "desktop": "assets/screenshot-desktop.jpg",
"mobile": "assets/screenshot-mobile.jpg" "mobile": "assets/screenshot-mobile.jpg"
}, },
"scripts": {
"dev": "gulp",
"zip": "gulp zip"
},
"author": { "author": {
"name": "Ghost Foundation", "name": "Ghost Foundation",
"email": "hello@ghost.org", "email": "hello@ghost.org",
@ -38,11 +42,11 @@
"cssnano": "3.7.1", "cssnano": "3.7.1",
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-livereload": "3.8.1", "gulp-livereload": "3.8.1",
"gulp-nodemon": "2.1.0",
"gulp-postcss": "6.1.1", "gulp-postcss": "6.1.1",
"gulp-sourcemaps": "1.6.0", "gulp-sourcemaps": "1.6.0",
"gulp-util": "3.0.7", "gulp-util": "3.0.7",
"gulp-watch": "4.3.8", "gulp-watch": "4.3.8",
"gulp-zip": "4.0.0",
"postcss-color-function": "2.0.1", "postcss-color-function": "2.0.1",
"postcss-custom-properties": "5.0.1", "postcss-custom-properties": "5.0.1",
"postcss-easy-import": "1.0.1" "postcss-easy-import": "1.0.1"

View File

@ -12,7 +12,7 @@ into the {body} of the default.hbs template --}}
{{!-- Everything inside the #post tags pulls data from the post --}} {{!-- Everything inside the #post tags pulls data from the post --}}
{{#post}} {{#post}}
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<article class="post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}"> <article class="post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}">

View File

@ -0,0 +1,72 @@
<section class="post-full-authors">
<div class="post-full-authors-content">
<p>This post was a collaboration between</p>
<p>{{authors}}</p>
</div>
<ul class="author-list">
{{#foreach authors}}
<li class="author-list-item">
<div class="author-card">
<div class="basic-info">
{{#if profile_image}}
<img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" />
{{else}}
<div class="author-profile-image">{{> "icons/avatar"}}</div>
{{/if}}
<h2>{{name}}</h2>
</div>
<div class="bio">
{{#if bio}}
<p>{{bio}}</p>
<p><a href="{{url}}">More posts</a> by {{name}}.</p>
{{else}}
<p>Read <a href="{{url}}">more posts</a> by this author.</p>
{{/if}}
</div>
</div>
{{#if profile_image}}
<a href="{{url}}" class="moving-avatar"><img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" /></a>
{{else}}
<a href="{{url}}" class="moving-avatar author-profile-image">{{> "icons/avatar"}}</a>
{{/if}}
</li>
{{/foreach}}
</ul>
</section>
{{#contentFor "scripts"}}
<script>
// Adds delay to author card dropups to disappear. This gives enough
// time for the user to interact with the author card while they move
// the mouse from the avatar to the card. Also makes space for the
// interacted avatar.
$(document).ready(function () {
var hoverTimeout;
$('.author-list-item').hover(function(){
var $this = $(this);
clearTimeout(hoverTimeout);
$('.author-card').removeClass('hovered');
$(this).children('.author-card').addClass('hovered');
}, function() {
var $this = $(this);
hoverTimeout = setTimeout(function() {
$this.children('.author-card').removeClass('hovered');
}, 800);
});
});
</script>
{{/contentFor}}

View File

@ -0,0 +1,23 @@
{{!-- Everything inside the #author tags pulls data from the author --}}
{{#primary_author}}
<section class="author-card">
{{#if profile_image}}
<img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" />
{{else}}
<span class="avatar-wrapper">{{> "icons/avatar"}}</span>
{{/if}}
<section class="author-card-content">
<h4 class="author-card-name"><a href="{{url}}">{{name}}</a></h4>
{{#if bio}}
<p>{{bio}}</p>
{{else}}
<p>Read <a href="{{url}}">more posts</a> by this author.</p>
{{/if}}
</section>
</section>
<div class="post-full-footer-right">
<a class="author-card-button" href="{{url}}">Read More</a>
</div>
{{/primary_author}}

View File

@ -20,7 +20,7 @@
{{> "icons/facebook"}} {{> "icons/facebook"}}
</a> </a>
</div> </div>
<progress class="progress" value="0"> <progress id="reading-progress" class="progress" value="0">
<div class="progress-container"> <div class="progress-container">
<span class="progress-bar"></span> <span class="progress-bar"></span>
</div> </div>

View File

@ -0,0 +1 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><path d="M3.513 18.998C4.749 15.504 8.082 13 12 13s7.251 2.504 8.487 5.998C18.47 21.442 15.417 23 12 23s-6.47-1.558-8.487-4.002zM12 12c2.21 0 4-2.79 4-5s-1.79-4-4-4-4 1.79-4 4 1.79 5 4 5z" fill="#FFF"/></g></svg>

After

Width:  |  Height:  |  Size: 308 B

0
ghost/zip/test/fixtures/test-theme/partials/icons/facebook.hbs vendored Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 155 B

View File

@ -17,10 +17,26 @@
</section> </section>
</a> </a>
<footer class="post-card-meta"> <footer class="post-card-meta">
{{#if author.profile_image}}
<img class="author-profile-image" src="{{author.profile_image}}" alt="{{author.name}}" /> <ul class="author-list">
{{/if}} {{#foreach authors}}
<span class="post-card-author">{{author}}</span> <li class="author-list-item">
<div class="author-name-tooltip">
{{name}}
</div>
{{#if profile_image}}
<a href="{{url}}" class="static-avatar"><img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" /></a>
{{else}}
<a href="{{url}}" class="static-avatar author-profile-image">{{> "icons/avatar"}}</a>
{{/if}}
</li>
{{/foreach}}
</ul>
<span class="reading-time">{{reading_time}}</span>
</footer> </footer>
</div> </div>
</article> </article>

View File

@ -14,16 +14,16 @@
<div class="site-nav-right"> <div class="site-nav-right">
<div class="social-links"> <div class="social-links">
{{#if @blog.facebook}} {{#if @blog.facebook}}
<a class="social-link social-link-fb" href="{{facebook_url @blog.facebook}}" target="_blank">{{> "icons/facebook"}}</a> <a class="social-link social-link-fb" href="{{facebook_url @blog.facebook}}" target="_blank" rel="noopener">{{> "icons/facebook"}}</a>
{{/if}} {{/if}}
{{#if @blog.twitter}} {{#if @blog.twitter}}
<a class="social-link social-link-tw" href="{{twitter_url @blog.twitter}}" target="_blank">{{> "icons/twitter"}}</a> <a class="social-link social-link-tw" href="{{twitter_url @blog.twitter}}" target="_blank" rel="noopener">{{> "icons/twitter"}}</a>
{{/if}} {{/if}}
</div> </div>
{{#if @labs.subscribers}} {{#if @labs.subscribers}}
<a class="subscribe-button" href="#subscribe">Subscribe</a> <a class="subscribe-button" href="#subscribe">Subscribe</a>
{{else}} {{else}}
<a class="rss-button" href="http://cloud.feedly.com/#subscription/feed/{{@blog.url}}/rss/" target="_blank">{{> "icons/rss"}}</a> <a class="rss-button" href="https://feedly.com/i/subscription/feed/{{@blog.url}}/rss/" target="_blank" rel="noopener">{{> "icons/rss"}}</a>
{{/if}} {{/if}}
</div> </div>
</nav> </nav>

View File

@ -12,7 +12,7 @@ into the {body} of the default.hbs template --}}
{{!-- Everything inside the #post tags pulls data from the post --}} {{!-- Everything inside the #post tags pulls data from the post --}}
{{#post}} {{#post}}
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<article class="post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}"> <article class="post-full {{post_class}} {{#unless feature_image}}no-image{{/unless}}">
@ -33,7 +33,9 @@ into the {body} of the default.hbs template --}}
{{/if}} {{/if}}
<section class="post-full-content"> <section class="post-full-content">
{{content}} <div class="post-content">
{{content}}
</div>
</section> </section>
{{!-- Email subscribe form at the bottom of the page --}} {{!-- Email subscribe form at the bottom of the page --}}
@ -46,49 +48,23 @@ into the {body} of the default.hbs template --}}
{{/if}} {{/if}}
<footer class="post-full-footer"> <footer class="post-full-footer">
{{!-- Everything inside the #author tags pulls data from the author --}}
{{#author}}
<section class="author-card"> {{!-- There are two options for how we display the byline/author-info.
{{#if profile_image}} If the post has more than one author, we load a specific template
<img class="author-profile-image" src="{{profile_image}}" alt="{{name}}" /> from includes/byline-multiple.hbs, otherwise, we just use the
{{/if}} default byline. --}}
<section class="author-card-content">
<h4 class="author-card-name"><a href="{{url}}">{{name}}</a></h4> {{#has author="count:>1"}}
{{#if bio}} {{> "byline-multiple"}}
<p>{{bio}}</p> {{else}}
{{else}} {{> "byline-single"}}
<p>Read <a href="{{url}}">more posts</a> by this author.</p> {{/has}}
{{/if}}
</section>
</section>
<div class="post-full-footer-right">
<a class="author-card-button" href="{{url}}">Read More</a>
</div>
{{/author}}
</footer> </footer>
{{!-- {{!--
If you use Disqus comments, just uncomment this block.
The only thing you need to change is "test-apkdzgmqhj" - which
should be replaced with your own Disqus site-id.
<section class="post-full-comments"> <section class="post-full-comments">
<div id="disqus_thread"></div> If you want to embed comments, this is a good place to do it!
<script>
var disqus_config = function () {
this.page.url = '{{url absolute="true"}}';
this.page.identifier = 'ghost-{{comment_id}}';
};
(function() {
var d = document, s = d.createElement('script');
s.src = 'https://test-apkdzgmqhj.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
</section> </section>
--}} --}}
@ -167,7 +143,7 @@ $(document).ready(function () {
$postContent.fitVids(); $postContent.fitVids();
// End fitVids // End fitVids
var progressBar = document.querySelector('progress'); var progressBar = document.querySelector('#reading-progress');
var header = document.querySelector('.floating-header'); var header = document.querySelector('.floating-header');
var title = document.querySelector('.post-full-title'); var title = document.querySelector('.post-full-title');
@ -216,6 +192,7 @@ $(document).ready(function () {
window.addEventListener('resize', onResize, false); window.addEventListener('resize', onResize, false);
update(); update();
}); });
</script> </script>
{{/contentFor}} {{/contentFor}}

View File

@ -21,7 +21,7 @@
{{/tag}} {{/tag}}
{{!-- The main content area --}} {{!-- The main content area --}}
<main id="site-main" class="site-main outer" role="main"> <main id="site-main" class="site-main outer">
<div class="inner"> <div class="inner">
<div class="post-feed"> <div class="post-feed">
{{#foreach posts}} {{#foreach posts}}

File diff suppressed because it is too large Load Diff

View File

@ -40,7 +40,7 @@ describe('lib/fs: read csv', function () {
return done(err); return done(err);
} }
files.length.should.eql(13); files.length.should.eql(16);
done(); done();
}); });
}); });