From 2a1afac1d67f0e504f2a005bf14a4b3aadccd96c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 25 Sep 2025 18:01:40 +0000
Subject: [PATCH 1/6] Initial plan
From 5a0dd767eae21d5e62df5e742d8179a153b99e5b Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 25 Sep 2025 18:12:55 +0000
Subject: [PATCH 2/6] Add three post card variants with demo page
Co-authored-by: Xayan <3319807+Xayan@users.noreply.github.com>
---
assets/sass/_custom.scss | 486 ++++++++++++++++++++++++
content/card-demo.md | 10 +
layouts/_default/card-demo.html | 65 ++++
layouts/partials/postCard-variant1.html | 67 ++++
layouts/partials/postCard-variant2.html | 66 ++++
layouts/partials/postCard-variant3.html | 65 ++++
6 files changed, 759 insertions(+)
create mode 100644 content/card-demo.md
create mode 100644 layouts/_default/card-demo.html
create mode 100644 layouts/partials/postCard-variant1.html
create mode 100644 layouts/partials/postCard-variant2.html
create mode 100644 layouts/partials/postCard-variant3.html
diff --git a/assets/sass/_custom.scss b/assets/sass/_custom.scss
index 2914f91..6f30628 100644
--- a/assets/sass/_custom.scss
+++ b/assets/sass/_custom.scss
@@ -274,3 +274,489 @@ main {
}
}
}
+
+// Post Card Variants
+.post-card {
+ margin-bottom: 2rem;
+ border-radius: 8px;
+ overflow: hidden;
+ transition: all 0.3s ease;
+
+ &:hover {
+ transform: translateY(-2px);
+ }
+
+ // Variant 1: Modern Card Layout
+ &.variant1 {
+ display: flex;
+ background: rgba(255, 255, 255, 0.02);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+
+ &:hover {
+ border-color: rgba($accent, 0.3);
+ box-shadow: 0 4px 16px rgba($accent, 0.1);
+ }
+
+ .post-card-image {
+ flex-shrink: 0;
+ width: 150px;
+ height: 100px;
+ overflow: hidden;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ transition: transform 0.3s ease;
+ }
+
+ &:hover img {
+ transform: scale(1.05);
+ }
+
+ .post-card-placeholder {
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.05);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ svg {
+ width: 24px;
+ height: 24px;
+ opacity: 0.3;
+ }
+ }
+ }
+
+ .post-card-content {
+ flex: 1;
+ padding: 1rem;
+ display: flex;
+ flex-direction: column;
+ }
+
+ .post-card-header {
+ margin-bottom: 0.5rem;
+ }
+
+ .post-card-title {
+ margin: 0 0 0.5rem 0;
+ font-size: 1rem;
+ font-weight: 600;
+
+ a {
+ color: $font-color;
+ text-decoration: none;
+ transition: color 0.2s ease;
+
+ &:hover {
+ color: $accent;
+ }
+ }
+ }
+
+ .post-card-categories {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.25rem;
+ margin-bottom: 0.5rem;
+
+ .category-tag {
+ font-size: 0.7rem;
+ padding: 0.2rem 0.5rem;
+ background: rgba($accent-dark, 0.2);
+ color: $accent-dark;
+ border-radius: 12px;
+ text-transform: uppercase;
+ font-weight: 500;
+ letter-spacing: 0.5px;
+ }
+ }
+
+ .post-card-description {
+ margin: 0 0 1rem 0;
+ font-size: 0.85rem;
+ line-height: 1.4;
+ color: rgba($font-color, 0.8);
+ flex: 1;
+ }
+
+ .post-card-meta {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding-top: 0.5rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
+
+ .meta-left {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ }
+
+ .star-indicator {
+ svg {
+ width: 14px;
+ height: 14px;
+ color: $accent;
+ }
+ }
+
+ .ttr {
+ font-size: 0.75rem;
+ color: rgba($font-color, 0.7);
+ font-style: italic;
+ }
+
+ .post-date {
+ font-size: 0.75rem;
+ color: rgba($font-color, 0.7);
+ font-weight: 600;
+ }
+ }
+
+ // Mobile responsive
+ @media (max-width: 768px) {
+ flex-direction: column;
+
+ .post-card-image {
+ width: 100%;
+ height: 150px;
+ }
+ }
+ }
+
+ // Variant 2: Compact Card Layout
+ &.variant2 {
+ display: flex;
+ align-items: center;
+ background: rgba(255, 255, 255, 0.01);
+ border-left: 3px solid transparent;
+ padding: 0.75rem;
+ transition: all 0.2s ease;
+
+ &:hover {
+ background: rgba(255, 255, 255, 0.03);
+ border-left-color: $accent;
+ transform: translateX(4px);
+ }
+
+ .post-card-image {
+ flex-shrink: 0;
+ width: 80px;
+ height: 80px;
+ border-radius: 6px;
+ overflow: hidden;
+ margin-right: 1rem;
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+
+ .post-card-placeholder {
+ width: 100%;
+ height: 100%;
+ background: rgba(255, 255, 255, 0.05);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ svg {
+ width: 20px;
+ height: 20px;
+ opacity: 0.4;
+ }
+ }
+ }
+
+ .post-card-content {
+ flex: 1;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ min-width: 0; // Allow content to shrink
+ }
+
+ .post-card-main {
+ flex: 1;
+ min-width: 0; // Allow content to shrink
+ }
+
+ .post-card-title {
+ margin: 0 0 0.25rem 0;
+ font-size: 0.9rem;
+ font-weight: 600;
+
+ a {
+ color: $font-color;
+ text-decoration: none;
+ transition: color 0.2s ease;
+
+ &:hover {
+ color: $accent;
+ }
+ }
+ }
+
+ .post-card-categories {
+ display: flex;
+ gap: 0.25rem;
+ margin-bottom: 0.25rem;
+
+ .category-badge {
+ font-size: 0.6rem;
+ padding: 0.15rem 0.4rem;
+ background: rgba($accent-ai, 0.2);
+ color: lighten($accent-ai, 20%);
+ border-radius: 8px;
+ text-transform: uppercase;
+ font-weight: 600;
+ letter-spacing: 0.3px;
+ }
+ }
+
+ .post-card-description {
+ margin: 0;
+ font-size: 0.75rem;
+ line-height: 1.3;
+ color: rgba($font-color, 0.6);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ .post-card-meta {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ flex-shrink: 0;
+
+ .star-indicator {
+ svg {
+ width: 12px;
+ height: 12px;
+ color: $accent;
+ }
+ }
+
+ .meta-info {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-end;
+ gap: 0.1rem;
+ }
+
+ .ttr {
+ font-size: 0.65rem;
+ color: rgba($font-color, 0.5);
+ font-style: italic;
+ }
+
+ .post-date {
+ font-size: 0.7rem;
+ color: rgba($font-color, 0.7);
+ font-weight: 600;
+ }
+ }
+
+ // Mobile responsive
+ @media (max-width: 768px) {
+ flex-direction: column;
+ align-items: flex-start;
+
+ .post-card-image {
+ margin-right: 0;
+ margin-bottom: 0.5rem;
+ width: 60px;
+ height: 60px;
+ }
+
+ .post-card-content {
+ width: 100%;
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.5rem;
+ }
+
+ .post-card-meta {
+ align-self: flex-end;
+ }
+ }
+ }
+
+ // Variant 3: Magazine-style Layout
+ &.variant3 {
+ .post-card-image {
+ position: relative;
+ height: 300px;
+ background-size: cover;
+ background-position: center;
+ background-repeat: no-repeat;
+ border-radius: 12px;
+ overflow: hidden;
+ }
+
+ .post-card-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(
+ 45deg,
+ rgba(0, 0, 0, 0.8) 0%,
+ rgba(0, 0, 0, 0.3) 50%,
+ transparent 100%
+ );
+ display: flex;
+ align-items: flex-end;
+ padding: 2rem;
+ transition: background 0.3s ease;
+ }
+
+ &:hover .post-card-overlay {
+ background: linear-gradient(
+ 45deg,
+ rgba(0, 0, 0, 0.9) 0%,
+ rgba(0, 0, 0, 0.4) 50%,
+ rgba(0, 0, 0, 0.1) 100%
+ );
+ }
+
+ .post-card-content {
+ color: white;
+ text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
+ }
+
+ .post-card-categories {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0.5rem;
+ margin-bottom: 1rem;
+
+ .category-pill {
+ font-size: 0.7rem;
+ padding: 0.4rem 0.8rem;
+ background: rgba($accent, 0.9);
+ color: black;
+ border-radius: 20px;
+ text-transform: uppercase;
+ font-weight: 700;
+ letter-spacing: 0.5px;
+ backdrop-filter: blur(8px);
+ }
+ }
+
+ .post-card-title {
+ margin: 0 0 1rem 0;
+ font-size: 1.5rem;
+ font-weight: 700;
+ line-height: 1.2;
+
+ a {
+ color: white;
+ text-decoration: none;
+ transition: color 0.3s ease;
+
+ &:hover {
+ color: $accent;
+ text-shadow: 0 0 20px rgba($accent, 0.5);
+ }
+ }
+ }
+
+ .post-card-description {
+ margin: 0 0 1.5rem 0;
+ font-size: 0.95rem;
+ line-height: 1.5;
+ color: rgba(255, 255, 255, 0.9);
+ }
+
+ .post-card-meta {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ width: 100%;
+
+ .meta-left {
+ display: flex;
+ align-items: center;
+ gap: 0.75rem;
+ }
+
+ .star-indicator {
+ svg {
+ width: 16px;
+ height: 16px;
+ color: $accent;
+ filter: drop-shadow(0 0 8px rgba($accent, 0.8));
+ }
+ }
+
+ .ttr {
+ font-size: 0.8rem;
+ color: rgba(255, 255, 255, 0.8);
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.3px;
+ }
+
+ .post-date {
+ font-size: 0.8rem;
+ color: rgba(255, 255, 255, 0.8);
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.3px;
+ }
+ }
+
+ .post-card-placeholder {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ svg {
+ width: 48px;
+ height: 48px;
+ opacity: 0.2;
+ color: white;
+ }
+ }
+
+ // Mobile responsive
+ @media (max-width: 768px) {
+ .post-card-image {
+ height: 250px;
+ }
+
+ .post-card-overlay {
+ padding: 1.5rem;
+ }
+
+ .post-card-title {
+ font-size: 1.25rem;
+ }
+
+ .post-card-description {
+ font-size: 0.85rem;
+ }
+
+ .post-card-meta {
+ flex-direction: column;
+ align-items: flex-start;
+ gap: 0.5rem;
+ }
+ }
+ }
+}
diff --git a/content/card-demo.md b/content/card-demo.md
new file mode 100644
index 0000000..3710239
--- /dev/null
+++ b/content/card-demo.md
@@ -0,0 +1,10 @@
+---
+title: "Post Card Variants Demo"
+description: "Showcasing different post card layouts for xayan.nu"
+hidden: true
+layout: "card-demo"
+---
+
+# Post Card Design Variants
+
+This page demonstrates three different card layout variants that can replace the current basic list format.
\ No newline at end of file
diff --git a/layouts/_default/card-demo.html b/layouts/_default/card-demo.html
new file mode 100644
index 0000000..44b1804
--- /dev/null
+++ b/layouts/_default/card-demo.html
@@ -0,0 +1,65 @@
+{{ define "main" }}
+
+
+
+
+
+
+ {{ .Content }}
+
+ Variant 1: Modern Card Layout
+ Clean, professional cards with image thumbnails, descriptions, and category tags.
+
+ {{ $posts := where .Site.Pages "Type" "posts" }}
+ {{ range first 2 $posts }}
+ {{ if not .Params.hidden }}
+ {{ partial "postCard-variant1" . }}
+ {{ end }}
+ {{ end }}
+
+
+
+
+ Variant 2: Compact Card Layout
+ Space-efficient horizontal layout, ideal for longer lists.
+
+ {{ $posts := where .Site.Pages "Type" "posts" }}
+ {{ range first 3 $posts }}
+ {{ if not .Params.hidden }}
+ {{ partial "postCard-variant2" . }}
+ {{ end }}
+ {{ end }}
+
+
+
+
+ Variant 3: Magazine-style Layout
+ Bold, visual-first design with text overlays on images.
+
+ {{ $posts := where .Site.Pages "Type" "posts" }}
+ {{ range first 2 $posts }}
+ {{ if not .Params.hidden }}
+ {{ partial "postCard-variant3" . }}
+ {{ end }}
+ {{ end }}
+
+
+
+
+ Current Layout (for comparison)
+ The existing simple list format.
+
+ {{ $posts := where .Site.Pages "Type" "posts" }}
+ {{ range first 3 $posts }}
+ {{ if not .Params.hidden }}
+ {{ partial "postCard" . }}
+ {{ end }}
+ {{ end }}
+
+
+
+
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/postCard-variant1.html b/layouts/partials/postCard-variant1.html
new file mode 100644
index 0000000..7fa0145
--- /dev/null
+++ b/layouts/partials/postCard-variant1.html
@@ -0,0 +1,67 @@
+{{ if not .Params.hidden }}
+
+
+ {{- $image := "" -}}
+ {{- with .Params.image -}}
+ {{- $image = . | absURL -}}
+ {{- else -}}
+ {{- with .Resources.GetMatch "thumb.jpg" -}}
+ {{- $image = .RelPermalink | absURL -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{ if $image }}
+
+ {{ else }}
+
+ {{ end }}
+
+
+
+
+
+ {{ with .Params.description }}
+
{{ . }}
+ {{ end }}
+
+
+
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/postCard-variant2.html b/layouts/partials/postCard-variant2.html
new file mode 100644
index 0000000..f087903
--- /dev/null
+++ b/layouts/partials/postCard-variant2.html
@@ -0,0 +1,66 @@
+{{ if not .Params.hidden }}
+
+
+ {{- $image := "" -}}
+ {{- with .Params.image -}}
+ {{- $image = . | absURL -}}
+ {{- else -}}
+ {{- with .Resources.GetMatch "thumb.jpg" -}}
+ {{- $image = .RelPermalink | absURL -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{ if $image }}
+
+ {{ else }}
+
+ {{ end }}
+
+
+
+
+
+
+ {{ if .Params.categories }}
+
+ {{ range first 2 .Params.categories }}
+ {{ . }}
+ {{ end }}
+
+ {{ end }}
+
+ {{ with .Params.description }}
+
{{ . | truncate 80 }}
+ {{ end }}
+
+
+
+ {{ $ISO_date := "2006-01-02T15:04:05Z0700" }}
+ {{ $configDateFormat := .Site.Params.dateFormat | default "2 Jan 2006" }}
+
+ {{ if .Params.isStarred }}
+
+
+
+
+
+ {{ end }}
+
+
+ {{ with .Params.ttr }}
+ {{ . }}
+ {{ end }}
+
+ {{ time.Format $configDateFormat .Date }}
+
+
+
+
+
+{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/postCard-variant3.html b/layouts/partials/postCard-variant3.html
new file mode 100644
index 0000000..283cbff
--- /dev/null
+++ b/layouts/partials/postCard-variant3.html
@@ -0,0 +1,65 @@
+{{ if not .Params.hidden }}
+
+ {{- $image := "" -}}
+ {{- with .Params.image -}}
+ {{- $image = . | absURL -}}
+ {{- else -}}
+ {{- with .Resources.GetMatch "thumb.jpg" -}}
+ {{- $image = .RelPermalink | absURL -}}
+ {{- end -}}
+ {{- end -}}
+
+
+
+
+ {{ if .Params.categories }}
+
+ {{ range first 3 .Params.categories }}
+ {{ . }}
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ with .Params.description }}
+
{{ . | truncate 120 }}
+ {{ end }}
+
+
+ {{ $ISO_date := "2006-01-02T15:04:05Z0700" }}
+ {{ $configDateFormat := .Site.Params.dateFormat | default "2 Jan 2006" }}
+
+
+
+
+ {{ time.Format $configDateFormat .Date }}
+
+
+
+
+
+ {{ if not $image }}
+
+ {{ end }}
+
+
+{{ end }}
\ No newline at end of file
From e92d8fd0abe0aeb8ba8763f1e323318bf04364ec Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 25 Sep 2025 18:19:46 +0000
Subject: [PATCH 3/6] Complete post card variants implementation with mobile
responsive design
Co-authored-by: Xayan <3319807+Xayan@users.noreply.github.com>
---
assets/sass/_custom.scss | 17 +++++++++++++++++
content/card-demo.md | 7 ++++++-
2 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/assets/sass/_custom.scss b/assets/sass/_custom.scss
index 6f30628..20aaff6 100644
--- a/assets/sass/_custom.scss
+++ b/assets/sass/_custom.scss
@@ -760,3 +760,20 @@ main {
}
}
}
+
+// Demo page styling
+.variant-demo {
+ margin: 2rem 0;
+ padding: 1rem;
+ background: rgba(255, 255, 255, 0.01);
+ border-radius: 8px;
+ border: 1px solid rgba(255, 255, 255, 0.05);
+
+ .post-card {
+ margin-bottom: 1.5rem;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+}
diff --git a/content/card-demo.md b/content/card-demo.md
index 3710239..7bb2659 100644
--- a/content/card-demo.md
+++ b/content/card-demo.md
@@ -7,4 +7,9 @@ layout: "card-demo"
# Post Card Design Variants
-This page demonstrates three different card layout variants that can replace the current basic list format.
\ No newline at end of file
+This page demonstrates three different card layout variants that can replace the current basic list format.
+
+## Live Examples
+- **[Variant 1: Modern Card Layout](/posts-variant1/)** - Clean, professional cards with image thumbnails
+- **[Variant 2: Compact Card Layout](/posts-variant2/)** - Space-efficient horizontal layout
+- **[Variant 3: Magazine-style Layout](/posts-variant3/)** - Bold, visual-first design with text overlays
\ No newline at end of file
From 3b97b82eb8bcd9688e1f59ddf97062eddbc8fc5d Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 25 Sep 2025 18:41:08 +0000
Subject: [PATCH 4/6] Implement variant 1 with alternating alignment, mobile
overlay, and series filtering
Co-authored-by: Xayan <3319807+Xayan@users.noreply.github.com>
---
assets/sass/_custom.scss | 133 +++++++++++++++++++++---
layouts/_default/list.html | 8 +-
layouts/partials/postCard-variant1.html | 85 +++++++++------
3 files changed, 173 insertions(+), 53 deletions(-)
diff --git a/assets/sass/_custom.scss b/assets/sass/_custom.scss
index 20aaff6..760a87d 100644
--- a/assets/sass/_custom.scss
+++ b/assets/sass/_custom.scss
@@ -288,21 +288,27 @@ main {
// Variant 1: Modern Card Layout
&.variant1 {
- display: flex;
+ position: relative;
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+ border-radius: 8px;
+ overflow: visible; // Allow content to wrap around image
&:hover {
border-color: rgba($accent, 0.3);
box-shadow: 0 4px 16px rgba($accent, 0.1);
}
+ // Default (left-aligned) layout
.post-card-image {
- flex-shrink: 0;
- width: 150px;
- height: 100px;
+ float: left;
+ width: 180px;
+ height: 120px;
+ margin: 1rem 1.5rem 1rem 1rem;
overflow: hidden;
+ border-radius: 6px;
+ flex-shrink: 0;
img {
width: 100%;
@@ -332,20 +338,33 @@ main {
}
.post-card-content {
- flex: 1;
padding: 1rem;
- display: flex;
- flex-direction: column;
+ overflow: hidden; // Enable text wrapping around floated image
+ }
+
+ // Desktop-only elements
+ .desktop-only {
+ display: block;
+ }
+
+ // Mobile overlay (hidden on desktop)
+ .mobile-overlay {
+ display: none;
+ }
+
+ .post-card-main-content {
+ // Content will naturally wrap around the floated image
}
.post-card-header {
- margin-bottom: 0.5rem;
+ margin-bottom: 0.75rem;
}
.post-card-title {
margin: 0 0 0.5rem 0;
- font-size: 1rem;
+ font-size: 1.1rem;
font-weight: 600;
+ line-height: 1.3;
a {
color: $font-color;
@@ -362,7 +381,7 @@ main {
display: flex;
flex-wrap: wrap;
gap: 0.25rem;
- margin-bottom: 0.5rem;
+ margin-bottom: 0.75rem;
.category-tag {
font-size: 0.7rem;
@@ -378,18 +397,20 @@ main {
.post-card-description {
margin: 0 0 1rem 0;
- font-size: 0.85rem;
- line-height: 1.4;
+ font-size: 0.9rem;
+ line-height: 1.5;
color: rgba($font-color, 0.8);
- flex: 1;
+ text-align: justify;
}
.post-card-meta {
display: flex;
justify-content: space-between;
align-items: center;
- padding-top: 0.5rem;
+ margin-top: 1rem;
+ padding-top: 0.75rem;
border-top: 1px solid rgba(255, 255, 255, 0.05);
+ clear: both; // Ensure meta appears below floated image
.meta-left {
display: flex;
@@ -418,13 +439,91 @@ main {
}
}
+ // Right-aligned variant (every other post)
+ &.right-aligned {
+ .post-card-image {
+ float: right;
+ margin: 1rem 1rem 1rem 1.5rem;
+ }
+ }
+
// Mobile responsive
@media (max-width: 768px) {
- flex-direction: column;
-
.post-card-image {
+ float: none;
width: 100%;
- height: 150px;
+ height: 180px;
+ margin: 0 0 1rem 0;
+ position: relative;
+ }
+
+ .post-card-content {
+ padding: 0;
+ }
+
+ // Hide desktop elements
+ .desktop-only {
+ display: none;
+ }
+
+ // Show mobile overlay
+ .mobile-overlay {
+ display: block;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
+ padding: 2rem 1rem 1rem 1rem;
+ color: white;
+
+ .post-card-title {
+ color: white;
+ font-size: 1.1rem;
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
+
+ a {
+ color: white;
+
+ &:hover {
+ color: $accent;
+ text-shadow: 0 0 8px rgba($accent, 0.8);
+ }
+ }
+ }
+
+ .post-card-categories {
+ margin-bottom: 0;
+
+ .category-tag {
+ background: rgba($accent, 0.9);
+ color: black;
+ font-weight: 600;
+ text-shadow: none;
+ }
+ }
+ }
+
+ .post-card-main-content {
+ padding: 1rem;
+ }
+
+ .post-card-description {
+ font-size: 0.9rem;
+ text-align: left;
+ }
+
+ .post-card-meta {
+ margin-top: 0.75rem;
+ clear: none;
+ }
+
+ // Right-aligned has same behavior on mobile
+ &.right-aligned {
+ .post-card-image {
+ float: none;
+ margin: 0 0 1rem 0;
+ }
}
}
}
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index dec3e29..8d125f2 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -10,11 +10,13 @@
{{- partial "poll.html" . -}}
{{- partial "comments.html" . -}}
{{ else }}
- {{ range .Pages.GroupByDate "2006" }}
+ {{ $allPages := where site.RegularPages "Section" "posts" }}
+ {{ $filteredPages := where $allPages "Type" "ne" "series" }}
+ {{ range $filteredPages.GroupByDate "2006" }}
{{ $year := .Key }}
{{ $year }}
- {{ range .Pages }}
- {{ partial "postCard" . }}
+ {{ range $index, $page := .Pages }}
+ {{ partial "postCard-variant1" (dict "Page" $page "Index" $index) }}
{{ end }}
{{ end }}
{{ end }}
diff --git a/layouts/partials/postCard-variant1.html b/layouts/partials/postCard-variant1.html
index 7fa0145..61b1a55 100644
--- a/layouts/partials/postCard-variant1.html
+++ b/layouts/partials/postCard-variant1.html
@@ -1,17 +1,20 @@
-{{ if not .Params.hidden }}
-
+{{ $page := .Page }}
+{{ $index := .Index }}
+{{ if not $page.Params.hidden }}
+{{ $isEven := eq (mod $index 2) 0 }}
+
{{- $image := "" -}}
- {{- with .Params.image -}}
+ {{- with $page.Params.image -}}
{{- $image = . | absURL -}}
{{- else -}}
- {{- with .Resources.GetMatch "thumb.jpg" -}}
+ {{- with $page.Resources.GetMatch "thumb.jpg" -}}
{{- $image = .RelPermalink | absURL -}}
{{- end -}}
{{- end -}}
{{ if $image }}
-
+
{{ else }}
@@ -22,46 +25,62 @@
-
{{ end }}
\ No newline at end of file
From 5b7d82b5796f1a474630f060335c2d6b70cb0d8c Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Thu, 25 Sep 2025 19:03:38 +0000
Subject: [PATCH 5/6] Clean up demo files, rename variant to postCard.html, and
fix mobile overlay positioning
Co-authored-by: Xayan <3319807+Xayan@users.noreply.github.com>
---
assets/sass/_custom.scss | 87 ++++++++++----------
content/card-demo.md | 15 ----
layouts/_default/card-demo.html | 65 ---------------
layouts/_default/list.html | 2 +-
layouts/index.html | 4 +-
layouts/partials/postCard-variant1.html | 86 -------------------
layouts/partials/postCard-variant2.html | 66 ---------------
layouts/partials/postCard-variant3.html | 65 ---------------
layouts/partials/postCard.html | 105 +++++++++++++++++++-----
9 files changed, 131 insertions(+), 364 deletions(-)
delete mode 100644 content/card-demo.md
delete mode 100644 layouts/_default/card-demo.html
delete mode 100644 layouts/partials/postCard-variant1.html
delete mode 100644 layouts/partials/postCard-variant2.html
delete mode 100644 layouts/partials/postCard-variant3.html
diff --git a/assets/sass/_custom.scss b/assets/sass/_custom.scss
index 760a87d..f164742 100644
--- a/assets/sass/_custom.scss
+++ b/assets/sass/_custom.scss
@@ -309,6 +309,7 @@ main {
overflow: hidden;
border-radius: 6px;
flex-shrink: 0;
+ position: relative; // For mobile overlay positioning
img {
width: 100%;
@@ -335,6 +336,11 @@ main {
opacity: 0.3;
}
}
+
+ // Mobile overlay (hidden on desktop)
+ .mobile-overlay {
+ display: none;
+ }
}
.post-card-content {
@@ -347,11 +353,6 @@ main {
display: block;
}
- // Mobile overlay (hidden on desktop)
- .mobile-overlay {
- display: none;
- }
-
.post-card-main-content {
// Content will naturally wrap around the floated image
}
@@ -455,55 +456,55 @@ main {
height: 180px;
margin: 0 0 1rem 0;
position: relative;
- }
-
- .post-card-content {
- padding: 0;
- }
-
- // Hide desktop elements
- .desktop-only {
- display: none;
- }
-
- // Show mobile overlay
- .mobile-overlay {
- display: block;
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
- padding: 2rem 1rem 1rem 1rem;
- color: white;
- .post-card-title {
+ // Show mobile overlay within image
+ .mobile-overlay {
+ display: block;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
+ padding: 2rem 1rem 1rem 1rem;
color: white;
- font-size: 1.1rem;
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
-
- a {
- color: white;
- &:hover {
- color: $accent;
- text-shadow: 0 0 8px rgba($accent, 0.8);
+ .post-card-title {
+ color: white;
+ font-size: 1.1rem;
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
+
+ a {
+ color: white;
+
+ &:hover {
+ color: $accent;
+ text-shadow: 0 0 8px rgba($accent, 0.8);
+ }
}
}
- }
- .post-card-categories {
- margin-bottom: 0;
+ .post-card-categories {
+ margin-bottom: 0;
- .category-tag {
- background: rgba($accent, 0.9);
- color: black;
- font-weight: 600;
- text-shadow: none;
+ .category-tag {
+ background: rgba($accent, 0.9);
+ color: black;
+ font-weight: 600;
+ text-shadow: none;
+ }
}
}
}
+ .post-card-content {
+ padding: 0;
+ }
+
+ // Hide desktop elements
+ .desktop-only {
+ display: none;
+ }
+
.post-card-main-content {
padding: 1rem;
}
diff --git a/content/card-demo.md b/content/card-demo.md
deleted file mode 100644
index 7bb2659..0000000
--- a/content/card-demo.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: "Post Card Variants Demo"
-description: "Showcasing different post card layouts for xayan.nu"
-hidden: true
-layout: "card-demo"
----
-
-# Post Card Design Variants
-
-This page demonstrates three different card layout variants that can replace the current basic list format.
-
-## Live Examples
-- **[Variant 1: Modern Card Layout](/posts-variant1/)** - Clean, professional cards with image thumbnails
-- **[Variant 2: Compact Card Layout](/posts-variant2/)** - Space-efficient horizontal layout
-- **[Variant 3: Magazine-style Layout](/posts-variant3/)** - Bold, visual-first design with text overlays
\ No newline at end of file
diff --git a/layouts/_default/card-demo.html b/layouts/_default/card-demo.html
deleted file mode 100644
index 44b1804..0000000
--- a/layouts/_default/card-demo.html
+++ /dev/null
@@ -1,65 +0,0 @@
-{{ define "main" }}
-
-
-
-
-
-
- {{ .Content }}
-
- Variant 1: Modern Card Layout
- Clean, professional cards with image thumbnails, descriptions, and category tags.
-
- {{ $posts := where .Site.Pages "Type" "posts" }}
- {{ range first 2 $posts }}
- {{ if not .Params.hidden }}
- {{ partial "postCard-variant1" . }}
- {{ end }}
- {{ end }}
-
-
-
-
- Variant 2: Compact Card Layout
- Space-efficient horizontal layout, ideal for longer lists.
-
- {{ $posts := where .Site.Pages "Type" "posts" }}
- {{ range first 3 $posts }}
- {{ if not .Params.hidden }}
- {{ partial "postCard-variant2" . }}
- {{ end }}
- {{ end }}
-
-
-
-
- Variant 3: Magazine-style Layout
- Bold, visual-first design with text overlays on images.
-
- {{ $posts := where .Site.Pages "Type" "posts" }}
- {{ range first 2 $posts }}
- {{ if not .Params.hidden }}
- {{ partial "postCard-variant3" . }}
- {{ end }}
- {{ end }}
-
-
-
-
- Current Layout (for comparison)
- The existing simple list format.
-
- {{ $posts := where .Site.Pages "Type" "posts" }}
- {{ range first 3 $posts }}
- {{ if not .Params.hidden }}
- {{ partial "postCard" . }}
- {{ end }}
- {{ end }}
-
-
-
-
-
-{{ end }}
\ No newline at end of file
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index 8d125f2..c929d53 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -16,7 +16,7 @@
{{ $year := .Key }}
{{ $year }}
{{ range $index, $page := .Pages }}
- {{ partial "postCard-variant1" (dict "Page" $page "Index" $index) }}
+ {{ partial "postCard" (dict "Page" $page "Index" $index) }}
{{ end }}
{{ end }}
{{ end }}
diff --git a/layouts/index.html b/layouts/index.html
index 3007f64..fda3194 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -26,8 +26,8 @@
{{ T "home.recent_posts" }
{{/* Show last 5 posts in reverse date order */}}
{{- $posts := $pagesToShow.ByDate.Reverse -}}
- {{- range first 5 $posts -}}
- {{ partial "postCard" . }}
+ {{- range $index, $page := first 5 $posts -}}
+ {{ partial "postCard" (dict "Page" $page "Index" $index) }}
{{- end -}}
{{- if gt (len $posts) 5 -}}
diff --git a/layouts/partials/postCard-variant1.html b/layouts/partials/postCard-variant1.html
deleted file mode 100644
index 61b1a55..0000000
--- a/layouts/partials/postCard-variant1.html
+++ /dev/null
@@ -1,86 +0,0 @@
-{{ $page := .Page }}
-{{ $index := .Index }}
-{{ if not $page.Params.hidden }}
-{{ $isEven := eq (mod $index 2) 0 }}
-
-
- {{- $image := "" -}}
- {{- with $page.Params.image -}}
- {{- $image = . | absURL -}}
- {{- else -}}
- {{- with $page.Resources.GetMatch "thumb.jpg" -}}
- {{- $image = .RelPermalink | absURL -}}
- {{- end -}}
- {{- end -}}
-
- {{ if $image }}
-
- {{ else }}
-
- {{ end }}
-
-
-
-
-
-
- {{ if $page.Params.categories }}
-
- {{ range $page.Params.categories }}
- {{ . }}
- {{ end }}
-
- {{ end }}
-
-
-
-
-
- {{ with $page.Params.description }}
-
{{ . }}
- {{ end }}
-
-
-
-
-
-{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/postCard-variant2.html b/layouts/partials/postCard-variant2.html
deleted file mode 100644
index f087903..0000000
--- a/layouts/partials/postCard-variant2.html
+++ /dev/null
@@ -1,66 +0,0 @@
-{{ if not .Params.hidden }}
-
-
- {{- $image := "" -}}
- {{- with .Params.image -}}
- {{- $image = . | absURL -}}
- {{- else -}}
- {{- with .Resources.GetMatch "thumb.jpg" -}}
- {{- $image = .RelPermalink | absURL -}}
- {{- end -}}
- {{- end -}}
-
- {{ if $image }}
-
- {{ else }}
-
- {{ end }}
-
-
-
-
-
-
- {{ if .Params.categories }}
-
- {{ range first 2 .Params.categories }}
- {{ . }}
- {{ end }}
-
- {{ end }}
-
- {{ with .Params.description }}
-
{{ . | truncate 80 }}
- {{ end }}
-
-
-
- {{ $ISO_date := "2006-01-02T15:04:05Z0700" }}
- {{ $configDateFormat := .Site.Params.dateFormat | default "2 Jan 2006" }}
-
- {{ if .Params.isStarred }}
-
-
-
-
-
- {{ end }}
-
-
- {{ with .Params.ttr }}
- {{ . }}
- {{ end }}
-
- {{ time.Format $configDateFormat .Date }}
-
-
-
-
-
-{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/postCard-variant3.html b/layouts/partials/postCard-variant3.html
deleted file mode 100644
index 283cbff..0000000
--- a/layouts/partials/postCard-variant3.html
+++ /dev/null
@@ -1,65 +0,0 @@
-{{ if not .Params.hidden }}
-
- {{- $image := "" -}}
- {{- with .Params.image -}}
- {{- $image = . | absURL -}}
- {{- else -}}
- {{- with .Resources.GetMatch "thumb.jpg" -}}
- {{- $image = .RelPermalink | absURL -}}
- {{- end -}}
- {{- end -}}
-
-
-
-
- {{ if .Params.categories }}
-
- {{ range first 3 .Params.categories }}
- {{ . }}
- {{ end }}
-
- {{ end }}
-
-
-
- {{ with .Params.description }}
-
{{ . | truncate 120 }}
- {{ end }}
-
-
- {{ $ISO_date := "2006-01-02T15:04:05Z0700" }}
- {{ $configDateFormat := .Site.Params.dateFormat | default "2 Jan 2006" }}
-
-
-
-
- {{ time.Format $configDateFormat .Date }}
-
-
-
-
-
- {{ if not $image }}
-
- {{ end }}
-
-
-{{ end }}
\ No newline at end of file
diff --git a/layouts/partials/postCard.html b/layouts/partials/postCard.html
index 723c443..c1ab4f3 100644
--- a/layouts/partials/postCard.html
+++ b/layouts/partials/postCard.html
@@ -1,24 +1,87 @@
-{{ if not .Params.hidden }}
-
-
- {{/* format date string to create an ISO 8601 string */}}
- {{ $ISO_date := "2006-01-02T15:04:05Z0700" }}
- {{ $configDateFormat := .Site.Params.dateFormat | default "2 Jan 2006" }}
- {{ if .Params.isStarred }}
-
-
+{{ $page := .Page }}
+{{ $index := .Index }}
+{{ if not $page.Params.hidden }}
+{{ $isEven := eq (mod $index 2) 0 }}
+
+
+ {{- $image := "" -}}
+ {{- with $page.Params.image -}}
+ {{- $image = . | absURL -}}
+ {{- else -}}
+ {{- with $page.Resources.GetMatch "thumb.jpg" -}}
+ {{- $image = .RelPermalink | absURL -}}
+ {{- end -}}
+ {{- end -}}
+
+ {{ if $image }}
+
+ {{ else }}
+
+ {{ end }}
+
+ {{/* Mobile overlay positioned within the image container */}}
+
+
+
+ {{ if $page.Params.categories }}
+
+ {{ range $page.Params.categories }}
+ {{ . }}
+ {{ end }}
+
+ {{ end }}
+
- {{ end }}
-
- {{ with .Params.ttr }}
-
{{ . }}
- {{ end }}
-
- {{ time.Format $configDateFormat .Date }}
- {{/* OLD FORMAT: .Date.Format $configDateFormat */}}
-
+
+
+
+
+
+ {{ with $page.Params.description }}
+
{{ . }}
+ {{ end }}
+
+
+
-{{ end }}
+{{ end }}
\ No newline at end of file
From 261364bb05388633ff95426956a1bd256b5fc08b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Damian=20St=C4=99pie=C5=84?=
Date: Fri, 26 Sep 2025 08:32:27 +0200
Subject: [PATCH 6/6] Layout improvements: modern cards for posts and
categories
---
assets/sass/_custom.scss | 896 +++++++---------------
assets/sass/_dark.scss | 270 +++++++
assets/sass/main.scss | 89 +++
content/categories/anthropology/_index.md | 4 +
content/categories/anthropology/thumb.jpg | Bin 0 -> 53537 bytes
content/categories/comp-sci/_index.md | 5 +
content/categories/comp-sci/thumb.jpg | Bin 0 -> 422976 bytes
content/categories/epistemology/_index.md | 4 +
content/categories/epistemology/thumb.jpg | Bin 0 -> 83836 bytes
content/categories/law/_index.md | 4 +
content/categories/law/thumb.jpg | Bin 0 -> 113240 bytes
content/categories/philosophy/_index.md | 4 +
content/categories/philosophy/thumb.jpg | Bin 0 -> 139243 bytes
content/categories/poli-sci/_index.md | 5 +
content/categories/poli-sci/thumb.jpg | Bin 0 -> 112174 bytes
content/categories/sociology/_index.md | 4 +
content/categories/sociology/thumb.jpg | Bin 0 -> 41835 bytes
layouts/_default/list.html | 32 +-
layouts/_default/single.html | 4 +-
layouts/index.html | 2 +-
layouts/partials/categoryCard.html | 73 ++
layouts/partials/postCard.html | 161 ++--
layouts/taxonomy.html | 14 +
layouts/term.html | 14 +
24 files changed, 856 insertions(+), 729 deletions(-)
create mode 100644 assets/sass/_dark.scss
create mode 100644 assets/sass/main.scss
create mode 100644 content/categories/anthropology/_index.md
create mode 100644 content/categories/anthropology/thumb.jpg
create mode 100644 content/categories/comp-sci/_index.md
create mode 100644 content/categories/comp-sci/thumb.jpg
create mode 100644 content/categories/epistemology/_index.md
create mode 100644 content/categories/epistemology/thumb.jpg
create mode 100644 content/categories/law/_index.md
create mode 100644 content/categories/law/thumb.jpg
create mode 100644 content/categories/philosophy/_index.md
create mode 100644 content/categories/philosophy/thumb.jpg
create mode 100644 content/categories/poli-sci/_index.md
create mode 100644 content/categories/poli-sci/thumb.jpg
create mode 100644 content/categories/sociology/_index.md
create mode 100644 content/categories/sociology/thumb.jpg
create mode 100644 layouts/partials/categoryCard.html
create mode 100644 layouts/taxonomy.html
create mode 100644 layouts/term.html
diff --git a/assets/sass/_custom.scss b/assets/sass/_custom.scss
index f164742..97bd8a5 100644
--- a/assets/sass/_custom.scss
+++ b/assets/sass/_custom.scss
@@ -7,19 +7,29 @@ $chat-user-bg: darken(desaturate($accent-dark, 40%), 25%);
$chat-assistant-bg: darken(desaturate($accent-ai, 40%), 25%);
$chat-border-radius: 12px;
-.menu {
- .menu-icon {
- margin-right: 0.8em;
- }
-}
-
.author {
margin-top: 5.6rem;
margin-bottom: 5.6rem;
}
-main {
- article.post-article {
+.navbar {
+ .menu {
+ @include media-query($on-mobile) {
+ .menu-link {
+ display: block;
+ box-sizing: border-box;
+ font-size: 1.6rem;
+ }
+
+ .menu-icon {
+ margin-right: 0.8em;
+ }
+ }
+ }
+}
+
+.page-content {
+ .post-content {
font-size: 0.95em;
a {
@@ -49,23 +59,41 @@ main {
padding-left: 0.25em;
font-size: 1.25em;
}
- }
- .header {
- margin-top: 3.2em;
+ .post-item {
+ display: flex;
+ flex-wrap: wrap; /* allow wrapping */
+ align-items: center;
+
+ .post-item-title {
+ font-size: 0.88em;
+ flex: 1; /* take remaining space */
+ }
+
+ .right-cols {
+ display: flex;
+ flex-wrap: nowrap; /* keep 2 right columns on same line until wrapping */
+ gap: 1.2em; /* spacing between them */
+ flex-shrink: 0; /* don't shrink into left space */
+
+ time {
+ font-weight: bold;
+ }
- font-size: medium;
+ .post-item-meta {
+ font-size: 0.75em;
+ }
- .header-title {
- margin-bottom: 0.5em;
- font-size: x-large;
+ .ttr {
+ font-style: italic;
+ }
}
- .terms {
- color: $greyed-out;
- word-break: keep-all;
+ a {
+ color: $accent !important;
}
}
+ }
.toc {
padding: 0;
@@ -89,101 +117,82 @@ main {
font-size: 0.9em;
}
}
+}
- .chat {
- .message {
- display: inline-block;
- position: relative;
- overflow: visible;
+.chat {
+ .message {
+ display: inline-block;
+ position: relative;
+ overflow: visible;
- padding: 0 1em;
- margin: 0.8em 0;
- max-width: 90%;
- min-width: 0;
+ padding: 0 1em;
+ margin: 0.8em 0;
+ max-width: 90%;
+ min-width: 0;
- border: 0px solid;
+ border: 0px solid;
+
+ &::before,
+ &::after {
+ content: "";
+ position: absolute;
+ }
+
+ &.user {
+ float: right;
+ border-radius: $chat-border-radius $chat-border-radius 0 $chat-border-radius;
+ border-color: $accent-dark;
+ color: $font-color;
+ background-color: $chat-user-bg;
- &::before,
&::after {
- content: "";
- position: absolute;
+ bottom: 0;
+ right: -10px;
+ border-top: 20px solid transparent;
+ border-left: 12px solid $chat-user-bg;
+ z-index: 2;
}
+ }
- &.user {
- float: right;
- border-radius: $chat-border-radius $chat-border-radius 0 $chat-border-radius;
- border-color: $accent-dark;
- color: $font-color;
- background-color: $chat-user-bg;
-
- &::after {
- bottom: 0;
- right: -10px;
- border-top: 20px solid transparent;
- border-left: 12px solid $chat-user-bg;
- z-index: 2;
- }
- }
+ &.assistant {
+ border-radius: $chat-border-radius $chat-border-radius $chat-border-radius 0;
+ border-color: $accent-ai;
+ color: $font-color;
+ background-color: $chat-assistant-bg;
- &.assistant {
- border-radius: $chat-border-radius $chat-border-radius $chat-border-radius 0;
- border-color: $accent-ai;
- color: $font-color;
- background-color: $chat-assistant-bg;
-
- &::after {
- bottom: 0;
- left: -10px;
- border-top: 20px solid transparent;
- border-right: 12px solid $chat-assistant-bg;
- z-index: 2;
- }
+ &::after {
+ bottom: 0;
+ left: -10px;
+ border-top: 20px solid transparent;
+ border-right: 12px solid $chat-assistant-bg;
+ z-index: 2;
}
+ }
- .content {
- margin: 0;
- font-size: 0.9em;
+ .content {
+ margin: 0;
+ font-size: 0.9em;
- p, ul, ol {
- margin: 0.4em inherit;
- }
+ p, ul, ol {
+ margin: 0.4em inherit;
}
}
}
}
+.header {
+ margin: 4rem 0 2rem 0;
-.posts-item-note, .post-year {
- font-size:1.2em;
-}
-
-.post-item {
- display: flex;
- flex-wrap: wrap; /* allow wrapping */
- align-items: center;
+ font-size: medium;
- .post-item-title {
- font-size: 0.88em;
- flex: 1; /* take remaining space */
+ .header-title {
+ margin-bottom: 0.5em;
+ font-size: x-large;
}
- .right-cols {
- display: flex;
- flex-wrap: nowrap; /* keep 2 right columns on same line until wrapping */
- gap: 1.2em; /* spacing between them */
- flex-shrink: 0; /* don't shrink into left space */
-
- time {
- font-weight: bold;;
- }
-
- .post-item-meta {
- font-size: 0.75em;
- }
-
- .ttr {
- font-style: italic;
- }
+ .terms {
+ color: $greyed-out;
+ word-break: keep-all;
}
}
@@ -216,6 +225,10 @@ main {
cursor: default;
}
+.center {
+ text-align: center;
+}
+
.footer {
margin-top: 2.8em;
}
@@ -275,605 +288,234 @@ main {
}
}
-// Post Card Variants
.post-card {
- margin-bottom: 2rem;
+ margin: 1.5rem 0;
border-radius: 8px;
- overflow: hidden;
transition: all 0.3s ease;
+ min-height: calc(120px + 2rem);
+
+ position: relative;
+ background: rgba(255, 255, 255, 0.02);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+ border-radius: 8px;
+ overflow: visible; // Allow content to wrap around image
&:hover {
transform: translateY(-2px);
+ border-color: rgba($accent, 0.3);
+ box-shadow: 0 4px 16px rgba($accent, 0.1);
}
- // Variant 1: Modern Card Layout
- &.variant1 {
- position: relative;
- background: rgba(255, 255, 255, 0.02);
- border: 1px solid rgba(255, 255, 255, 0.1);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
- border-radius: 8px;
- overflow: visible; // Allow content to wrap around image
+ a {
+ color: white;
+ text-decoration: none;
+ transition: color 0.25s ease;
&:hover {
- border-color: rgba($accent, 0.3);
- box-shadow: 0 4px 16px rgba($accent, 0.1);
- }
-
- // Default (left-aligned) layout
- .post-card-image {
- float: left;
- width: 180px;
- height: 120px;
- margin: 1rem 1.5rem 1rem 1rem;
- overflow: hidden;
- border-radius: 6px;
- flex-shrink: 0;
- position: relative; // For mobile overlay positioning
-
- img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- transition: transform 0.3s ease;
- }
-
- &:hover img {
- transform: scale(1.05);
- }
-
- .post-card-placeholder {
- width: 100%;
- height: 100%;
- background: rgba(255, 255, 255, 0.05);
- display: flex;
- align-items: center;
- justify-content: center;
-
- svg {
- width: 24px;
- height: 24px;
- opacity: 0.3;
- }
- }
-
- // Mobile overlay (hidden on desktop)
- .mobile-overlay {
- display: none;
- }
- }
-
- .post-card-content {
- padding: 1rem;
- overflow: hidden; // Enable text wrapping around floated image
+ color: $accent !important;
}
+ }
- // Desktop-only elements
- .desktop-only {
+ // Default (left-aligned) layout
+ .post-card-image {
+ float: left;
+ width: 180px;
+ height: 120px;
+ margin: 1rem 1.5rem 1rem 1rem;
+ overflow: hidden;
+ border-radius: 6px;
+ flex-shrink: 0;
+ position: relative; // For mobile overlay positioning
+
+ img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
display: block;
+ transform-origin: center center;
+ will-change: transform;
+ transition: transform 0.3s ease;
}
- .post-card-main-content {
- // Content will naturally wrap around the floated image
- }
-
- .post-card-header {
- margin-bottom: 0.75rem;
+ // Mobile overlay (hidden on desktop)
+ .mobile-overlay {
+ display: none;
}
+ }
- .post-card-title {
- margin: 0 0 0.5rem 0;
- font-size: 1.1rem;
- font-weight: 600;
- line-height: 1.3;
-
- a {
- color: $font-color;
- text-decoration: none;
- transition: color 0.2s ease;
- &:hover {
- color: $accent;
- }
- }
- }
+ &:hover .post-card-image img {
+ transform: scale(1.05);
+ transition: transform 0.5s ease;
+ }
- .post-card-categories {
- display: flex;
- flex-wrap: wrap;
- gap: 0.25rem;
- margin-bottom: 0.75rem;
-
- .category-tag {
- font-size: 0.7rem;
- padding: 0.2rem 0.5rem;
- background: rgba($accent-dark, 0.2);
- color: $accent-dark;
- border-radius: 12px;
- text-transform: uppercase;
- font-weight: 500;
- letter-spacing: 0.5px;
- }
- }
+ &:nth-child(even) .post-card-image {
+ float: right;
+ margin: 1rem 1rem 1rem 1.5rem;
+ }
- .post-card-description {
- margin: 0 0 1rem 0;
- font-size: 0.9rem;
- line-height: 1.5;
- color: rgba($font-color, 0.8);
- text-align: justify;
- }
+ .post-card-content {
+ padding: 1rem;
+ }
- .post-card-meta {
- display: flex;
- justify-content: space-between;
- align-items: center;
- margin-top: 1rem;
- padding-top: 0.75rem;
- border-top: 1px solid rgba(255, 255, 255, 0.05);
- clear: both; // Ensure meta appears below floated image
-
- .meta-left {
- display: flex;
- align-items: center;
- gap: 0.5rem;
- }
+ // Desktop-only elements
+ .desktop-only {
+ display: block;
+ }
- .star-indicator {
- svg {
- width: 14px;
- height: 14px;
- color: $accent;
- }
- }
+ .post-card-header {
+ margin-bottom: 0.8rem;
+ }
- .ttr {
- font-size: 0.75rem;
- color: rgba($font-color, 0.7);
- font-style: italic;
- }
+ .post-card-title {
+ margin: 0;
+ font-size: 1.1rem;
+ font-weight: 600;
+ line-height: 1.3;
+ }
- .post-date {
- font-size: 0.75rem;
- color: rgba($font-color, 0.7);
- font-weight: 600;
- }
- }
+ .post-card-categories {
+ display: block;
+ margin: 0.25em 0;
- // Right-aligned variant (every other post)
- &.right-aligned {
- .post-card-image {
- float: right;
- margin: 1rem 1rem 1rem 1.5rem;
- }
+ .category-tag {
+ display: inline-block;
+ font-size: 0.7rem;
+ padding: 0rem 0.4rem;
+ margin: 0 0.1rem;
+ background: rgba($accent-dark, 0.2);
+ color: $accent-dark;
+ text-shadow: black 2px 2px 4px;
+ box-shadow: black 2px 2px 4px;
+ border-radius: 8px;
+ text-transform: uppercase;
+ font-weight: 500;
+ letter-spacing: 0.5px;
}
+ }
- // Mobile responsive
- @media (max-width: 768px) {
- .post-card-image {
- float: none;
- width: 100%;
- height: 180px;
- margin: 0 0 1rem 0;
- position: relative;
-
- // Show mobile overlay within image
- .mobile-overlay {
- display: block;
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
- padding: 2rem 1rem 1rem 1rem;
- color: white;
-
- .post-card-title {
- color: white;
- font-size: 1.1rem;
- text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
-
- a {
- color: white;
-
- &:hover {
- color: $accent;
- text-shadow: 0 0 8px rgba($accent, 0.8);
- }
- }
- }
-
- .post-card-categories {
- margin-bottom: 0;
-
- .category-tag {
- background: rgba($accent, 0.9);
- color: black;
- font-weight: 600;
- text-shadow: none;
- }
- }
- }
- }
-
- .post-card-content {
- padding: 0;
- }
-
- // Hide desktop elements
- .desktop-only {
- display: none;
- }
-
- .post-card-main-content {
- padding: 1rem;
- }
-
- .post-card-description {
- font-size: 0.9rem;
- text-align: left;
- }
-
- .post-card-meta {
- margin-top: 0.75rem;
- clear: none;
- }
-
- // Right-aligned has same behavior on mobile
- &.right-aligned {
- .post-card-image {
- float: none;
- margin: 0 0 1rem 0;
- }
- }
- }
+ .post-card-description {
+ margin: 0;
+ font-size: 0.9rem;
+ line-height: 1.5;
+ color: rgba($font-color, 0.8);
}
- // Variant 2: Compact Card Layout
- &.variant2 {
+ .post-card-meta {
display: flex;
+ justify-content: space-between;
align-items: center;
- background: rgba(255, 255, 255, 0.01);
- border-left: 3px solid transparent;
- padding: 0.75rem;
- transition: all 0.2s ease;
-
- &:hover {
- background: rgba(255, 255, 255, 0.03);
- border-left-color: $accent;
- transform: translateX(4px);
- }
-
- .post-card-image {
- flex-shrink: 0;
- width: 80px;
- height: 80px;
- border-radius: 6px;
- overflow: hidden;
- margin-right: 1rem;
-
- img {
- width: 100%;
- height: 100%;
- object-fit: cover;
- }
-
- .post-card-placeholder {
- width: 100%;
- height: 100%;
- background: rgba(255, 255, 255, 0.05);
- display: flex;
- align-items: center;
- justify-content: center;
-
- svg {
- width: 20px;
- height: 20px;
- opacity: 0.4;
- }
- }
- }
+ margin-top: 1rem;
+ padding-top: 0.75rem;
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
+ clear: both;
- .post-card-content {
- flex: 1;
+ .meta-left {
display: flex;
- justify-content: space-between;
align-items: center;
- min-width: 0; // Allow content to shrink
+ gap: 0.5rem;
}
- .post-card-main {
- flex: 1;
- min-width: 0; // Allow content to shrink
+ .ttr {
+ color: rgba($font-color, 0.7);
+ font-style: italic;
+ font-size: 0.8rem;
}
- .post-card-title {
- margin: 0 0 0.25rem 0;
+ .post-date {
+ color: rgba($font-color, 0.7);
+ font-weight: bold;
font-size: 0.9rem;
- font-weight: 600;
-
- a {
- color: $font-color;
- text-decoration: none;
- transition: color 0.2s ease;
-
- &:hover {
- color: $accent;
- }
- }
}
+ }
- .post-card-categories {
- display: flex;
- gap: 0.25rem;
- margin-bottom: 0.25rem;
-
- .category-badge {
- font-size: 0.6rem;
- padding: 0.15rem 0.4rem;
- background: rgba($accent-ai, 0.2);
- color: lighten($accent-ai, 20%);
- border-radius: 8px;
- text-transform: uppercase;
- font-weight: 600;
- letter-spacing: 0.3px;
- }
- }
-
- .post-card-description {
- margin: 0;
- font-size: 0.75rem;
- line-height: 1.3;
- color: rgba($font-color, 0.6);
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- .post-card-meta {
- display: flex;
- align-items: center;
- gap: 0.75rem;
- flex-shrink: 0;
-
- .star-indicator {
- svg {
- width: 12px;
- height: 12px;
- color: $accent;
- }
- }
-
- .meta-info {
- display: flex;
- flex-direction: column;
- align-items: flex-end;
- gap: 0.1rem;
- }
+ .category-card-meta {
+ margin: 0.6em 0;
+ color: rgba($font-color, 0.7);
+ font-weight: bold;
+ font-size: 0.9rem;
+ }
- .ttr {
- font-size: 0.65rem;
- color: rgba($font-color, 0.5);
- font-style: italic;
- }
+ &:nth-child(even) {
+ text-align: right;
+ }
- .post-date {
- font-size: 0.7rem;
- color: rgba($font-color, 0.7);
- font-weight: 600;
- }
- }
+ @include media-query($on-mobile) {
+ .post-card-image {
+ float: right;
+ width: 100%;
+ height: 180px;
+ margin: 0 0 0.5em 0;
+ position: relative;
+ border-radius: 8px 8px 0 0;
- // Mobile responsive
- @media (max-width: 768px) {
- flex-direction: column;
- align-items: flex-start;
+ // Show mobile overlay within image
+ .mobile-overlay {
+ display: block;
+ position: absolute;
+ pointer-events: none;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 180px;
+ background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
+ padding: 0rem 1rem 1rem 1rem;
+ color: white;
- .post-card-image {
- margin-right: 0;
- margin-bottom: 0.5rem;
- width: 60px;
- height: 60px;
- }
+ .post-card-categories {
+ margin-top: 0.6em;
+ float: right;
- .post-card-content {
- width: 100%;
- flex-direction: column;
- align-items: flex-start;
- gap: 0.5rem;
- }
+ .category-tag {
+ background: rgba($accent-dark, 0.6);
+ color: white;
+ font-weight: 600;
+ }
+ }
- .post-card-meta {
- align-self: flex-end;
+ .post-card-title {
+ color: white;
+ font-size: 1.1rem;
+ position: inherit;
+ text-align: left;
+ margin: 0;
+ bottom: 1.6em;
+ text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
+ }
}
}
- }
-
- // Variant 3: Magazine-style Layout
- &.variant3 {
- .post-card-image {
- position: relative;
- height: 300px;
- background-size: cover;
- background-position: center;
- background-repeat: no-repeat;
- border-radius: 12px;
- overflow: hidden;
- }
-
- .post-card-overlay {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background: linear-gradient(
- 45deg,
- rgba(0, 0, 0, 0.8) 0%,
- rgba(0, 0, 0, 0.3) 50%,
- transparent 100%
- );
- display: flex;
- align-items: flex-end;
- padding: 2rem;
- transition: background 0.3s ease;
- }
- &:hover .post-card-overlay {
- background: linear-gradient(
- 45deg,
- rgba(0, 0, 0, 0.9) 0%,
- rgba(0, 0, 0, 0.4) 50%,
- rgba(0, 0, 0, 0.1) 100%
- );
+ &:nth-child(even) .post-card-image {
+ float: right;
+ margin: 0 0 0.5em 0;
}
.post-card-content {
- color: white;
- text-shadow: 0 2px 8px rgba(0, 0, 0, 0.8);
+ padding: 0;
}
- .post-card-categories {
- display: flex;
- flex-wrap: wrap;
- gap: 0.5rem;
- margin-bottom: 1rem;
-
- .category-pill {
- font-size: 0.7rem;
- padding: 0.4rem 0.8rem;
- background: rgba($accent, 0.9);
- color: black;
- border-radius: 20px;
- text-transform: uppercase;
- font-weight: 700;
- letter-spacing: 0.5px;
- backdrop-filter: blur(8px);
- }
+ // Hide desktop elements
+ .desktop-only {
+ display: none;
}
- .post-card-title {
- margin: 0 0 1rem 0;
- font-size: 1.5rem;
- font-weight: 700;
- line-height: 1.2;
-
- a {
- color: white;
- text-decoration: none;
- transition: color 0.3s ease;
-
- &:hover {
- color: $accent;
- text-shadow: 0 0 20px rgba($accent, 0.5);
- }
- }
+ .post-card-main-content {
+ padding: 1rem;
}
.post-card-description {
- margin: 0 0 1.5rem 0;
- font-size: 0.95rem;
- line-height: 1.5;
- color: rgba(255, 255, 255, 0.9);
+ font-size: 0.9rem;
+ text-align: left;
}
.post-card-meta {
- display: flex;
- justify-content: space-between;
- align-items: center;
- width: 100%;
-
- .meta-left {
- display: flex;
- align-items: center;
- gap: 0.75rem;
- }
-
- .star-indicator {
- svg {
- width: 16px;
- height: 16px;
- color: $accent;
- filter: drop-shadow(0 0 8px rgba($accent, 0.8));
- }
- }
-
- .ttr {
- font-size: 0.8rem;
- color: rgba(255, 255, 255, 0.8);
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.3px;
- }
-
- .post-date {
- font-size: 0.8rem;
- color: rgba(255, 255, 255, 0.8);
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.3px;
- }
- }
-
- .post-card-placeholder {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
- display: flex;
- align-items: center;
- justify-content: center;
-
- svg {
- width: 48px;
- height: 48px;
- opacity: 0.2;
- color: white;
- }
+ margin-top: 0.75rem;
+ clear: none;
}
- // Mobile responsive
- @media (max-width: 768px) {
- .post-card-image {
- height: 250px;
- }
-
- .post-card-overlay {
- padding: 1.5rem;
- }
-
- .post-card-title {
- font-size: 1.25rem;
- }
-
- .post-card-description {
- font-size: 0.85rem;
- }
-
- .post-card-meta {
- flex-direction: column;
- align-items: flex-start;
- gap: 0.5rem;
- }
- }
- }
-}
-
-// Demo page styling
-.variant-demo {
- margin: 2rem 0;
- padding: 1rem;
- background: rgba(255, 255, 255, 0.01);
- border-radius: 8px;
- border: 1px solid rgba(255, 255, 255, 0.05);
-
- .post-card {
- margin-bottom: 1.5rem;
-
- &:last-child {
- margin-bottom: 0;
+ .category-card-meta {
+ text-align: left;
}
}
}
diff --git a/assets/sass/_dark.scss b/assets/sass/_dark.scss
new file mode 100644
index 0000000..8992b24
--- /dev/null
+++ b/assets/sass/_dark.scss
@@ -0,0 +1,270 @@
+body {
+ color: $dark-text-base-color;
+ background-color: $dark-black;
+}
+
+// Headings
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ color: $dark-white;
+}
+
+// Table
+table {
+ thead {
+ color: $dark-white;
+ border-color: $dark-light;
+ }
+
+ th,
+ td,
+ tr {
+ border-color: $dark-light;
+ }
+}
+
+// Post
+.page-content {
+ a {
+ color: $dark-text-link-blue;
+
+ &:hover,
+ &:active,
+ &:focus {
+ color: $dark-text-link-blue-active;
+ }
+ }
+
+ h3 {
+ border-color: $dark-light;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ color: $dark-white;
+ }
+}
+
+// ToC
+.toc {
+ background-color: $dark-toc-bg;
+}
+
+// Go to top
+#totop {
+ color: $dark-text-base-color;
+ background-color: $dark-go-top-bg;
+
+ &:hover {
+ background-color: $dark-go-top-bg-hover;
+ }
+}
+
+// Inline code
+li>code,
+p>code {
+ font-size: 0.9em;
+ padding: 1px 3px;
+ position: relative;
+ top: -1px;
+ color: $dark-inline-code-text;
+ background-color: $dark-inline-code-bg;
+ border-radius: 2px;
+ border: 1px solid rgba(128, 128, 128, 0.1);
+}
+
+// kbd tag
+kbd {
+ color: $dark-inline-code-text;
+ background-color: $dark-inline-code-bg;
+}
+
+// horizontal rule
+hr {
+ border-color: $dark-light;
+}
+
+// Post Meta
+.post-meta {
+ color: $dark-gray;
+
+ time {
+ &::after {
+ background-color: $dark-light;
+ }
+ }
+
+ span[itemprop="author"] {
+ border-color: $dark-light;
+ }
+}
+
+// Link
+a {
+ color: inherit;
+ text-decoration-color: $dark-smoke;
+
+ &:hover {
+ color: $dark-text-link-blue;
+ }
+
+ &:focus {
+ outline-color: rgba(44, 118, 246, 0.6);
+ }
+}
+
+// List
+li {
+ &:before {
+ color: $dark-white;
+ }
+}
+
+// Blockquote
+blockquote {
+ color: $dark-blockquote-text;
+ border-color: $dark-bloquote-border;
+}
+
+// Strong, Bold
+strong,
+b {
+ color: $dark-white;
+}
+
+// Navbar
+.navbar {
+ border-color: $dark-light;
+
+ .menu {
+ a#mode {
+ .mode-sunny {
+ display: block;
+ }
+
+ .mode-moon {
+ display: none;
+ }
+ }
+
+ .menu-link {
+ color: $dark-white;
+ }
+
+ @include media-query($on-mobile) {
+ background-color: $dark-black;
+ border-color: $dark-light;
+
+ input[type="checkbox"]:checked~.trigger {
+ background: $dark-black;
+ }
+ }
+ }
+}
+
+// Post Item
+.post-item {
+ &:not(:first-child) {
+ border-color: $dark-light;
+ }
+
+ .post-item-date {
+ color: $dark-white;
+ }
+
+ .post-item-title {
+ a {
+ color: $dark-text-base-color;
+
+ &:hover,
+ &focus {
+ color: $dark-white;
+ }
+ }
+ }
+}
+
+// Post Navigation
+.post-nav {
+ border-color: $dark-light;
+
+ .post-nav-item {
+ font-weight: $bold-weight;
+
+ .post-title {
+ color: $dark-white;
+ opacity: 0.9;
+ }
+
+ &:hover,
+ &:focus {
+ .post-title {
+ color: $dark-text-link-blue-active;
+ }
+ }
+
+ .nav-arrow {
+ color: $dark-gray;
+ }
+ }
+
+ @include media-query($on-mobile) {
+ .post-nav-item:nth-child(even) {
+ border-color: $dark-light;
+ }
+ }
+}
+
+// Footer
+.footer {
+ span.footer_item {
+ color: $dark-white;
+ }
+
+ a.footer_item:not(:last-child) {
+ color: $dark-white;
+ }
+
+ .footer_copyright {
+ color: $dark-gray;
+ opacity: 1;
+ }
+}
+
+// 404 Page
+.not-found {
+ .title {
+ color: $dark-white;
+ text-shadow: 1px 0px 0px $dark-text-link-blue;
+ }
+
+ .phrase {
+ color: $dark-text-base-color;
+ }
+
+ .solution {
+ color: $dark-text-link-blue;
+ }
+
+ .solution:hover {
+ color: $dark-text-link-blue-active;
+ }
+}
+
+.search-article {
+ input[type="search"] {
+ color: $dark-text-base-color;
+
+ &::-webkit-input-placeholder {
+ color: rgba(128, 128, 128, 0.8);
+ }
+ }
+}
diff --git a/assets/sass/main.scss b/assets/sass/main.scss
new file mode 100644
index 0000000..8b72547
--- /dev/null
+++ b/assets/sass/main.scss
@@ -0,0 +1,89 @@
+//////////////// 1. Light Colors /////////////////
+$text-base-color: #434648;
+$text-link-blue: #003fff;
+$text-link-blue-active: #0036c7;
+$bloquote-border: #c4c8cc;
+$blockquote-text: #525b66;
+$inline-code-text: #333638;
+$inline-code-bg: #d8dbe2;
+$toc-bg: #edecec;
+$go-top-bg: #dfe0e397;
+$go-top-bg-hover: #dfe0e3;
+
+$black: #0d122b;
+$light: #ececec;
+$smoke: #d2c7c7;
+$gray: #6b7886;
+$white: #fff;
+
+//////////////// 2. Dark Colors /////////////////
+$dark-text-base-color: #babdc4;
+$dark-text-link-blue: #77a8fd;
+$dark-text-link-blue-active: #5292ff;
+$dark-bloquote-border: #4a4d56;
+$dark-blockquote-text: #9b9ba3;
+$dark-inline-code-text: #c2c4ca;
+$dark-inline-code-bg: #2d2d2d;
+$dark-toc-bg: #323232;
+$dark-go-top-bg: #676767b3;
+$dark-go-top-bg-hover: #676767;
+
+$dark-black: #131418;
+$dark-white: #eaeaea;
+$dark-light: #1b1d25;
+$dark-smoke: #4a4d56;
+$dark-gray: #767f87;
+
+//////////////// 3. Fonts preferences /////////////////
+$sans-family: Roboto, sans-serif;
+$mono-family: Consolas, monospace;
+$base-font-size: 16px;
+$medium-font-size: $base-font-size * 0.938;
+$small-font-size: $base-font-size * 0.875;
+$base-line-height: 1.85;
+
+// Font weight
+// $light-weight: 300; // uncomment if necessary
+$normal-weight: 400;
+$bold-weight: 700;
+// $black-weight: 900; // uncomment if necessary
+
+//////////////// 4.Responsive design (media queries) /////////////////
+$wide-size: 890px;
+$narrow-size: 720px;
+
+// Padding unit
+$spacing-full: 30px;
+$spacing-half: $spacing-full / 2;
+
+// Screen sizes
+$on-mobile: 768px;
+$on-tablet: 769px;
+$on-desktop: 1024px;
+$on-widescreen: 1152px;
+
+@mixin media-query($device) {
+ @media screen and (max-width: $device) {
+ @content;
+ }
+}
+
+@mixin relative-font-size($ratio) {
+ font-size: $base-font-size * $ratio;
+}
+
+//////////////// 5. Import all sass files /////////////////
+
+@import "fonts";
+@import "base";
+@import "navbar";
+@import "layout";
+@import "post";
+@import "code";
+
+@import "tableOfContent";
+@import "miscellaneous";
+@import "listpage";
+@import "goToTop";
+@import "dark";
+@import "custom";
diff --git a/content/categories/anthropology/_index.md b/content/categories/anthropology/_index.md
new file mode 100644
index 0000000..00b7980
--- /dev/null
+++ b/content/categories/anthropology/_index.md
@@ -0,0 +1,4 @@
+---
+title: "Anthropology"
+description: "Ever watched Indiana Jones? It's not like that."
+---
diff --git a/content/categories/anthropology/thumb.jpg b/content/categories/anthropology/thumb.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d90fb1cd7064d244606e13d080297519ded40b53
GIT binary patch
literal 53537
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