Create assets/styles/root to hold all the fragments of the root stylesheet. This should make it easier to find and hack on style. Yay!
173 lines
6.2 KiB
CSS
173 lines
6.2 KiB
CSS
@font-face {
|
|
font-family: "Museo_Slab";
|
|
src: url("{{ `/fonts/Museo_Slab_500.woff2` | relURL }}") format("woff2"),
|
|
url("{{ `/fonts/Museo_Slab_500.woff` | relURL }}") format("woff");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
|
|
@layer typography {
|
|
:root {
|
|
--font-family: Verdana, Helvetica, sans-serif;
|
|
--font-family-heading: Museo_Slab, Tahoma, "Hiragino Mincho ProN", serif;
|
|
--font-family-monospace: "Courier New", Courier, monospace;
|
|
--font-family-site-heading: Museo_Slab, Tahoma, sans-serif;
|
|
|
|
--font-size: 2rem;
|
|
--font-size-max: 8px;
|
|
--font-size-min: 6px;
|
|
--font-size-scale-factor: 1vmax;
|
|
--site-header-font-size: 200%;
|
|
|
|
--line-height: 2;
|
|
--heading-line-height: 1;
|
|
/* A little extra line height so the descenders don't get clipped */
|
|
--site-heading-line-height: 1.1;
|
|
--landing-line-height: 1.85;
|
|
|
|
--color: rgba(var(--black), 0.8);
|
|
--a-color: rgb(var(--mid-blue));
|
|
--a-ruby-color: var(--color);
|
|
--heading-color: rgb(var(--black));
|
|
--site-nav-link-color: var(--a-color);
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--color: rgba(var(--white), 0.8);
|
|
--heading-color: rgb(var(--white));
|
|
}
|
|
}
|
|
|
|
a { color: var(--a-color); }
|
|
a:visited { color: var(--a-color); }
|
|
a.hover-only { color: var(--color); }
|
|
a.hover-only:hover { color: var(--a-color); }
|
|
a rt, a:hover rt { color: var(--a-ruby-color); }
|
|
|
|
body {
|
|
font-size: var(--font-size);
|
|
line-height: var(--line-height);
|
|
}
|
|
|
|
code { font-family: var(--font-family-monospace); }
|
|
|
|
figcaption {
|
|
font-size: 80%;
|
|
line-height: var(--line-height);
|
|
}
|
|
|
|
footer.site {
|
|
font-size: 80%;
|
|
line-height: 1;
|
|
}
|
|
|
|
h1 { font-size: 305%; }
|
|
h2 { font-size: 244%; }
|
|
h3 { font-size: 195%; }
|
|
h4 { font-size: 156%; }
|
|
h5 { font-size: 125%; }
|
|
h6 { font-size: 100%; }
|
|
h5, h6 { font-family: var(--font-family-body); }
|
|
|
|
header.site nav > .active { font-weight: bold; }
|
|
header.site nav > li { color: var(--site-nav-link-color); }
|
|
|
|
main:has(header > .post-title > h1) h1 { font-size: 244%; }
|
|
main:has(header > .post-title > h1) h2 { font-size: 195%; }
|
|
main:has(header > .post-title > h1) h3 { font-size: 156%; }
|
|
main:has(header > .post-title > h1) h4 { font-size: 125%; }
|
|
main:has(header > .post-title > h1) h5 { font-size: 100%; }
|
|
main:has(header > .post-title > h1) h6 { font-size: 100%; }
|
|
main:has(header > .post-title > h1) :is(h5, h6) { font-family: var(--font-family-body); }
|
|
|
|
h1, h2, h3, h4, h5, h6 {
|
|
color: var(--heading-color);
|
|
font-family: var(--font-family-heading);
|
|
font-weight: 600;
|
|
letter-spacing: 1pt;
|
|
line-height: var(--heading-line-height);
|
|
}
|
|
|
|
header.site h1 {
|
|
--site-title-color1: rgb(103, 128, 229);
|
|
--site-title-color2: rgb(130, 90, 227);
|
|
--site-title-color3: rgb(135, 101, 228);
|
|
--site-title-color4: rgb(125, 115, 229);
|
|
--site-title-color5: rgb(107, 130, 230);
|
|
--site-title-color6: rgb(77, 153, 232);
|
|
--site-title-color7: rgb(74, 136, 230);
|
|
--site-title-color8: rgb(71, 128, 228);
|
|
--site-title-color9: rgb(65, 80, 224);
|
|
--site-title-color10: rgb(61, 58, 223);
|
|
|
|
color: rgb(var(--mid-blue));
|
|
font-family: var(--font-family-site-heading);
|
|
font-size: var(--site-header-font-size);
|
|
line-height: var(--site-heading-line-height);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
header.site h1 > a { color: inherit; }
|
|
|
|
@supports not ((background-clip: text) or (-webkit-background-clip: text)) {
|
|
header.site h1 span:nth-child(10n + 1) { color: var(--site-title-color1); }
|
|
header.site h1 span:nth-child(10n + 2) { color: var(--site-title-color2); }
|
|
header.site h1 span:nth-child(10n + 3) { color: var(--site-title-color3); }
|
|
header.site h1 span:nth-child(10n + 4) { color: var(--site-title-color4); }
|
|
header.site h1 span:nth-child(10n + 5) { color: var(--site-title-color5); }
|
|
header.site h1 span:nth-child(10n + 6) { color: var(--site-title-color6); }
|
|
header.site h1 span:nth-child(10n + 7) { color: var(--site-title-color7); }
|
|
header.site h1 span:nth-child(10n + 8) { color: var(--site-title-color8); }
|
|
header.site h1 span:nth-child(10n + 9) { color: var(--site-title-color9); }
|
|
header.site h1 span:nth-child(10n) { color: var(--site-title-color10); }
|
|
}
|
|
@supports (background-clip: text) or (-webkit-background-clip: text) {
|
|
header.site h1 {
|
|
background:
|
|
radial-gradient(circle at 20% 70%, rgb(var(--purple)), transparent 40%),
|
|
radial-gradient(circle at 30% 30%, rgb(var(--lt-blue)), rgb(var(--mid-blue)) 20%, transparent 80%),
|
|
radial-gradient(ellipse at 95% 20%, rgb(var(--dk-blue)), rgb(var(--mid-blue)) 70%, transparent 80%),
|
|
radial-gradient(circle at 100% 100%, rgb(var(--purple)), rgb(var(--lilac)) 100%),
|
|
radial-gradient(circle at 45% 100%, rgb(var(--lilac)), rgb(var(--purple)) 60%),
|
|
radial-gradient(ellipse at 50% 50%, rgb(var(--dk-blue)), transparent 80%);
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
color: transparent;
|
|
}
|
|
}
|
|
|
|
header.site nav {
|
|
font-size: max(1.5rem, 80%);
|
|
letter-spacing: 0.10em;
|
|
text-transform: lowercase;
|
|
}
|
|
|
|
header.site nav > li {
|
|
color: var(--site-nav-link-color);
|
|
}
|
|
|
|
:is(h1, h2, h3, h4, h5, h6) rt {
|
|
font-family: var(--font-family);
|
|
font-weight: normal;
|
|
letter-spacing: 0;
|
|
}
|
|
|
|
html {
|
|
color: var(--color);
|
|
font-family: var(--font-family);
|
|
font-size: clamp(var(--font-size-min), var(--font-size-scale-factor), var(--font-size-max));
|
|
}
|
|
|
|
main#landing p { line-height: var(--landing-line-height); }
|
|
|
|
nav.bulleted > li:first-child::before { color: var(--color); }
|
|
nav.bulleted > li::before { color: var(--heading-color); }
|
|
|
|
p { line-height: var(--line-height); }
|
|
|
|
ruby:hover rt { color: var(--color); }
|
|
|
|
@media (prefers-color-scheme: dark) {
|
|
rt { color: rgba(var(--white), 0.5); }
|
|
}
|
|
}
|