summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/assets/css
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-15 23:39:11 +0200
committerDanilo M. <danix@danix.xyz>2026-04-15 23:39:11 +0200
commit455b5bf0a8cfba658446cc6f3fd2c5964b45d507 (patch)
tree54e0b3319e540ed2a693fdfebf8f583fae345203 /themes/danix-xyz-hacker/assets/css
parentabf79d7123469dd27b59e3fb154aba41523688e7 (diff)
downloaddanixxyz-455b5bf0a8cfba658446cc6f3fd2c5964b45d507.tar.gz
danixxyz-455b5bf0a8cfba658446cc6f3fd2c5964b45d507.zip
Implement article type colors, reading progress bar, and optimize layout
- Add colored type pills to article list items (overlay on thumbnails, top-right) - Add type accent corner (L-shaped) to single article headers with colored pill badge in metadata - Implement smooth reading progress bar at viewport top (violet→green gradient) - Progress bar only appears on single pages/articles, not on lists or homepage - Constrain article width to max-w-7xl for comfortable reading with side gutters - Use CSS variables for all colors to support dark/light theme switching - Add reading-progress.js with requestAnimationFrame throttling for performance - Update HANDOFF.md with current progress Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes/danix-xyz-hacker/assets/css')
-rw-r--r--themes/danix-xyz-hacker/assets/css/main.min.css115
1 files changed, 110 insertions, 5 deletions
diff --git a/themes/danix-xyz-hacker/assets/css/main.min.css b/themes/danix-xyz-hacker/assets/css/main.min.css
index 858df86..74161bc 100644
--- a/themes/danix-xyz-hacker/assets/css/main.min.css
+++ b/themes/danix-xyz-hacker/assets/css/main.min.css
@@ -1292,6 +1292,10 @@ button,
position: fixed;
}
+.absolute {
+ position: absolute;
+}
+
.relative {
position: relative;
}
@@ -1304,14 +1308,30 @@ button,
inset: 0px;
}
+.bottom-0 {
+ bottom: 0px;
+}
+
+.left-0 {
+ left: 0px;
+}
+
.right-0 {
right: 0px;
}
+.right-3 {
+ right: 0.75rem;
+}
+
.top-0 {
top: 0px;
}
+.top-3 {
+ top: 0.75rem;
+}
+
.z-10 {
z-index: 10;
}
@@ -1333,6 +1353,11 @@ button,
margin-right: auto;
}
+.my-6 {
+ margin-top: 1.5rem;
+ margin-bottom: 1.5rem;
+}
+
.my-8 {
margin-top: 2rem;
margin-bottom: 2rem;
@@ -1370,6 +1395,17 @@ button,
margin-top: 0.75rem;
}
+.mt-4 {
+ margin-top: 1rem;
+}
+
+.line-clamp-3 {
+ overflow: hidden;
+ display: -webkit-box;
+ -webkit-box-orient: vertical;
+ -webkit-line-clamp: 3;
+}
+
.block {
display: block;
}
@@ -1390,6 +1426,14 @@ button,
display: none;
}
+.aspect-video {
+ aspect-ratio: 16 / 9;
+}
+
+.h-1 {
+ height: 0.25rem;
+}
+
.h-32 {
height: 8rem;
}
@@ -1414,6 +1458,10 @@ button,
min-height: calc(100vh - 200px);
}
+.w-1 {
+ width: 0.25rem;
+}
+
.w-32 {
width: 8rem;
}
@@ -1434,10 +1482,22 @@ button,
max-width: 42rem;
}
+.max-w-3xl {
+ max-width: 48rem;
+}
+
.max-w-4xl {
max-width: 56rem;
}
+.max-w-7xl {
+ max-width: 80rem;
+}
+
+.max-w-lg {
+ max-width: 32rem;
+}
+
.max-w-none {
max-width: none;
}
@@ -1467,6 +1527,10 @@ button,
resize: none;
}
+.resize {
+ resize: both;
+}
+
.flex-col {
flex-direction: column;
}
@@ -1513,12 +1577,22 @@ button,
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
+.space-y-3 > :not([hidden]) ~ :not([hidden]) {
+ --tw-space-y-reverse: 0;
+ margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
+ margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
+}
+
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
+.overflow-hidden {
+ overflow: hidden;
+}
+
.overflow-y-auto {
overflow-y: auto;
}
@@ -1609,6 +1683,10 @@ button,
padding: 1rem;
}
+.p-5 {
+ padding: 1.25rem;
+}
+
.p-6 {
padding: 1.5rem;
}
@@ -1638,16 +1716,16 @@ button,
padding-right: 2rem;
}
-.py-0\.5 {
- padding-top: 0.125rem;
- padding-bottom: 0.125rem;
-}
-
.py-1 {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
+.py-1\.5 {
+ padding-top: 0.375rem;
+ padding-bottom: 0.375rem;
+}
+
.py-12 {
padding-top: 3rem;
padding-bottom: 3rem;
@@ -1676,6 +1754,10 @@ button,
padding-left: 1.5rem;
}
+.pt-2 {
+ padding-top: 0.5rem;
+}
+
.pt-8 {
padding-top: 2rem;
}
@@ -1738,6 +1820,10 @@ button,
font-style: italic;
}
+.not-italic {
+ font-style: normal;
+}
+
.leading-relaxed {
line-height: 1.625;
}
@@ -1814,6 +1900,10 @@ button,
transition-duration: 150ms;
}
+.duration-100 {
+ transition-duration: 100ms;
+}
+
.duration-200 {
transition-duration: 200ms;
}
@@ -1992,6 +2082,10 @@ html.theme-light .prose-invert blockquote {
color: var(--accent);
}
+.hover\:underline:hover {
+ text-decoration-line: underline;
+}
+
.hover\:opacity-80:hover {
opacity: 0.8;
}
@@ -2077,6 +2171,17 @@ html.theme-light .prose-invert blockquote {
opacity: 0.5;
}
+.group\/cta:hover .group-hover\/cta\:translate-x-1 {
+ --tw-translate-x: 0.25rem;
+ 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));
+}
+
+.group:hover .group-hover\:scale-105 {
+ --tw-scale-x: 1.05;
+ --tw-scale-y: 1.05;
+ 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));
+}
+
.group:hover .group-hover\:text-accent {
color: var(--accent);
}