summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/assets
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-15 21:18:40 +0200
committerDanilo M. <danix@danix.xyz>2026-04-15 21:18:40 +0200
commiteb8a17482fc138c861db685f9efc86871bf2d7d2 (patch)
treea092c13a4858d434340e2c683748226b0004308e /themes/danix-xyz-hacker/assets
parent1ac2e084c2a2f2fb9d04a2bfabd1e308799ee9fc (diff)
downloaddanixxyz-eb8a17482fc138c861db685f9efc86871bf2d7d2.tar.gz
danixxyz-eb8a17482fc138c861db685f9efc86871bf2d7d2.zip
Complete multilingual theme implementation with language-aware menus
- Refactor hugo.toml to define menus separately for each language using pageRef - Simplify header and hamburger-menu templates to use Hugo-native language handling - Update content structure with proper language prefix organization - Remove JavaScript language-switcher in favor of Hugo's native approach - Add new layout templates for /is/ section with list view - Update HANDOFF.md with current implementation status - Rebuild minified CSS with updated template changes Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes/danix-xyz-hacker/assets')
-rw-r--r--themes/danix-xyz-hacker/assets/css/main.css50
-rw-r--r--themes/danix-xyz-hacker/assets/css/main.min.css73
-rw-r--r--themes/danix-xyz-hacker/assets/js/language-switcher.js24
3 files changed, 116 insertions, 31 deletions
diff --git a/themes/danix-xyz-hacker/assets/css/main.css b/themes/danix-xyz-hacker/assets/css/main.css
index 1421443..c66092b 100644
--- a/themes/danix-xyz-hacker/assets/css/main.css
+++ b/themes/danix-xyz-hacker/assets/css/main.css
@@ -26,7 +26,7 @@ html.theme-light {
--accent2: #10b981;
--accent-glow: rgba(147, 51, 234, 0.1);
--text: #1f2937;
- --text-dim: #6b7280;
+ --text-dim: #374151;
--muted: #d1d5db;
}
@@ -146,6 +146,54 @@ html.theme-light {
}
}
+/* Prose overrides for light theme */
+html.theme-light .prose,
+html.theme-light .prose-invert {
+ color: var(--text);
+}
+
+html.theme-light .prose a,
+html.theme-light .prose-invert a {
+ color: var(--accent);
+}
+
+html.theme-light .prose strong,
+html.theme-light .prose-invert strong {
+ color: var(--text);
+}
+
+html.theme-light .prose code,
+html.theme-light .prose-invert code {
+ color: var(--accent2);
+}
+
+html.theme-light .prose pre,
+html.theme-light .prose-invert pre {
+ background-color: var(--surface);
+ color: var(--text);
+}
+
+html.theme-light .prose h1,
+html.theme-light .prose h2,
+html.theme-light .prose h3,
+html.theme-light .prose h4,
+html.theme-light .prose h5,
+html.theme-light .prose h6,
+html.theme-light .prose-invert h1,
+html.theme-light .prose-invert h2,
+html.theme-light .prose-invert h3,
+html.theme-light .prose-invert h4,
+html.theme-light .prose-invert h5,
+html.theme-light .prose-invert h6 {
+ color: var(--text);
+}
+
+html.theme-light .prose blockquote,
+html.theme-light .prose-invert blockquote {
+ color: var(--text);
+ border-left-color: var(--accent);
+}
+
/* Responsive utilities */
@media (max-width: 768px) {
.sm\:container {
diff --git a/themes/danix-xyz-hacker/assets/css/main.min.css b/themes/danix-xyz-hacker/assets/css/main.min.css
index 5f38686..3ab93b7 100644
--- a/themes/danix-xyz-hacker/assets/css/main.min.css
+++ b/themes/danix-xyz-hacker/assets/css/main.min.css
@@ -1316,11 +1316,6 @@ button,
order: 9999;
}
-.mx-6 {
- margin-left: 1.5rem;
- margin-right: 1.5rem;
-}
-
.mx-auto {
margin-left: auto;
margin-right: auto;
@@ -1443,6 +1438,10 @@ button,
flex: 1 1 0%;
}
+.flex-shrink-0 {
+ flex-shrink: 0;
+}
+
.translate-x-full {
--tw-translate-x: 100%;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -1697,6 +1696,11 @@ button,
line-height: 1.25rem;
}
+.text-xl {
+ font-size: 1.25rem;
+ line-height: 1.75rem;
+}
+
.text-xs {
font-size: 0.75rem;
line-height: 1rem;
@@ -1828,10 +1832,59 @@ html.theme-light {
--accent2: #10b981;
--accent-glow: rgba(147, 51, 234, 0.1);
--text: #1f2937;
- --text-dim: #6b7280;
+ --text-dim: #374151;
--muted: #d1d5db;
}
+/* Prose overrides for light theme */
+
+html.theme-light .prose,
+html.theme-light .prose-invert {
+ color: var(--text);
+}
+
+html.theme-light .prose a,
+html.theme-light .prose-invert a {
+ color: var(--accent);
+}
+
+html.theme-light .prose strong,
+html.theme-light .prose-invert strong {
+ color: var(--text);
+}
+
+html.theme-light .prose code,
+html.theme-light .prose-invert code {
+ color: var(--accent2);
+}
+
+html.theme-light .prose pre,
+html.theme-light .prose-invert pre {
+ background-color: var(--surface);
+ color: var(--text);
+}
+
+html.theme-light .prose h1,
+html.theme-light .prose h2,
+html.theme-light .prose h3,
+html.theme-light .prose h4,
+html.theme-light .prose h5,
+html.theme-light .prose h6,
+html.theme-light .prose-invert h1,
+html.theme-light .prose-invert h2,
+html.theme-light .prose-invert h3,
+html.theme-light .prose-invert h4,
+html.theme-light .prose-invert h5,
+html.theme-light .prose-invert h6 {
+ color: var(--text);
+}
+
+html.theme-light .prose blockquote,
+html.theme-light .prose-invert blockquote {
+ color: var(--text);
+ border-left-color: var(--accent);
+}
+
/* Responsive utilities */
@media (max-width: 768px) {
@@ -1868,6 +1921,10 @@ html.theme-light {
color: var(--accent);
}
+.hover\:opacity-80:hover {
+ opacity: 0.8;
+}
+
.hover\:opacity-90:hover {
opacity: 0.9;
}
@@ -1922,6 +1979,10 @@ html.theme-light {
grid-column: span 2 / span 2;
}
+ .md\:inline {
+ display: inline;
+ }
+
.md\:flex {
display: flex;
}
diff --git a/themes/danix-xyz-hacker/assets/js/language-switcher.js b/themes/danix-xyz-hacker/assets/js/language-switcher.js
deleted file mode 100644
index 3d8ffac..0000000
--- a/themes/danix-xyz-hacker/assets/js/language-switcher.js
+++ /dev/null
@@ -1,24 +0,0 @@
-document.addEventListener('DOMContentLoaded', function() {
- // Get all language switcher elements
- const langSwitchers = document.querySelectorAll('[data-lang-switch]');
-
- if (!langSwitchers || langSwitchers.length === 0) {
- return;
- }
-
- // Add click event listener to each language switcher
- langSwitchers.forEach(function(switcher) {
- switcher.addEventListener('click', function(e) {
- e.preventDefault();
-
- // Get the language code from the data attribute
- const langCode = this.getAttribute('data-lang-switch');
-
- // Store the language preference in localStorage
- localStorage.setItem('preferred-language', langCode);
-
- // Navigate to the language-specific URL
- window.location.href = this.href;
- });
- });
-});