Compare commits

...

30 Commits
2.0.5 ... 2.1.9

Author SHA1 Message Date
67e55abfed Upgrading Casper to 2.1.9 2018-01-23 16:19:58 +00:00
bfaae0f7ba 🐛 Fixed Feedly URL and protocol (#418)
no issue

* Changed Feedly URL to HTTPS protocol
* Updated Feedly URL pattern
2018-01-23 10:30:03 +07:00
edfafffd32 Upgrading Casper to 2.1.8 2018-01-03 13:47:12 +00:00
7798bf115f 2018 2018-01-02 21:48:53 +00:00
9395846fdf Upgrading Casper to 2.1.7 2017-11-21 21:26:49 +08:00
99fad4cbc4 Fix colors in code blocks
Closes #407
The font color should be inherited to avoid "invisible" text.

* fix conflicts with upstream branch
2017-11-21 17:50:54 +08:00
990f712209 💅 CSS comb and built
no issue
2017-11-20 13:42:32 +08:00
4ff4b4c7f8 Removed double semicolons (#400)
no issue
2017-11-20 13:38:20 +08:00
de05d90fe9 Upgrading Casper to 2.1.6 2017-10-26 19:03:21 +07:00
978e54403c 🐛 Do not exclude assets/css from built zips
no issue

https://github.com/TryGhost/Casper/pull/403 added optimisations for reducing size of zip files but unfortunately it also stripped out `assets/css` which means that it's no longer possible to download the theme from the admin panel and use it for development.

- remove `assets/css` from the ignored files in the `zip` task
2017-10-24 12:08:26 +01:00
73bd9c630e Upgrading Casper to 2.1.5 2017-10-24 16:10:48 +07:00
9597a28320 🎨 Optimized gulp zip file generation (#403)
no issue

- Optimised the `gulp zip` task, so the zip file doesn't include the `assets/css` (`built` folder is used for CSS) and the `dist` folder (is used to output the zip file)
2017-10-23 16:52:52 +07:00
461639886e Upgrading Casper to 2.1.4 2017-10-03 18:20:14 +07:00
7592ad182b 🔒 Added rel="noopener" to all target="_blank" links (#398)
closes #394
- closes potential phishing avenues by preventing external sites from changing the blogs url in the background after opening
- see https://mathiasbynens.github.io/rel-noopener/ for more info
2017-10-03 16:42:08 +07:00
97a522a037 Fix permissions on certain files 2017-10-02 13:29:23 +01:00
25f12d760b Fix typo in default.hbs (#393) 2017-09-29 08:23:39 -04:00
4f78d99112 Upgrading Casper to 2.1.3 2017-09-26 14:38:05 +01:00
f5b7b45f2e Remove /dist/casper.zip
no issue

With https://github.com/TryGhost/Casper/pull/384 the directory `/dist` was created and includes a `casper.zip` file. The PR, that got merged after that (https://github.com/TryGhost/Casper/pull/374) actually implemented the creation of this, but also added the directory to `.gitignore` so it wouldn't be pushed to the repo.
2017-09-19 12:01:17 +07:00
d34ff1d32b Add a Gulp task to create the zip (#374) 2017-09-18 09:37:00 -07:00
73a1ab52da Add the same .editorconfig as from the Ghost repository (#384) 2017-09-18 09:35:53 -07:00
5ec77dfb31 Upgrading Casper to 2.1.2 2017-09-12 18:34:23 +07:00
269d2b5787 Fix border radius bug on featured posts 2017-09-07 09:34:44 -07:00
d1d0bca2d8 Upgrading Casper to 2.1.1 2017-09-07 14:33:38 +02:00
d92dda3523 Wrapped primary-tag get helper with if (#383)
closes #382

- If there is no primary tag, the filter will be invalid syntax
- This wraps the if helper and gets rid of errors in the logs
2017-09-07 14:31:42 +02:00
ca325285bf Upgrading Casper to 2.1.0 2017-08-29 13:35:37 +01:00
aee9f69bb0 Refactor headings, quotes and margins, mobile improvements
A few people commented how pull-quote styling is odd for blockquotes. I agree. This reverts casper to use more traditional blockquote styling, but maintains the special pullquote styling now over on the H5 element. So if you want nice/wide/centered blue text, use an H5.

- Closes https://github.com/TryGhost/Casper/issues/364
- Closes https://github.com/TryGhost/Casper/issues/368
2017-08-25 16:31:10 -04:00
a7d5c885bd Upgrading Casper to 2.0.6 2017-08-22 12:38:02 +01:00
9bc5c92628 Fix z-index bug with header author profile image
no issue
- add z-index to `.site-header-content .author-profile-image` so it isn't covered by the header overlay
2017-08-22 12:05:09 +01:00
0f3651c23f 🎨 Do not stretch author profile image (#365)
- add `object-fit: cover` to `.author-profile-image` to prevent non-square images being stretched/squashed
2017-08-22 11:56:38 +01:00
d739bb52a4 Fixed z-index bug with header social links on author page (#370)
no issue
- add z-index to `.author-bio` and `.author-meta` so they aren't covered by the header image overlay
2017-08-22 11:49:49 +01:00
19 changed files with 224 additions and 121 deletions

17
.editorconfig Normal file
View File

@ -0,0 +1,17 @@
# http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.hbs]
insert_final_newline = false
[*.md]
trim_trailing_whitespace = false

5
.gitignore vendored
View File

@ -13,9 +13,12 @@ results
npm-debug.log
node_modules
package-lock.json
.idea/*
*.iml
projectFilesBackup
.DS_Store
.DS_Store
dist/

View File

@ -1,4 +1,4 @@
Copyright (c) 2013-2017 Ghost Foundation
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

View File

@ -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:
`$ npm install`
`$ gulp`
```bash
$ npm install
$ gulp
```
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
$ gulp zip
```
# PostCSS Features Used
@ -57,4 +63,4 @@ You can add your own SVG icons in the same manner.
# Copyright & License
Copyright (c) 2013-2017 Ghost Foundation - Released under the [MIT license](LICENSE).
Copyright (c) 2013-2018 Ghost Foundation - Released under the [MIT license](LICENSE).

View File

@ -1,2 +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:1em;padding-right:1.5em}ol ol,ol ul,ul ol,ul ul{margin:.5em 0 1em}ul{list-style:disc}ol{list-style:decimal}li{margin:.5em 0;padding-left:.5em;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}
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}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

@ -341,7 +341,7 @@ blockquote {
ol,
ul {
padding-left: 1em;
padding-left: 1.3em;
padding-right: 1.5em;
}
@ -362,7 +362,7 @@ ol {
li {
margin: 0.5em 0;
padding-left: 0.5em;
padding-left: 0.3em;
line-height: 1.6em;
}
@ -383,7 +383,7 @@ dd {
blockquote {
margin: 1.5em 0;
padding: 0 1.6em 0 1.6em;
border-left: var(--whitegrey) 0.5em solid;;
border-left: var(--whitegrey) 0.5em solid;
}
blockquote p {

View File

@ -36,8 +36,8 @@ body {
display: block;
width: 100%;
height: 100%;
background-size: cover;
background-position: center center;
background-size: cover;
border-radius: 100%;
}
@ -70,9 +70,9 @@ body {
/* Centered content container blocks */
.inner {
width: 100%;
max-width: 1040px;
margin: 0 auto;
max-width: 1040px;
width: 100%;
}
/* Usage:
@ -149,18 +149,18 @@ body {
flex-direction: column;
justify-content: center;
align-items: center;
padding: 10vw 4vw;
min-height: 200px;
max-height: 450px;
padding: 10vw 4vw;
text-align: center;
}
.site-title {
z-index: 10;
margin: 0;
padding: 0;
font-size: 3.8rem;
font-weight: 700;
z-index: 10;
}
.site-logo {
@ -168,13 +168,13 @@ body {
}
.site-description {
z-index: 10;
margin: 0;
padding: 5px 0;
font-size: 2.2rem;
font-weight: 300;
letter-spacing: 0.5px;
opacity: 0.8;
z-index: 10;
}
@media (max-width: 500px) {
@ -196,8 +196,8 @@ body {
display: flex;
justify-content: space-between;
align-items: flex-start;
height: 40px;
overflow-y: hidden;
height: 40px;
font-size: 1.2rem;
}
@ -206,11 +206,12 @@ body {
align-items: center;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
margin-right: 10px;
padding-bottom: 80px;
letter-spacing: 0.4px;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
-ms-overflow-scrolling: touch;
}
@ -226,7 +227,7 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
flex-shrink: 0;
display: block;
margin-right: 24px;
padding: 9px 0;
padding: 11px 0;
color: #fff;
font-size: 1.7rem;
line-height: 1em;
@ -348,8 +349,8 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
}
.rss-button svg {
height: 2.1rem;
margin-bottom: 1px;
height: 2.1rem;
fill: #fff;
}
@ -383,9 +384,9 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
flex: 1 1 300px;
display: flex;
flex-direction: column;
min-height: 300px;
overflow: hidden;
margin: 0 20px 40px;
min-height: 300px;
background: #fff center center;
background-size: cover;
border-radius: 5px;
@ -455,10 +456,12 @@ The knock-on effect of this is ugly browser-scroll bars at the bottom, so 80px o
}
.author-profile-image {
margin-right: 5px;
width: 25px;
height: 25px;
margin-right: 5px;
border-radius: 100%;
object-fit: cover;
}
.post-card-author {
@ -483,6 +486,7 @@ The first (most recent) post in the list is styled to be bigger than the others
.home-template .post-feed .post-card:nth-child(6n+1):not(.no-image) .post-card-image-link {
position: relative;
flex: 1 1 auto;
border-radius: 5px 0 0 5px;
}
.home-template .post-feed .post-card:nth-child(6n+1):not(.no-image) .post-card-image {
@ -546,11 +550,16 @@ 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 */
.post-full-header {
max-width: 1040px;
margin: 0 auto;
padding: 6vw 3vw 3vw;
max-width: 1040px;
text-align: center;
}
@media (max-width: 500px) {
.post-full-header {
padding: 14vw 3vw 10vw;
}
}
.post-full-meta {
display: flex;
@ -577,8 +586,8 @@ The first (most recent) post in the list is styled to be bigger than the others
}
.post-full-image {
height: 800px;
margin: 0 -10vw -165px;
height: 800px;
background: var(--lightgrey) center center;
background-size: cover;
border-radius: 5px;
@ -586,8 +595,8 @@ The first (most recent) post in the list is styled to be bigger than the others
@media (max-width: 1170px) {
.post-full-image {
height: 600px;
margin: 0 -4vw -100px;
height: 600px;
border-radius: 0;
}
}
@ -600,9 +609,9 @@ The first (most recent) post in the list is styled to be bigger than the others
.post-full-content {
position: relative;
min-height: 230px;
margin: 0 auto;
padding: 70px 100px 0;
min-height: 230px;
font-family: Georgia, serif;
font-size: 2.2rem;
line-height: 1.6em;
@ -664,22 +673,31 @@ The first (most recent) post in the list is styled to be bigger than the others
max-width: 920px;
}
.post-full-content p,
.post-full-content ul,
.post-full-content ol,
.post-full-content dl,
.post-full-content pre,
.post-full-content h1,
.post-full-content h2,
.post-full-content h3,
.post-full-content h4,
.post-full-content h5,
.post-full-content h6,
.post-full-content p,
.post-full-content ul,
.post-full-content ol,
.post-full-content dl,
.post-full-content pre,
.post-full-content blockquote,
.post-full-comments,
.footnotes {
min-width: 100%;
}
.post-full-content li {
word-break: break-word;
}
.post-full-content li p {
margin: 0;
}
.post-template .kg-card-markdown > p:first-child {
font-size: 1.25em;
line-height: 1.5em;
@ -712,8 +730,8 @@ The first (most recent) post in the list is styled to be bigger than the others
.post-full-content img,
.post-full-content video {
display: block;
max-width: 1040px;
margin: 1.5em auto;
max-width: 1040px;
}
@media (max-width: 1040px) {
.post-full-content img,
@ -732,8 +750,8 @@ Usage (In Ghost edtior):
*/
.post-full-content img[src$="#full"] {
width: 100vw;
max-width: none;
width: 100vw;
}
@ -745,7 +763,7 @@ Usage (In Ghost editor):
<small>Your image caption</small>
*/
.post-full-content br + small {
.post-full-content img + br + small {
display: block;
margin-top: -3em;
margin-bottom: 1.5em;
@ -753,36 +771,25 @@ Usage (In Ghost editor):
.post-full-content iframe {
margin: 0 auto 1.5em;
margin: 0 auto;
}
.post-full-content blockquote {
margin: 0 0 1.5em 0;
padding: 1.5em 0;
border: 0;
color: var(--blue);
font-size: 3rem;
line-height: 1.6em;
text-align: center;
}
.post-full-content blockquote:before {
content: open-quote;
margin: 0 0 1.5em;
padding: 0 1.5em;
border-left: #3eb0ef 3px solid;
}
.post-full-content blockquote p {
margin: 0;
margin: 0 0 1em 0;
color: inherit;
font-size: inherit;
line-height: inherit;
font-style: italic;
}
@media (min-width: 1000px) {
.post-full-content blockquote:not(:first-of-type) {
width: 100vw;
max-width: 1060px;
}
}
.post-full-content blockquote + blockquote {
padding-top: 0;
.post-full-content blockquote p:last-child {
margin-bottom: 0;
}
.post-full-content code {
@ -795,10 +802,10 @@ Usage (In Ghost editor):
}
.post-full-content pre {
max-width: 100%;
overflow-x: auto;
margin: 1.5em 0 3em;
padding: 20px;
max-width: 100%;
border: color(var(--darkgrey) l(-10%)) 1px solid;
color: var(--whitegrey);
font-size: 1.4rem;
@ -814,6 +821,10 @@ Usage (In Ghost editor):
background: transparent;
}
.post-full-content pre code * {
color: inherit;
}
.post-full-content .fluid-width-video-wrapper {
margin: 1.5em 0 3em;
}
@ -828,9 +839,9 @@ Usage (In Ghost editor):
top: -15px;
left: 50%;
display: block;
margin-left: -10px;
width: 1px;
height: 30px;
margin-left: -10px;
background: color(var(--lightgrey) l(+10%));
box-shadow: #fff 0 0 0 5px;
transform: rotate(45deg);
@ -842,34 +853,87 @@ Usage (In Ghost editor):
.post-full-content h4,
.post-full-content h5,
.post-full-content h6 {
margin-top: -75px;
padding-top: 75px;
color: color(var(--darkgrey) l(-5%));
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}
.post-full-content h1 {
font-size: 5rem;
margin: 0.5em 0 0.2em 0;
font-size: 4.6rem;
font-weight: 700;
}
@media (max-width: 500px) {
.post-full-content h1 {
font-size: 2.8rem;
}
}
.post-full-content h2 {
font-size: 3.5rem;
margin: 0.5em 0 0.2em 0;
font-size: 3.6rem;
font-weight: 700;
}
@media (max-width: 500px) {
.post-full-content h2 {
font-size: 2.6rem;
}
}
.post-full-content h3 {
font-size: 2.5rem;
margin: 0.5em 0 0.2em 0;
font-size: 2.8rem;
font-weight: 700;
}
@media (max-width: 500px) {
.post-full-content h3 {
font-size: 2.2rem;
}
}
.post-full-content h4 {
font-size: 1.6rem;
margin: 0.5em 0 0.2em 0;
font-size: 2.8rem;
font-weight: 700;
}
@media (max-width: 500px) {
.post-full-content h4 {
font-size: 2.2rem;
}
}
.post-full-content h5 {
font-size: 1.4rem;
display: block;
margin: 0.5em 0;
padding: 1em 0 1.5em;
border: 0;
color: var(--blue);
font-family: Georgia,serif;
font-size: 3.2rem;
line-height: 1.35em;
text-align: center;
}
@media (min-width: 1180px) {
.post-full-content h5 {
max-width: 1060px;
width: 100vw;
}
}
@media (max-width: 500px) {
.post-full-content h5 {
padding: 0 0 0.5em;
font-size: 2.2rem;
}
}
.post-full-content h6 {
font-size: 1.4rem;
margin: 0.5em 0 0.2em 0;
font-size: 2.3rem;
font-weight: 700;
}
@media (max-width: 500px) {
.post-full-content h6 {
font-size: 2rem;
}
}
.footnotes-sep {
@ -902,8 +966,8 @@ Usage (In Ghost editor):
font-size: 2.9rem;
}
.post-full-image {
height: 350px;
margin-bottom: 4vw;
height: 350px;
}
.post-full-content {
padding: 0;
@ -912,38 +976,29 @@ Usage (In Ghost editor):
.post-full-content:after {
display: none;
}
.post-full-content h1 {
font-size: 2.9rem;
}
.post-full-content h2 {
font-size: 2.9rem;
}
.post-full-content h3 {
font-size: 2rem;
}
}
/* Tables */
.post-full-content table {
display: inline-block;
width: auto;
max-width: 100%;
overflow-x: auto;
margin: 0.5em 0 2.5em;
max-width: 100%;
width: auto;
border-spacing: 0;
border-collapse: collapse;
vertical-align: top;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-size: 1.6rem;
white-space: nowrap;
vertical-align: top;
}
.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;
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 {
@ -954,8 +1009,8 @@ Usage (In Ghost editor):
.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-size: 20px 100%;
background-position: 100% 0;
background-size: 20px 100%;
background-repeat: no-repeat;
}
@ -1009,8 +1064,8 @@ Usage (In Ghost editor):
display: flex;
justify-content: center;
align-items: center;
max-width: 420px;
margin: 0 auto;
max-width: 420px;
}
.subscribe-form .form-group {
@ -1019,8 +1074,8 @@ Usage (In Ghost editor):
.subscribe-email {
display: block;
width: 100%;
padding: 10px;
width: 100%;
border: color(var(--lightgrey) l(+7%)) 1px solid;
color: var(--midgrey);
font-size: 1.8rem;
@ -1040,9 +1095,9 @@ Usage (In Ghost editor):
.subscribe-form button {
display: inline-block;
height: 41px;
margin: 0 0 0 10px;
padding: 0 20px;
height: 41px;
outline: none;
color: #fff;
font-size: 1.5rem;
@ -1084,8 +1139,8 @@ Usage (In Ghost editor):
width: 100%;
}
.subscribe-form button {
width: 100%;
margin: 10px 0 0 0;
width: 100%;
}
}
@ -1097,9 +1152,9 @@ Usage (In Ghost editor):
display: flex;
justify-content: space-between;
align-items: center;
max-width: 840px;
margin: 0 auto;
padding: 3vw 0 6vw 0;
max-width: 840px;
}
.author-card {
@ -1108,9 +1163,9 @@ Usage (In Ghost editor):
}
.author-card .author-profile-image {
margin-right: 15px;
width: 60px;
height: 60px;
margin-right: 15px;
}
.author-card-name {
@ -1162,8 +1217,8 @@ Usage (In Ghost editor):
/* ---------------------------------------------------------- */
.post-full-comments {
max-width: 840px;
margin: 0 auto;
max-width: 840px;
}
@ -1248,8 +1303,9 @@ Usage (In Ghost editor):
.read-next-divider svg {
width: 40px;
stroke: #fff;
fill: transparent;
stroke: #fff;
stroke-width: 0.5px;
stroke-opacity: 0.65;
}
@ -1267,8 +1323,8 @@ Usage (In Ghost editor):
flex-direction: column;
margin: 0 auto;
padding: 0;
list-style: none;
text-align: center;
list-style: none;
}
.read-next-card-content li {
@ -1284,9 +1340,9 @@ Usage (In Ghost editor):
display: block;
padding: 20px 0;
border-bottom: rgba(255,255,255,0.3) 1px solid;
vertical-align: top;
color: #fff;
font-weight: 500;
vertical-align: top;
transition: opacity 0.3s ease;
}
@ -1357,8 +1413,8 @@ Usage (In Ghost editor):
}
.floating-header-logo img {
max-height: 20px;
margin: 0 10px 0 0;
max-height: 20px;
}
.floating-header-divider {
@ -1409,9 +1465,9 @@ Usage (In Ghost editor):
}
.floating-header-share-label svg {
margin: 0 5px 0 10px;
width: 18px;
height: 18px;
margin: 0 5px 0 10px;
stroke: rgba(0,0,0,0.7);
transform: rotate(90deg);
}
@ -1519,17 +1575,19 @@ Usage (In Ghost editor):
/* ---------------------------------------------------------- */
.site-header-content .author-profile-image {
z-index: 10;
flex-shrink: 0;
margin: 0 0 20px 0;
width: 100px;
height: 100px;
margin: 0 0 20px 0;
box-shadow: rgba(255,255,255,0.1) 0 0 0 6px;
}
.site-header-content .author-bio {
z-index: 10;
flex-shrink: 0;
max-width: 600px;
margin: 5px 0 10px 0;
max-width: 600px;
font-size: 2rem;
line-height: 1.3em;
font-weight: 300;
@ -1538,6 +1596,7 @@ Usage (In Ghost editor):
}
.site-header-content .author-meta {
z-index: 10;
flex-shrink: 0;
display: flex;
justify-content: center;
@ -1680,8 +1739,8 @@ Usage (In Ghost editor):
}
.subscribe-overlay-description {
max-width: 650px;
margin: 0 auto 50px;
max-width: 650px;
font-family: Georgia, serif;
font-size: 3rem;
line-height: 1.3em;
@ -1693,8 +1752,8 @@ Usage (In Ghost editor):
display: flex;
justify-content: center;
align-items: center;
max-width: 500px;
margin: 0 auto;
max-width: 500px;
}
.subscribe-overlay .form-group {
@ -1703,8 +1762,8 @@ Usage (In Ghost editor):
.subscribe-overlay .subscribe-email {
display: block;
width: 100%;
padding: 14px 20px;
width: 100%;
border: none;
color: var(--midgrey);
font-size: 2rem;
@ -1725,9 +1784,9 @@ Usage (In Ghost editor):
.subscribe-overlay button {
display: inline-block;
height: 52px;
margin: 0 0 0 15px;
padding: 0 25px;
height: 52px;
outline: none;
color: #fff;
font-size: 1.7rem;
@ -1805,15 +1864,15 @@ Usage (In Ghost editor):
.site-footer-content {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
color: rgba(255,255,255,0.7);
font-size: 1.3rem;
}
.site-footer-content a {
color: rgba(255,255,255,0.7);;
color: rgba(255,255,255,0.7);
}
.site-footer-content a:hover {

0
assets/screenshot-desktop.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

0
assets/screenshot-mobile.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 102 KiB

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>
</div>
{{#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 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 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}}
<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>

View File

@ -14,7 +14,7 @@
{{!-- Styles'n'Scripts --}}
<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}}
</head>
@ -31,9 +31,9 @@
<section class="copyright"><a href="{{@blog.url}}">{{@blog.title}}</a> &copy; {{date format="YYYY"}}</section>
<nav class="site-footer-nav">
<a href="{{@blog.url}}">Latest Posts</a>
{{#if @blog.facebook}}<a href="{{facebook_url @blog.facebook}}" target="_blank">Facebook</a>{{/if}}
{{#if @blog.twitter}}<a href="{{twitter_url @blog.twitter}}" target="_blank">Twitter</a>{{/if}}
<a href="https://ghost.org" target="_blank">Ghost</a>
{{#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" rel="noopener">Twitter</a>{{/if}}
<a href="https://ghost.org" target="_blank" rel="noopener">Ghost</a>
</nav>
</div>
</footer>

View File

@ -6,6 +6,7 @@ var livereload = require('gulp-livereload');
var nodemon = require('gulp-nodemon');
var postcss = require('gulp-postcss');
var sourcemaps = require('gulp-sourcemaps');
var zip = require('gulp-zip');
// postcss plugins
var autoprefixer = require('autoprefixer');
@ -36,7 +37,8 @@ gulp.task('css', function () {
autoprefixer({browsers: ['last 2 versions']}),
cssnano()
];
gulp.src('assets/css/*.css')
return gulp.src('assets/css/*.css')
.on('error', swallowError)
.pipe(sourcemaps.init())
.pipe(postcss(processors))
@ -49,6 +51,20 @@ 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

@ -2,7 +2,7 @@
"name": "casper",
"description": "The default personal blogging theme for Ghost. Beautiful, minimal and responsive.",
"demo": "https://demo.ghost.io",
"version": "2.0.5",
"version": "2.1.9",
"engines": {
"ghost": ">=1.2.0"
},
@ -43,6 +43,7 @@
"gulp-sourcemaps": "1.6.0",
"gulp-util": "3.0.7",
"gulp-watch": "4.3.8",
"gulp-zip": "4.0.0",
"postcss-color-function": "2.0.1",
"postcss-custom-properties": "5.0.1",
"postcss-easy-import": "1.0.1"

0
partials/icons/facebook.hbs Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 155 B

View File

@ -14,16 +14,16 @@
<div class="site-nav-right">
<div class="social-links">
{{#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 @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}}
</div>
{{#if @labs.subscribers}}
<a class="subscribe-button" href="#subscribe">Subscribe</a>
{{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}}
</div>
</nav>

View File

@ -101,7 +101,7 @@ into the {body} of the default.hbs template --}}
<aside class="read-next outer">
<div class="inner">
<div class="read-next-feed">
{{#if primary_tag}}
{{#get "posts" filter="tags:{{primary_tag.slug}}+id:-{{id}}" limit="3" as |related_posts|}}
{{#if related_posts}}
<article class="read-next-card"
@ -132,6 +132,7 @@ into the {body} of the default.hbs template --}}
</article>
{{/if}}
{{/get}}
{{/if}}
{{!-- If there's a next post, display it using the same markup included from - partials/post-card.hbs --}}
{{#next_post}}