Vivid-Casper/assets/css/screen.css
Sodbileg Gansukh d687d0f099
Add comments support (#893)
* Added comments to theme

* Cleanup

* Updated spacing and typography

* Removed bottom border

* Added comment counter

* Updated theme name and post template

* Added search support

* Compiled css for search

* Removed the border and brackets for comment count

* Moved the comments helper into the content block so it gets the same paddings at narrow viewports

* Package version bump

* Updated comments helper in post template

* Final tweaks for the comments support

* Revert the package info

* Update {{comment_count}} helper usage

The helper now outputs a span wrapper by default, so we won't have to add a wrapper in the theme

Co-authored-by: Peter Zimon <peter.zimon@gmail.com>
Co-authored-by: Sanne de Vries <sannedv@protonmail.com>
Co-authored-by: James Morris <moreofmorris@users.noreply.github.com>
2022-08-12 21:30:06 +08:00

2279 lines
46 KiB
CSS

/* Table of Contents
/* ------------------------------------------------------------
This is a development CSS file which is built to a minified
production stylesheet in assets/built/screen.css
1. Global Styles
2. Layout
3. Special Templates
4. Site Header
5. Site Navigation
6. Post Feed
7. Single Post
7.1. Post Byline
7.2. Members Subscribe Form
7.4. Related Posts
7.5. Koenig Styles
7.6 Comments
8. Author Template
9. Error Template
11. Site Footer
12. Dark Mode
*/
/* 1. Global - Set up the things
/* ---------------------------------------------------------- */
/* Import CSS reset and base styles */
@import "global.css";
:root {
/* Colours */
--color-green: #a4d037;
--color-yellow: #fecd35;
--color-red: #f05230;
--color-darkgrey: #15171A;
--color-midgrey: #738a94;
--color-lightgrey: #f1f1f1;
--color-secondary-text: #979797;
--color-border: #e1e1e1;
--color-wash: #e5eff5;
--color-darkmode: #151719;
/*
An accent color is also set by Ghost itself in
Ghost Admin > Settings > Brand
--ghost-accent-color: {value};
You can use this variable throughout your styles
*/
/* Fonts */
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
--font-serif: Georgia, Times, serif;
--font-mono: Menlo, Courier, monospace;
}
/* 2. Layout - Page building blocks
/* ---------------------------------------------------------- */
.viewport {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.site-content {
flex-grow: 1;
}
/* Full width page blocks */
.outer {
position: relative;
padding: 0 max(4vmin, 20px);
}
/* Centered content container blocks */
.inner {
margin: 0 auto;
max-width: 1200px;
width: 100%;
}
/* 4. Site Header
/* ---------------------------------------------------------- */
.site-header {
position: relative;
color: #fff;
background: var(--ghost-accent-color);
}
.site-header-cover {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.site-header-content {
position: relative;
z-index: 100;
display: flex;
align-items: center;
padding-top: 6.4vmin;
padding-bottom: 6.4vmin;
text-align: center;
color: var(--color-darkgrey);
}
.has-cover .site-header-content {
min-height: 560px;
background-color: var(--ghost-accent-color);
color: #fff;
}
body:not(.has-cover) .site-header-content:not(.left-aligned) {
padding-bottom: max(4.8vmin, 24px);
}
.site-header-content.left-aligned {
padding-bottom: 0;
text-align: left;
}
.has-cover .site-header-content.left-aligned {
align-items: flex-end;
padding-bottom: 6.4vmin;
}
.site-header-content.no-content {
padding-top: 0;
}
.site-header-inner {
position: relative;
}
.site-header-content.left-aligned .site-header-inner {
align-items: flex-start;
}
.site-logo {
flex-shrink: 0;
margin: 0 auto;
max-height: 120px;
}
.site-header-content.left-aligned .site-logo {
margin-right: auto;
margin-left: 0;
max-height: 96px;
}
.site-title {
z-index: 10;
margin: 0;
padding: 0;
font-size: 5rem;
font-weight: 800;
}
.has-serif-title .site-title {
font-family: var(--font-serif);
}
.has-cover .site-title {
font-size: 6rem;
}
.site-header-content.left-aligned .site-title {
font-size: 4.4rem;
}
.has-cover .site-header-content.left-aligned .site-title {
font-size: 4.6rem;
}
.site-description {
display: inline-block;
z-index: 10;
max-width: 560px;
font-size: 2.4rem;
font-weight: 500;
line-height: 1.4;
}
:is(.site-logo, .site-title) + .site-description {
margin-top: 8px;
font-size: 2.1rem;
font-weight: 400;
}
.site-logo + .site-description {
margin-top: 20px;
}
.site-title + .site-description {
color: var(--color-secondary-text);
}
.has-cover .site-description {
font-size: 3.2rem;
letter-spacing: -0.005em;
color: #fff;
}
.has-cover :is(.site-logo, .site-title) + .site-description {
font-size: 2.4rem;
}
.has-cover .site-header-content.left-aligned :is(.site-logo, .site-title) + .site-description {
font-size: 2.2rem;
}
@media (max-width: 767px) {
.has-cover .site-header-content {
min-height: 240px;
}
.site-header-inner {
gap: 16px;
}
.site-logo {
max-width: 60%;
}
.site-title {
font-size: 3.4rem !important;
}
.site-description {
font-size: 1.9rem !important;
}
.site-logo + .site-description {
margin-top: 12px !important;
}
.site-title + .site-description {
margin-top: 4px !important;
}
}
/* 5. Site Navigation
/* ---------------------------------------------------------- */
.gh-head {
padding-top: min(24px, 3.6vmin);
padding-bottom: min(24px, 3.6vmin);
font-size: 1.6rem;
line-height: 1.3em;
background-color: #fff;
}
.has-cover:not(.home-template) .gh-head {
background-color: var(--ghost-accent-color);
color: #fff;
}
.home-template.has-cover .gh-head {
position: absolute;
top: 0;
right: 0;
left: 0;
z-index: 2000;
background-color: transparent;
color: #fff;
}
.gh-head a {
text-decoration: none;
}
.gh-head-inner {
display: grid;
grid-gap: 40px;
grid-template-columns: auto auto 1fr;
grid-auto-flow: row dense;
}
/* Brand
/* ---------------------------------------------------------- */
.gh-head-brand {
display: flex;
align-items: center;
height: 40px;
max-width: 400px;
word-break: break-all;
}
.gh-head-logo {
display: block;
font-weight: 800;
font-size: 2.6rem;
letter-spacing: -0.02em;
color: inherit;
}
.gh-head-logo.no-image {
margin-top: -2px;
}
.has-cover .gh-head-logo {
color: #fff;
}
.no-logo .gh-head-logo {
display: none;
}
.gh-head-logo img {
max-height: 26px;
}
.gh-head-brand-wrapper {
display: flex;
align-items: center;
}
/* Primary Navigation
/* ---------------------------------------------------------- */
.gh-head-menu {
display: flex;
align-items: center;
margin-top: 1px;
font-weight: 500;
}
.no-logo .gh-head-menu {
margin-left: -40px;
}
.gh-head-menu .nav {
display: inline-flex;
flex-wrap: wrap;
align-items: center;
gap: 32px;
list-style: none;
margin: 0;
padding: 0;
}
.gh-head-menu .nav li {
margin: 0;
padding: 0;
}
.gh-head-menu .nav a {
display: inline-block;
line-height: 1.7;
color: inherit;
}
.gh-head-menu .nav a:hover {
opacity: 0.9;
}
/* Secondary Navigation
/* ---------------------------------------------------------- */
.gh-social {
display: flex;
align-items: center;
gap: 20px;
}
.gh-social-link {
line-height: 0;
color: inherit;
}
.gh-social-link:hover {
opacity: 0.9;
}
.gh-social-link svg {
width: 18px;
height: 18px;
}
.gh-head-actions {
display: flex;
justify-content: flex-end;
align-items: center;
gap: 24px;
list-style: none;
text-align: right;
}
.gh-head-button {
display: inline-flex;
align-items: center;
padding: 8px 16px;
height: 40px;
font-weight: 600;
letter-spacing: -0.005em;
font-size: 1.5rem;
border-radius: 6px;
color: #fff;
background: var(--ghost-accent-color);
}
.has-cover .gh-head-button {
color: var(--color-darkgrey);
background: #fff;
}
/* Search
/* ---------------------------------------------------------- */
.gh-search {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
cursor: pointer;
background-color: transparent;
border: 0;
outline: none;
}
.gh-search:hover {
opacity: 0.9;
}
@media (max-width: 991px) {
.gh-search {
position: fixed;
top: 16px;
left: 16px;
z-index: 10;
}
}
/* Search
/* ---------------------------------------------------------- */
.gh-search {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
cursor: pointer;
background-color: transparent;
border: 0;
outline: none;
}
.gh-search:hover {
opacity: 0.9;
}
.gh-head-brand .gh-search {
margin-right: 8px;
}
.gh-head-actions .gh-search {
margin-right: -10px;
}
@media (max-width: 991px) {
.gh-head-actions .gh-search {
display: none;
}
}
@media (min-width: 992px) {
.gh-head-brand .gh-search {
display: none;
}
}
/* Mobile Menu Trigger
/* ---------------------------------------------------------- */
.gh-burger {
position: relative;
display: none;
cursor: pointer;
}
.gh-burger-box {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 33px;
height: 33px;
}
.has-cover .gh-burger-box {
color: #fff;
}
.gh-burger-inner {
width: 100%;
height: 100%;
}
.gh-burger-box::before {
position: absolute;
display: block;
top: 0;
left: 0;
bottom: 0;
margin: auto;
content: '';
width: 100%;
height: 1px;
background: currentcolor;
transition: transform 300ms cubic-bezier(.2,.6,.3,1), width 300ms cubic-bezier(.2,.6,.3,1);
will-change: transform, width;
}
.gh-burger-inner::before,
.gh-burger-inner::after {
position: absolute;
display: block;
top: 0;
left: 0;
bottom: 0;
margin: auto;
content: '';
width: 100%;
height: 1px;
background: currentcolor;
transition: transform 250ms cubic-bezier(.2,.7,.3,1), width 250ms cubic-bezier(.2,.7,.3,1);
will-change: transform, width;
}
.gh-burger-inner::before {
transform: translatey(-6px);
}
.gh-burger-inner::after {
transform: translatey(6px);
}
body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::before {
transform: translatey(-8px);
}
body:not(.gh-head-open) .gh-burger:hover .gh-burger-inner::after {
transform: translatey(8px);
}
.gh-head-open .gh-burger-box::before {
width: 0;
transform: translatex(19px);
transition: transform 200ms cubic-bezier(.2,.7,.3,1), width 200ms cubic-bezier(.2,.7,.3,1);
}
.gh-head-open .gh-burger-inner::before {
width: 26px;
transform: translatex(6px) rotate(135deg);
}
.gh-head-open .gh-burger-inner::after {
width: 26px;
transform: translatex(6px) rotate(-135deg);
}
/* Mobile Menu
/* ---------------------------------------------------------- */
/* IDs needed to ensure sufficient specificity */
@media (max-width: 991px) {
.gh-burger {
display: inline-block;
}
#gh-head {
overflow: hidden;
}
#gh-head .gh-head-inner {
height: 100%;
grid-template-columns: 1fr;
}
#gh-head .gh-head-brand {
position: relative;
z-index: 10;
grid-column-start: auto;
max-width: none;
display: flex;
align-items: center;
justify-content: space-between;
user-select: none;
}
.no-logo #gh-head .gh-head-brand {
justify-content: flex-end;
}
#gh-head .gh-head-menu {
align-self: center;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
margin: 0 0 10vh 0;
font-weight: 300;
font-size: 3.6rem;
line-height: 1.1em;
}
#gh-head .gh-head-menu .nav {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
font-weight: 500;
}
#gh-head .gh-head-actions {
flex-direction: column-reverse;
justify-content: center;
padding: 20px 0 32px;
text-align: left;
}
/* Hide collapsed content */
#gh-head .gh-head-actions,
#gh-head .gh-head-menu {
display: none;
}
/* Open the menu */
.gh-head-open {
overflow: hidden;
height: 100vh;
}
.gh-head-open #gh-head {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 3999999;
overflow-y: scroll;
}
.gh-head-open #gh-head .gh-head-inner {
grid-template-rows: auto 1fr auto;
}
.gh-head-open #gh-head .gh-head-actions,
.gh-head-open #gh-head .gh-head-menu {
display: flex;
}
}
@media (max-width: 600px) {
#gh-head .gh-head-menu {
font-size: 6vmin;
}
}
.has-cover.gh-head-open .gh-head {
background: var(--ghost-accent-color);
}
/* 6. Post Feed
/* ---------------------------------------------------------- */
.post-feed {
position: relative;
display: grid;
gap: 4.8vmin 4vmin;
grid-template-columns: repeat(6, 1fr);
padding: max(4.8vmin, 36px) 0 0;
}
:is(.tag-template, .author-template) .post-feed {
margin-top: 4vmin;
}
@media (max-width: 991px) {
.post-feed {
grid-template-columns: 1fr 1fr;
}
}
@media (max-width: 767px) {
.post-feed {
grid-template-columns: 1fr;
grid-gap: 40px;
}
}
.post-card {
position: relative;
grid-column: span 2;
display: flex;
flex-direction: column;
background-size: cover;
word-break: break-word;
}
.post-card-image-link {
position: relative;
overflow: hidden;
display: block;
margin-bottom: 32px;
}
.post-card-image-link::after {
content: "";
display: block;
padding-bottom: 55%;
}
.post-card[class*="post-access-"] .post-card-image-link::after {
background-color: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(3px);
}
.post-card.keep-ratio[class*="post-access-"] .post-card-image-link::after {
position: absolute;
inset: 0;
padding-bottom: 0;
}
.post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image-link::after {
padding-bottom: 0;
}
.post-card-image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
background: var(--color-lightgrey) no-repeat center center;
object-fit: cover;
}
.post-card.keep-ratio:not(.post-card-large):not(.post-card-full) .post-card-image {
position: static;
}
.post-card-access {
position: absolute;
inset: 0;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
gap: 4px;
font-size: 1.5rem;
font-weight: 600;
color: #fff;
}
.post-card-content-link {
position: relative;
display: block;
color: var(--color-darkgrey);
}
.post-card-content-link:hover {
text-decoration: none;
}
.post-feed .no-image .post-card-content-link {
padding: 0;
}
.no-image .post-card-header {
margin-top: 0;
}
.post-card-tags {
display: flex;
align-items: center;
gap: 12px;
margin: 0 0 10px;
color: var(--color-secondary-text);
font-size: 1.4rem;
font-weight: 600;
letter-spacing: -0.005em;
line-height: 1;
}
.post-card-featured {
position: relative;
display: flex;
align-items: center;
gap: 3px;
padding-left: 18px;
color: var(--ghost-accent-color);
}
.post-card-featured svg {
position: absolute;
left: 0;
}
.post-card-title {
margin: 0;
font-size: 2.6rem;
font-weight: 800;
}
.post-card-content-link:hover .post-card-title {
opacity: 0.9;
}
.no-image .post-card-title {
margin-top: 0;
}
.has-serif-title .post-card-title {
font-family: var(--font-serif);
letter-spacing: -0.005em;
}
.post-card-title svg {
margin-top: -3px;
margin-left: -1px;
}
.post-card-content {
flex-grow: 1;
display: flex;
flex-direction: column;
}
.post-card-excerpt {
display: -webkit-box;
overflow-y: hidden;
margin-top: 12px;
max-width: 720px;
font-size: 1.6rem;
line-height: 1.5;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
word-break: break-word;
}
.has-sans-body .post-card-excerpt {
font-family: var(--font-sans);
}
.post-card:not(.post-card-large):not(.post-card-full):not(.dynamic):not(.no-image) .post-card-excerpt {
-webkit-line-clamp: 2;
}
:is(.tag-template, .author-template) .post-card-excerpt {
margin-top: 6px;
}
.post-card-meta {
display: flex;
align-items: center;
gap: 6px;
margin-top: 12px;
padding: 0;
font-size: 1.3rem;
color: var(--color-secondary-text);
}
.post-card-meta > * {
display: flex;
align-items: center;
gap: 6px;
}
.post-card-meta > * + *:not(script)::before {
width: 2px;
height: 2px;
content: "";
background-color: var(--color-secondary-text);
border-radius: 50%;
}
.post-card-meta .sep {
margin: 0 4px;
}
.author-profile-image {
display: block;
width: 100%;
height: 100%;
background: color-mod(var(--color-lightgrey) l(+10%));
border-radius: 100%;
object-fit: cover;
}
.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;
}
/* Special Styling for home page grid (below):
The first post in the list is styled to be bigger than the others and take over
the full width of the grid to give it more emphasis. Wrapped in a media query to
make sure this only happens on large viewports / desktop-ish devices.
*/
@media (min-width: 1001px) {
.post-card-large {
grid-column: span 6;
display: grid;
grid-gap: 4vmin;
grid-template-columns: repeat(3, 1fr);
border-top: 0;
}
.post-card-large:not(.no-image) .post-card-header {
margin-top: 0;
}
.post-card-large .post-card-image-link {
position: relative;
grid-column: span 2;
margin-bottom: 0;
}
.post-card-large .post-card-content {
grid-column: span 1;
}
.post-card-large.no-image .post-card-content {
grid-column: span 2;
}
.post-card-large .post-card-image {
position: absolute;
width: 100%;
height: 100%;
}
.post-card-large .post-card-tags {
margin-bottom: 12px;
}
.post-card-large .post-card-title {
margin-top: 0;
font-size: 4.4rem;
line-height: 1;
}
.post-card-large .post-card-excerpt {
margin-top: 16px;
}
.post-card-full {
grid-column: span 6;
}
.post-card-full .post-card-image-link {
margin-bottom: 40px;
}
.post-card-full .post-card-tags {
margin-bottom: 14px;
}
.post-card-full .post-card-title {
font-size: 6.4rem;
line-height: 0.95;
}
.post-card-full .post-card-excerpt {
margin-top: 20px;
font-size: 1.8rem;
}
.post-card-large + .post-card-large:nth-child(even) {
margin: 32px 0;
}
.post-card-large + .post-card-large:nth-child(even) .post-card-content {
order: -1;
}
.post-card.dynamic {
grid-column: span 3;
}
.post-card.dynamic .post-card-title {
font-size: 3rem;
}
}
/* 7. Single Post
/* ---------------------------------------------------------- */
.article {
padding: max(8vmin, 40px) 0 max(8vmin, 64px);
word-break: break-word;
}
.page-template .article {
padding-top: max(12vmin, 64px);
}
.article-header {
padding: 0 0 max(6.4vmin, 40px) 0;
}
.page-template .article-header {
padding-bottom: max(3.2vmin, 28px);
}
.article-tag {
margin-bottom: 16px;
font-size: 1.6rem;
}
.article-tag a {
color: var(--color-secondary-text);
}
.article-title {
margin-bottom: 0;
font-size: clamp(3.2rem, 5vw, 5.2rem);
font-weight: 800;
line-height: 1;
color: var(--color-darkgrey);
}
.has-serif-title .article-title {
font-family: var(--font-serif);
}
.article-excerpt {
margin-top: 20px;
max-width: 720px;
font-size: 2rem;
line-height: 1.45;
color: var(--color-darkgrey);
}
.gh-canvas .article-image {
grid-column: wide-start / wide-end;
width: 100%;
margin: max(6.4vmin, 40px) 0 0;
}
.image-full .article-image {
grid-column: full-start / full-end;
}
.image-small .article-image {
grid-column: main-start / main-end;
}
.gh-canvas .article-image img {
display: block;
margin-left: auto;
margin-right: auto;
width: 100%;
}
@media (max-width: 767px) {
.article-excerpt {
margin-top: 14px;
font-size: 1.7rem;
}
}
/* -------- */
/* Content grid
/* ---------------------------------------------------------- */
/* Canvas creates a multi-column, centered grid which the post
is laid out on top of. Canvas just defines the grid, we don't
use it for applying any other styles. */
.gh-canvas {
display: grid;
grid-template-columns:
[full-start]
minmax(max(4vmin, 20px), auto)
[wide-start]
minmax(auto, 240px)
[main-start]
min(720px, calc(100% - max(8vmin, 40px)))
[main-end]
minmax(auto, 240px)
[wide-end]
minmax(max(4vmin, 20px), auto)
[full-end]
;
}
.gh-canvas > * {
grid-column: main-start / main-end;
}
.kg-width-wide {
grid-column: wide-start / wide-end;
}
.kg-width-full {
grid-column: full-start / full-end;
}
.kg-width-full img {
width: 100%;
}
/* Content
/* ---------------------------------------------------------- */
/* Content refers to styling all page and post content that is
created within the Ghost editor. The main content handles
headings, text, images and lists. We deal with cards lower down. */
/* Default vertical spacing */
.gh-content > * + * {
margin-top: max(3.2vmin, 24px);
margin-bottom: 0;
}
/* [id] represents all headings h1-h6, reset all margins */
.gh-content > [id] {
margin: 0;
color: var(--color-darkgrey);
}
.has-serif-title .gh-content > [id] {
font-family: var(--font-serif);
}
/* Add back a top margin to all headings, unless a heading
is the very first element in the post content */
.gh-content > [id]:not(:first-child) {
margin: 2em 0 0;
}
/* Add a small margin between a heading and anything after it */
.gh-content > [id] + * {
margin-top: 1.5rem !important;
}
/* A larger margin before/after HRs and blockquotes */
.gh-content > hr,
.gh-content > blockquote {
position: relative;
margin-top: max(4.8vmin, 32px);
}
.gh-content > hr + *,
.gh-content > blockquote + * {
margin-top: max(4.8vmin, 32px) !important;
}
/* Now the content typography styles */
.gh-content a {
color: var(--ghost-accent-color);
text-decoration: underline;
word-break: break-word;
}
.gh-content > blockquote:not([class]),
.gh-content > ol,
.gh-content > ul,
.gh-content > dl,
.gh-content > p {
font-family: var(--font-serif);
font-weight: 400;
font-size: 2rem;
line-height: 1.6em;
}
.gh-content .kg-callout-card .kg-callout-text,
.gh-content .kg-toggle-card .kg-toggle-content > ol,
.gh-content .kg-toggle-card .kg-toggle-content > ul,
.gh-content .kg-toggle-card .kg-toggle-content > p {
font-family: var(--font-serif);
font-weight: 400;
font-size: 1.9rem;
line-height: 1.6em;
}
.gh-content .kg-product-card .kg-product-card-description > p,
.gh-content .kg-product-card .kg-product-card-description > ol,
.gh-content .kg-product-card .kg-product-card-description > ul {
font-size: 1.7rem;
line-height: 1.6em;
}
.gh-content .kg-callout-card .kg-callout-emoji {
font-size: 2.1rem;
line-height: 1.4em;
}
.gh-content .kg-toggle-card .kg-toggle-heading-text {
font-size: 2.0rem;
}
.has-sans-body .gh-content > blockquote,
.has-sans-body .gh-content > ol,
.has-sans-body .gh-content > ul,
.has-sans-body .gh-content > dl,
.has-sans-body .gh-content > p,
.has-sans-body .gh-content .kg-callout-card .kg-callout-text,
.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > ol,
.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > ul,
.has-sans-body .gh-content .kg-toggle-card .kg-toggle-content > p {
font-family: var(--font-sans);
}
.gh-content > ul,
.gh-content > ol,
.gh-content > dl,
.gh-content .kg-toggle-card .kg-toggle-content > ol,
.gh-content .kg-toggle-card .kg-toggle-content > ul,
.gh-content .kg-product-card .kg-product-card-description > ol,
.gh-content .kg-product-card .kg-product-card-description > ul {
padding-left: 1.9em;
}
.gh-content > blockquote:not([class]) {
position: relative;
font-style: italic;
padding: 0;
}
.gh-content > blockquote:not([class])::before {
content: "";
position: absolute;
left: -1.5em;
top: 0;
bottom: 0;
width: 0.3rem;
background: var(--ghost-accent-color);
}
.gh-content :not(pre) > code {
vertical-align: middle;
padding: 0.15em 0.4em 0.15em;
border: #e1eaef 1px solid;
font-weight: 400 !important;
font-size: 0.9em;
line-height: 1em;
color: #15171A;
background: #f0f6f9;
border-radius: 0.25em;
}
.gh-content pre {
overflow: auto;
padding: 16px 20px;
color: var(--color-wash);
font-size: 1.4rem;
line-height: 1.5em;
background: var(--color-darkgrey);
border-radius: 5px;
box-shadow: 0 2px 6px -2px rgba(0,0,0,.1), 0 0 1px rgba(0,0,0,.4);
}
@media (max-width: 650px) {
.gh-content > blockquote:not([class]),
.gh-content > ol,
.gh-content > ul,
.gh-content > dl,
.gh-content > p,
.gh-content .kg-callout-card .kg-callout-text,
.gh-content .kg-toggle-card .kg-toggle-content > ol,
.gh-content .kg-toggle-card .kg-toggle-content > ul,
.gh-content .kg-toggle-card .kg-toggle-content > p {
font-size: 1.8rem;
}
.gh-content .kg-product-card .kg-product-card-description > p,
.gh-content .kg-product-card .kg-product-card-description > ol,
.gh-content .kg-product-card .kg-product-card-description > ul {
font-size: 1.6rem;
}
.gh-content blockquote:not([class])::before {
left: min(-4vmin, -20px);
}
}
/* Cards
/* ---------------------------------------------------------- */
/* Cards are dynamic blocks of content which appear within Ghost
posts, for example: embedded videos, tweets, galleries, or
specially styled bookmark links. We add extra styling here to
make sure they look good, and are given a bit of extra spacing. */
/* Add extra margin before/after any cards,
except for when immediately preceeded by a heading */
.gh-content :not(.kg-card):not([id]) + .kg-card {
margin-top: 6vmin;
margin-bottom: 0;
}
.gh-content .kg-card + :not(.kg-card) {
margin-top: 6vmin;
margin-bottom: 0;
}
/* This keeps small embeds centered */
.kg-embed-card {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
}
/* This keeps small iamges centered */
.kg-image-card img {
margin: auto;
}
.has-serif-title .kg-toggle-card .kg-toggle-heading-text {
font-family: var(--font-serif);
}
.gh-content .kg-callout-card-accent a {
text-decoration: underline;
}
.kg-blockquote-alt {
font-family: var(--font-serif);
color: var(--color-midgrey);
}
.has-sans-body .kg-blockquote-alt {
font-family: var(--font-sans);
}
.kg-card.kg-header-card.kg-style-dark {
background: var(--color-darkgrey);
}
.kg-header-card.kg-style-light h2.kg-header-card-header {
color: color-mod(var(--color-darkgrey) l(-5%));
}
.has-serif-title .kg-header-card h2.kg-header-card-header {
font-family: var(--font-serif);
}
/* Captions */
figcaption {
padding: 1.5rem 1.5rem 0;
text-align: center;
color: rgba(0,0,0,0.5);
font-size: 1.3rem;
line-height: 1.4em;
}
figcaption strong {
color: rgba(0,0,0,0.8);
}
figcaption a {
text-decoration: underline;
}
/* Highly specific styles for traditional Instagram embeds */
iframe.instagram-media {
margin-top: 6vmin !important;
margin-left: auto !important;
margin-right: auto !important;
margin-bottom: 0 !important;
}
iframe.instagram-media + script + :not([id]) {
margin-top: 6vmin;
}
/* Card captions
/* ---------------------------------------------------------- */
.kg-width-full.kg-card-hascaption {
display: grid;
grid-template-columns: inherit;
}
.kg-width-wide.kg-card-hascaption img {
grid-column: wide-start / wide-end;
}
.kg-width-full.kg-card-hascaption img {
grid-column: 1 / -1;
}
.kg-width-full.kg-card-hascaption figcaption {
grid-column: main-start / main-end;
}
.article-comments {
margin: 6vmin 0 0 0;
}
/* -----old------ */
.footnotes-sep {
margin-bottom: 30px;
}
.footnotes {
font-size: 1.5rem;
}
.footnotes p {
margin: 0;
}
.footnote-backref {
font-size: 1.2rem;
font-weight: bold;
text-decoration: none !important;
box-shadow: none !important;
}
/* Tables */
.gh-content table {
display: inline-block;
overflow-x: auto;
max-width: 100%;
width: auto;
border-spacing: 0;
border-collapse: collapse;
font-family: var(--font-sans);
font-size: 1.6rem;
white-space: nowrap;
vertical-align: top;
}
.gh-content table {
-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;
}
.gh-content table td:first-child {
background-image: linear-gradient(to right, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);
background-size: 20px 100%;
background-repeat: no-repeat;
}
.gh-content table td:last-child {
background-image: linear-gradient(to left, rgba(255,255,255, 1) 50%, rgba(255,255,255, 0) 100%);
background-position: 100% 0;
background-size: 20px 100%;
background-repeat: no-repeat;
}
.gh-content table th {
color: var(--color-darkgrey);
font-size: 1.2rem;
font-weight: 700;
letter-spacing: 0.2px;
text-align: left;
text-transform: uppercase;
background-color: color-mod(var(--color-wash) l(+4%));
}
.gh-content table th,
.gh-content table td {
padding: 6px 12px;
border: color-mod(var(--color-wash) l(-1%) s(-5%)) 1px solid;
}
/* 7.1. Post Byline
/* ---------------------------------------------------------- */
.article-byline {
display: flex;
justify-content: space-between;
margin: min(24px, 5.6vmin) 0 0;
}
.article-byline-content {
flex-grow: 1;
display: flex;
align-items: center;
}
.article-byline-content .author-list {
justify-content: flex-start;
padding: 0 14px 0 0;
}
.article-byline-meta {
color: var(--color-secondary-text);
font-size: 1.4rem;
line-height: 1.2em;
}
.article-byline-meta .author-name {
margin: 0 0 6px;
font-size: 1.7rem;
font-weight: 700;
letter-spacing: 0;
}
.article-byline-meta .bull {
display: inline-block;
margin: 0 2px;
}
.author-avatar {
display: block;
overflow: hidden;
margin: 0 -4px;
width: min(56px, 13.6vmin);
height: min(56px, 13.6vmin);
border: #fff 2px solid;
border-radius: 50%;
background-color: var(--color-border);
}
.page-template .article-title {
margin-bottom: 0;
}
@media (max-width: 767px) {
.article-byline-content .author-list {
padding-right: 12px;
}
.article-byline-meta .author-name {
margin-bottom: 4px;
}
}
/* 7.3. Subscribe
/* ---------------------------------------------------------- */
.footer-cta {
position: relative;
text-align: center;
}
.footer-cta-title {
margin: 0 0 min(24px, 6.4vmin);
font-size: clamp(2.6rem, 5vw, 3.8rem);
font-weight: 800;
}
.has-serif-title .footer-cta-title {
font-family: var(--font-serif);
}
.footer-cta-button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: space-between;
width: 100%;
max-width: 500px;
padding: 5px 5px 5px 15px;
font-size: 1.7rem;
color: var(--color-secondary-text);
background: #fff;
border: 1px solid var(--color-border);
border-radius: 8px;
transition: border-color 0.2s;
}
.footer-cta-button:hover {
border-color: color-mod(var(--color-border) l(-12%));
}
.footer-cta-button span {
display: inline-block;
padding: 9px 15px;
color: #fff;
font-size: 1.6rem;
font-weight: 600;
letter-spacing: -0.005em;
background: var(--ghost-accent-color);
border-radius: 6px;
}
/* 7.4. Read more
/* ---------------------------------------------------------- */
.read-more-wrap {
margin-top: 2.4vmin;
}
.footer-cta + .read-more-wrap {
margin-top: max(12vmin, 72px);
}
.read-more {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: 4vmin;
}
.read-more .post-card-tags {
display: none;
}
@media (max-width: 1000px) {
.read-more {
grid-template-columns: repeat(4, 1fr);
}
.read-more .post-card:nth-child(3) {
display: none;
}
}
@media (max-width: 700px) {
.read-more {
grid-template-columns: repeat(2, 1fr);
}
.read-more .post-card:nth-child(2) {
display: none;
}
}
/* 7.6. Comments
/* ---------------------------------------------------------- */
.comments {
display: flex;
flex-direction: column;
align-items: center;
margin: 60px 0 44px;
}
.comments-head {
display: flex;
align-items: baseline;
justify-content: space-between;
margin-bottom: 32px;
width: 100%;
max-width: 720px;
}
.comments h2 {
width: 100%;
max-width: 720px;
font-weight: 800;
font-size: 3.4rem;
}
.comments .comment-count {
color: var(--color-midgrey);
font-weight: 600;
white-space: nowrap;
}
.comments #ghost-comments-root {
width: 100%;
max-width: 720px;
}
/* 8. Author Template
/* ---------------------------------------------------------- */
.author-profile-pic {
display: block;
width: 80px;
height: 80px;
object-fit: cover;
margin: 0 0 2rem;
background: color-mod(var(--color-lightgrey) l(+10%));
border-radius: 50%;
}
.author-profile-footer {
margin-top: 16px;
}
.author-profile-location {
font-weight: 700;
}
.author-profile-meta {
display: flex;
gap: 10px;
}
.author-profile-social-link {
font-size: 1.3rem;
color: var(--color-secondary-text);
}
.author-profile-social-link:hover {
color: var(--color-darkgrey);
}
.author-profile-social-link svg {
width: 16px;
height: 16px;
}
@media (min-width: 1001px) {
.author-template .post-card-large .post-card-content {
grid-column: span 2;
max-width: 640px;
}
}
/* 8. Tag Template
/* ---------------------------------------------------------- */
.tag-template .post-card-large .post-card-image-link {
grid-column: 2 / span 2;
order: 2;
}
.tag-template .post-card-large .post-card-content {
order: 1;
}
@media (min-width: 1001px) {
.tag-template .post-card-large .post-card-content {
grid-column: span 2;
max-width: 640px;
}
}
/* 9. Error Template
/* ---------------------------------------------------------- */
.error-content {
padding: 14vw 4vw 2vw;
}
.error-message {
padding-bottom: 10vw;
text-align: center;
}
.error-code {
margin: 0;
font-size: 12vw;
line-height: 1em;
letter-spacing: -5px;
}
.error-description {
margin: 0;
color: var(--color-secondary-text);
font-size: 3.2rem;
line-height: 1.3em;
letter-spacing: -0.005em;
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 0;
font-size: 1.8rem;
}
}
@media (max-width: 500px) {
.error-content {
padding-top: 28vw;
}
.error-message {
padding-bottom: 14vw;
}
}
/* 11. Site Footer
/* ---------------------------------------------------------- */
.site-footer {
position: relative;
margin: max(12vmin, 64px) 0 0 0;
padding-top: 48px;
padding-bottom: 140px;
color: #fff;
background: color-mod(var(--color-darkgrey) l(-5%));
}
.site-footer .inner {
display: grid;
grid-gap: 40px;
grid-template-columns: auto 1fr auto;
color: rgba(255,255,255,0.7);
font-size: 1.3rem;
}
.site-footer .copyright a {
color: #fff;
letter-spacing: -0.015em;
font-weight: 500;
}
.site-footer a {
color: rgba(255,255,255,0.7);
}
.site-footer a:hover {
color: rgba(255,255,255,1);
text-decoration: none;
}
.site-footer-nav ul {
display: flex;
justify-content: center;
flex-wrap: wrap;
margin: 0 0 20px;
padding: 0;
list-style: none;
}
.site-footer-nav li {
display: inline-flex;
align-items: center;
padding: 0;
margin: 0;
line-height: 2em;
}
.site-footer-nav a {
position: relative;
display: inline-flex;
align-items: center;
margin-left: 10px;
}
.site-footer-nav li:not(:first-child) a:before {
content: "";
display: block;
width: 2px;
height: 2px;
margin: 0 10px 0 0;
background: #fff;
border-radius: 100%;
}
@media (max-width: 767px) {
.site-footer .inner {
max-width: 500px;
grid-template-columns: 1fr;
grid-gap: 0;
text-align: center;
}
.site-footer .copyright,
.site-footer .copyright a {
color: #fff;
font-size: 1.5rem;
}
.site-footer .copyright {
margin-bottom: 16px;
}
}
/* 12. Dark Mode
/* ---------------------------------------------------------- */
html.dark-mode body {
color: rgba(255, 255, 255, 0.75);
background: var(--color-darkmode);
}
html.dark-mode img {
opacity: 0.9;
}
html.dark-mode kbd {
background: color-mod(var(--color-darkmode) l(+5%));
}
html.dark-mode figcaption a {
color: #fff;
}
html.dark-mode .gh-head {
background: var(--color-darkmode);
color: #fff;
}
html.dark-mode .gh-burger-box {
color: #fff;
}
html.dark-mode .site-header-content {
color: #fff;
}
html.dark-mode .post-card-image {
background: var(--color-darkmode);
}
html.dark-mode :is(.post-card-tags, .post-card-meta, .article-tag a, .byline-meta-content) {
color: color-mod(var(--color-secondary-text) l(-22%));
}
html.dark-mode .post-card-featured {
color: #fff;
}
html.dark-mode .post-card-title {
color: #fff;
}
html.dark-mode .post-card-excerpt {
color: var(--color-secondary-text);
}
html.dark-mode .author-profile-location {
color: #fff;
}
html.dark-mode .author-profile-social-link:hover {
color: #fff;
}
html.dark-mode .article-title {
color: #fff;
}
html.dark-mode .article-excerpt {
color: var(--color-secondary-text);
}
html.dark-mode .post-full-image {
background-color: color-mod(var(--color-darkmode) l(+8%));
}
html.dark-mode .author-avatar {
border-color: var(--color-darkmode);
background-color: color-mod(var(--color-darkmode) l(+8%));
}
html.dark-mode .author-profile-image {
opacity: 1;
}
html.dark-mode .author-profile-image path {
fill: var(--color-darkmode);
}
html.dark-mode .article-byline-meta .author-name a {
color: #fff;
}
html.dark-mode .no-image .author-social-link a {
color: rgba(255, 255, 255, 0.75);
}
html.dark-mode .gh-content > [id] {
color: rgba(255, 255, 255, 0.9);
}
html.dark-mode .gh-content pre {
background: color-mod(var(--color-darkgrey) l(-8%));
}
html.dark-mode .gh-content :not(pre) > code {
background: color-mod(var(--color-darkgrey) l(+6%));
border-color: color-mod(var(--color-darkmode) l(+8%));
color: var(--color-wash);
}
html.dark-mode .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {
color: #fff;
}
html.dark-mode .gh-content strong {
color: #fff;
}
html.dark-mode .gh-content em {
color: #fff;
}
html.dark-mode .gh-content code {
color: #fff;
background: #000;
}
html.dark-mode hr {
border-top-color: color-mod(var(--color-darkmode) l(+8%));
}
html.dark-mode .gh-content hr:after {
background: color-mod(var(--color-darkmode) l(+8%));
box-shadow: var(--color-darkmode) 0 0 0 5px;
}
html.dark-mode figcaption {
color: rgba(255, 255, 255, 0.6);
}
html.dark-mode .gh-content table td:first-child {
background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
}
html.dark-mode .gh-content table td:last-child {
background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
}
html.dark-mode .gh-content table th {
color: rgba(255, 255, 255, 0.85);
background-color: color-mod(var(--color-darkmode) l(+8%));
}
html.dark-mode .gh-content table th,
html.dark-mode .gh-content table td {
border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
}
html.dark-mode .gh-content input {
color: color-mod(var(--color-midgrey) l(-30%));
}
html.dark-mode .site-archive-header .no-image {
color: rgba(255, 255, 255, 0.9);
background: var(--color-darkmode);
}
html.dark-mode .kg-header-card.kg-style-dark {
background: color-mod(var(--color-darkgrey) l(-5%));
}
html.dark-mode .kg-header-card.kg-style-light {
background: color-mod(var(--color-darkgrey) l(+5%));
}
html.dark-mode .kg-header-card h2.kg-header-card-header,
html.dark-mode .kg-header-card h3.kg-header-card-subheader {
color: #fff;
}
html.dark-mode .footer-cta-title {
color: #fff;
}
@media (prefers-color-scheme: dark) {
html.auto-color body {
color: rgba(255, 255, 255, 0.75);
background: var(--color-darkmode);
}
html.auto-color img {
opacity: 0.9;
}
html.auto-color kbd {
background: color-mod(var(--color-darkmode) l(+5%));
}
html.auto-color figcaption a {
color: #fff;
}
html.auto-color .gh-head {
background: var(--color-darkmode);
color: #fff;
}
html.auto-color .gh-burger-box {
color: #fff;
}
html.auto-color .site-header-content {
color: #fff;
}
html.auto-color .post-card-image {
background: var(--color-darkmode);
}
html.auto-color :is(.post-card-tags, .post-card-meta, .article-tag a, .byline-meta-content) {
color: color-mod(var(--color-secondary-text) l(-22%));
}
html.auto-color .post-card-featured {
color: #fff;
}
html.auto-color .post-card-title {
color: #fff;
}
html.auto-color .post-card-excerpt {
color: var(--color-secondary-text);
}
html.auto-color .author-profile-location {
color: #fff;
}
html.auto-color .author-profile-social-link:hover {
color: #fff;
}
html.auto-color .article-title {
color: #fff;
}
html.auto-color .article-excerpt {
color: var(--color-secondary-text);
}
html.auto-color .post-full-image {
background-color: color-mod(var(--color-darkmode) l(+8%));
}
html.auto-color .author-avatar {
border-color: var(--color-darkmode);
background-color: color-mod(var(--color-darkmode) l(+8%));
}
html.auto-color .author-profile-image {
opacity: 1;
}
html.auto-color .author-profile-image path {
fill: var(--color-darkmode);
}
html.auto-color .article-byline-meta .author-name a {
color: #fff;
}
html.auto-color .no-image .author-social-link a {
color: rgba(255, 255, 255, 0.75);
}
html.auto-color .gh-content > [id] {
color: rgba(255, 255, 255, 0.9);
}
html.auto-color .gh-content pre {
background: color-mod(var(--color-darkgrey) l(-8%));
}
html.auto-color .gh-content :not(pre) > code {
background: color-mod(var(--color-darkgrey) l(+6%));
border-color: color-mod(var(--color-darkmode) l(+8%));
color: var(--color-wash);
}
html.auto-color .gh-content a:not(.kg-btn):not(.kg-nft-card-container):not(.kg-product-card-button):not(.kg-header-card-button) {
color: #fff;
}
html.auto-color .gh-content strong {
color: #fff;
}
html.auto-color .gh-content em {
color: #fff;
}
html.auto-color .gh-content code {
color: #fff;
background: #000;
}
html.auto-color hr {
border-top-color: color-mod(var(--color-darkmode) l(+8%));
}
html.auto-color .gh-content hr:after {
background: color-mod(var(--color-darkmode) l(+8%));
box-shadow: var(--color-darkmode) 0 0 0 5px;
}
html.auto-color figcaption {
color: rgba(255, 255, 255, 0.6);
}
html.auto-color .gh-content table td:first-child {
background-image: linear-gradient(to right, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
}
html.auto-color .gh-content table td:last-child {
background-image: linear-gradient(to left, var(--color-darkmode) 50%, color-mod(var(--color-darkmode) a(0%)) 100%);
}
html.auto-color .gh-content table th {
color: rgba(255, 255, 255, 0.85);
background-color: color-mod(var(--color-darkmode) l(+8%));
}
html.auto-color .gh-content table th,
html.auto-color .gh-content table td {
border: color-mod(var(--color-darkmode) l(+8%)) 1px solid;
}
html.auto-color .gh-content input {
color: color-mod(var(--color-midgrey) l(-30%));
}
html.auto-color .site-archive-header .no-image {
color: rgba(255, 255, 255, 0.9);
background: var(--color-darkmode);
}
html.auto-color .kg-header-card.kg-style-dark {
background: color-mod(var(--color-darkgrey) l(-5%));
}
html.auto-color .kg-header-card.kg-style-light {
background: color-mod(var(--color-darkgrey) l(+5%));
}
html.auto-color .kg-header-card h2.kg-header-card-header,
html.auto-color .kg-header-card h3.kg-header-card-subheader {
color: #fff;
}
html.auto-color .footer-cta-title {
color: #fff;
}
}
/*
Hey! You reached the end.
Hope you enjoyed this CSS file, if you have any suggestions
for improvements that might be useful for everyone who uses
this theme, you can find the open source repository for it
here: https://github.com/tryghost/casper
Or, if you've just scrolled all the way to the bottom of the
file to add some of your own styles. Well, you've come to
the right place. Onward!
*/