ghost-theme-sd.ai/assets/css/screen.css
Sodbileg Gansukh be114956d9 Archive page
2023-07-31 17:26:56 +08:00

2219 lines
45 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. Variables
2. Fonts
3. Resets
4. Globals
5. Layout
6. Navigation
6.1. Navigation styles
6.2. Navigation layouts
6.3. Dropdown menu
6.4. Mobile menu
7. Card
8. Header
8.1. Magazine layout
8.2. Highlight layout
8.3. Classic layout
9. CTA
10. Featured posts
11. Container
11.1. With sidebar
11.2. Without sidebar
12. Post list
12.1. List style
12.2. Grid style
12.3. No image list
13. Sidebar
14. Post/page
14.1. Article
14.2. Page template
14.3. Page without header
15. Content
16. Cards
17. Comments
18. Recent posts
19. Archive
20. Design settings
21. Footer
21.1. Footer styles
21.2. With recent posts
21.3. Footer bar
21.4. Footer signup
*/
/* 1. Variables
/* ---------------------------------------------------------- */
:root {
--color-white: #fff;
--color-lighter-gray: rgb(0 0 0 / 0.05);
--color-light-gray: #e6e6e6;
--color-mid-gray: #ccc;
--color-dark-gray: #444;
--color-darker-gray: #15171a;
--color-black: #000;
--color-primary-text: var(--color-darker-gray);
--color-secondary-text: rgb(0 0 0 / 0.4);
--color-border: rgb(0 0 0 / 0.08);
--font-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
--font-serif: "EB Garamond", Georgia, Times, serif;
--font-slab: "Roboto Slab", Georgia, Times, serif;
--font-mono: Menlo, Courier, monospace;
--container-width: 1320px;
--container-gap: clamp(24px, 1.7032rem + 1.9355vw, 48px);
--grid-gap: 48px;
}
:root.has-light-text,
:is(.gh-navigation, .gh-footer).has-accent-color {
--color-lighter-gray: rgb(0 0 0 / 0.15);
--color-darker-gray: #fff;
--color-secondary-text: rgb(255 255 255 / 0.64);
--color-border: rgb(255 255 255 / 0.15);
}
/* 2. Fonts
/* ---------------------------------------------------------- */
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: url(/assets/fonts/inter-roman.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "EB Garamond";
font-style: normal;
font-weight: 400 800;
font-display: swap;
src: url(/assets/fonts/eb-garamond-roman.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "EB Garamond";
font-style: italic;
font-weight: 400 800;
font-display: swap;
src: url(/assets/fonts/eb-garamond-italic.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Roboto Slab";
font-style: normal;
font-weight: 100 900;
font-display: swap;
src: url(/assets/fonts/roboto-slab-roman.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* 3. Resets
/* ---------------------------------------------------------- */
*, *::before, *::after {
box-sizing: border-box;
}
* {
margin: 0;
}
html {
font-size: 62.5%;
}
body {
line-height: 1.6;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
img, picture, video, canvas, svg {
display: block;
height: auto;
max-width: 100%;
}
iframe {
display: block;
}
input, button, textarea, select {
font: inherit;
}
p, h1, h2, h3, h4, h5, h6 {
overflow-wrap: break-word;
}
h1, h2, h3, h4, h5, h6 {
line-height: 1.2;
}
/* 4. Globals
/* ---------------------------------------------------------- */
body {
font-family: var(--font-sans);
font-size: 1.6rem;
background-color: var(--background-color);
color: var(--color-primary-text);
}
a {
color: var(--color-darker-gray);
text-decoration: none;
}
a:hover {
opacity: 0.8;
}
.gh-button {
display: inline-flex;
gap: 0.4em;
align-items: center;
justify-content: center;
padding: 0.8em 1.4em;
font-size: 1.6rem;
font-weight: 600;
letter-spacing: -0.004em;
line-height: 1;
color: var(--color-white);
cursor: pointer;
background-color: var(--ghost-accent-color);
border: 0;
border-radius: 100px;
}
.gh-button:hover {
opacity: 0.95;
}
.gh-icon-button {
display: inline-flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
padding: 0;
color: var(--color-darker-gray);
cursor: pointer;
background-color: transparent;
border: 0;
outline: none;
}
.gh-icon-button:hover :is(svg, span) {
opacity: 0.8;
}
.gh-icon-button svg {
width: 20px;
height: 20px;
}
/* 5. Layout
/* ---------------------------------------------------------- */
.gh-viewport {
position: relative;
display: flex;
flex-direction: column;
min-height: 100vh;
}
.gh-outer {
padding: 0 max(4vmin, 20px);
}
.gh-inner {
margin: 0 auto;
max-width: var(--container-width);
width: 100%;
}
.gh-main {
flex-grow: 1;
}
.gh-canvas,
.kg-width-full.kg-content-wide {
--main: min(var(--content-width, 720px), 100% - var(--container-gap) * 2);
--wide: minmax(0, calc((var(--container-width, 1200px) - var(--content-width, 720px)) / 2));
--full: minmax(var(--container-gap), 1fr);
display: grid;
grid-template-columns:
[full-start] var(--full)
[wide-start] var(--wide)
[main-start] var(--main) [main-end]
var(--wide) [wide-end]
var(--full) [full-end];
}
.gh-canvas > * {
grid-column: main;
}
.kg-width-wide,
.kg-content-wide > div {
grid-column: wide;
}
.kg-width-full {
grid-column: full;
}
/* 6. Navigation
/* ---------------------------------------------------------- */
.gh-navigation {
height: 100px;
font-size: 1.6rem;
font-weight: 550;
color: var(--color-darker-gray);
}
.gh-navigation :is(.gh-navigation-logo, a:not(.gh-button), .gh-icon-button) {
color: inherit;
}
.gh-navigation-inner {
display: grid;
grid-auto-flow: row dense;
column-gap: 24px;
align-items: center;
height: 100%;
}
.gh-navigation-brand {
line-height: 1;
}
.gh-navigation-logo {
position: relative;
font-size: 2.6rem;
font-weight: 750;
letter-spacing: -0.015em;
white-space: nowrap;
}
.gh-navigation-logo img {
max-height: 40px;
}
.gh-navigation-menu {
display: flex;
gap: 24px;
align-items: center;
}
.gh-navigation .nav {
display: inline-flex;
gap: 28px;
align-items: center;
padding: 0;
margin: 0;
white-space: nowrap;
list-style: none;
}
.gh-navigation .gh-more-toggle {
position: relative;
margin: 0 -6px;
font-size: inherit;
text-transform: inherit;
}
.gh-navigation .gh-more-toggle svg {
width: 24px;
height: 24px;
}
.gh-navigation-actions {
display: flex;
gap: 24px;
align-items: center;
justify-content: flex-end;
}
.gh-navigation-members {
display: flex;
gap: 20px;
align-items: center;
white-space: nowrap;
}
.gh-navigation-members .gh-button {
font-size: inherit;
font-weight: 600;
}
.gh-search {
margin-right: -2px;
margin-left: -2px;
}
.gh-search span {
display: none;
}
@media (max-width: 767px) {
.gh-navigation-members {
flex-direction: column-reverse;
gap: 16px;
width: 100%;
}
.gh-navigation-actions .gh-search {
display: none;
}
}
@media (min-width: 768px) {
.gh-navigation-brand .gh-search {
display: none;
}
.gh-navigation:not(.is-dropdown-loaded) .gh-navigation-menu .nav > li {
opacity: 0;
}
}
/* 6.1. Navigation styles */
.gh-navigation.has-accent-color {
background-color: var(--ghost-accent-color);
}
.gh-navigation.has-accent-color .gh-button {
background-color: #fff;
color: #15171a;
}
/* 6.2. Navigation layouts */
/*
======================================================================
LOGO Home About Collection Author Portal Login Subscribe
======================================================================
*/
.gh-navigation.is-left-logo .gh-navigation-inner {
grid-template-columns: auto 1fr auto;
}
@media (min-width: 992px) {
.gh-navigation.is-left-logo .gh-navigation-menu {
margin-right: 100px;
margin-left: 16px;
}
}
/*
======================================================================
Home About Collection LOGO Login Subscribe
======================================================================
*/
.gh-navigation.is-middle-logo .gh-navigation-inner {
grid-template-columns: 1fr auto 1fr;
}
.gh-navigation.is-middle-logo .gh-navigation-brand {
grid-column-start: 2;
}
.gh-navigation.is-middle-logo .gh-navigation-actions {
gap: 28px;
}
@media (min-width: 992px) {
.gh-navigation.is-middle-logo .gh-navigation-menu {
margin-right: 64px;
}
}
/*
======================================================================
Search LOGO Login Subscribe
Home About Collection Author Portal
======================================================================
*/
.gh-navigation.is-stacked {
position: relative;
height: auto;
}
.gh-navigation.is-stacked .gh-navigation-inner {
grid-template-columns: 1fr auto 1fr;
}
.gh-navigation.is-stacked .gh-navigation-brand {
display: flex;
grid-row-start: 1;
grid-column-start: 2;
min-height: 80px;
}
@media (min-width: 992px) {
.gh-navigation.is-stacked .gh-navigation-inner {
padding: 0;
}
.gh-navigation.is-stacked .gh-navigation-brand {
display: flex;
align-items: center;
height: 80px;
}
.gh-navigation.is-stacked .gh-navigation-menu {
grid-row-start: 2;
grid-column: 1 / 4;
justify-content: center;
height: 56px;
margin: 0 48px;
}
.gh-navigation.is-stacked .gh-navigation-menu::before,
.gh-navigation.is-stacked .gh-navigation-menu::after {
position: absolute;
top: 80px;
left: 0;
width: 100%;
height: 1px;
content: "";
background-color: var(--color-border);
}
.gh-navigation.is-stacked .gh-navigation-menu::after {
top: 136px;
}
.gh-navigation.is-stacked .gh-navigation-actions {
grid-row-start: 1;
grid-column: 1 / 4;
justify-content: space-between;
}
.gh-navigation.is-stacked .gh-navigation-actions .gh-search {
display: flex;
gap: 10px;
width: auto;
}
.gh-navigation.is-stacked .gh-navigation-actions .gh-search span {
display: inline;
}
}
/* 6.3. Dropdown menu */
.gh-dropdown {
position: absolute;
top: 100%;
right: -16px;
z-index: 90;
width: 200px;
padding: 12px 0;
margin-top: 24px;
text-align: left;
visibility: hidden;
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 0 1px rgb(0 0 0 / 0.04), 0 7px 20px -5px rgb(0 0 0 / 0.15);
opacity: 0;
transition: opacity 0.3s, transform 0.2s;
transform: translate3d(0, 6px, 0);
}
.is-middle-logo .gh-dropdown {
right: auto;
left: -24px;
}
.is-dropdown-mega .gh-dropdown {
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-flow: column;
column-gap: 40px;
width: auto;
padding: 20px 32px;
}
.is-dropdown-open .gh-dropdown {
visibility: visible;
opacity: 1;
transform: translateY(0);
}
.gh-dropdown li a {
display: block;
padding: 6px 20px;
color: #15171a !important;
}
.is-dropdown-mega .gh-dropdown li a {
padding: 8px 0;
}
/* 6.4. Mobile menu */
.gh-burger {
display: flex;
justify-content: center;
align-items: center;
position: relative;
display: none;
margin-right: -7px;
}
.gh-burger svg {
width: 24px;
height: 24px;
}
.gh-burger svg:last-child {
display: none;
}
.is-open .gh-burger svg:first-child {
display: none;
}
.is-open .gh-burger svg:last-child {
display: block;
}
@media (max-width: 767px) {
.gh-burger {
display: flex;
}
#gh-navigation {
height: 64px;
}
#gh-navigation .gh-navigation-inner {
grid-template-rows: auto 1fr auto;
grid-template-columns: 1fr;
gap: 48px;
}
#gh-navigation .gh-navigation-brand {
display: grid;
grid-template-columns: 1fr auto auto;
grid-column-start: 1;
align-items: center;
height: 64px;
}
#gh-navigation .gh-navigation-logo {
font-size: 2.2rem;
}
#gh-navigation .gh-navigation-menu,
#gh-navigation .gh-navigation-actions {
position: fixed;
justify-content: center;
visibility: hidden;
opacity: 0;
}
#gh-navigation .gh-navigation-menu {
transition: none;
transform: translateY(0);
}
#gh-navigation .nav {
gap: 20px;
align-items: center;
line-height: 1.4;
}
#gh-navigation .nav a {
font-size: 2.6rem;
font-weight: 600;
text-transform: none;
}
#gh-navigation .nav li {
opacity: 0;
transform: translateY(-4px);
}
#gh-navigation .gh-navigation-actions {
text-align: center;
}
#gh-navigation :is(.gh-button, a[data-portal="signin"]) {
opacity: 0;
transform: translateY(8px);
}
#gh-navigation .gh-button {
width: 100%;
font-size: 1.8rem;
text-transform: none;
}
#gh-navigation a[data-portal="signin"] {
font-size: 2rem;
}
#gh-main {
transition: opacity 0.4s;
}
.is-open#gh-navigation {
position: fixed;
inset: 0;
z-index: 3999999;
height: 100%;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.is-open#gh-navigation .gh-navigation-menu,
.is-open#gh-navigation .gh-navigation-actions {
position: static;
visibility: visible;
opacity: 1;
}
.is-open#gh-navigation .nav {
display: flex;
flex-direction: column;
}
.is-open#gh-navigation .nav li {
opacity: 1;
transition: transform 0.2s, opacity 0.2s;
transform: translateY(0);
}
.is-open#gh-navigation .gh-navigation-actions {
position: sticky;
right: 0;
bottom: 0;
left: 0;
display: inline-flex;
flex-direction: column;
gap: 12px;
align-items: center;
padding: var(--container-gap) 0 calc(var(--container-gap) + 8px);
background-color: var(--color-white);
}
.is-open#gh-navigation :is(.gh-button, a[data-portal="signin"]) {
opacity: 1;
transition: transform 0.4s, opacity 0.4s;
transition-delay: 0.2s;
transform: translateY(0);
}
.is-open#gh-navigation a[data-portal="signin"] {
transition-delay: 0.4s;
}
.is-open#gh-main {
opacity: 0;
}
}
/* 7. Card
/* ---------------------------------------------------------- */
.gh-card {
position: relative;
}
.gh-card-link {
display: flex;
flex-direction: column;
gap: 20px;
}
.gh-card-link:hover {
opacity: 1;
}
.gh-card-image {
position: relative;
flex-shrink: 0;
aspect-ratio: 16 / 9;
}
.gh-card-image img {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.gh-card-wrapper {
flex-grow: 1;
}
.gh-card-tag {
display: none;
margin-bottom: 4px;
font-size: 1.2rem;
font-weight: 500;
letter-spacing: 0.01em;
text-transform: uppercase;
}
.gh-card-title {
font-size: 2.1rem;
font-weight: 800;
letter-spacing: -0.014em;
}
.gh-card-link:hover .gh-card-title {
opacity: 0.8;
}
.gh-card-excerpt {
display: -webkit-box;
overflow-y: hidden;
margin-top: 10px;
max-width: 720px;
font-size: 1.5rem;
line-height: 1.4;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.gh-card-meta {
display: flex;
gap: 4px;
flex-wrap: wrap;
font-size: 1.3rem;
font-weight: 550;
line-height: 1.05;
letter-spacing: -0.004em;
color: var(--color-secondary-text);
}
.gh-card-meta:not(:empty) {
margin-top: 12px;
}
.gh-card-author + .gh-card-date::before {
content: "—";
margin-right: 4px;
}
/* 8. Header
/* ---------------------------------------------------------- */
.gh-header {
position: relative;
margin-top: 40px;
}
.gh-header-image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.gh-header-inner {
position: relative;
}
/* 8.1. Magazine layout */
.gh-header.is-magazine .gh-header-inner {
display: grid;
grid-template-columns: repeat(16, 1fr);
gap: var(--grid-gap);
}
.gh-header.is-magazine .gh-header-inner > div {
display: flex;
flex-direction: column;
gap: var(--grid-gap);
grid-row: 1;
}
.gh-header.is-magazine .gh-header-left {
grid-column: 1 / span 4;
}
.gh-header.is-magazine .gh-header-inner > .gh-card {
position: relative;
grid-column: 5 / span 8;
}
.gh-header.is-magazine .gh-header-right {
grid-column: 13 / -1;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-link {
gap: 28px;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-image {
aspect-ratio: 1.618033;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-tag {
display: block;
margin-bottom: 12px;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-title {
font-size: clamp(2rem, 2.73vw + 0.91rem, 4.4rem);
font-weight: 750;
line-height: 1;
letter-spacing: -0.022em;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-excerpt {
margin-top: 20px;
font-size: 1.8rem;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-meta:not(:empty) {
margin-top: 14px;
}
.gh-header.is-magazine :is(.gh-header-left, .gh-header-right) .gh-card:last-child .gh-card-image {
display: none;
}
.gh-header.is-magazine .gh-header-inner > div .gh-card-excerpt {
display: none;
}
.gh-header.is-magazine .gh-header-inner > .gh-card::before,
.gh-header.is-magazine .gh-header-inner > .gh-card::after {
position: absolute;
top: 0;
left: calc(var(--grid-gap) / -2);
content: "";
width: 1px;
height: 100%;
background-color: var(--color-border);
}
.gh-header.is-magazine .gh-header-inner > .gh-card::after {
right: calc(var(--grid-gap) / -2);
left: auto;
}
.gh-header.is-magazine .gh-header-inner > div .gh-card + .gh-card::before {
position: absolute;
top: calc(var(--grid-gap) / -2);
left: 0;
content: "";
width: 100%;
height: 1px;
background-color: var(--color-border);
}
/* 8.2. Highlight layout */
.gh-header.is-highlight .gh-header-inner {
display: grid;
grid-template-columns: repeat(16, 1fr);
gap: var(--grid-gap);
}
.gh-header.is-highlight .gh-header-left {
position: relative;
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: var(--grid-gap);
grid-column: span 12;
}
.gh-header.is-highlight .gh-header-left > .gh-card:first-child {
grid-column: span 8;
grid-row: span 3;
}
.gh-header.is-highlight .gh-header-left > .gh-card:first-child .gh-card-link {
gap: 28px;
}
.gh-header.is-highlight .gh-header-left .gh-card:first-child .gh-card-image {
aspect-ratio: 16 / 10;
}
.gh-header.is-highlight .gh-header-left > .gh-card:first-child .gh-card-tag {
display: block;
margin-bottom: 12px;
}
.gh-header.is-highlight .gh-header-left .gh-card:first-child .gh-card-title {
font-size: clamp(2.4rem, 2.73vw + 1.31rem, 4.8rem);
line-height: 1;
letter-spacing: -0.022em;
}
.gh-header.is-highlight .gh-header-left > .gh-card:first-child .gh-card-excerpt {
margin-top: 20px;
font-size: 1.8rem;
}
.gh-header.is-highlight .gh-header-left > .gh-card:first-child .gh-card-meta:not(:empty) {
margin-top: 14px;
}
.gh-header.is-highlight .gh-header-left .gh-card:not(:first-child) {
grid-column: 9 / -1;
}
.gh-header.is-highlight .gh-header-left .gh-card:nth-child(4) .gh-card-image {
display: none;
}
.gh-header.is-highlight .gh-card:not(:first-child) .gh-card-excerpt {
display: none;
}
.gh-header.is-highlight .gh-header-right {
grid-column: 13 / -1;
}
.gh-header.is-highlight .gh-featured {
margin-top: 0;
padding: 0;
}
.gh-header.is-highlight .gh-featured-feed {
display: flex;
flex-direction: column;
}
.gh-header.is-highlight .gh-header-left::after {
position: absolute;
top: 0;
right: calc(var(--grid-gap) / -2);
content: "";
width: 1px;
height: 100%;
background-color: var(--color-border);
}
.gh-header.is-highlight .gh-card + .gh-card::before {
position: absolute;
top: calc(var(--grid-gap) / -2);
left: 0;
content: "";
width: 100%;
height: 1px;
background-color: var(--color-border);
}
.gh-header.is-highlight .gh-header-left > .gh-card:nth-child(2)::before,
.gh-header.is-highlight .gh-featured-feed .gh-card::after {
display: none;
}
/* 8.3. Classic layout */
.gh-header.is-classic {
display: flex;
min-height: calc(100vh - 100px - 240px);
}
.gh-header.is-classic .gh-header-inner {
display: flex;
flex-direction: column;
align-items: center;
gap: 48px;
margin: auto;
max-width: 960px;
text-align: center;
}
.gh-header.is-classic.has-image .gh-header-inner {
color: #fff;
}
.gh-header.is-classic .gh-header-title {
font-size: clamp(3.2rem, 3.18vw + 1.93rem, 6rem);
font-weight: 750;
line-height: 1.1;
letter-spacing: -0.022em;
}
.gh-header.is-classic .gh-header-form {
display: flex;
align-items: center;
position: relative;
overflow: hidden;
max-width: 640px;
width: 100%;
height: 64px;
font-size: 1.8rem;
font-weight: 450;
letter-spacing: -0.008em;
border-radius: 40px;
background-color: var(--color-lighter-gray);
transition: background-color 0.2s ease;
}
.gh-header.is-classic .gh-header-form:hover {
background-color: rgb(0 0 0 / 0.05);
}
.gh-header.is-classic .gh-header-input {
position: absolute;
inset: 0;
padding-inline: 28px;
width: 100%;
height: 100%;
font-size: inherit;
letter-spacing: inherit;
border: 0;
background-color: transparent;
}
.gh-header.is-classic button.gh-header-input {
padding-inline-start: 56px;
text-align: left;
color: var(--color-secondary-text);
cursor: pointer;
}
.gh-header.is-classic .gh-button {
position: absolute;
right: 6px;
padding-inline: 40px;
height: 52px;
font-size: inherit;
font-weight: 600;
}
.gh-header.is-classic svg {
position: relative;
left: 22px;
width: 24px;
height: 24px;
color: var(--color-secondary-text);
}
/* 9. CTA
/* ---------------------------------------------------------- */
.gh-cta {
margin-top: calc(var(--grid-gap) / 2);
}
.gh-cta-inner {
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
padding-top: 100px;
border-top: 1px solid var(--color-border);
}
.gh-cta-title {
max-width: 720px;
font-size: 4.4rem;
font-weight: 800;
line-height: 1.1;
letter-spacing: -0.026em;
}
.gh-cta-description {
margin-top: 8px;
font-size: 2rem;
font-weight: 450;
line-height: 1.4;
letter-spacing: -.017em;
color: var(--color-secondary-text);
}
.gh-cta .gh-header-form {
display: flex;
align-items: center;
position: relative;
overflow: hidden;
max-width: 520px;
width: 100%;
height: 64px;
font-size: 1.8rem;
font-weight: 450;
letter-spacing: -0.008em;
border-radius: 40px;
background-color: var(--color-lighter-gray);
transition: background-color 0.2s ease;
}
.gh-cta .gh-header-form:hover {
background-color: rgb(0 0 0 / 0.05);
}
.gh-cta .gh-header-input {
position: absolute;
inset: 0;
padding-inline: 26px;
width: 100%;
height: 100%;
font-size: inherit;
letter-spacing: inherit;
border: 0;
background-color: transparent;
}
.gh-cta button.gh-header-input {
padding-inline-start: 56px;
text-align: left;
color: var(--color-secondary-text);
cursor: pointer;
}
.gh-cta .gh-button {
position: absolute;
right: 6px;
padding-inline: 32px;
height: 52px;
font-size: inherit;
font-weight: 600;
}
.gh-header.is-classic ~ .gh-cta {
display: none;
}
/* 10. Featured posts
/* ---------------------------------------------------------- */
.gh-featured {
margin-top: 100px;
}
.gh-featured-title {
margin-bottom: 20px;
padding-bottom: 12px;
font-size: 1.2rem;
font-weight: 500;
letter-spacing: 0.01em;
text-transform: uppercase;
border-bottom: 1px solid var(--color-border);
}
.gh-featured-feed {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: var(--grid-gap);
}
.gh-featured-feed .gh-card-link {
display: flex;
flex-direction: row-reverse;
align-items: flex-start;
}
.gh-featured-feed .gh-card-image {
width: 72px;
aspect-ratio: 1;
}
.gh-featured-feed .gh-card-title {
display: -webkit-box;
overflow-y: hidden;
font-size: 1.7rem;
font-weight: 725;
letter-spacing: -0.011em;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.gh-featured-feed .gh-card-excerpt {
display: none;
}
.gh-featured-feed .gh-card-meta:not(:empty) {
margin-top: 10px;
}
.gh-featured-feed .gh-card + .gh-card::before {
position: absolute;
top: 0;
left: calc(var(--grid-gap) / -2);
content: "";
width: 1px;
height: 100%;
background-color: var(--color-border);
}
/* 11. Container
/* ---------------------------------------------------------- */
.gh-container {
flex-grow: 1;
margin-top: 64px;
}
.gh-container-inner {
display: grid;
grid-template-columns: repeat(16, 1fr);
column-gap: var(--grid-gap);
}
:is(.gh-featured, .gh-cta) + .gh-container {
margin-top: 100px;
}
.gh-more {
display: none;
grid-column: 1 / -1;
margin-top: 48px;
font-size: 1.7rem;
font-weight: 700;
text-transform: uppercase;
}
.gh-container.has-sidebar .gh-more {
grid-column: span 12;
}
.home-template .gh-more {
display: block;
}
/* 11.1. With sidebar */
.gh-container.has-sidebar .gh-main {
grid-column: 1 / span 12;
position: relative;
}
.gh-container.has-sidebar .gh-sidebar {
grid-column: 13 / -1;
}
.gh-container.has-sidebar .gh-main::after {
position: absolute;
top: 0;
right: calc(var(--grid-gap) / -2);
content: "";
width: 1px;
height: 100%;
background-color: var(--color-border);
}
/* 11.2. Without sidebar */
.gh-container:not(.has-sidebar) .gh-main {
grid-column: 3 / span 12;
}
/* 12. Post list
/* ---------------------------------------------------------- */
.gh-container-title {
grid-column: 1 / -1;
margin-bottom: calc(var(--grid-gap) / 2);
padding-bottom: 12px;
font-size: 1.2rem;
font-weight: 500;
letter-spacing: 0.01em;
text-transform: uppercase;
border-bottom: 1px solid var(--color-border);
}
.gh-container .gh-feed {
gap: var(--grid-gap);
}
.gh-container .gh-card-meta:not(:empty) {
margin-top: 16px;
}
/* 12.1. List style */
.gh-container.is-list .gh-feed {
display: flex;
flex-direction: column;
}
.gh-container.is-list .gh-card-link {
flex-direction: row;
align-items: center;
gap: 24px;
}
.gh-container.is-list .gh-card-image {
flex-shrink: 0;
width: 220px;
aspect-ratio: 1.618033;
}
.gh-container.is-list .gh-card-wrapper {
max-width: 600px;
}
.gh-container.is-list .gh-card-excerpt {
margin-top: 6px;
}
.gh-container.is-list .gh-card + .gh-card::before {
position: absolute;
top: calc(var(--grid-gap) / -2);
left: 0;
content: "";
width: 100%;
height: 1px;
background-color: var(--color-border);
}
.home-template .gh-container.is-list .gh-card:first-child:before {
display: none;
}
/* 12.2. Grid style */
.gh-container.is-grid .gh-feed {
display: grid;
grid-template-columns: repeat(3, 1fr);
row-gap: calc(var(--grid-gap) * 1.5);
overflow: hidden;
}
.gh-container.is-grid .gh-card-excerpt {
-webkit-line-clamp: 4;
}
.gh-container.is-grid .gh-card::before {
position: absolute;
top: calc(var(--grid-gap) / -2);
right: calc(var(--grid-gap) / -2);
left: calc(var(--grid-gap) / -2);
content: "";
height: 1px;
background-color: var(--color-border);
}
.gh-container.is-grid .gh-card::after {
position: absolute;
top: 0;
left: calc(var(--grid-gap) / -2);
content: "";
width: 1px;
height: 100%;
background-color: var(--color-border);
}
/* 12.3. No image list */
.gh-container.is-list.no-image .gh-card-image {
display: none;
}
/* 13. Sidebar
/* ---------------------------------------------------------- */
.gh-about {
display: flex;
flex-direction: column;
align-items: center;
padding: 48px 24px;
text-align: center;
background-color: var(--color-lighter-gray);
}
.gh-about-icon {
margin-bottom: 24px;
width: 80px;
height: 80px;
border-radius: 50%;
}
.gh-about-title {
font-size: 2.4rem;
font-weight: 800;
letter-spacing: -0.019em;
}
.gh-about-description {
margin-top: 12px;
font-size: 1.5rem;
line-height: 1.4;
}
.gh-about .gh-button {
margin-top: 24px;
}
/* 14. Post/page
/* ---------------------------------------------------------- */
/* 14.1. Article */
.gh-article {
--container-width: 1120px;
word-break: break-word;
}
.gh-article-header {
margin: 40px 0;
}
.gh-article-tag {
margin-bottom: 12px;
font-size: 1.3rem;
font-weight: 500;
letter-spacing: 0.01em;
text-transform: uppercase;
color: var(--ghost-accent-color);
}
.gh-article-title {
font-size: clamp(3.2rem, 1.59vw + 2.56rem, 4.6rem);
font-weight: 750;
line-height: 1.05;
letter-spacing: -0.022em;
}
.gh-article-excerpt {
margin-top: 16px;
max-width: 720px;
font-size: 2.2rem;
line-height: 1.35;
letter-spacing: -0.018em;
}
.gh-article-meta {
display: flex;
align-items: center;
gap: 8px;
margin-top: 20px;
margin-left: 6px;
}
.gh-article-author-image {
display: flex;
margin-right: 8px;
}
.gh-article-author-image a {
position: relative;
margin: 0 -8px;
width: 56px;
height: 56px;
overflow: hidden;
background-color: var(--color-light-gray);
border-radius: 50%;
border: 3px solid var(--background-color);
}
.gh-article-author-image a:first-child {
z-index: 10;
}
.gh-article-author-image a:nth-child(2) {
z-index: 9;
}
.gh-article-author-image a:nth-child(3) {
z-index: 8;
}
.gh-article-author-image :is(img, svg) {
position: absolute;
inset: 0;
object-fit: cover;
}
.gh-article-meta-wrapper {
display: flex;
flex-direction: column;
gap: 4px;
}
.gh-article-author-name {
font-size: 1.7rem;
font-weight: 650;
letter-spacing: -0.013em;
}
.gh-article-meta-content {
font-size: 1.4rem;
font-weight: 500;
line-height: 1.2;
letter-spacing: -0.006em;
color: var(--color-secondary-text);
}
.gh-article-image {
grid-column: wide;
margin-top: 40px;
}
.gh-article-image img {
width: 100%;
}
/* 14.2. Page template */
.page-template .gh-article-header {
margin-block: 72px 32px;
}
/* 14.3. Page without header */
.page-template .gh-content:only-child > *:first-child:not(.kg-width-full) {
margin-top: 48px;
}
.page-template .gh-content > *:last-child:not(.kg-width-full) {
margin-bottom: 64px;
}
.page-template .gh-footer {
margin-top: 0;
}
/* 15. 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. */
.gh-content {
font-size: calc(var(--content-font-size, 1.8rem) * var(--font-multiplier, 1));
letter-spacing: var(--content-letter-spacing, 0);
}
/* Default vertical spacing */
.gh-content > * + * {
margin-top: calc(28px * var(--content-spacing-multiplier, 1));
margin-bottom: 0;
}
/* 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-top: calc(48px * var(--content-spacing-multiplier, 1));
}
/* Add a small margin between a heading and anything after it */
.gh-content > [id] + * {
margin-top: calc(16px * var(--content-spacing-multiplier, 1));
}
/* A larger margin before/after dividers, blockquotes and embeds */
.gh-content > :is(hr, blockquote, iframe) {
position: relative;
margin-top: calc(48px * var(--content-spacing-multiplier, 1)) !important;
}
.gh-content > :is(hr, blockquote, iframe) + * {
margin-top: calc(48px * var(--content-spacing-multiplier, 1)) !important;
}
/* Now the content typography styles */
.gh-content h2 {
font-size: calc(1.6em * var(--font-multiplier, 1));
letter-spacing: -0.02em;
}
.gh-content h3 {
font-size: calc(1.2em * var(--font-multiplier, 1));
letter-spacing: -0.017em;
}
.gh-content a {
color: var(--ghost-accent-color);
text-decoration: underline;
}
.gh-content .kg-callout-card .kg-callout-text,
.gh-content .kg-toggle-card .kg-toggle-content > :is(ul, ol, p) {
font-size: 0.95em;
}
.is-font-serif .gh-content > blockquote,
.is-font-serif .gh-content > ol,
.is-font-serif .gh-content > ul,
.is-font-serif .gh-content > dl,
.is-font-serif .gh-content > p,
.is-font-serif .gh-content .kg-callout-text,
.is-font-serif .gh-content .kg-toggle-content > ol,
.is-font-serif .gh-content .kg-toggle-content > ul,
.is-font-serif .gh-content .kg-toggle-content > p {
font-family: var(--font-serif);
}
.gh-content :is(ul, ol) {
padding-left: 28px;
}
.gh-content :is(li + li, li :is(ul, ol)) {
margin-top: 8px;
}
.gh-content ol ol li {
list-style-type: lower-alpha;
}
.gh-content ol ol ol li {
list-style-type: lower-roman;
}
.gh-content hr {
width: 100%;
height: 1px;
background-color: var(--color-border);
border: 0;
}
.gh-content table:not(.gist table) {
display: inline-block;
width: auto;
max-width: 100%;
overflow-x: auto;
font-family: var(--font-sans);
font-size: 1.6rem;
white-space: nowrap;
vertical-align: top;
border-spacing: 0;
border-collapse: collapse;
-webkit-overflow-scrolling: touch;
background: radial-gradient(ellipse at left, rgb(0 0 0 / 0.2) 0%, rgb(0 0 0 / 0) 75%) 0 center, radial-gradient(ellipse at right, rgb(0 0 0 / 0.2) 0%, rgb(0 0 0 / 0) 75%) 100% center;
background-repeat: no-repeat;
background-attachment: scroll, scroll;
background-size: 10px 100%, 10px 100%;
}
.gh-content table:not(.gist table) td:first-child {
background-image: linear-gradient(to right, rgb(255 255 255 / 1) 50%, rgb(255 255 255 / 0) 100%);
background-repeat: no-repeat;
background-size: 20px 100%;
}
.gh-content table:not(.gist table) td:last-child {
background-image: linear-gradient(to left, rgb(255 255 255 / 1) 50%, rgb(255 255 255 / 0) 100%);
background-repeat: no-repeat;
background-position: 100% 0;
background-size: 20px 100%;
}
.gh-content table:not(.gist table) th {
font-size: 1.2rem;
font-weight: 700;
color: var(--color-darkgrey);
text-align: left;
text-transform: uppercase;
letter-spacing: 0.2px;
background-color: var(--color-white);
}
.gh-content table:not(.gist table) th,
.gh-content table:not(.gist table) td {
padding: 6px 12px;
border: 1px solid var(--color-light-gray);
}
/* 16. Cards
/* ---------------------------------------------------------- */
/* Add extra margin before/after any cards, except for when immediately preceeded by a heading */
.gh-content :not(.kg-card):not(table):not([id]) + :is(.kg-card, table) {
margin-top: calc(48px * var(--content-spacing-multiplier, 1));
}
.gh-content :is(.kg-card, table) + :not(.kg-card):not(table):not([id]) {
margin-top: calc(48px * var(--content-spacing-multiplier, 1));
}
.gh-content :not(.kg-card):not([id]) + .kg-card.kg-width-full {
margin-top: calc(68px * var(--content-spacing-multiplier, 1));
}
.gh-content .kg-card.kg-width-full + :not(.kg-card):not([id]) {
margin-top: calc(68px * var(--content-spacing-multiplier, 1));
}
/* Image */
.kg-image {
margin-right: auto;
margin-left: auto;
}
/* Embed */
.kg-embed-card {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
}
/* Gallery */
.kg-image[width][height],
.kg-gallery-image {
cursor: pointer;
}
.kg-image-card a:hover,
.kg-gallery-image a:hover {
opacity: 1 !important;
}
/* Toggle */
.kg-card.kg-toggle-card .kg-toggle-heading-text {
font-size: 2rem;
font-weight: 700;
}
.has-serif-title .kg-toggle-card .kg-toggle-heading-text {
font-family: var(--font-serif);
}
/* Callout */
.kg-callout-card.kg-card {
border-radius: 0.25em;
}
.kg-callout-card-accent a {
text-decoration: underline;
}
/* Blockquote */
blockquote:not([class]) {
padding-left: 2rem;
border-left: 4px solid var(--ghost-accent-color);
}
blockquote.kg-blockquote-alt {
font-style: normal;
font-weight: 400;
color: var(--color-secondary-text);
}
/* Button */
.kg-card.kg-button-card .kg-btn {
font-size: 1em;
}
/* Header */
.has-serif-title .kg-card.kg-header-card h2.kg-header-card-header {
font-family: var(--font-serif);
}
.has-serif-body .kg-header-card h3.kg-header-card-subheader {
font-family: var(--font-serif);
}
/* Bookmark */
.kg-bookmark-card .kg-bookmark-container {
border-radius: 0.25em !important;
}
.kg-bookmark-card .kg-bookmark-content {
padding: 1.15em;
}
.kg-bookmark-card .kg-bookmark-title {
font-size: 0.9em;
}
.kg-bookmark-card .kg-bookmark-description {
max-height: none;
margin-top: 0.3em;
font-size: 0.8em;
}
.kg-bookmark-card .kg-bookmark-metadata {
font-size: 0.8em;
}
.kg-bookmark-card .kg-bookmark-thumbnail img {
border-radius: 0 0.2em 0.2em 0;
}
/* Product */
.kg-product-card.kg-card .kg-product-card-image {
margin-bottom: 12px;
}
.kg-product-card.kg-card a.kg-product-card-button {
height: 2.8em;
margin-top: 12px;
}
.is-font-serif .kg-product-card.kg-card .kg-product-card-title,
.is-font-serif .kg-product-card.kg-card .kg-product-card-description :is(p, ul, ol),
.is-font-serif .kg-product-card.kg-card .kg-product-card-button {
font-family: var(--font-serif);
}
/* File */
.kg-file-card.kg-card .kg-file-card-container {
padding: 0.6em;
}
.kg-file-card.kg-card .kg-file-card-contents {
margin: 4px 8px 6px;
}
.kg-file-card.kg-card .kg-file-card-metadata {
font-size: 0.9em;
}
.kg-file-card.kg-card .kg-file-card-filesize::before {
margin-right: 6px;
margin-left: 6px;
}
/* Caption */
figcaption {
margin-top: 12px;
font-size: calc(1.4rem * var(--font-multiplier, 1));
text-align: center;
}
.kg-card.kg-width-full figcaption {
padding: 0 16px;
}
figcaption a {
color: var(--ghost-accent-color);
text-decoration: underline;
}
/* 17. Comments
/* ---------------------------------------------------------- */
.gh-comments {
margin-top: 48px;
}
/* 18. Recent posts
/* ---------------------------------------------------------- */
.post-template .gh-container {
padding-block: 64px 80px;
background-color: var(--color-lighter-gray);
}
.post-template .gh-container-inner {
display: block;
max-width: 950px;
}
.post-template .gh-container.is-list .gh-card:first-child:before {
display: none;
}
/* 19. Archive
/* ---------------------------------------------------------- */
.gh-archive {
display: grid;
grid-template-columns: 1fr 1fr;
align-items: center;
gap: var(--grid-gap);
margin-block: 80px 24px;
padding-bottom: 48px;
border-bottom: 1px solid var(--color-border);
}
.gh-archive.has-image {
margin-top: 24px;
}
.gh-archive.has-image .gh-article-title {
font-size: 5.6rem;
}
.gh-archive .gh-article-excerpt {
margin-top: 12px;
}
.gh-archive .gh-article-image {
grid-column: auto;
margin-top: 0;
}
:is(.tag-template, .author-template) .gh-container {
margin-top: 0;
}
.author-template .gh-archive {
display: flex;
flex-direction: row-reverse;
justify-content: flex-end;
gap: 24px;
}
.author-template .gh-article-image {
margin-top: 0;
width: 160px;
height: 160px;
border-radius: 50%;
}
.author-template .gh-article-title {
font-size: 3.6rem;
}
.gh-author-meta {
display: flex;
gap: 10px;
margin-top: 14px;
font-size: 1.5rem;
font-weight: 550;
color: var(--color-secondary-text);
}
.gh-author-meta a {
color: inherit;
}
.gh-author-social {
display: flex;
gap: 10px;
align-items: center;
padding-left: 3px;
}
.gh-author-social svg {
width: 20px;
height: 20px;
}
/* 20. Design settings
/* ---------------------------------------------------------- */
/* 20.1. Typography */
.has-sans-title .is-title {
font-family: var(--font-sans);
}
.has-serif-title .is-title {
font-family: var(--font-serif);
}
.has-slab-title .is-title {
font-family: var(--font-slab);
}
.has-sans-body .is-body {
font-family: var(--font-sans);
}
.has-serif-body .is-body {
font-family: Georgia;
}
.has-serif-title :is(.gh-navigation-logo, .gh-footer-logo) {
font-size: 2.8rem;
font-weight: 600;
}
.has-serif-title .gh-header.is-classic .gh-header-title {
font-weight: 550;
letter-spacing: -0.015em;
}
.has-serif-title .gh-card-title {
font-size: 2.3rem;
font-weight: 600;
line-height: 1.1;
letter-spacing: -0.006em;
}
.has-serif-title .gh-featured-feed .gh-card-title {
font-size: 2.1rem;
}
.has-serif-title .gh-about-title {
font-size: 2.6rem;
font-weight: 600;
letter-spacing: -0.009em;
}
.has-serif-title .gh-footer-signup-header {
font-weight: 550;
letter-spacing: -0.019em;
}
.has-serif-title .gh-article-title {
font-weight: 600;
letter-spacing: -0.019em;
}
.has-serif-body {
--content-font-size: 1.8rem;
}
.has-serif-body .gh-card-excerpt {
font-size: 1.7rem;
line-height: 1.4;
letter-spacing: 0;
}
.has-serif-body .gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-excerpt,
.has-serif-body .gh-header.is-highlight .gh-card:first-child .gh-card-excerpt {
font-size: 1.8rem;
}
.has-serif-body .gh-about-description {
font-size: 1.6rem;
}
.has-serif-body .gh-article-excerpt {
letter-spacing: 0;
}
.has-serif-body .gh-footer-signup-subhead {
letter-spacing: 0;
}
.has-slab-title :is(.gh-button, .gh-header-form) {
border-radius: 8px;
}
.has-serif-title :is(.gh-button, .gh-header-form) {
border-radius: 0;
}
/* 20.2. Colors */
.has-light-text .gh-header.is-classic .gh-header-form:hover {
background-color: rgb(0 0 0 / 0.2);
}
/* 21. Footer
/* ---------------------------------------------------------- */
.gh-footer {
margin-top: 120px;
font-size: 1.6rem;
color: var(--color-darker-gray);
}
.gh-footer a:not(.gh-button) {
color: inherit;
}
/* 21.1 Footer styles */
.gh-footer.has-accent-color {
background-color: var(--ghost-accent-color);
}
.gh-footer.has-accent-color .gh-footer-bar {
border-top: 0;
}
.gh-footer.has-accent-color .gh-button {
background-color: #fff;
color: #15171a;
}
/* 21.2. With recent posts */
.post-template .gh-container + .gh-footer {
margin-top: 0;
}
.post-template .gh-container + .gh-footer:not(.has-accent-color) {
background-color: var(--color-lighter-gray);
}
/* 21.3. Footer bar */
.gh-footer-bar {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
padding-block: 28px;
font-weight: 550;
border-block: 1px solid var(--color-border);
}
.gh-footer-logo {
position: relative;
font-size: 2.6rem;
font-weight: 750;
letter-spacing: -0.015em;
white-space: nowrap;
}
.gh-footer-menu .nav {
display: flex;
gap: 28px;
margin: 0;
padding: 0;
list-style-type: none;
}
.gh-footer-copyright {
text-align: right;
}
.gh-footer-copyright a {
text-decoration: underline;
}
/* 21.4. Footer signup */
.gh-footer-signup {
display: flex;
flex-direction: column;
align-items: center;
padding-block: 80px 120px;
}
.gh-footer-signup-header {
font-size: clamp(3.2rem, 2.5vw + 2.2rem, 5.4rem);
font-weight: 750;
letter-spacing: -0.03em;
}
.gh-footer-signup-subhead {
margin-top: 8px;
font-size: clamp(1.6rem, 0.68vw + 1.33rem, 2.2rem);
font-weight: 450;
letter-spacing: -0.018em;
opacity: 0.6;
}
.gh-footer-signup .gh-button {
margin-top: 28px;
padding: 16px 32px;
font-size: 1.9rem;
letter-spacing: -0.01em;
}