-
+
source
-
+
rss
-
+
onion mirror
diff --git a/assets/forgejo-icon.svg b/assets/forgejo-icon-dark.svg
similarity index 100%
rename from assets/forgejo-icon.svg
rename to assets/forgejo-icon-dark.svg
diff --git a/assets/git-icon.svg b/assets/git-icon-dark.svg
similarity index 100%
rename from assets/git-icon.svg
rename to assets/git-icon-dark.svg
diff --git a/assets/mastodon-icon.svg b/assets/mastodon-icon-dark.svg
similarity index 100%
rename from assets/mastodon-icon.svg
rename to assets/mastodon-icon-dark.svg
diff --git a/assets/matrix-icon.svg b/assets/matrix-icon-dark.svg
similarity index 100%
rename from assets/matrix-icon.svg
rename to assets/matrix-icon-dark.svg
diff --git a/assets/onion-icon.svg b/assets/onion-icon-dark.svg
similarity index 100%
rename from assets/onion-icon.svg
rename to assets/onion-icon-dark.svg
diff --git a/assets/rss-icon.svg b/assets/rss-icon-dark.svg
similarity index 100%
rename from assets/rss-icon.svg
rename to assets/rss-icon-dark.svg
diff --git a/css/style.css b/css/style.css
index bd9c572..4dd619e 100644
--- a/css/style.css
+++ b/css/style.css
@@ -1,13 +1,3 @@
-/* Base styles */
-:root {
- --primary-color: #2c3e50;
- --secondary-color: #3498db;
- --text-color: #333;
- --background-color: #fff;
- --border-color: #ddd;
- --code-background: #f5f5f5;
-}
-
* {
box-sizing: border-box;
margin: 0;
@@ -16,30 +6,30 @@
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
- line-height: 1.6;
- color: var(--text-color);
- background-color: var(--background-color);
+ line-height: var(--line-height-body);
+ color: var(--color-text-primary);
+ background-color: var(--color-bg-page);
max-width: 800px;
margin: 0 auto;
- padding: 2rem;
+ padding: var(--space-section);
}
/* Header and Navigation */
header {
- margin-bottom: 2rem;
- padding-bottom: 1rem;
- border-bottom: 1px solid var(--border-color);
+ margin-bottom: var(--space-section);
+ padding-bottom: var(--space-element);
+ border-bottom: 1px solid var(--color-border-default);
}
header nav a {
- color: var(--primary-color);
+ color: var(--color-text-heading);
text-decoration: none;
- font-weight: bold;
- font-size: 1.2rem;
+ font-weight: var(--font-weight-bold);
+ font-size: var(--font-size-nav);
}
header nav a:hover {
- color: var(--secondary-color);
+ color: var(--color-text-link);
}
/* Main content */
@@ -48,20 +38,20 @@ main {
}
h1, h2, h3, h4, h5, h6 {
- color: var(--primary-color);
- margin: 1.5rem 0 1rem;
+ color: var(--color-text-heading);
+ margin: var(--space-block) 0 var(--space-element);
}
-h1 { font-size: 2rem; }
-h2 { font-size: 1.5rem; }
-h3 { font-size: 1.25rem; }
+h1 { font-size: var(--font-size-page-title); }
+h2 { font-size: var(--font-size-section-title); }
+h3 { font-size: var(--font-size-subsection-title); }
p {
- margin-bottom: 1rem;
+ margin-bottom: var(--space-element);
}
a {
- color: var(--secondary-color);
+ color: var(--color-text-link);
}
/* Section header with view all link */
@@ -72,13 +62,13 @@ a {
}
.section-header h1 {
- margin: 1.5rem 0 1rem;
+ margin: var(--space-block) 0 var(--space-element);
}
.view-all {
- margin-top: 1.5rem;
- font-size: 0.9rem;
- color: var(--secondary-color);
+ margin-top: var(--space-block);
+ font-size: var(--font-size-small);
+ color: var(--color-text-link);
text-decoration: none;
}
@@ -92,7 +82,7 @@ a {
}
.post-list li {
- margin-bottom: 1.5rem;
+ margin-bottom: var(--space-block);
}
.post-list li:last-child {
@@ -102,57 +92,57 @@ a {
.post-card {
display: block;
text-decoration: none;
- padding: 1.5rem;
- border: 1px solid var(--border-color);
- border-radius: 8px;
+ padding: var(--space-block);
+ border: 1px solid var(--color-border-default);
+ border-radius: var(--radius-card);
transition: border-color 0.2s, box-shadow 0.2s;
}
.post-card:hover {
- border-color: var(--secondary-color);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+ border-color: var(--color-border-focus);
+ box-shadow: var(--shadow-card);
}
.post-card h2 {
- margin: 0 0 0.5rem;
- color: var(--primary-color);
+ margin: 0 0 var(--space-tight);
+ color: var(--color-text-heading);
}
.post-card:hover h2 {
- color: var(--secondary-color);
+ color: var(--color-text-link);
}
.post-card time {
- color: #666;
- font-size: 0.9rem;
+ color: var(--color-text-muted);
+ font-size: var(--font-size-small);
}
.post-card p {
- color: var(--text-color);
- margin-top: 0.5rem;
+ color: var(--color-text-primary);
+ margin-top: var(--space-tight);
margin-bottom: 0;
}
/* Blog post */
.blog-post {
- margin-bottom: 2rem;
+ margin-bottom: var(--space-section);
}
.post-header {
- margin-bottom: 2rem;
+ margin-bottom: var(--space-section);
}
.post-header h1 {
- margin-bottom: 0.5rem;
+ margin-bottom: var(--space-tight);
}
.post-header time {
- color: #666;
- font-size: 0.9rem;
+ color: var(--color-text-muted);
+ font-size: var(--font-size-small);
}
.post-content {
- margin-bottom: 2rem;
+ margin-bottom: var(--space-section);
}
.post-content img {
@@ -161,18 +151,18 @@ a {
}
.post-content code {
- background-color: var(--code-background);
+ background-color: var(--color-bg-surface);
padding: 0.2rem 0.4rem;
- border-radius: 3px;
+ border-radius: var(--radius-inline);
font-size: 0.9em;
}
.post-content pre {
- background-color: var(--code-background);
- padding: 1rem;
- border-radius: 5px;
+ background-color: var(--color-bg-surface);
+ padding: var(--space-element);
+ border-radius: var(--radius-block);
overflow-x: auto;
- margin: 1rem 0;
+ margin: var(--space-element) 0;
}
.post-content pre code {
@@ -189,15 +179,15 @@ a {
.post-content .task-list-item {
display: flex;
align-items: flex-start;
- gap: 0.5rem;
- margin-bottom: 0.25rem;
+ gap: var(--space-tight);
+ margin-bottom: var(--space-micro);
}
.post-content .task-list-item-checkbox {
margin-top: 0.35rem;
width: 1rem;
height: 1rem;
- accent-color: var(--secondary-color);
+ accent-color: var(--color-text-link);
}
.post-content .task-list-item > label {
@@ -206,73 +196,73 @@ a {
/* Nested task lists */
.post-content .task-list-item ul.contains-task-list {
- margin-top: 0.25rem;
+ margin-top: var(--space-micro);
}
/* Lists in post content */
.post-content ul,
.post-content ol {
- margin-bottom: 1rem;
- padding-left: 1.5rem;
+ margin-bottom: var(--space-element);
+ padding-left: var(--space-block);
}
.post-content li {
- margin-bottom: 0.25rem;
+ margin-bottom: var(--space-micro);
}
.post-content ul ul,
.post-content ul ol,
.post-content ol ul,
.post-content ol ol {
- margin-top: 0.25rem;
- margin-bottom: 0.5rem;
- padding-left: 1.5rem;
+ margin-top: var(--space-micro);
+ margin-bottom: var(--space-tight);
+ padding-left: var(--space-block);
}
/* Expandable sections */
.expandable {
- border: 1px solid var(--border-color);
- border-radius: 5px;
- margin: 1rem 0;
+ border: 1px solid var(--color-border-default);
+ border-radius: var(--radius-block);
+ margin: var(--space-element) 0;
}
.expandable summary {
- padding: 0.75rem 1rem;
+ padding: 0.75rem var(--space-element);
cursor: pointer;
- font-weight: bold;
- background-color: var(--code-background);
- border-radius: 5px 5px 0 0;
+ font-weight: var(--font-weight-bold);
+ background-color: var(--color-bg-surface);
+ border-radius: var(--radius-block) var(--radius-block) 0 0;
}
.expandable[open] summary {
- border-bottom: 1px solid var(--border-color);
+ border-bottom: 1px solid var(--color-border-default);
}
.expandable > *:not(summary) {
- padding: 0 1rem;
+ padding: 0 var(--space-element);
}
.expandable > p:last-child {
- padding-bottom: 1rem;
+ padding-bottom: var(--space-element);
}
/* Tags */
.post-tags {
- margin-top: 2rem;
- padding-top: 1rem;
- border-top: 1px solid var(--border-color);
+ margin-top: var(--space-section);
+ padding-top: var(--space-element);
+ border-top: 1px solid var(--color-border-default);
}
.post-tags h2 {
- font-size: 1rem;
- margin-bottom: 0.5rem;
+ font-size: var(--font-size-body);
+ margin-bottom: var(--space-tight);
}
.tag-list {
list-style: none;
display: flex;
flex-wrap: wrap;
- gap: 0.5rem 1rem;
+ gap: var(--space-tight) var(--space-element);
}
.tag-list li {
@@ -280,7 +270,7 @@ a {
}
.tag-list a {
- color: var(--secondary-color);
+ color: var(--color-text-link);
text-decoration: none;
}
@@ -290,53 +280,64 @@ a {
/* Footnotes */
.footnotes {
- margin-top: 2rem;
- padding-top: 1rem;
- border-top: 2px solid var(--border-color);
- font-size: 0.9rem;
+ margin-top: var(--space-section);
+ padding-top: var(--space-element);
+ border-top: 2px solid var(--color-border-default);
+ font-size: var(--font-size-small);
}
.footnotes h2 {
- font-size: 1rem;
- margin-bottom: 0.5rem;
+ font-size: var(--font-size-body);
+ margin-bottom: var(--space-tight);
}
.footnotes ol {
- padding-left: 1.5rem;
+ padding-left: var(--space-block);
}
.footnotes li {
- margin-bottom: 0.5rem;
+ margin-bottom: var(--space-tight);
}
.footnote-ref a {
- color: var(--secondary-color);
+ color: var(--color-text-link);
text-decoration: none;
}
.footnote-backref {
- margin-left: 0.5rem;
+ margin-left: var(--space-tight);
text-decoration: none;
}
/* Draft Warning Banner */
.draft-warning-banner {
- background-color: #fff3cd;
- border: 1px solid #ffc107;
- border-radius: 5px;
- padding: 1rem;
- margin-bottom: 1.5rem;
- color: #856404;
- font-weight: 500;
+ background-color: var(--color-bg-warning);
+ border: 1px solid var(--color-border-warning);
+ border-radius: var(--radius-block);
+ padding: var(--space-element);
+ margin-bottom: var(--space-block);
+ color: var(--color-warning-text);
+ font-weight: var(--font-weight-medium);
text-align: center;
}
/* Footer */
footer {
- margin-top: 2rem;
- padding-top: 1rem;
- border-top: 1px solid var(--border-color);
+ margin-top: var(--space-section);
+ padding-top: var(--space-element);
+ border-top: 1px solid var(--color-border-default);
text-align: center;
- color: #666;
- font-size: 0.9rem;
+ color: var(--color-text-muted);
+ font-size: var(--font-size-small);
+}
+
+/* Icon utilities */
+.icon-invertible {
+ transition: filter 0.2s;
+}
+
+@media (prefers-color-scheme: dark) {
+ .icon-invertible {
+ filter: invert(1) brightness(0.9);
+ }
}
\ No newline at end of file
diff --git a/posts/drafts/remove-tracking-params-from-links.md b/posts/drafts/remove-tracking-params-from-links.md
index 04523fc..3635bcf 100644
--- a/posts/drafts/remove-tracking-params-from-links.md
+++ b/posts/drafts/remove-tracking-params-from-links.md
@@ -1,4 +1,3 @@
-
## Your internet traffic is being tracked
When you open up your phone and click on or share links though websites and applications websites are secretly injecting tracking information into the pages.
@@ -19,17 +18,17 @@ TODO: explain why that is a bad thing for privacy, and personal life
@@ -524,7 +523,7 @@ The most basic low tech way to remove the trackers is to just delete them yourse