ghost-theme-sd.ai/assets/css/screen.css
Sodbileg Gansukh 4739b08e25 Post template
2023-07-13 14:56:13 +08:00

1726 lines
35 KiB
CSS

@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;
}
/* 1. Variables */
:root {
--color-white: #fff;
--color-lighter-gray: #f6f6f6;
--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: rgba(0, 0, 0, 0.4);
--color-border: rgba(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: 1280px;
--container-gap: clamp(24px, 1.7032rem + 1.9355vw, 48px);
--grid-gap: 40px;
}
:root.has-light-text {
--color-lighter-gray: rgba(0, 0, 0, 0.1);
--color-darker-gray: #fff;
--color-secondary-text: rgba(255, 255, 255, 0.64);
--color-border: rgba(255, 255, 255, 0.2);
}
/* 2. 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;
}
/* 3. 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;
line-height: 1;
color: var(--color-white);
letter-spacing: inherit;
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;
}
/* 4. 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-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;
}
/* Typography */
.has-sans-title [data-title] {
font-family: var(--font-sans);
}
.has-serif-title [data-title] {
font-family: var(--font-serif);
}
.has-slab-title [data-title] {
font-family: var(--font-slab);
}
.has-sans-body [data-body] {
font-family: var(--font-sans);
}
.has-serif-body [data-body] {
font-family: Georgia;
}
/* 5. Navigation */
.gh-navigation {
height: 100px;
font-size: 1.5rem;
font-weight: 500;
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: 700;
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: 24px;
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;
}
}
/* 5.1. Accent color */
.gh-navigation.has-accent-color {
background-color: var(--ghost-accent-color);
color: #fff;
}
.gh-navigation.has-accent-color .gh-button {
background-color: #fff;
color: #15171a;
}
/* 5.1. Navigation variants */
/*
======================================================================
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: 64px;
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;
}
}
/* 5.2. 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 rgba(0, 0, 0, 0.04), 0 7px 20px -5px rgba(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;
}
/* 5.3. Burger icon */
.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;
}
}
/* 5.4. Mobile menu */
@media (max-width: 767px) {
#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;
}
}
/* Card */
.gh-card {
position: relative;
}
.gh-card-link {
display: flex;
flex-direction: column;
gap: 16px;
}
.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: 2rem;
letter-spacing: -0.017em;
}
.gh-card-link:hover .gh-card-title {
opacity: 0.8;
}
.gh-card-excerpt {
display: -webkit-box;
overflow-y: hidden;
margin-top: 8px;
max-width: 720px;
font-size: 1.5rem;
line-height: 1.45;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
.gh-card-meta {
display: flex;
gap: 4px;
flex-wrap: wrap;
font-size: 1.3rem;
font-weight: 500;
line-height: 1.5;
letter-spacing: -0.0025em;
color: var(--color-secondary-text);
}
.gh-card-meta:not(:empty) {
margin-top: 9px;
}
.gh-card-author + .gh-card-date::before {
content: "—";
margin-right: 4px;
}
/* 6. Header */
.gh-header {
position: relative;
margin-top: 20px;
}
.gh-header-image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
.gh-header-inner {
position: relative;
}
/* 6.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: 20px;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-tag {
display: block;
margin-bottom: 8px;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-title {
font-size: clamp(2rem, 2.73vw + 0.91rem, 4.4rem);
line-height: 1.05;
letter-spacing: -0.022em;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-excerpt {
margin-top: 10px;
font-size: 1.7rem;
}
.gh-header.is-magazine .gh-header-inner > .gh-card .gh-card-meta:not(:empty) {
margin-top: 10px;
}
.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);
}
/* 6.2. Highlight layout */
.gh-header.is-highlight .gh-header-inner {
display: grid;
grid-template-columns: 3fr 1fr;
gap: var(--grid-gap);
}
.gh-header.is-highlight .gh-card:first-child {
grid-row: span 3;
}
.gh-header.is-highlight .gh-card:first-child .gh-card-link {
gap: 24px;
}
.gh-header.is-highlight .gh-card:first-child .gh-card-tag {
display: block;
margin-bottom: 10px;
}
.gh-header.is-highlight .gh-card:first-child .gh-card-title {
max-width: 840px;
font-size: clamp(3.2rem, 3.18vw + 1.93rem, 6rem);
line-height: 0.95;
letter-spacing: -0.03em;
}
.gh-header.is-highlight .gh-card:first-child .gh-card-excerpt {
margin-top: 10px;
font-size: 1.7rem;
}
.gh-header.is-highlight .gh-card:first-child .gh-card-meta:not(:empty) {
margin-top: 14px;
}
.gh-header.is-highlight .gh-card:not(:first-child) .gh-card-excerpt {
display: none;
}
.gh-header.is-highlight .gh-card:first-child::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:not(:first-child) + .gh-card::before {
position: absolute;
top: calc(var(--grid-gap) / -2);
left: 0;
content: "";
width: 100%;
height: 1px;
background-color: var(--color-border);
}
/* 6.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);
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;
letter-spacing: -0.01em;
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: rgba(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);
}
/* 7. Featured posts */
.gh-featured {
margin-top: 64px;
}
.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: 80px;
aspect-ratio: 1;
}
.gh-featured-feed .gh-card-title {
font-size: 1.8rem;
letter-spacing: -0.011em;
}
.gh-featured-feed .gh-card-excerpt {
display: none;
}
.gh-featured-feed .gh-card-meta:not(:empty) {
flex-direction: column;
gap: 0;
margin-top: 6px;
}
.gh-featured-feed .gh-card-date::before {
display: none;
}
.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);
}
/* 8. Container */
.gh-container {
margin-top: 64px;
}
.gh-container-inner {
display: grid;
grid-template-columns: repeat(16, 1fr);
column-gap: var(--grid-gap);
}
/* 8.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);
}
/* 8.2. Without sidebar */
.gh-container:not(.has-sidebar) .gh-main {
grid-column: 3 / span 12;
}
/* 9. Post list */
.gh-container-title {
grid-column: 1 / -1;
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-container .gh-feed {
gap: var(--grid-gap);
}
/* 9.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: 240px;
aspect-ratio: 1.618033;
}
.gh-container.is-list .gh-card-wrapper {
max-width: 600px;
}
.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);
}
/* 9.2. Grid style */
.gh-container.is-grid .gh-feed {
display: grid;
grid-template-columns: repeat(3, 1fr);
overflow: hidden;
}
.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);
}
/* 9.3. No image */
.gh-container.is-list.no-image .gh-card-image {
display: none;
}
/* 10. 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;
}
.gh-about-title {
font-size: 2.4rem;
letter-spacing: -0.019em;
}
.gh-about-description {
margin-top: 12px;
font-size: 1.4rem;
line-height: 1.4;
}
.gh-about .gh-button {
margin-top: 24px;
}
/* 10. Article */
.gh-article {
--container-width: 1120px;
word-break: break-word;
}
.gh-article-header {
margin: 48px 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: calc(clamp(3.2rem, 1.59vw + 2.56rem, 4.6rem));
font-weight: 750;
line-height: 1.1;
letter-spacing: -0.022em;
}
.gh-article-excerpt {
margin-top: 16px;
font-size: 2rem;
line-height: 1.45;
letter-spacing: -0.017em;
}
.gh-article-image {
grid-column: wide;
margin-top: 48px;
}
.gh-article-image img {
width: 100%;
}
/* 11. 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.7rem) * var(--font-multiplier, 1));
letter-spacing: var(--content-letter-spacing, 0);
}
/* Default vertical spacing */
.gh-content > * + * {
margin-top: calc(1.6em * var(--content-spacing-multiplier, 1));
margin-bottom: 0;
}
/* [id] represents all headings h1-h6, reset all margins */
.gh-content > [id] {
margin: 0;
}
.gh-content > .kg-card + [id] {
margin-top: calc(2em * var(--content-spacing-multiplier, 1)) !important;
}
.gh-content > *:first-child {
margin-top: 0 !important;
}
/* 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(1.6em * var(--content-spacing-multiplier, 1));
}
/* Add a small margin between a heading and anything after it */
.gh-content > [id] + * {
margin-top: calc(1em * var(--content-spacing-multiplier, 1));
}
/* A larger margin before/after HRs and blockquotes */
.gh-content > :is(hr, blockquote, iframe) {
position: relative;
margin-top: calc(2.8em * var(--content-spacing-multiplier, 1)) !important;
}
.gh-content > :is(hr, blockquote, iframe) + * {
margin-top: calc(2.8em * var(--content-spacing-multiplier, 1)) !important;
}
/* Now the content typography styles */
.gh-content h2 {
font-size: calc(1.8em * var(--font-multiplier, 1));
}
.gh-content h3 {
font-size: calc(1.2em * var(--font-multiplier, 1));
}
.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: 2.8rem;
}
.gh-content :is(li + li, li :is(ul, ol)) {
margin-top: 0.8rem;
}
.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-light-gray);
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, 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-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, rgba(255,255,255, 1) 50%, rgba(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, rgba(255,255,255, 1) 50%, rgba(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);
}
/* 11. 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(2.8em * var(--content-spacing-multiplier, 1));
}
.gh-content :is(.kg-card, table) + :not(.kg-card):not(table):not([id]) {
margin-top: calc(2.8em * var(--content-spacing-multiplier, 1));
}
.gh-content :not(.kg-card):not([id]) + .kg-card.kg-width-full {
margin-top: calc(4em * var(--content-spacing-multiplier, 1));
}
.gh-content .kg-card.kg-width-full + :not(.kg-card):not([id]) {
margin-top: calc(4em * 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;
}
/* 11. Comments */
.gh-comments {
margin-top: 48px;
}
/* 11. Footer */
.gh-footer {
margin-top: 80px;
font-size: 1.5rem;
color: var(--color-darker-gray);
}
.gh-footer a:not(.gh-button) {
color: inherit;
}
/* 11.1 Accent color */
.gh-footer.has-accent-color {
background-color: var(--ghost-accent-color);
color: #fff;
}
.gh-footer.has-accent-color .gh-button {
background-color: #fff;
color: #15171a;
}
/* 11.2. Footer bar */
.gh-footer-bar {
display: grid;
grid-template-columns: 1fr auto 1fr;
align-items: center;
padding-block: 24px;
border-block: 1px solid var(--color-border);
}
.gh-footer-bar a {
font-weight: 500;
}
.gh-footer-logo {
position: relative;
font-size: 2.6rem;
font-weight: 700;
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;
}
/* 11.3. Footer signup */
.gh-footer-signup {
display: flex;
flex-direction: column;
align-items: center;
padding-block: 100px;
}
.gh-footer-signup-header {
font-size: clamp(3.2rem, 2.5vw + 2.2rem, 5.4rem);
letter-spacing: -0.03em;
}
.gh-footer-signup-subhead {
margin-top: 4px;
font-size: clamp(1.6rem, 0.68vw + 1.33rem, 2.2rem);
letter-spacing: -0.018em;
opacity: 0.6;
}
.gh-footer-signup .gh-button {
margin-top: 24px;
padding: 16px 40px;
font-size: 1.9rem;
}