v6/site_test/css/main.scss

400 lines
7.3 KiB
SCSS

@import "normalize.scss";
@import "fonts.scss";
@import "syntax-highlighting.scss";
$page-horizontal-margin: 2rem;
$mobile-breakpoint: 480px;
$container-max-width: 768px;
$link-color: #c21e1e;
:root {
// solarized-base2
--background-color: #eee8d5;
--text-color: black;
--secondary-text-color: #656565;
--link-color: #c21e1e;
--page-vertical-margin: 2rem;
}
.container {
max-width: $container-max-width;
margin: 0 $page-horizontal-margin / 2;
}
@media (min-width: calc($container-max-width + 2 * $page-horizontal-margin)) {
.container {
margin: 0 $page-horizontal-margin;
}
}
a,
a:visited {
color: var(--link-color);
text-decoration-thickness: 2px;
text-underline-offset: 2px;
}
a:hover {
text-decoration-thickness: 3px;
}
a[href^="http://"]:not(.no-external-link-decoration)::after,
a[href^="https://"]:not(.no-external-link-decoration)::after
{
background-color: currentColor;
content: "";
width: calc(max(0.667em, 12px));
height: calc(max(0.667em, 12px));
margin-left: 0.333em;
display: inline-block;
mask: url("data:image/svg+xml;base64," + $external-link) no-repeat 50% 50%;
mask-size: cover;
}
pre,
code {
font-family: "Berkeley Mono";
font-size: 0.9em;
}
pre {
overflow-x: scroll;
tab-size: 4;
word-wrap: normal;
}
blockquote {
position: relative;
font-style: italic;
&::before {
content: open-quote;
font-size: 2em;
position: absolute;
left: -25px;
top: -10px;
}
em {
font-style: normal;
}
}
img {
display: block;
margin: 0 auto;
max-width: 100%;
}
figure {
margin: 0;
figcaption {
margin-top: 4px;
font-size: 1.1rem;
font-style: italic;
color: var(--secondary-text-color);
text-align: center;
}
}
table {
width: 100%;
border-collapse: collapse;
border: 1px solid var(--secondary-text-color);
tr,
th,
td {
border: 1px solid var(--secondary-text-color);
}
td,
th {
padding: 0 0.5em;
text-align: left;
}
thead > tr,
tbody > tr:nth-child(even) {
// darkened solarized base2
background: darken(#eee8d5, 5%);
}
}
hr {
border: 1px solid var(--secondary-text-color);
}
.italic {
font-style: italic;
}
html {
font-family: "Valkyrie A", Charter, serif;
font-size: 16px;
/* background-color: #dfd3c3; */
background-color: var(--background-color);
/* background-color: #e8dbc5; */
color: var(--text-color);
}
header {
margin-top: var(--page-vertical-margin);
font-style: italic;
h1 {
font-size: 5rem;
margin: 0;
a {
color: var(--text-color) !important;
transition: text-decoration-thickness 0.1s ease-in-out;
text-decoration-thickness: 4px;
text-underline-offset: 0.5rem;
&:hover {
text-decoration-thickness: 8px;
}
}
}
p {
margin-top: 0.25rem;
font-size: 1.5rem;
font-weight: lighter;
text-wrap: balance;
}
}
@media (max-width: $mobile-breakpoint) {
header h1 {
font-size: 4rem;
}
}
.headline {
// balance the number of words per line
text-wrap: balance;
&:has(+ .article-meta) {
margin-bottom: 0.2em;
}
}
.article-meta {
margin-top: 0;
color: var(--secondary-text-color);
text-wrap: pretty;
}
.body-content {
font-size: 1.25rem;
line-height: 1.4;
// Chrome only, but minimizes orphan words
text-wrap: pretty;
}
.header-anchor {
text-decoration: none;
font-size: 1rem;
vertical-align: middle;
// drag it up so it's more in the middle
padding-bottom: 0.25rem;
color: var(--secondary-text-color) !important;
background: none;
&:hover {
color: var(--link-color) !important;
}
}
.footnote-reference {
> a {
text-decoration: none;
&[href^="#fn-"] {
display: none;
}
}
}
.footnote-reference:hover + .sidenote,
.sidenote:hover,
aside:not(.inline):hover {
color: black;
a {
color: var(--link-color);
}
}
.sidenote,
aside:not(.inline) {
float: right;
margin-right: -50%;
width: 40%;
font-size: 1rem;
color: var(--secondary-text-color);
transition: color 0.2s ease-in-out;
display: block;
.sidenote-p {
margin: 20px 0;
display: block;
}
a {
color: lighten($link-color, 20%);
transition: color 0.2s ease-in-out;
}
}
aside:not(.inline) {
transform: translateY(-50%);
p:first-child {
margin-top: 0;
}
p:last-child {
margin-bottom: 0;
}
}
.tv-show-entry {
margin-bottom: 1rem;
> summary {
> h2 {
display: inline;
}
}
}
.footnote {
display: none;
flex-direction: row;
gap: 8px;
font-size: 1rem;
.footnote-marker {
flex-shrink: 0;
width: 34px;
text-align: right;
}
.footnote-backref {
text-decoration: none;
}
> div > p:first-child {
margin-top: 0;
}
> div > p:last-child {
margin-top: 0;
}
}
aside.inline {
font-size: 1rem;
background-color: lighten($link-color, 43%);
padding: 1rem;
p:first-child {
margin-top: 0;
}
p:last-child {
margin-bottom: 0;
}
}
// 1.5 to account for -50% margin-right on .sidenote
// plus page-horizontal-margin to effectively use that as the margin
@media (max-width: calc(1.5 * $container-max-width + 2 * $page-horizontal-margin)) {
.footnote-reference {
> a[href^="#fn-"] {
display: inline;
}
> a[href^="#fnref-"] {
display: none;
}
}
.sidenote {
display: none;
}
.footnote {
display: flex;
}
aside:not(.inline) {
float: none;
margin-right: 0;
width: auto;
transform: none;
background-color: lighten($link-color, 43%);
padding: 1rem;
}
}
footer {
margin-bottom: var(--page-vertical-margin);
font-style: italic;
font-size: 1.25rem;
ul {
padding: 0;
list-style: none;
}
}
@media (max-width: $mobile-breakpoint) {
footer {
font-size: 1rem;
}
}
.webring {
--webring-gradient: linear-gradient(
90deg,
#855988,
#6b4984,
#483475,
#2b2f77,
#141852
);
background: var(--webring-gradient);
background-clip: text;
position: relative;
&::after {
content: "";
width: 100%;
height: 2px;
position: absolute;
bottom: 2px;
left: 0;
background: var(--webring-gradient);
}
&:hover::after {
height: 3px;
bottom: 1px;
}
a {
color: transparent;
text-decoration: none;
position: relative;
}
}
.archive-list {
display: flex;
flex-direction: column;
gap: 4px;
font-size: 1.25rem;
margin: 1rem 0;
.archive-entry {
display: flex;
flex-direction: row;
align-items: start;
gap: 8px;
time {
color: var(--secondary-text-color);
}
&:hover time {
color: var(--text-color);
}
}
}