commit - 96a8e8ce21b138f06272a447c48d877662ea60a6
commit + 90b1eaacbaab8a18ae48d6382cbe09d20492e67d
blob - 4666df284eaa1779e633ed9f7c2c9c1ee0ca4ca3
blob + 83854ab21f0ab4bc7d0aed5dd715058d15cc93c1
--- assets/styles.css
+++ assets/styles.css
-:root {
- font-family: Inter, sans-serif;
- font-feature-settings: 'liga' 1, 'calt' 1; /* fix for Chrome */
-}
+:root { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
+
@supports (font-variation-settings: normal) {
- :root { font-family: InterVariable, sans-serif; }
+ .titles { font-family: InterVariable, sans-serif; }
}
body {
- margin: 0;
- background-color: var(--color-background);
+ margin: 0;
+ background-color: var(--color-background);
+ overscroll-behavior: none;
+ display: flex;
+ flex-direction: column;
+ min-height: 100vh;
}
+/* Yellow text selection across entire site */
+::selection {
+ background-color: var(--color-link-bg);
+ color: rgba(0, 0, 0, 0.9);
+}
+
+::-moz-selection {
+ background-color: var(--color-link-bg);
+ color: rgba(0, 0, 0, 0.9);
+}
+
+/* Two-column layout: nav sidebar + content area */
main {
- display: flex;
+ display: flex;
+ flex-grow: 1;
}
+/* Sidebar navigation */
.nav {
- display: flex;
+ display: flex;
flex-direction: column;
- width: var(--nav-width);
- position: sticky;
- top: 0;
- align-self: flex-start;
-}
+ width: var(--nav-width);
+ position: sticky;
+ top: 0;
+ align-self: flex-start;
+ padding-top: 160px;
+ padding-left: 60px;
+ padding-right: 20px;
+ box-sizing: border-box;
-.nav ul {
- list-style-type: none;
-}
+ ul {
+ list-style-type: none;
+ padding-left: 0;
+ }
-.nav a {
- color: var(--color-text-primary);
-}
+ li { margin-bottom: 25px; }
-.nav a:hover {
- background-color: var(--color-link-hover);
+ a {
+ color: var(--color-text-primary);
+ &:hover { background-color: var(--color-link-hover); }
+ }
}
-.titles {
- color: var(--color-title);
- text-decoration: none;
- font-size: 60px;
- margin: 0;
-}
-
-.article .titles {
- margin-bottom: 0.5em;
-}
-
-.titles a:hover {
- color: var(--color-accent);
-}
-
-.article a {
- color: black;
- background-color: var(--color-link-bg);
-}
-
-.article a:hover {
- background-color: var(--color-link-hover);
-}
-
-.article blockquote {
- border-left: 4px solid var(--color-blockquote-border);
- padding-left: 1em;
- margin-left: 0;
-}
-
+/* Main content area */
.content {
- max-width: var(--content-max-width);
- flex-grow: 1;
+ max-width: var(--content-max-width);
+ flex-grow: 1;
+ padding-left: 20px;
+ padding-right: 20px;
}
footer {
- text-align: center;
+ text-align: center;
+ background-color: rgba(0, 0, 0, 0.9);
+ color: rgba(255, 255, 255, 0.4);
+ padding: 1em;
+ margin-top: 25px;
}
+.titles {
+ font-family: Inter, sans-serif;
+ color: var(--color-title);
+ text-decoration: none;
+ font-size: 60px;
+ margin: 0;
+
+ a:hover { color: var(--color-accent); }
+}
+
+.article {
+ line-height: 1.5;
+ color: rgba(0, 0, 0, 0.9);
+
+ .titles {
+ color: rgba(0, 0, 0, 0.4);
+ line-height: 1.0;
+ }
+
+ img {
+ max-width: 100%;
+ height: auto;
+ }
+
+ p { margin-bottom: 2em; }
+
+ a {
+ color: rgba(0, 0, 0, 0.4);
+ background-color: var(--color-link-bg);
+
+ &:hover { background-color: var(--color-link-hover); }
+ }
+
+ blockquote {
+ border-left: 4px solid var(--color-blockquote-border);
+ padding-left: 1em;
+ margin-left: 0;
+ }
+
+ pre {
+ border: 1px solid var(--color-accent);
+ padding: 1em;
+ }
+}
+
+/* List page article summaries */
+.summary-item {
+ margin-bottom: 30px;
+ padding-top: 30px;
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+
+ &:first-child {
+ border-top: none;
+ padding-top: 0;
+ }
+
+ .titles {
+ line-height: 1.0;
+ margin-bottom: 0.2em;
+
+ a {
+ background-color: transparent;
+ text-decoration: none;
+
+ &:hover {
+ color: var(--color-accent);
+ background-color: transparent;
+ }
+ }
+ }
+}
+
+.summary-text {
+ color: rgba(0, 0, 0, 0.4);
+ line-height: 1.5;
+}
+
.post-meta {
- color: rgba(0, 0, 0, 0.4);
-}
+ color: rgba(0, 0, 0, 0.4);
+ font-size: 0.85em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
-.post-meta a {
- color: inherit;
+ a {
+ color: inherit;
+ background-color: var(--color-link-bg);
+ }
}
+/* Mobile layout */
@media (max-width: 800px) {
- main {
- flex-direction: column;
- }
+ main { flex-direction: column; }
+ header { margin-bottom: 0.5em; }
+ .titles { font-size: 36px; }
.nav {
- width: 100%;
+ width: 100%;
position: static;
- }
+ padding: 0;
- .nav ul {
- display: flex;
- flex-direction: row;
- justify-content: center;
- margin: 10px;
+ ul {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ margin: 5px 0;
+ gap: 20px;
+ }
}
+
}