|
5 | 5 | } |
6 | 6 |
|
7 | 7 | .post-list { |
8 | | - list-style: none; |
9 | 8 | padding: 0; |
10 | | - margin: 0; |
| 9 | + margin: var(--space-3xl) 0; |
| 10 | + display: grid; |
| 11 | + gap: var(--space-xl); |
11 | 12 | } |
12 | 13 |
|
13 | | -.post-list li { |
14 | | - list-style: none; |
15 | | - padding: 0; |
16 | | - margin: 25px 0; |
| 14 | +.post-list__item { |
| 15 | + display: block; |
| 16 | +} |
| 17 | + |
| 18 | +.post-card { |
| 19 | + position: relative; |
| 20 | + display: block; |
| 21 | + padding: var(--space-xl) var(--space-2xl); |
| 22 | + border-radius: var(--radius-lg); |
| 23 | + border: 1px solid var(--color-light-border-strong, #d1d5e5); |
| 24 | + background: var(--color-light-surface); |
| 25 | + text-decoration: none; |
| 26 | + color: inherit; |
| 27 | + box-shadow: 0 8px 18px rgba(20, 20, 50, 0.05); |
| 28 | + transition: box-shadow var(--duration-fast) var(--ease-out), |
| 29 | + border-color var(--duration-fast) var(--ease-out); |
| 30 | +} |
| 31 | + |
| 32 | +.post-card:hover, |
| 33 | +.post-card:focus-visible { |
| 34 | + border-color: var(--color-light-link); |
| 35 | + box-shadow: 0 12px 24px rgba(20, 20, 50, 0.08); |
| 36 | +} |
| 37 | + |
| 38 | +.post-card__meta { |
| 39 | + display: inline-flex; |
| 40 | + align-items: center; |
| 41 | + gap: var(--space-xs); |
| 42 | + font-size: var(--text-xs); |
| 43 | + font-weight: 600; |
| 44 | + letter-spacing: 0.08em; |
| 45 | + text-transform: uppercase; |
| 46 | + color: var(--color-light-text-secondary); |
| 47 | + margin-bottom: var(--space-sm); |
| 48 | +} |
| 49 | + |
| 50 | +.post-card__date { |
| 51 | + color: inherit; |
| 52 | +} |
| 53 | + |
| 54 | +.post-card__title { |
| 55 | + font-size: var(--text-2xl); |
| 56 | + line-height: 1.2; |
| 57 | + margin: 0 0 var(--space-sm); |
| 58 | + color: var(--color-light-text-primary); |
17 | 59 | } |
18 | 60 |
|
19 | | -.post-list li::before { |
20 | | - display: none; |
| 61 | +.post-card:hover .post-card__title { |
| 62 | + color: var(--color-light-link); |
| 63 | +} |
| 64 | + |
| 65 | +.post-card__excerpt { |
| 66 | + margin: 0 0 var(--space-lg); |
| 67 | + color: var(--color-light-text-secondary); |
| 68 | + font-size: var(--text-base); |
| 69 | + line-height: 1.6; |
21 | 70 | } |
22 | 71 |
|
23 | 72 | .blog-entry .meta { |
24 | 73 | color: var(--color-gray-light); |
25 | 74 | } |
26 | 75 |
|
27 | | -.post-list li a::after { |
| 76 | +.post-card__cta { |
| 77 | + position: relative; |
| 78 | + display: inline-flex; |
| 79 | + align-items: center; |
| 80 | + gap: var(--space-xs); |
| 81 | + font-size: var(--text-sm); |
| 82 | + font-weight: 600; |
| 83 | + color: var(--color-light-link); |
| 84 | + text-decoration: none; |
| 85 | + transition: color var(--duration-fast) var(--ease-out); |
| 86 | +} |
| 87 | + |
| 88 | +.post-card__cta::after { |
28 | 89 | content: ''; |
29 | 90 | position: absolute; |
30 | | - bottom: -2px; |
31 | 91 | left: 0; |
32 | | - width: 0; |
| 92 | + bottom: -3px; |
| 93 | + width: 100%; |
33 | 94 | height: 2px; |
34 | 95 | background: var(--color-light-link); |
35 | | - transition: width var(--duration-normal) var(--ease-out); |
| 96 | + transform: scaleX(0); |
| 97 | + transform-origin: left; |
| 98 | + transition: transform var(--duration-normal) var(--ease-out); |
36 | 99 | } |
37 | 100 |
|
38 | | -.post-list li a:hover::after { |
39 | | - width: 100%; |
| 101 | +.post-card:hover .post-card__cta::after, |
| 102 | +.post-card:focus-visible .post-card__cta::after { |
| 103 | + transform: scaleX(1); |
40 | 104 | } |
41 | 105 |
|
42 | 106 | /* Pagination */ |
|
68 | 132 | color: var(--color-dark-text-secondary); |
69 | 133 | } |
70 | 134 |
|
71 | | -.dark .post-list li a { |
72 | | - border-bottom-color: var(--color-dark-border); |
| 135 | +.dark .post-card { |
| 136 | + background: var(--color-dark-surface); |
| 137 | + border-color: var(--color-dark-border); |
| 138 | + box-shadow: 0 10px 25px rgba(10, 10, 30, 0.24); |
| 139 | + color: var(--color-dark-text-primary); |
73 | 140 | } |
74 | 141 |
|
75 | | -.dark .post-list li a::after { |
76 | | - background: var(--color-dark-text-accent); |
| 142 | +.dark .post-card:hover, |
| 143 | +.dark .post-card:focus-visible { |
| 144 | + border-color: var(--color-dark-text-accent); |
| 145 | + box-shadow: 0 20px 40px rgba(10, 10, 30, 0.35); |
| 146 | +} |
| 147 | + |
| 148 | +.dark .post-card__meta { |
| 149 | + color: var(--color-dark-text-muted); |
77 | 150 | } |
78 | 151 |
|
79 | | -.dark .post-list li a h2 { |
| 152 | +.dark .post-card__title { |
80 | 153 | color: var(--color-dark-text-primary); |
81 | 154 | } |
82 | 155 |
|
83 | | -.dark .post-list li a:hover h2 { |
| 156 | +.dark .post-card:hover .post-card__title { |
84 | 157 | color: var(--color-dark-text-accent); |
85 | 158 | } |
86 | 159 |
|
87 | | -.dark .post-list li a .meta { |
88 | | - color: var(--color-dark-text-muted); |
| 160 | +.dark .post-card__excerpt { |
| 161 | + color: var(--color-dark-text-secondary); |
89 | 162 | } |
90 | 163 |
|
91 | | -.dark .post-list li a .excerpt { |
92 | | - color: var(--color-dark-text-secondary); |
| 164 | +.dark .post-card__cta { |
| 165 | + color: var(--color-dark-text-accent); |
| 166 | +} |
| 167 | + |
| 168 | +.dark .post-card__cta::after { |
| 169 | + background: var(--color-dark-text-accent); |
93 | 170 | } |
94 | 171 |
|
95 | 172 | /* Pagination dark mode - inherit from .btn-secondary, add link color */ |
|
0 commit comments