343 lines
7.3 KiB
CSS
343 lines
7.3 KiB
CSS
:root {
|
|
--body-item-spacing: 2rem;
|
|
--content-width: 80rem;
|
|
--content-columns: 5;
|
|
--gutter-width: 3rem;
|
|
--list-item-block-gap: var(--body-item-spacing);
|
|
--margin-min-width: var(--body-item-spacing);
|
|
--margin-max-width: 1fr;
|
|
--nav-bulleted-spacing: 0.75rem;
|
|
}
|
|
|
|
@layer root {
|
|
main {
|
|
display: grid;
|
|
grid-template-columns:
|
|
[margin-left]
|
|
minmax(var(--margin-min-width), var(--margin-max-width))
|
|
[wide-content-start wide-content-left-start]
|
|
1fr
|
|
[wide-content-left-end gutter-start gutter-left-start]
|
|
var(--gutter-width)
|
|
[gutter-left-end content-start]
|
|
repeat(var(--content-columns),
|
|
min(
|
|
calc((100% - 2 * var(--gutter-width)) / var(--content-columns)),
|
|
calc(var(--content-width) / var(--content-columns))
|
|
)
|
|
)
|
|
[content-end gutter-right-start]
|
|
var(--gutter-width)
|
|
[gutter-right-end gutter-end wide-content-right-start]
|
|
1fr
|
|
[wide-content-right-end wide-content-end]
|
|
minmax(var(--margin-min-width), var(--margin-max-width))
|
|
[margin-right];
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
main {
|
|
--margin-min-width: 0;
|
|
--margin-max-width: 0;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 519px) {
|
|
/* Collapse the margin and wide content tracks */
|
|
main {
|
|
--content-columns: 3;
|
|
|
|
grid-template-columns:
|
|
[margin-left wide-content-start wide-content-left-start wide-content-left-end gutter-start gutter-left-start]
|
|
var(--gutter-width)
|
|
[gutter-left-end content-start]
|
|
repeat(var(--content-columns), min(calc((100% - 2 * var(--gutter-width)) / var(--content-columns)), calc(var(--content-width) / var(--content-columns))))
|
|
[content-end gutter-right-start]
|
|
var(--gutter-width)
|
|
[gutter-right-end gutter-end wide-content-right-start wide-content-right-end wide-content-end margin-right];
|
|
}
|
|
}
|
|
|
|
@media (max-width: 415px) {
|
|
main {
|
|
--content-columns: 1;
|
|
|
|
display: grid;
|
|
grid-template-columns:
|
|
[margin-left wide-content-start wide-content-left-start wide-content-left-end gutter-start gutter-left-start]
|
|
var(--gutter-width)
|
|
[gutter-left-end content-start]
|
|
calc(100% - 2 * var(--gutter-width))
|
|
[content-end gutter-right-start]
|
|
var(--gutter-width)
|
|
[gutter-right-end gutter-end wide-content-right-start wide-content-right-end wide-content-end margin-right];
|
|
}
|
|
}
|
|
}
|
|
|
|
@layer layout {
|
|
blockquote {
|
|
--line-width: 4px;
|
|
|
|
border-inline-start: var(--line-width) solid var(--separator-color);
|
|
padding-inline-start: calc(3rem - var(--line-width));
|
|
|
|
margin: 0;
|
|
}
|
|
|
|
code.nobg {
|
|
display: inline-block;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
details {
|
|
width: 100%;
|
|
}
|
|
|
|
details:has(#TableOfContents) {
|
|
box-sizing: border-box;
|
|
padding: var(--body-item-spacing);
|
|
}
|
|
|
|
fieldset {
|
|
box-sizing: border-box;
|
|
padding: var(--body-item-spacing);
|
|
padding-top: calc(var(--body-item-spacing) / 10);
|
|
}
|
|
|
|
figcaption:not(:empty) {
|
|
margin-block-start: 0.2em;
|
|
}
|
|
|
|
figure {
|
|
grid-column: gutter-start / gutter-end;
|
|
margin: 0;
|
|
margin-inline: 0;
|
|
min-width: fit-content;
|
|
overflow: hidden;
|
|
}
|
|
@media (max-width: 415px) {
|
|
figure {
|
|
grid-column: wide-content-start / wide-content-end;
|
|
}
|
|
}
|
|
|
|
figure.code .line > .ln {
|
|
grid-column: gutter-start;
|
|
}
|
|
|
|
figure.code .line > .cl {
|
|
grid-column: content-start / content-end;
|
|
}
|
|
|
|
figure > .container {
|
|
align-items: center;
|
|
display: flex;
|
|
gap: var(--body-item-spacing);
|
|
justify-content: center;
|
|
min-width: fit-content;
|
|
}
|
|
|
|
figure img {
|
|
display: block;
|
|
}
|
|
@media (max-width: 414px) {
|
|
figure img {
|
|
max-width: 100%;
|
|
}
|
|
}
|
|
|
|
figure svg {
|
|
width: 100%;
|
|
height: auto;
|
|
}
|
|
|
|
figure .youtube {
|
|
overflow: hidden;
|
|
max-width: var(--content-width);
|
|
width: 100%;
|
|
}
|
|
|
|
img {
|
|
height: auto;
|
|
max-width: 100%;
|
|
width: 100%;
|
|
}
|
|
|
|
main {
|
|
box-sizing: border-box;
|
|
margin-block-start: var(--body-item-spacing);
|
|
width: 100%;
|
|
}
|
|
|
|
main > * {
|
|
grid-column: content-start / content-end;
|
|
}
|
|
|
|
main > figure:not(.code),
|
|
main > a.to-photo-post {
|
|
grid-column: wide-content-start / wide-content-end;
|
|
}
|
|
|
|
main > header > span.series {
|
|
margin-inline-start: 0.5em;
|
|
}
|
|
|
|
main > header > span.series::before {
|
|
margin-inline-end: 0.25em;
|
|
}
|
|
|
|
main > :is(h1, h2, h3, h4, h5, h6):not(:first-child) {
|
|
padding-block-start: 0.5em;
|
|
}
|
|
|
|
nav.bulleted>li:first-child::before {
|
|
margin-inline: 0;
|
|
}
|
|
|
|
nav.bulleted>li::before {
|
|
margin-inline: var(--nav-bulleted-spacing);
|
|
}
|
|
|
|
ul, ol {
|
|
list-style-position: inside;
|
|
}
|
|
|
|
ul,
|
|
ol,
|
|
dl,
|
|
:is(ul, ol) > li,
|
|
dl > dt {
|
|
margin-inline-start: var(--body-item-spacing);
|
|
}
|
|
|
|
:is(ul, ol) > li:not(:last-child) {
|
|
margin-block-end: calc(var(--body-item-spacing) / 2);
|
|
}
|
|
|
|
:is(ul, ol) > li > :is(ul, ol) {
|
|
margin-inline-start: 0;
|
|
margin-block-start: calc(var(--body-item-spacing) / 2);
|
|
}
|
|
|
|
table {
|
|
border-collapse: collapse;
|
|
margin-inline: auto;
|
|
width: 50%;
|
|
}
|
|
|
|
td,
|
|
th {
|
|
padding-inline: 1rem;
|
|
}
|
|
|
|
.list .post header {
|
|
grid-column: wide-content-start / content-end;
|
|
}
|
|
@supports (grid-template-columns: subgrid) {
|
|
.list .post header {
|
|
display: grid;
|
|
grid-template-columns: subgrid;
|
|
}
|
|
}
|
|
|
|
.list .post time {
|
|
grid-column: wide-content-start;
|
|
justify-self: end;
|
|
}
|
|
@media (max-width: 960px) {
|
|
.list .post time {
|
|
grid-column: content-start / content-end;
|
|
justify-self: start;
|
|
}
|
|
}
|
|
|
|
.list {
|
|
gap: var(--list-item-block-gap) 0;
|
|
}
|
|
|
|
.list > h1,
|
|
.list > header {
|
|
grid-column: content-start / content-end;
|
|
}
|
|
|
|
.list > .post {
|
|
grid-column: wide-content-start / wide-content-end;
|
|
}
|
|
|
|
@supports (grid-template-columns: subgrid) {
|
|
.list > .post {
|
|
display: grid;
|
|
grid-template-columns: subgrid;
|
|
gap: var(--body-item-spacing) 0;
|
|
}
|
|
}
|
|
|
|
.list .post time {
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
@media (max-width: 960px) {
|
|
.list .post time {
|
|
line-height: var(--line-height);
|
|
}
|
|
}
|
|
|
|
.p5-sketch {
|
|
display: block;
|
|
position: relative;
|
|
width: 100%;
|
|
}
|
|
|
|
.page {
|
|
gap: var(--body-item-spacing) 0;
|
|
}
|
|
|
|
.page > header {
|
|
align-items: first baseline;
|
|
column-gap: 4rem;
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
@media (max-width: 539px) {
|
|
.page > header {
|
|
grid-template-columns: auto;
|
|
}
|
|
}
|
|
|
|
.page > header,
|
|
.page > footer {
|
|
grid-column: content-start / content-end;
|
|
}
|
|
|
|
.page > article > * {
|
|
grid-column: gutter-start / gutter-end;
|
|
}
|
|
|
|
.page > :not(blockquote, figure, :has(> img)) {
|
|
grid-column: content-start / content-end;
|
|
}
|
|
|
|
.page > article > :not(:last-child) {
|
|
margin-block-end: var(--body-item-spacing);
|
|
}
|
|
|
|
.post {
|
|
grid-column: gutter-start / gutter-end;
|
|
}
|
|
|
|
.post p,
|
|
.post .tags,
|
|
.post .title {
|
|
grid-column: content-start / content-end;
|
|
}
|
|
|
|
.youtube iframe {
|
|
aspect-ratio: 16 / 9;
|
|
margin-bottom: -3px;
|
|
width: 100%;
|
|
}
|
|
}
|