summaryrefslogtreecommitdiffstats
path: root/assets/css/components/card.css
diff options
context:
space:
mode:
Diffstat (limited to 'assets/css/components/card.css')
-rw-r--r--assets/css/components/card.css99
1 files changed, 99 insertions, 0 deletions
diff --git a/assets/css/components/card.css b/assets/css/components/card.css
index 6a8cfaf..3d218bc 100644
--- a/assets/css/components/card.css
+++ b/assets/css/components/card.css
@@ -153,3 +153,102 @@
height: 150px;
}
}
+
+/* ─── Homepage article cards ─────────────────────────────── */
+
+.articles-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
+ gap: 1.5rem;
+ margin-bottom: 2rem;
+}
+
+@media (max-width: 768px) {
+ .articles-grid { grid-template-columns: 1fr; }
+}
+
+.article-card {
+ background: var(--surface);
+ border: 1px solid var(--border);
+ border-radius: 0;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ transition: var(--transition);
+}
+
+.article-card:hover {
+ transform: translate(0, -4px);
+ box-shadow: 0 8px 30px var(--accent-glow);
+ border-color: var(--accent);
+}
+
+/* Badge background set via inline style in template using var(--type-*) */
+.article-type {
+ font-family: var(--font-mono);
+ font-size: var(--fs-badge);
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+ padding: 0.4rem 1rem;
+ color: var(--bg);
+ width: fit-content;
+ border-radius: 3px;
+ margin: 1rem 1rem 0;
+}
+
+.article-content {
+ padding: 1rem 1rem 1.5rem;
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+}
+
+.article-title {
+ font-family: var(--font-head);
+ font-size: 1.1rem;
+ font-weight: 700;
+ line-height: 1.3;
+ margin-bottom: 0.5rem;
+ letter-spacing: -0.025em;
+}
+
+.article-title a { color: var(--text); text-decoration: none; }
+.article-title a:hover { color: var(--accent); }
+
+.article-excerpt {
+ color: var(--text-dim);
+ font-size: 0.9rem;
+ line-height: 1.6;
+ flex: 1;
+ margin-bottom: 1rem;
+ display: -webkit-box;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ overflow: hidden;
+}
+
+.article-meta {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding-top: 1rem;
+ border-top: 1px solid var(--border);
+ font-family: var(--font-mono);
+ font-size: 0.75rem;
+ color: var(--muted);
+ text-transform: uppercase;
+ letter-spacing: 0.08em;
+ margin-top: auto;
+}
+
+/* .article-read named distinctly from .article-link (used in 404.css) */
+.article-read {
+ color: var(--accent);
+ text-decoration: none;
+ font-weight: 600;
+ letter-spacing: 0.05em;
+ transition: color var(--duration-fast) ease;
+}
+
+.article-read:hover { color: var(--accent2); }