diff options
author | Jonathan Janssens <jonathan.janssens@gmail.com> | 2019-11-03 13:19:08 +0300 |
---|---|---|
committer | Jonathan Janssens <jonathan.janssens@gmail.com> | 2019-11-03 13:19:08 +0300 |
commit | 9f84b9dfea3cea69d469749f695710244b3b29d3 (patch) | |
tree | 08493cf51e911be11a6fc1895dd0e0eb3ee5daa4 | |
parent | 378f82a590967617b05cd1ce6fdffa7fef6c4be1 (diff) |
initial
-rw-r--r-- | README.md | 16 | ||||
-rw-r--r-- | archetypes/default.md | 2 | ||||
-rw-r--r-- | assets/scss/global.scss | 1 | ||||
-rw-r--r-- | assets/scss/main.scss | 1 | ||||
-rw-r--r-- | layouts/_default/baseof.html | 40 | ||||
-rw-r--r-- | layouts/_default/list.html | 32 | ||||
-rw-r--r-- | layouts/_default/single.html | 66 | ||||
-rw-r--r-- | layouts/index.html | 34 | ||||
-rw-r--r-- | layouts/partials/header-background.html | 10 | ||||
-rw-r--r-- | layouts/partials/icons/avatar.html | 1 | ||||
-rw-r--r-- | layouts/partials/icons/facebook.html | 1 | ||||
-rw-r--r-- | layouts/partials/icons/loader.html | 11 | ||||
-rw-r--r-- | layouts/partials/icons/rss.html | 1 | ||||
-rw-r--r-- | layouts/partials/icons/twitter.html | 1 | ||||
-rw-r--r-- | layouts/partials/post-card.html | 49 | ||||
-rw-r--r-- | layouts/partials/post-navigation.html | 17 | ||||
-rw-r--r-- | layouts/partials/read-next.html | 22 | ||||
-rw-r--r-- | layouts/partials/site-header.html | 5 | ||||
-rw-r--r-- | layouts/partials/site-nav.html | 19 | ||||
-rw-r--r-- | theme.toml | 19 |
20 files changed, 348 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..4ec1d8e --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +## Installation + +```$ mkdir themes +$ cd themes +$ git clone git@github.com:jonathanjanssens/hugo-casper3.git +``` + +## Support + +If you would like to show your appreciation to me for working on this theme you can <a href="https://paypal.me/JonathanJanssens">donate with Paypal</a> here. + +BTC: 1812FGaAJ19hokDoUFP6kK22dzT6zttkw5 + +LTC: MQh5n9BzXAVzdreMo9ff3DxF7gqqmZkUNJ + +ETH: 0x6c6DCa4cA98816Bb319A4B923b159991C97368B7 diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..ac36e06 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,2 @@ ++++ ++++ diff --git a/assets/scss/global.scss b/assets/scss/global.scss new file mode 100644 index 0000000..d9190d7 --- /dev/null +++ b/assets/scss/global.scss @@ -0,0 +1 @@ +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:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;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:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.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}
\ No newline at end of file diff --git a/assets/scss/main.scss b/assets/scss/main.scss new file mode 100644 index 0000000..1c23b5f --- /dev/null +++ b/assets/scss/main.scss @@ -0,0 +1 @@ +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:#313b3f;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:1.6rem;line-height:1.6em;font-weight:400;font-style:normal;letter-spacing:0;text-rendering:optimizeLegibility;-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:600;text-rendering:optimizeLegibility}h1{margin:0 0 .5em;font-size:5.5rem;font-weight:600}@media (max-width:500px){h1{font-size:2.2rem}}h2{margin:1.5em 0 .5em;font-size:2.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}body{background:#fff}.img{display:block;width:100%;height:100%;background-position:50%;background-size:cover;border-radius:100%}.hidden{visibility:hidden;position:absolute;text-indent:-9999px}.site-wrapper{display:flex;flex-direction:column;min-height:100vh}.site-main{z-index:100;flex-grow:1}.outer{position:relative;padding:0 5vw}.inner{margin:0 auto;max-width:1040px;width:100%}@media (min-width:900px){.author-template .post-feed,.home-template .post-feed,.tag-template .post-feed{padding:40px 0 5vw;border-top-left-radius:3px;border-top-right-radius:3px}.home-template .site-nav{position:relative}}.site-header-background{position:relative;margin-top:64px;padding-bottom:12px;color:#fff;background:#090a0b no-repeat 50%;background-size:cover}.site-header-background:before{bottom:0;background:rgba(0,0,0,.18)}.site-header-background:after,.site-header-background:before{content:"";position:absolute;top:0;right:0;left:0;z-index:10;display:block}.site-header-background:after{bottom:auto;height:140px;background:linear-gradient(rgba(0,0,0,.15),transparent)}.site-header-background.no-image:after,.site-header-background.no-image:before{display:none}.site-header-content{z-index:100;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:6vw 3vw;min-height:200px;max-height:340px}.site-title{z-index:10;margin:0 0 0 -2px;padding:0;font-size:5rem;line-height:1em;font-weight:600}.site-logo{max-height:55px}.site-description{z-index:10;margin:0;padding:5px 0;font-size:2.1rem;line-height:1.4em;font-weight:400;opacity:.8}.site-home-header{z-index:1000}.site-home-header .site-header-background{margin-top:0}.site-home-header .site-header-content{padding:5vw 3vw 6vw}.site-home-header .site-title{font-size:5.5rem;text-align:center}.site-home-header .site-description{font-size:2.2rem;font-weight:300}.site-archive-header .site-header-content{position:relative;align-items:stretch;padding:12vw 0 20px;min-height:200px;max-height:600px}.site-archive-header .no-image{padding-top:0;padding-bottom:0;color:#15171a;background:#fff;opacity:1}.site-archive-header .no-image .site-description{color:#738a94;opacity:1}.site-archive-header .no-image .site-header-content{padding:5vw 0 10px;border-bottom:1px solid #e9eef1}@media (max-width:900px){.site-header-content{padding-bottom:9vw}}@media (max-width:500px){.site-home-header .site-title{font-size:3.2rem}.site-home-header .site-description{font-size:1.8rem}.site-archive-header .site-header-content{min-height:unset}}.site-nav-main{position:fixed;top:0;right:0;left:0;z-index:1000;background:#090a0b}.site-nav{position:relative;z-index:100;justify-content:space-between;align-items:flex-start;height:64px;font-size:1.3rem}.site-nav,.site-nav-left{display:flex;overflow-y:hidden}.site-nav-left{flex:1 0 auto;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-right:10px;padding:10px 0 80px;font-weight:500;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap;-ms-overflow-scrolling:touch}@media (max-width:700px){.site-header-background:not(.responsive-header-img) .site-nav:after,.site-nav-main .site-nav:after{content:"";position:absolute;top:0;z-index:1000;width:40px;height:100%;right:0;background:linear-gradient(90deg,rgba(9,10,11,0) 0,#090a0b)}.nav li:last-of-type{padding-right:20px}}.site-nav-logo{position:relative;z-index:100;flex-shrink:0;display:inline-block;margin-right:32px;padding:12px 0;color:#fff;font-size:1.7rem;line-height:1.8rem;font-weight:700;letter-spacing:-.5px;text-transform:none}.site-nav-logo:hover{text-decoration:none}.site-nav-logo img{display:block;width:auto;height:21px}.site-home-header .site-nav-logo{display:none}.site-nav-content{position:relative;align-self:flex-start}.nav{position:absolute;z-index:1000;display:flex;margin:0 0 0 -12px;padding:0;list-style:none;transition:all 1s cubic-bezier(.19,1,.22,1)}.nav li{display:block;margin:0;padding:0}.nav li a{position:relative;display:block;padding:12px;color:#fff;opacity:.8;transition:opacity .35s ease-in-out}.nav li a:hover{text-decoration:none;opacity:1}.nav li a:before{content:"";position:absolute;right:100%;bottom:8px;left:12px;height:1px;background:#fff;opacity:.25;transition:all .35s ease-in-out}.nav li a:hover:before{right:12px;opacity:.5}.nav-post-title-active .nav{visibility:hidden;opacity:0;transform:translateY(-175%)}.nav-post-title{visibility:hidden;position:absolute;top:9px;color:#fff;font-size:1.7rem;font-weight:400;text-transform:none;opacity:0;transition:all 1s cubic-bezier(.19,1,.22,1);transform:translateY(175%)}.nav-post-title.dash{left:-25px}.nav-post-title.dash:before{content:"– ";opacity:.5}.nav-post-title-active .nav-post-title{visibility:visible;opacity:1;transform:translateY(0)}.site-nav-right{padding:10px 0;height:64px}.site-nav-right,.social-links{flex-shrink:0;display:flex;align-items:center}.social-links a:last-of-type{padding-right:20px}.social-link{display:inline-block;margin:0;padding:10px;opacity:.8}.social-link:hover{opacity:1}.social-link svg{height:1.8rem;fill:#fff}.social-link-fb svg,.social-link-wb svg{height:1.6rem}.social-link-wb svg path{stroke:#fff}.social-link-rss svg{height:1.9rem}.subscribe-button{display:block;padding:4px 10px;border:1px solid #fff;color:#fff;font-size:1.2rem;line-height:1em;border-radius:10px;opacity:.8}.subscribe-button:hover{text-decoration:none;opacity:1}.rss-button{opacity:.8}.rss-button:hover{opacity:1}.rss-button svg{margin-bottom:1px;height:2.1rem;fill:#fff}.home-template .site-nav-main{z-index:100}.home-template .site-nav-main .site-nav{opacity:0;transition:all .5s cubic-bezier(.19,1,.22,1) 0s}.home-template .site-nav-main .fixed-nav-active{opacity:1;transition:all .5s cubic-bezier(.19,1,.22,1) .05s}@media (max-width:700px){.site-home-header .site-nav{margin-left:-5vw}.site-nav-main{padding-right:0;padding-left:0}.site-nav-left{margin-right:0;padding-left:5vw}.site-nav-right{display:none}}.posts{overflow-x:hidden}.post-feed{flex-wrap:wrap;margin:0 -20px;padding:50px 0 0;background:#fff}.post-card,.post-feed{position:relative;display:flex}.post-card{flex:1 1 301px;flex-direction:column;overflow:hidden;margin:0 0 40px;padding:0 20px 40px;min-height:220px;border-bottom:1px solid #e9eef1;background-size:cover}.post-card-image-link{position:relative;display:block;overflow:hidden;border-radius:3px}.post-card-image{width:100%;height:200px;background:#c5d2d9 no-repeat 50%;-o-object-fit:cover;object-fit:cover}.post-card-content-link{position:relative;display:block;color:#15171a}.post-card-content-link:hover{text-decoration:none}.post-card-header{margin:15px 0 0}.post-feed .no-image .post-card-content-link{padding:0}.no-image .post-card-header{margin-top:0}.post-card-primary-tag{margin:0 0 .2em;color:#3eb0ef;font-size:1.2rem;font-weight:500;letter-spacing:.2px;text-transform:uppercase}.post-card-title{margin:0 0 .4em;line-height:1.15em;transition:color .2s ease-in-out}.no-image .post-card-title{margin-top:0}.post-card-content{flex-grow:1;display:flex;flex-direction:column}.post-card-excerpt{max-width:56em;color:#738a94;font-family:Georgia,serif}.post-card-excerpt p{margin-bottom:1em}.post-card-meta{display:flex;align-items:flex-start;padding:0}.author-profile-image,.avatar-wrapper{display:block;width:100%;height:100%;background:#e3e9ed;border-radius:100%;-o-object-fit:cover;object-fit:cover}.post-card-meta .avatar-wrapper,.post-card-meta .profile-image-wrapper{position:relative}.author-list{display:flex;flex-wrap:wrap;margin:0 0 0 4px;padding:0;list-style:none}.author-list-item{position:relative;flex-shrink:0;margin:0;padding:0}.static-avatar{display:block;overflow:hidden;margin:0 0 0 -6px;width:34px;height:34px;border:2px solid #fff;border-radius:100%}.author-name-tooltip{position:absolute;bottom:105%;z-index:999;display:block;padding:2px 8px;color:#fff;font-size:1.2rem;letter-spacing:.2px;white-space:nowrap;background:#15171a;border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.03);opacity:0;transition:all .35s cubic-bezier(.4,.01,.165,.99);transform:translateY(6px);pointer-events:none}.author-list-item:hover .author-name-tooltip{opacity:1;transform:translateY(0)}@media (max-width:700px){.author-name-tooltip{display:none}}.post-card-byline-content{flex:1 1 50%;display:flex;flex-direction:column;margin:2px 0 0 6px;color:#92a3ab;font-size:1.2rem;line-height:1.4em;font-weight:400;letter-spacing:.2px;text-transform:uppercase}.post-card-byline-content span{margin:0}.post-card-byline-content a{color:#424852;font-weight:600}.post-card-byline-date{font-size:1.2rem}.post-card-byline-date .bull{display:inline-block;margin:0 4px;opacity:.6}.single-author-byline{display:flex;flex-direction:column;margin-left:5px;color:#5d7179;font-size:1.3rem;line-height:1.4em;font-weight:500}.single-author{display:flex;align-items:center}.single-author .static-avatar{margin-left:-2px}.single-author-name{display:inline-block}@media (min-width:795px){.post-card-large{flex:1 1 100%;flex-direction:row;padding-bottom:40px;min-height:280px;border-top:0}.post-card-large:hover{border-bottom-color:#e3e9ed}.post-card-large:not(.no-image) .post-card-header{margin-top:0}.post-card-large .post-card-image-link{position:relative;flex:1 1 auto;margin-bottom:0;min-height:380px}.post-card-large .post-card-image{position:absolute;width:100%;height:100%}.post-card-large .post-card-content{flex:0 1 361px;justify-content:center}.post-card-large .post-card-title{margin-top:0;font-size:3.2rem}.post-card-large .post-card-content-link,.post-card-large .post-card-meta{padding:0 0 0 40px}.post-card-large .post-card-excerpt p{margin-bottom:1.5em;font-size:1.8rem;line-height:1.5em}}@media (max-width:1170px){.post-card{margin-bottom:5vw}}@media (max-width:650px){.post-feed{padding-top:5vw}.post-card{margin-bottom:5vw}}@media (max-width:500px){.post-card-title{font-size:1.9rem}.post-card-excerpt{font-size:1.6rem}}.page-template .site-main,.post-template .site-main{margin-top:64px;padding-bottom:4vw;background:#fff}.post-full-header{position:relative;margin:0 auto;padding:70px 170px 50px;border-top-left-radius:3px;border-top-right-radius:3px}.post-full-tags{display:flex;justify-content:flex-start;align-items:center;color:#738a94;font-size:1.3rem;line-height:1.4em;font-weight:600;text-transform:uppercase}.post-full-meta-date{color:#738a94;font-size:1.2rem;font-weight:400}@media (max-width:1170px){.post-full-header{padding:60px 11vw 50px}}@media (max-width:800px){.post-full-header{padding-right:5vw;padding-left:5vw}}@media (max-width:500px){.post-full-header{padding:20px 0 35px}}.post-full-title{margin:0 0 .2em;color:#090a0b}.post-full-custom-excerpt{margin:20px 0 0;color:#738a94;font-family:Georgia,serif;font-size:2.3rem;line-height:1.4em;font-weight:300}.date-divider{display:inline-block;margin:0 6px 1px;font-weight:300}.post-full-image{display:flex;flex-direction:column;align-items:center;overflow:hidden;margin:25px 0 50px;background:#e3e9ed;border-radius:3px}.post-full-image img{max-width:1040px;width:100%;height:auto}.post-full-content{position:relative;margin:0 auto;padding:0 170px 6vw;min-height:230px;font-family:Georgia,serif;font-size:2rem;line-height:1.6em;background:#fff}@media (max-width:1170px){.post-full-content{padding:0 11vw}}@media (max-width:800px){.post-full-content{padding:0 5vw;font-size:1.8rem}}@media (max-width:500px){.post-full-custom-excerpt{font-size:1.9rem;line-height:1.5em}}.no-image .post-full-content{padding-top:0}.no-image .post-full-content:after,.no-image .post-full-content:before{display:none}.footnotes,.post-full-comments,.post-full-content blockquote,.post-full-content dl,.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 ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin:0 0 1.5em;min-width:100%}@media (max-width:500px){.footnotes,.post-full-comments,.post-full-content dl,.post-full-content ol,.post-full-content p,.post-full-content pre,.post-full-content ul{margin-bottom:1.28em}}.post-full-content li{word-break:break-word}.post-full-content li p{margin:0}.post-full-content a{color:#15171a;word-break:break-word;box-shadow:inset 0 -1px 0 #15171a;transition:all .2s ease-in-out}.post-full-content a:hover{color:#3eb0ef;text-decoration:none;box-shadow:inset 0 -1px 0 #3eb0ef}.post-full-content em,.post-full-content strong{color:#090a0b}.post-full-content small{display:inline-block;line-height:1.6em}.post-full-content li:first-child{margin-top:0}.post-full-content img,.post-full-content video{display:block;margin:1.5em auto;max-width:1040px;height:auto}@media (max-width:1040px){.post-full-content img,.post-full-content video{width:100%}}.post-full-content img[src$="#full"]{max-width:none;width:100vw}.post-full-content img+br+small{display:block;margin-top:-3em;margin-bottom:1.5em;text-align:center}.post-full-content iframe{margin:0 auto!important}.post-full-content blockquote{margin:0 0 1.5em;padding:0 1.5em;border-left:3px solid #3eb0ef}@media (max-width:500px){.post-full-content blockquote{padding:0 1.3em}}.post-full-content blockquote p{margin:0 0 1em;color:inherit;font-size:inherit;line-height:inherit;font-style:italic}.post-full-content blockquote p:last-child{margin-bottom:0}.post-full-content code{padding:0 5px 2px;font-size:.8em;line-height:1em;font-weight:400!important;background:#e5eff5;border-radius:3px}.post-full-content p code{word-break:break-all}.post-full-content pre{overflow-x:auto;margin:1.5em 0 3em;padding:20px;max-width:100%;border:1px solid #000;color:#e5eff5;font-size:1.4rem;line-height:1.5em;background:#0e0f11;border-radius:5px}.post-full-content pre ::-moz-selection{color:#3c484e}.post-full-content pre ::selection{color:#3c484e}.post-full-content pre code{padding:0;font-size:inherit;line-height:inherit;background:transparent}.post-full-content pre code :not(span){color:inherit}.post-full-content .fluid-width-video-wrapper{margin:1.5em 0 3em}.post-full-content hr{margin:2em 0}.post-full-content hr:after{content:"";position:absolute;top:-15px;left:50%;display:block;margin-left:-10px;width:1px;height:30px;background:#e3e9ed;box-shadow:0 0 0 5px #fff;transform:rotate(45deg)}.post-full-content hr+p{margin-top:1.2em}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h5,.post-full-content h6{color:#090a0b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}.post-full-content h1{margin:.5em 0 .4em;font-size:4.2rem;line-height:1.25em;font-weight:600}.post-full-content p+h1{margin-top:.8em}@media (max-width:800px){.post-full-content h1{font-size:3.2rem;line-height:1.25em}}.post-full-content h2{margin:.5em 0 .4em;font-size:3.2rem;line-height:1.25em;font-weight:600}.post-full-content p+h2{margin-top:.8em}@media (max-width:800px){.post-full-content h2{margin-bottom:.3em;font-size:2.8rem;line-height:1.25em}}.post-full-content h3{margin:.5em 0 .2em;font-size:2.5rem;line-height:1.3em;font-weight:600}.post-full-content h2+h3{margin-top:.7em}@media (max-width:800px){.post-full-content h3{margin-bottom:.3em;font-size:2.4rem;line-height:1.3em}}.post-full-content h4{margin:.5em 0 .2em;font-size:2.5rem;font-weight:600}.post-full-content h2+h4{margin-top:.7em}.post-full-content h3+h4{margin-top:0}@media (max-width:800px){.post-full-content h4{margin-bottom:.3em;font-size:2.4rem;line-height:1.3em}}.post-full-content h5{display:block;margin:.5em 0;padding:.4em 1em .9em;border:0;color:#3eb0ef;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:800px){.post-full-content h5{margin-bottom:1em;margin-left:1.3em;padding:0 0 .5em;font-size:2.4rem;text-align:initial}}.post-full-content h6{margin:.5em 0 .2em;font-size:2rem;font-weight:700}@media (max-width:800px){.post-full-content h6{font-size:1.8rem;line-height:1.4em}}.footnotes-sep{margin-bottom:30px}.footnotes{font-size:1.5rem}.footnotes p{margin:0}.footnote-backref{color:#3eb0ef!important;font-size:1.2rem;font-weight:700;text-decoration:none!important;box-shadow:none!important}@media (max-width:1170px){.post-full-image{margin:25px -6vw 50px;border-radius:0}.post-full-image img{max-width:1170px}}@media (max-width:700px){.post-full-image{margin:25px -5vw}}@media (max-width:500px){.post-full-meta{font-size:1.2rem;line-height:1.3em}.post-full-title{margin-top:.2em;font-size:3.3rem}.post-full-image{margin-top:5px;margin-bottom:5vw}.post-full-content{padding:0}.post-full-content:after,.post-full-content:before{display:none}}.post-full-content table{display:inline-block;overflow-x:auto;margin:.5em 0 2.5em;max-width:100%;width:auto;border-spacing:0;border-collapse:collapse;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;-webkit-overflow-scrolling:touch;background:radial-gradient(ellipse at left,rgba(0,0,0,.2) 0,transparent 75%) 0,radial-gradient(ellipse at right,rgba(0,0,0,.2) 0,transparent 75%) 100%;background-attachment:scroll,scroll;background-size:10px 100%,10px 100%;background-repeat:no-repeat}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#fff 50%,hsla(0,0%,100%,0));background-size:20px 100%;background-repeat:no-repeat}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#fff 50%,hsla(0,0%,100%,0));background-position:100% 0;background-size:20px 100%;background-repeat:no-repeat}.post-full-content table th{color:#15171a;font-size:1.2rem;font-weight:700;letter-spacing:.2px;text-align:left;text-transform:uppercase;background-color:#f4f8fb}.post-full-content table td,.post-full-content table th{padding:6px 12px;border:1px solid #e3ecf3}.post-full-byline{display:flex;justify-content:space-between;margin:35px 0 0;padding-top:15px;border-top:1px solid #e3e9ed}.post-full-byline-content{flex-grow:1;display:flex;align-items:flex-start}.post-full-byline-content .author-list{justify-content:flex-start;padding:0 12px 0 0}.post-full-byline-meta{margin:2px 0 0;color:#92a3ab;font-size:1.2rem;line-height:1.2em;letter-spacing:.2px;text-transform:uppercase}.post-full-byline-meta h4{margin:0 0 3px;font-size:1.3rem;line-height:1.4em;font-weight:500}.post-full-byline-meta h4 a{color:#2b2f36}.post-full-byline-meta h4 a:hover{color:#15171a}.post-full-byline-meta .bull{display:inline-block;margin:0 4px;opacity:.6}.author-avatar{display:block;overflow:hidden;margin:0 -4px;width:40px;height:40px;border:2px solid #fff;border-radius:100%;transition:all .5s cubic-bezier(.4,.01,.165,.99) .7s}.author-list-item .author-card{position:absolute;bottom:130%;left:50%;z-index:600;display:flex;justify-content:space-between;margin-left:-200px;width:400px;font-size:1.4rem;line-height:1.5em;background:#fff;border-radius:3px;box-shadow:0 12px 26px rgba(39,44,49,.08),1px 3px 8px rgba(39,44,49,.06);opacity:0;transition:all .35s cubic-bezier(.4,.01,.165,.99);transform:scale(.98) translateY(15px);pointer-events:none}.author-list-item .author-card:before{content:"";position:absolute;top:100%;left:50%;display:block;margin-left:-8px;width:0;height:0;border-top:8px solid #fff;border-right:8px solid transparent;border-left:8px solid transparent}.author-list-item .author-card.hovered{opacity:1;transform:scale(1) translateY(0);pointer-events:auto}.author-card{padding:20px 20px 22px}.author-card .author-info{flex:1 1 auto;padding:0 0 0 20px}.author-card .author-info h2{margin:8px 0 0;font-size:1.6rem}.author-card .author-info p{margin:4px 0 0;color:#5d7179}.author-card .author-info .bio h2{margin-top:0}.author-card .author-info .bio p{margin-top:.8em}.author-card .author-profile-image{flex:0 0 60px;margin:0;width:60px;height:60px;border:none}.basic-info .avatar-wrapper{position:relative;margin:0;width:60px;height:60px;border:none;background:rgba(229,239,245,.1)}.basic-info .avatar-wrapper svg{margin:0;width:60px;height:60px;opacity:.15}@media (max-width:1170px){.author-list-item .author-card{margin-left:-50px;width:430px}.author-list-item .author-card:before{left:50px}}@media (max-width:650px){.author-list-item .author-card{display:none}}@media (max-width:500px){.author-avatar{width:32px;height:32px}.post-full-byline-meta{font-size:1.2rem}.post-full-byline-meta h4{margin-bottom:2px;font-size:1.2rem}}.subscribe-form{margin:1.5em 0;padding:6.5vw 7vw 8vw;border:1px solid #e3e9ed;text-align:center;background:linear-gradient(#fbfdfe,#f4f8fb);border-radius:3px}.subscribe-form-title{margin:0 0 3px;padding:0;color:#15171a;font-size:3.5rem;line-height:1;font-weight:600}.subscribe-form-description{margin-bottom:.2em 0 1em;color:#738a94;font-size:2.1rem;line-height:1.55em}.subscribe-form form{display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto;max-width:460px}.subscribe-form .form-group{align-self:stretch;display:flex}.subscribe-email{display:block;padding:10px;width:100%;border:1px solid #dae2e7;color:#738a94;font-size:1.8rem;line-height:1em;font-weight:400;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;border-radius:5px;transition:border-color .15s linear;-webkit-appearance:none}.subscribe-form button{position:relative;display:inline-block;margin:0 0 0 10px;padding:0 20px;height:43px;outline:none;color:#fff;font-size:1.5rem;line-height:39px;font-weight:400;text-align:center;background:linear-gradient(#4fb7f0,#29a0e0 60%,#29a0e0 90%,#36a6e2);border-radius:5px;-webkit-font-smoothing:subpixel-antialiased}.subscribe-form button:active,.subscribe-form button:focus{background:#209cdf}.subscribe-form .button-loader,.subscribe-form .message-error,.subscribe-form .message-success{display:none}.subscribe-form .loading .button-content{visibility:hidden}.subscribe-form .loading .button-loader{position:absolute;top:0;left:50%;display:inline-block;margin-left:-19px;transform:scale(.7)}.subscribe-form .button-loader svg path,.subscribe-form .button-loader svg rect{fill:#fff}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error,.subscribe-form .success .message-success{margin:1em auto 0;max-width:400px;color:#f05230;font-size:1.6rem;line-height:1.5em;text-align:center}.subscribe-form .success .message-success{display:block;color:#98c22e}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{display:block}@media (max-width:650px){.subscribe-form-title{font-size:2.4rem}.subscribe-form-description{font-size:1.6rem}}@media (max-width:500px){.subscribe-form form{flex-direction:column}.subscribe-form .form-group{flex-direction:column;width:100%}.subscribe-form button{margin:10px 0 0;width:100%}}.post-full-comments{margin:0 auto;max-width:840px}.read-next{border-bottom:1px solid hsla(0,0%,100%,.1);background:#090a0b}.read-next-feed{display:flex;flex-wrap:wrap;margin:0 -25px;padding:60px 0 0}.read-next .post-card{padding-bottom:0;border-bottom:none}.read-next .post-card:after{display:none}.read-next .post-card-primary-tag{color:#fff;opacity:.6}.read-next .post-card-title{color:#fff;opacity:.8;transition:all .2s ease-in-out}.read-next .post-card:hover .post-card-image{opacity:1}.read-next .post-card-excerpt{color:hsla(0,0%,100%,.6)}.read-next .static-avatar{border-color:#000}.read-next .post-card-byline-content{color:hsla(0,0%,100%,.6)}.read-next .post-card-byline-content a{color:hsla(0,0%,100%,.8)}.read-next-card{position:relative;flex:0 1 326px;display:flex;flex-direction:column;overflow:hidden;margin:0 25px 50px;padding:25px;background:linear-gradient(#191b1f,#090a0b);border-radius:3px}.read-next-card a{transition:all .2s ease-in-out}.read-next-card a:hover{text-decoration:none}.read-next-card-header h3{margin:0;color:hsla(0,0%,100%,.6);font-size:1.2rem;line-height:1em;font-weight:300;letter-spacing:.4px;text-transform:uppercase}.read-next-card-header h3 a{color:#fff;font-weight:500;text-decoration:none;opacity:.8}.read-next-card-header h3 a:hover{opacity:1}.read-next-card-content{font-size:1.7rem}.read-next-card-content ul{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.read-next-card-content li{display:flex;flex-direction:column;align-items:flex-start;margin:0;padding:20px 0;border-bottom:hsla(0,0%,100%,.1)}.read-next-card-content li:last-of-type{padding-bottom:5px;border:none}.read-next-card-content h4{margin:0;font-size:1.6rem;line-height:1.35em;font-weight:600}.read-next-card-content li a{display:block;color:#fff;opacity:.8}.read-next-card-content li a:hover{opacity:1}.read-next-card-excerpt{overflow:hidden;max-width:100%;font-size:1.4rem;line-height:1.2em;text-overflow:ellipsis}.read-next-card-meta{margin-top:2px;font-size:1.2rem;line-height:1.4em;font-weight:400}.read-next-card-meta p{margin:0;color:hsla(0,0%,100%,.6)}.read-next-card-footer{position:relative;margin:40px 0 5px}.read-next-card-footer a{padding:7px 12px 8px 14px;border:1px solid hsla(0,0%,100%,.6);color:hsla(0,0%,100%,.6);font-size:1.3rem;border-radius:999px;transition:all .35s ease-in-out}.read-next-card-footer a:hover{border-color:#fecd35;color:#fecd35;text-decoration:none}@media (max-width:1170px){.read-next-card{flex:1 1 261px;margin-bottom:5vw}}@media (max-width:650px){.read-next-feed{flex-direction:column;padding:25px 0 0}.read-next-card{flex:1 1 auto;margin:0 25px;padding:0;background:none}.read-next .post-card{flex:1 1 auto;margin:25px;padding:25px 0 0;border-bottom:1px solid hsla(0,0%,100%,.1)}}.post-content{display:flex;flex-direction:column;align-items:center}.post-full-content .kg-image{max-width:100%}.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-full-content figure{margin:.8em 0 2.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:2em}.post-full-content figure img{margin:0}.post-full-content figcaption{margin:1em 0 0;color:#5d7179;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:75%;line-height:1.5em;text-align:center}.kg-width-full figcaption{padding:0 1.5em}.kg-embed-card{display:flex;flex-direction:column;align-items:center;width:100%}.kg-embed-card .fluid-width-video-wrapper{margin:0}@media (max-width:1040px){.post-full-content .kg-width-full .kg-image{width:100vw}}.kg-gallery-container{display:flex;flex-direction:column;max-width:1040px;width:100vw}.kg-gallery-row{display:flex;flex-direction:row;justify-content:center}.kg-gallery-image img{display:block;margin:0;width:100%;height:100%}.kg-gallery-row:not(:first-of-type){margin:.75em 0 0}.kg-gallery-image:not(:first-of-type){margin:0 0 0 .75em}.kg-gallery-card+.kg-gallery-card,.kg-gallery-card+.kg-image-card.kg-width-wide,.kg-image-card.kg-width-wide+.kg-gallery-card,.kg-image-card.kg-width-wide+.kg-image-card.kg-width-wide{margin:-2.25em 0 3em}.kg-code-card{width:100%}.kg-code-card pre{margin:0}.kg-bookmark-card{width:100%;background:var(--white)}.kg-card+.kg-bookmark-card{margin-top:0}.post-full-content .kg-bookmark-container{display:flex;min-height:148px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;border-radius:3px}.post-full-content .kg-bookmark-container,.post-full-content .kg-bookmark-container:hover{color:#15171a;text-decoration:none;box-shadow:0 2px 5px -1px rgba(0,0,0,.15),0 0 1px rgba(0,0,0,.09)}.kg-bookmark-content{flex-grow:1;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;padding:20px}.kg-bookmark-title{color:#313b3f;font-size:1.6rem;line-height:1.5em;font-weight:600;transition:color .2s ease-in-out}.post-full-content .kg-bookmark-container:hover .kg-bookmark-title{color:#3eb0ef}.kg-bookmark-description{display:-webkit-box;overflow-y:hidden;margin-top:12px;max-height:48px;color:#5d7179;font-size:1.5rem;line-height:1.5em;font-weight:400;-webkit-line-clamp:2;-webkit-box-orient:vertical}.kg-bookmark-thumbnail{position:relative;min-width:33%;max-height:100%}.kg-bookmark-thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:0 3px 3px 0;-o-object-fit:cover;object-fit:cover}.kg-bookmark-metadata{display:flex;flex-wrap:wrap;align-items:center;margin-top:14px;color:#5d7179;font-size:1.5rem;font-weight:400}.post-full-content .kg-bookmark-icon{margin-right:8px;width:22px;height:22px}.kg-bookmark-author{line-height:1.5em}.kg-bookmark-author:after{content:"•";margin:0 6px}.kg-bookmark-publisher{overflow:hidden;max-width:240px;line-height:1.5em;text-overflow:ellipsis;white-space:nowrap}@media (max-width:800px){.post-full-content figure{margin:.2em 0 1.3em}.post-full-content h1+figure,.post-full-content h2+figure,.post-full-content h3+figure,.post-full-content h4+figure{margin-top:.9em}}@media (max-width:500px){.post-full-content .kg-width-full,.post-full-content .kg-width-wide{margin-right:-5vw;margin-left:-5vw}.post-full-content figcaption{margin-bottom:.4em}.post-full-content .kg-bookmark-container{flex-direction:column}.kg-bookmark-description,.kg-bookmark-metadata,.kg-bookmark-title{font-size:1.4rem;line-height:1.5em}.post-full-content .kg-bookmark-icon{width:18px;height:18px}.kg-bookmark-thumbnail{order:1;min-height:160px;width:100%}.kg-bookmark-thumbnail img{border-radius:3px 3px 0 0}.kg-bookmark-content{order:2}}.author-header{display:flex;flex-direction:row;justify-content:flex-start;align-items:flex-start;padding:10vw 0 10px}.site-archive-header .no-image .author-header{padding-bottom:20px}.author-header-content{display:flex;flex-direction:column;justify-content:center;margin:5px 0 0 30px}.site-header-content .author-profile-image{z-index:10;flex-shrink:0;margin:5px 0 0;width:110px;height:110px;box-shadow:0 0 0 6px hsla(0,0%,100%,.1)}.author-header-content .author-bio{z-index:10;flex-shrink:0;margin:6px 0 -6px;max-width:46em;font-size:2rem;line-height:1.4em;font-weight:400;opacity:.8}.author-header-content .author-meta{z-index:10;flex-shrink:0;display:flex;align-items:center;margin:0 0 0 1px;font-size:1.2rem;font-weight:400;letter-spacing:.2px;text-transform:uppercase}.author-header-content .social-link:first-of-type{padding-left:4px}.no-image .author-header-content .author-bio,.no-image .author-header-content .author-meta{color:#738a94;opacity:1}.author-social-link a{color:#15171a;font-weight:600}.author-social-link a:hover{opacity:1}.author-social-link{display:inline-block;margin:0;padding:10px 0}.author-location+.author-stats:before,.author-social-link+.author-social-link:before,.author-stats+.author-social-link:before{content:"\2022";display:inline-block;margin:0 12px;color:#738a94;opacity:.6}@media (max-width:500px){.author-header{padding:10px 0 0}.no-image .author-header{padding-bottom:10px}.author-header-content{margin-left:20px}.site-header-content .author-profile-image{width:80px;height:80px}.author-header-content .author-bio{font-size:1.8rem;line-height:1.3em;letter-spacing:0}.author-location,.author-stats{display:none}}.error-content{padding:14vw 4vw 6vw}.site-nav-center{display:flex;justify-content:center;align-items:center;padding:10px 0;text-align:center}.site-nav-center .site-nav-logo{margin-right:0}.error-message{padding-bottom:10vw;border-bottom:1px solid #e3e9ed;text-align:center}.error-code{margin:0;color:#c5d2d9;font-size:12vw;line-height:1em;letter-spacing:-5px;opacity:.75}.error-description{margin:0;color:#738a94;font-size:3rem;line-height:1.3em;font-weight:400}.error-link{display:inline-block;margin-top:5px}@media (min-width:940px){.error-content .post-card{margin-bottom:0;padding-bottom:0;border-bottom:none}}@media (max-width:800px){.error-content{padding-top:24vw}.error-code{font-size:11.2rem}.error-message{padding-bottom:16vw}.error-description{margin:5px 0 0;font-size:1.8rem}}@media (max-width:500px){.error-content{padding-top:28vw}.error-message{padding-bottom:14vw}}.subscribe-success-message{position:fixed;top:0;right:0;left:0;z-index:9000;padding:20px 0;color:#fff;text-align:center;background:#a4d037;transition:all .35s cubic-bezier(.19,1,.22,1) .5s;transform:translateY(-175%)}.subscribe-success .subscribe-success-message{visibility:visible;transform:translateY(0)}.subscribe-success-message.close{visibility:hidden;transition:all 1.35s cubic-bezier(.19,1,.22,1);transform:translateY(-175%)}.subscribe-close{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.subscribe-close:before{transform:rotate(45deg)}.subscribe-close:after,.subscribe-close:before{content:"";position:absolute;top:32px;right:25px;display:block;width:20px;height:1px;background:#fff;opacity:.8}.subscribe-close:after{transform:rotate(-45deg)}.subscribe-close:hover{cursor:default}.subscribe-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;justify-content:center;align-items:center;background:rgba(9,10,11,.97);opacity:0;transition:opacity .2s ease-in;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.subscribe-overlay .subscribe-close:after,.subscribe-overlay .subscribe-close:before{top:36px;width:30px}.subscribe-overlay:target{opacity:1;pointer-events:auto}.subscribe-overlay-content{position:relative;z-index:9999;margin:0 0 5vw;padding:4vw;color:#fff;text-align:center}.subscribe-overlay .subscribe-form{border:none;color:#fff;background:none}.subscribe-overlay-logo{position:fixed;top:23px;left:30px;height:30px}.subscribe-overlay-title{display:inline-block;margin:0 0 10px;font-size:5.2rem;line-height:1.15em}.subscribe-overlay-description{margin:0 auto 50px;max-width:650px;color:#fff;font-family:Georgia,serif;font-size:2.4rem;line-height:1.3em;font-weight:300;opacity:.8}.subscribe-overlay form{display:flex;justify-content:center;align-items:center;margin:0 auto;max-width:540px}.subscribe-overlay .form-group{flex-grow:1}.subscribe-overlay .subscribe-email{display:block;padding:14px 20px;width:100%;border:none;color:#738a94;font-size:2rem;line-height:1em;font-weight:400;letter-spacing:.5px;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;border-radius:8px;transition:border-color .15s linear;-webkit-appearance:none}.subscribe-email:focus{outline:0;border-color:#becdd5}.subscribe-overlay button{display:inline-block;margin:0 0 0 15px;padding:0 25px;height:52px;outline:none;color:#fff;font-size:1.7rem;line-height:38px;font-weight:400;text-align:center;background:linear-gradient(#4fb7f0,#29a0e0 60%,#29a0e0 90%,#36a6e2);border-radius:8px;-webkit-font-smoothing:subpixel-antialiased}.subscribe-overlay button:active,.subscribe-overlay button:focus{background:#209cdf}.subscribe-overlay .loading .button-loader{top:5px}.site-footer{position:relative;padding-top:20px;padding-bottom:60px;color:#fff;background:#090a0b}.site-footer-content{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:1.3rem}.site-footer-content,.site-footer-content a{color:hsla(0,0%,100%,.7)}.site-footer-content a:hover{color:#fff;text-decoration:none}.site-footer-nav{display:flex}.site-footer-nav a{position:relative;margin-left:20px}.site-footer-nav a:before{content:"";position:absolute;top:11px;left:-11px;display:block;width:2px;height:2px;background:#fff;border-radius:100%}.site-footer-nav a:first-of-type:before{display:none}@media (max-width:650px){.site-footer-content{flex-direction:column}.site-footer-nav a:first-child{margin-left:0}}@media (prefers-color-scheme:dark){body{color:hsla(0,0%,100%,.75);background:#191b1f}img{opacity:.9}.site-header-background:before{background:rgba(0,0,0,.6)}.post-feed{background:#191b1f}.post-card,.post-card:hover{border-bottom-color:#2b2f36}.author-profile-image{background:#191b1f}.post-card-byline-content a{color:hsla(0,0%,100%,.75)}.post-card-byline-content a:hover{color:#fff}.post-card-image{background:#191b1f}.post-card-title{color:hsla(0,0%,100%,.85)}.post-card-excerpt{color:#92a3ab}.author-avatar,.static-avatar{border-color:#191b1f}.post-full-content,.post-template .site-main,.site-main{background:#191b1f}.post-full-title{color:hsla(0,0%,100%,.9)}.post-full-custom-excerpt{color:#92a3ab}.post-full-image{background-color:#2b2f36}.post-full-byline{border-top-color:#3b404a}.post-full-byline-meta h4 a{color:hsla(0,0%,100%,.75)}.post-full-byline-meta h4 a:hover{color:#fff}.author-list-item .author-card{background:#22252a;box-shadow:0 12px 26px rgba(0,0,0,.4)}.author-list-item .author-card:before{border-top-color:#22252a}.post-full-content h1,.post-full-content h2,.post-full-content h3,.post-full-content h4,.post-full-content h6{color:hsla(0,0%,100%,.9)}.post-full-content a{color:#fff;box-shadow:inset 0 -1px 0 #fff}.post-full-content em,.post-full-content strong{color:#fff}.post-full-content code{color:#fff;background:#000}hr{border-top-color:#2b2f36}.post-full-content figcaption{color:hsla(0,0%,100%,.6)}.post-full-content .kg-bookmark-container{color:hsla(0,0%,100%,.75);box-shadow:0 0 1px hsla(0,0%,100%,.9)}.post-full-content table td:first-child{background-image:linear-gradient(90deg,#191b1f 50%,rgba(25,27,31,0))}.post-full-content table td:last-child{background-image:linear-gradient(270deg,#191b1f 50%,rgba(25,27,31,0))}.post-full-content table th{color:hsla(0,0%,100%,.85);background-color:#2b2f36}.post-full-content table td,.post-full-content table th{border:1px solid #2b2f36}.kg-bookmark-title{color:#fff}.kg-bookmark-description,.kg-bookmark-metadata{color:hsla(0,0%,100%,.75)}.site-archive-header .no-image{color:hsla(0,0%,100%,.9);background:#191b1f}.site-archive-header .no-image .site-header-content{border-bottom-color:#3b404a}.site-header-content .author-profile-image{box-shadow:0 0 0 6px hsla(0,0%,100%,.04)}.subscribe-form{border:none;background:linear-gradient(#0b0c0e,#121417)}.subscribe-form-title{color:hsla(0,0%,100%,.9)}.subscribe-form p{color:hsla(0,0%,100%,.7)}.subscribe-email{border-color:#272a30;color:hsla(0,0%,100%,.9);background:#202228}.subscribe-email:focus{border-color:#525866}.subscribe-form button{opacity:.9}.subscribe-form .error .message-error,.subscribe-form .invalid .message-error{color:#ec694b}.subscribe-form .success .message-success{color:#acd053}}
\ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..4fa4a7e --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,40 @@ +<!DOCTYPE html> +<html lang="{{ .Site.LanguageCode }}"> +<head> + <meta charset="utf-8" /> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + + {{ $title := print .Title " · " .Site.Title }} + {{ if .IsHome }}{{ $title = .Site.Title }}{{ end }} + <title>{{ $title }}</title> + + <meta name="HandheldFriendly" content="True" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + + {{ $styles := resources.Get "scss/main.scss" | resources.ExecuteAsTemplate "style.main.scss" . | toCSS | minify | fingerprint }} + <link rel="stylesheet" href="{{ $styles.Permalink }}" /> + +</head> +<body class="{{ block "body_class" . }} {{ end }}"> + + <div class="site-wrapper"> + {{- block "main" . }}{{- end }} + + + <footer class="site-footer outer"> + <div class="site-footer-content inner"> + <section class="copyright"><a href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a> © {{ .Date.Format "2006" }}</section> + <nav class="site-footer-nav"> + <a href="{{ .Site.BaseURL }}">Latest Posts</a> + {{ if .Site.Params.facebook }}<a href="{{ .Site.Params.facebook }}" target="_blank" rel="noopener">Facebook</a>{{ end }} + {{ if .Site.Params.twitter }}<a href="{{ .Site.Params.twitter }}" target="_blank" rel="noopener">Twitter</a>{{ end }} + {{ if .Site.Params.github }}<a href="{{ .Site.Params.github }}" target="_blank" rel="noopener">Github</a>{{ end }} + <a href="https://jonathanjanssens.com" target="_blank" rel="noopener" style="opacity: 0.5;">Hugo Casper3 by Jonathan Janssens</a> + </nav> + </div> + </footer> + + </div> + +</body> +</html>
\ No newline at end of file diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..29aa1b2 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,32 @@ +{{ define "body_class" }} tag-template {{ end }} + +{{ define "main" }} + +<header class="site-header"> + {{- partial "site-header.html" $ -}} + + {{- partial "header-background.html" $ -}} + <div class="inner site-header-content"> + <h1 class="site-title">{{ .Title }}</h1> + <h2 class="site-description"> + {{ if .Param "description" }} + {{ .Param "description" }} + {{ else }} + A collection of {{ len .Pages }} post{{ if gt (len .Pages) 1 }}s{{ end }} + {{ end }} + </h2> + </div> + </div> +</header> + +<main id="site-main" class="site-main outer"> + <div class="inner posts"> + <div class="post-feed"> + {{ range $index, $element := .Pages }} + {{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}} + {{ end }} + </div> + </div> +</main> + +{{ end }}
\ No newline at end of file diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..a1ed959 --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,66 @@ +{{ define "body_class" }} post-template {{ end }} + +{{ define "main" }} + +<header class="site-header"> + {{- partial "site-header.html" $ -}} +</header> + +<main id="site-main" class="site-main outer"> + <div class="inner"> + + <article class="post-full post {{ if not (.Param "featured_image") }} no-image {{ end }}"> + + <header class="post-full-header"> + + {{ with .Params.tags }} + {{ $primaryTag := (index . 0) }} + <section class="post-full-tags"> + <a href="{{ "/tags/" | relLangURL }}{{ $primaryTag | urlize }}">{{ $primaryTag }}</a> + </section> + {{ end }} + + <h1 class="post-full-title">{{ .Title }}</h1> + + {{ if .Param "summary" }} + <p class="post-full-custom-excerpt">{{ .Summary }}</p> + {{ end }} + + <div class="post-full-byline"> + <section class="post-full-byline-content"> + + <section class="post-full-byline-meta"> + <div class="byline-meta-content"> + <time class="byline-meta-date" datetime="{{.Date.Format "2006-31-01"}}">{{.Date.Format "2 January 2006"}}</time> + {{ if .Param "read_time" }} + <span class="byline-reading-time"><span class="bull">•</span> {{ .Param "read_time" }} read</span> + {{ end }} + </div> + </section> + + </section> + + + </div> + </header> + + {{ if .Param "feature_image" }} + <figure class="post-full-image"> + <img src="{{ .Param "feature_image" }}" alt="{{ .Title }}" /> + </figure> + {{ end }} + + <section class="post-full-content"> + <div class="post-content"> + {{ .Content }} + </div> + </section> + + </article> + + </div> +</main> + +{{- partial "post-navigation.html" . -}} + +{{ end }}
\ No newline at end of file diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..c1c37c2 --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,34 @@ +{{ define "body_class" }} home-template {{ end }} + +{{ define "main" }} + +<header class="site-home-header"> + {{- partial "header-background.html" . -}} + <div class="inner"> + {{- partial "site-nav.html" . -}} + <div class="site-header-content"> + <h1 class="site-title"> + {{ if $.Site.Params.logo }} + <img class="site-logo" src="{{ $.Site.Params.logo }}" alt="{{ .Site.Title }}" /> + {{ else }} + {{ $.Site.Title }} + {{ end }} + </h1> + <h2 class="site-description">{{ $.Site.Params.description }}</h2> + + </div> + </div> + </div> +</header> + +<main id="site-main" class="site-main outer"> + <div class="inner posts"> + <div class="post-feed"> + {{ range $index, $element := where $.Pages "Type" "post" }} + {{- partial "post-card.html" (dict "context" . "index" $index "home" $.IsHome) -}} + {{ end }} + </div> + </div> +</main> + +{{ end }}
\ No newline at end of file diff --git a/layouts/partials/header-background.html b/layouts/partials/header-background.html new file mode 100644 index 0000000..c0c14a4 --- /dev/null +++ b/layouts/partials/header-background.html @@ -0,0 +1,10 @@ +{{ if .Scratch.Get "background" }} + <style type="text/css"> + .responsive-header-img { + background-image: url('{{ .Scratch.Get "background" }}'); + } + </style> + <div class="outer site-header-background responsive-header-img"> +{{ else }} + <div class="outer site-header-background no-image"> +{{ end }} diff --git a/layouts/partials/icons/avatar.html b/layouts/partials/icons/avatar.html new file mode 100644 index 0000000..67b435a --- /dev/null +++ b/layouts/partials/icons/avatar.html @@ -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>
\ No newline at end of file diff --git a/layouts/partials/icons/facebook.html b/layouts/partials/icons/facebook.html new file mode 100644 index 0000000..91120b8 --- /dev/null +++ b/layouts/partials/icons/facebook.html @@ -0,0 +1 @@ +<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="M16 0c8.837 0 16 7.163 16 16s-7.163 16-16 16S0 24.837 0 16 7.163 0 16 0zm5.204 4.911h-3.546c-2.103 0-4.443.885-4.443 3.934.01 1.062 0 2.08 0 3.225h-2.433v3.872h2.509v11.147h4.61v-11.22h3.042l.275-3.81h-3.397s.007-1.695 0-2.187c0-1.205 1.253-1.136 1.329-1.136h2.054V4.911z" /></svg>
\ No newline at end of file diff --git a/layouts/partials/icons/loader.html b/layouts/partials/icons/loader.html new file mode 100644 index 0000000..4a7f2cd --- /dev/null +++ b/layouts/partials/icons/loader.html @@ -0,0 +1,11 @@ +<svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" + y="0px" width="40px" height="40px" viewBox="0 0 40 40" enable-background="new 0 0 40 40" xml:space="preserve"> + <path opacity="0.2" fill="#000" d="M20.201,5.169c-8.254,0-14.946,6.692-14.946,14.946c0,8.255,6.692,14.946,14.946,14.946 +s14.946-6.691,14.946-14.946C35.146,11.861,28.455,5.169,20.201,5.169z M20.201,31.749c-6.425,0-11.634-5.208-11.634-11.634 +c0-6.425,5.209-11.634,11.634-11.634c6.425,0,11.633,5.209,11.633,11.634C31.834,26.541,26.626,31.749,20.201,31.749z" /> + <path fill="#000" d="M26.013,10.047l1.654-2.866c-2.198-1.272-4.743-2.012-7.466-2.012h0v3.312h0 +C22.32,8.481,24.301,9.057,26.013,10.047z"> + <animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 20 20" to="360 20 20" + dur="0.5s" repeatCount="indefinite" /> + </path> +</svg>
\ No newline at end of file diff --git a/layouts/partials/icons/rss.html b/layouts/partials/icons/rss.html new file mode 100644 index 0000000..f80bb78 --- /dev/null +++ b/layouts/partials/icons/rss.html @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
\ No newline at end of file diff --git a/layouts/partials/icons/twitter.html b/layouts/partials/icons/twitter.html new file mode 100644 index 0000000..19de4af --- /dev/null +++ b/layouts/partials/icons/twitter.html @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><path d="M30.063 7.313c-.813 1.125-1.75 2.125-2.875 2.938v.75c0 1.563-.188 3.125-.688 4.625a15.088 15.088 0 0 1-2.063 4.438c-.875 1.438-2 2.688-3.25 3.813a15.015 15.015 0 0 1-4.625 2.563c-1.813.688-3.75 1-5.75 1-3.25 0-6.188-.875-8.875-2.625.438.063.875.125 1.375.125 2.688 0 5.063-.875 7.188-2.5-1.25 0-2.375-.375-3.375-1.125s-1.688-1.688-2.063-2.875c.438.063.813.125 1.125.125.5 0 1-.063 1.5-.25-1.313-.25-2.438-.938-3.313-1.938a5.673 5.673 0 0 1-1.313-3.688v-.063c.813.438 1.688.688 2.625.688a5.228 5.228 0 0 1-1.875-2c-.5-.875-.688-1.813-.688-2.75 0-1.063.25-2.063.75-2.938 1.438 1.75 3.188 3.188 5.25 4.25s4.313 1.688 6.688 1.813a5.579 5.579 0 0 1 1.5-5.438c1.125-1.125 2.5-1.688 4.125-1.688s3.063.625 4.188 1.813a11.48 11.48 0 0 0 3.688-1.375c-.438 1.375-1.313 2.438-2.563 3.188 1.125-.125 2.188-.438 3.313-.875z"/></svg> diff --git a/layouts/partials/post-card.html b/layouts/partials/post-card.html new file mode 100644 index 0000000..c90a4fa --- /dev/null +++ b/layouts/partials/post-card.html @@ -0,0 +1,49 @@ +<article class="post-card post +{{ if not (.context.Param "feature_image") }} no-image +{{ else }} +{{ if (eq (mod .index 6) 0) }} post-card-large {{ end }} +{{ end }} "> + + {{ if .context.Param "feature_image" }} + <a class="post-card-image-link" href="{{ .context.Permalink }}"> + <img class="post-card-image"src="{{ .context.Param "feature_image" }}" alt="{{ .context.Title }}"/> + </a> + {{ end }} + + <div class="post-card-content"> + + <a class="post-card-content-link" href="{{ .context.Permalink }}"> + + <header class="post-card-header"> + {{ with .context.Params.tags }} + {{ $primaryTag := (index . 0) }} + <div class="post-card-primary-tag">{{ $primaryTag }}</div> + {{ end }} + + <h2 class="post-card-title">{{ .context.Title }}</h2> + </header> + + <section class="post-card-excerpt"> + <p>{{ .context.Summary }}</p> + </section> + + </a> + + <footer class="post-card-meta"> + <ul class="author-list"> + <li class="author-list-item"> + <div class="author-name-tooltip">{{ .context.Param "author" }}</div> + <a href="https://test.com" class="static-avatar author-profile-image">{{- partial "icons/avatar.html" -}}</a> + </li> + </ul> + <div class="post-card-byline-content"> + <span>{{ .context.Param "author" }}</span> + <span class="post-card-byline-date"><time datetime="{{ .context.Date.Format "2006-31-01" }}">{{ .context.Date.Format "2 January 2006" }}</time> + <span class="bull">•</span> {{ .context.ReadingTime }} min read</span> + </div> + </footer> + + </div> + +</article> +
\ No newline at end of file diff --git a/layouts/partials/post-navigation.html b/layouts/partials/post-navigation.html new file mode 100644 index 0000000..f9afa4e --- /dev/null +++ b/layouts/partials/post-navigation.html @@ -0,0 +1,17 @@ + +<aside class="read-next outer"> + <div class="inner"> + <div class="read-next-feed"> + + {{- partial "read-next.html" . -}} + + {{ with .PrevInSection}} + {{- partial "post-card.html" (dict "context" . "index" 1) -}} + {{end}} + + {{ with .NextInSection}} + {{- partial "post-card.html" (dict "context" . "index" 1) -}} + {{end}} + </div> + </div> +</aside>
\ No newline at end of file diff --git a/layouts/partials/read-next.html b/layouts/partials/read-next.html new file mode 100644 index 0000000..a2a18e3 --- /dev/null +++ b/layouts/partials/read-next.html @@ -0,0 +1,22 @@ +{{ with .Params.tags }} + {{ $primaryTag := (index . 0) }} + <article class="read-next-card"> + <header class="read-next-card-header"> + <h3><span>More in</span> <a href="{{ "/tags/" | relLangURL }}{{ $primaryTag | urlize }}">{{ $primaryTag }}</a></h3> + </header> + <div class="read-next-card-content"> + <ul> + {{ range first 3 (where (index $.Site.Taxonomies.tags $primaryTag).Pages "Section" "post") }} + <li> + <h4><a href="{{ .Permalink }}">{{ .Title }}</a></h4> + <div class="read-next-card-meta"> + <p><time datetime="{{.Date.Format "2006-31-01"}}">{{.Date.Format "01 Jan 2006"}}</time> + {{ if .Params.reading_time }} – {{ .Params.reading_time }} {{ end }} + </p> + </div> + </li> + {{ end }} + </ul> + </div> + </article> +{{ end }}
\ No newline at end of file diff --git a/layouts/partials/site-header.html b/layouts/partials/site-header.html new file mode 100644 index 0000000..af4a545 --- /dev/null +++ b/layouts/partials/site-header.html @@ -0,0 +1,5 @@ +<div class="outer site-nav-main"> + <div class="inner"> + {{- partial "site-nav.html" . -}} + </div> +</div>
\ No newline at end of file diff --git a/layouts/partials/site-nav.html b/layouts/partials/site-nav.html new file mode 100644 index 0000000..82f8ed0 --- /dev/null +++ b/layouts/partials/site-nav.html @@ -0,0 +1,19 @@ +<nav class="site-nav"> + <div class="site-nav-left"> + {{ if eq $.Site.Params.logo "thisshouldfail" }} + <a class="site-nav-logo" href="{{ $.Site.BaseURL }}"><img src="{{ $.Site.Params.logo }}" alt="{{ $.Site.Title }}" /></a> + {{ else }} + <a class="site-nav-logo" href="{{ $.Site.BaseURL }}">{{ $.Site.Title }}</a> + {{ end }} + + <div class="site-nav-content"> + <ul class="nav" role="menu"> + {{ range $.Site.Menus.main }} + <li class="nav-home" role="menuitem"><a href="{{ .URL }}">{{- .Name -}}</a></li> + {{ end }} + </ul> + </div> + + </div> +</nav> + diff --git a/theme.toml b/theme.toml new file mode 100644 index 0000000..b47574a --- /dev/null +++ b/theme.toml @@ -0,0 +1,19 @@ +name = "casper3" +license = "MIT" +licenselink = "https://github.com/jonathanjanssens/hugo-casper3/blob/master/LICENSE" +description = "The default Casper version 3 theme from Ghost CMS ported over to Hugo" +tags = ["blog", "dark", "light"] +features = ["darkmode"] +min_version = "0.55.5" + +[author] + name = "Jonathan Janssens" + homepage = "https://jonathanjanssens.com/hugo-casper3" + repo = "https://github.com/jonathanjanssens/projects/hugo-casper3" + +[original] + name = "Ghost" + homepage = "https://ghost.org" + repo = "https://github.com/TryGhost/Casper" + +
\ No newline at end of file |