@okjavis/nodebb-theme-javis 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scss/_base.scss +9 -1
- package/scss/_buttons.scss +12 -32
- package/scss/_cards.scss +98 -54
- package/scss/_categories.scss +26 -11
- package/scss/_feed.scss +82 -43
- package/scss/_forms.scss +65 -27
- package/scss/_sidebar.scss +74 -20
- package/scss/_variables.scss +47 -12
package/package.json
CHANGED
package/scss/_base.scss
CHANGED
|
@@ -122,9 +122,17 @@ h6 {
|
|
|
122
122
|
a {
|
|
123
123
|
color: $jv-primary;
|
|
124
124
|
text-decoration: none;
|
|
125
|
-
transition: color
|
|
125
|
+
transition: color $jv-transition-fast; // Modern transition
|
|
126
126
|
|
|
127
127
|
&:hover {
|
|
128
128
|
color: $jv-primary-hover;
|
|
129
129
|
}
|
|
130
|
+
|
|
131
|
+
// Focus state for accessibility
|
|
132
|
+
&:focus-visible {
|
|
133
|
+
outline: none;
|
|
134
|
+
text-decoration: underline;
|
|
135
|
+
text-decoration-thickness: 2px;
|
|
136
|
+
text-underline-offset: 2px;
|
|
137
|
+
}
|
|
130
138
|
}
|
package/scss/_buttons.scss
CHANGED
|
@@ -26,7 +26,7 @@ $jv-info-hover: #2563eb;
|
|
|
26
26
|
font-size: 14px;
|
|
27
27
|
font-weight: 500;
|
|
28
28
|
line-height: 1.4;
|
|
29
|
-
transition:
|
|
29
|
+
transition: background-color $jv-transition-fast, border-color $jv-transition-fast, color $jv-transition-fast; // Modern specific transitions
|
|
30
30
|
border: 1px solid transparent;
|
|
31
31
|
cursor: pointer;
|
|
32
32
|
text-decoration: none;
|
|
@@ -35,7 +35,7 @@ $jv-info-hover: #2563eb;
|
|
|
35
35
|
// Focus ring for accessibility
|
|
36
36
|
&:focus {
|
|
37
37
|
outline: none;
|
|
38
|
-
box-shadow:
|
|
38
|
+
box-shadow: $jv-focus-ring;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
&:focus:not(:focus-visible) {
|
|
@@ -43,7 +43,8 @@ $jv-info-hover: #2563eb;
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
&:focus-visible {
|
|
46
|
-
|
|
46
|
+
outline: none;
|
|
47
|
+
box-shadow: $jv-focus-ring;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
// Disabled state
|
|
@@ -74,12 +75,10 @@ $jv-info-hover: #2563eb;
|
|
|
74
75
|
background-color: $jv-primary-hover;
|
|
75
76
|
border-color: $jv-primary-hover;
|
|
76
77
|
box-shadow: $jv-shadow-button-hover;
|
|
77
|
-
transform: translateY(-1px);
|
|
78
78
|
color: #fff;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
&:active {
|
|
82
|
-
transform: translateY(0);
|
|
83
82
|
box-shadow: $jv-shadow-button;
|
|
84
83
|
}
|
|
85
84
|
}
|
|
@@ -105,7 +104,7 @@ $jv-info-hover: #2563eb;
|
|
|
105
104
|
color: $jv-text-main;
|
|
106
105
|
|
|
107
106
|
&:hover {
|
|
108
|
-
background-color:
|
|
107
|
+
background-color: $jv-hover-bg; // Consistent hover state
|
|
109
108
|
border-color: $jv-border-strong;
|
|
110
109
|
color: $jv-text-main;
|
|
111
110
|
}
|
|
@@ -155,11 +154,6 @@ $jv-info-hover: #2563eb;
|
|
|
155
154
|
background-color: $jv-success-hover;
|
|
156
155
|
border-color: $jv-success-hover;
|
|
157
156
|
color: #fff;
|
|
158
|
-
transform: translateY(-1px);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
&:active {
|
|
162
|
-
transform: translateY(0);
|
|
163
157
|
}
|
|
164
158
|
}
|
|
165
159
|
|
|
@@ -172,11 +166,6 @@ $jv-info-hover: #2563eb;
|
|
|
172
166
|
background-color: $jv-danger-hover;
|
|
173
167
|
border-color: $jv-danger-hover;
|
|
174
168
|
color: #fff;
|
|
175
|
-
transform: translateY(-1px);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
&:active {
|
|
179
|
-
transform: translateY(0);
|
|
180
169
|
}
|
|
181
170
|
}
|
|
182
171
|
|
|
@@ -189,11 +178,6 @@ $jv-info-hover: #2563eb;
|
|
|
189
178
|
background-color: $jv-warning-hover;
|
|
190
179
|
border-color: $jv-warning-hover;
|
|
191
180
|
color: #fff;
|
|
192
|
-
transform: translateY(-1px);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
&:active {
|
|
196
|
-
transform: translateY(0);
|
|
197
181
|
}
|
|
198
182
|
}
|
|
199
183
|
|
|
@@ -206,11 +190,6 @@ $jv-info-hover: #2563eb;
|
|
|
206
190
|
background-color: $jv-info-hover;
|
|
207
191
|
border-color: $jv-info-hover;
|
|
208
192
|
color: #fff;
|
|
209
|
-
transform: translateY(-1px);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
&:active {
|
|
213
|
-
transform: translateY(0);
|
|
214
193
|
}
|
|
215
194
|
}
|
|
216
195
|
|
|
@@ -218,12 +197,12 @@ $jv-info-hover: #2563eb;
|
|
|
218
197
|
// LIGHT/SUBTLE BUTTON
|
|
219
198
|
// ===========================================================
|
|
220
199
|
.btn-light {
|
|
221
|
-
background-color:
|
|
200
|
+
background-color: $jv-hover-bg; // Consistent with hover state
|
|
222
201
|
border-color: transparent;
|
|
223
202
|
color: $jv-text-main;
|
|
224
203
|
|
|
225
204
|
&:hover {
|
|
226
|
-
background-color:
|
|
205
|
+
background-color: $jv-active-bg; // Consistent active state
|
|
227
206
|
color: $jv-text-main;
|
|
228
207
|
}
|
|
229
208
|
}
|
|
@@ -237,7 +216,7 @@ $jv-info-hover: #2563eb;
|
|
|
237
216
|
color: $jv-text-muted;
|
|
238
217
|
|
|
239
218
|
&:hover {
|
|
240
|
-
background-color:
|
|
219
|
+
background-color: $jv-hover-bg; // Consistent hover state
|
|
241
220
|
color: $jv-text-main;
|
|
242
221
|
}
|
|
243
222
|
}
|
|
@@ -353,11 +332,12 @@ $jv-info-hover: #2563eb;
|
|
|
353
332
|
height: 56px;
|
|
354
333
|
border-radius: 50%;
|
|
355
334
|
padding: 0;
|
|
356
|
-
box-shadow:
|
|
335
|
+
box-shadow: $jv-shadow-lg; // shadcn large shadow
|
|
336
|
+
transition: $jv-transition-shadow, transform $jv-transition-fast; // Modern transitions
|
|
357
337
|
|
|
358
338
|
&:hover {
|
|
359
|
-
box-shadow:
|
|
360
|
-
transform: translateY(-2px);
|
|
339
|
+
box-shadow: $jv-shadow-xl; // shadcn extra large shadow
|
|
340
|
+
transform: translateY(-2px); // FABs are meant to lift on hover
|
|
361
341
|
}
|
|
362
342
|
|
|
363
343
|
i {
|
package/scss/_cards.scss
CHANGED
|
@@ -7,15 +7,22 @@
|
|
|
7
7
|
.topic-card {
|
|
8
8
|
display: flex;
|
|
9
9
|
background: $jv-surface;
|
|
10
|
-
border-radius: $jv-radius-
|
|
10
|
+
border-radius: $jv-radius-sm; // 8px - shadcn standard
|
|
11
11
|
border: 1px solid $jv-border-subtle;
|
|
12
|
-
margin-bottom: $jv-space-
|
|
13
|
-
|
|
12
|
+
margin-bottom: $jv-space-2; // 8dp grid
|
|
13
|
+
box-shadow: $jv-shadow-sm; // shadcn subtle shadow
|
|
14
|
+
transition: $jv-transition-shadow, border-color $jv-transition-fast; // Modern smooth transitions
|
|
14
15
|
overflow: hidden;
|
|
15
16
|
|
|
16
17
|
&:hover {
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
box-shadow: $jv-shadow-md; // shadcn hover shadow
|
|
19
|
+
border-color: $jv-border-strong; // Subtle border darkening
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Focus state for accessibility
|
|
23
|
+
&:focus-within {
|
|
24
|
+
outline: none;
|
|
25
|
+
box-shadow: $jv-shadow-md, $jv-focus-ring;
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
// Deleted/scheduled states
|
|
@@ -36,10 +43,10 @@
|
|
|
36
43
|
flex-direction: column;
|
|
37
44
|
align-items: center;
|
|
38
45
|
justify-content: flex-start;
|
|
39
|
-
padding: $jv-space-6 $jv-space-4;
|
|
46
|
+
padding: $jv-space-6 $jv-space-4; // 24dp vertical, 16dp horizontal - Material grid
|
|
40
47
|
background: rgba(0, 0, 0, 0.02);
|
|
41
48
|
min-width: 44px;
|
|
42
|
-
gap:
|
|
49
|
+
gap: $jv-space-1; // 4dp - Material grid
|
|
43
50
|
}
|
|
44
51
|
|
|
45
52
|
.vote-btn {
|
|
@@ -93,10 +100,10 @@
|
|
|
93
100
|
// ===========================================================
|
|
94
101
|
.topic-content {
|
|
95
102
|
flex: 1;
|
|
96
|
-
padding: $jv-space-
|
|
103
|
+
padding: $jv-space-3; // 12dp - Material grid
|
|
97
104
|
display: flex;
|
|
98
105
|
flex-direction: column;
|
|
99
|
-
gap: $jv-space-
|
|
106
|
+
gap: $jv-space-3; // 12dp - Material grid
|
|
100
107
|
min-width: 0; // Allow text truncation
|
|
101
108
|
}
|
|
102
109
|
|
|
@@ -105,27 +112,27 @@
|
|
|
105
112
|
display: flex;
|
|
106
113
|
align-items: center;
|
|
107
114
|
flex-wrap: wrap;
|
|
108
|
-
gap: $jv-space-
|
|
109
|
-
font-size:
|
|
110
|
-
color: $jv-text-
|
|
115
|
+
gap: $jv-space-3; // 12dp - Material grid
|
|
116
|
+
font-size: 14px; // Slightly larger for readability
|
|
117
|
+
color: $jv-text-soft; // More subtle
|
|
111
118
|
|
|
112
119
|
.meta-separator {
|
|
113
120
|
color: $jv-text-soft;
|
|
114
121
|
}
|
|
115
122
|
|
|
116
123
|
.author-link {
|
|
117
|
-
color: $jv-text-
|
|
124
|
+
color: $jv-text-soft; // More subtle - not competing with title
|
|
118
125
|
text-decoration: none;
|
|
119
|
-
font-weight:
|
|
126
|
+
font-weight: 400; // Normal weight
|
|
120
127
|
|
|
121
128
|
&:hover {
|
|
122
129
|
color: $jv-primary;
|
|
123
|
-
text-decoration: underline;
|
|
124
130
|
}
|
|
125
131
|
}
|
|
126
132
|
|
|
127
133
|
.meta-time {
|
|
128
134
|
color: $jv-text-soft;
|
|
135
|
+
font-size: 13px;
|
|
129
136
|
}
|
|
130
137
|
|
|
131
138
|
// Category badge override
|
|
@@ -140,10 +147,10 @@
|
|
|
140
147
|
// Topic Title
|
|
141
148
|
.topic-card .topic-title {
|
|
142
149
|
margin: 0;
|
|
143
|
-
font-size:
|
|
144
|
-
font-weight:
|
|
145
|
-
line-height:
|
|
146
|
-
letter-spacing: -0.
|
|
150
|
+
font-size: 20px; // Larger for prominence - consistent with feed
|
|
151
|
+
font-weight: 700; // Bolder for better hierarchy
|
|
152
|
+
line-height: 1.4; // Better readability
|
|
153
|
+
letter-spacing: -0.02em; // Tighter for modern feel
|
|
147
154
|
|
|
148
155
|
a {
|
|
149
156
|
color: $jv-text-main;
|
|
@@ -159,7 +166,7 @@
|
|
|
159
166
|
.topic-labels {
|
|
160
167
|
display: flex;
|
|
161
168
|
flex-wrap: wrap;
|
|
162
|
-
gap: $jv-space-2;
|
|
169
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
163
170
|
|
|
164
171
|
.topic-badge {
|
|
165
172
|
display: inline-flex;
|
|
@@ -197,7 +204,7 @@
|
|
|
197
204
|
.topic-tags {
|
|
198
205
|
display: flex;
|
|
199
206
|
flex-wrap: wrap;
|
|
200
|
-
gap: $jv-space-2;
|
|
207
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
201
208
|
|
|
202
209
|
.topic-tag {
|
|
203
210
|
font-size: 11px;
|
|
@@ -222,7 +229,7 @@
|
|
|
222
229
|
position: relative;
|
|
223
230
|
width: fit-content;
|
|
224
231
|
max-width: 100%;
|
|
225
|
-
border-radius: $jv-radius-
|
|
232
|
+
border-radius: $jv-radius-sm; // 8px - Material Design standard
|
|
226
233
|
overflow: hidden;
|
|
227
234
|
|
|
228
235
|
img {
|
|
@@ -231,7 +238,7 @@
|
|
|
231
238
|
max-width: 100%;
|
|
232
239
|
width: auto;
|
|
233
240
|
object-fit: cover;
|
|
234
|
-
border-radius: $jv-radius-
|
|
241
|
+
border-radius: $jv-radius-sm; // 8px - Material Design standard
|
|
235
242
|
}
|
|
236
243
|
|
|
237
244
|
.thumb-count {
|
|
@@ -269,40 +276,51 @@
|
|
|
269
276
|
.topic-actions {
|
|
270
277
|
display: flex;
|
|
271
278
|
align-items: center;
|
|
272
|
-
gap: $jv-space-
|
|
273
|
-
padding-top: $jv-space-
|
|
279
|
+
gap: $jv-space-3; // 12dp - Material grid
|
|
280
|
+
padding-top: $jv-space-3; // 12dp - Material grid
|
|
274
281
|
margin-top: auto;
|
|
275
282
|
}
|
|
276
283
|
|
|
277
284
|
.action-btn {
|
|
278
285
|
display: inline-flex;
|
|
279
286
|
align-items: center;
|
|
280
|
-
gap:
|
|
281
|
-
padding:
|
|
282
|
-
font-size:
|
|
283
|
-
font-weight:
|
|
287
|
+
gap: $jv-space-2; // 8dp grid
|
|
288
|
+
padding: $jv-space-2 $jv-space-3; // 8dp vertical, 12dp horizontal
|
|
289
|
+
font-size: 14px;
|
|
290
|
+
font-weight: 600;
|
|
284
291
|
color: $jv-text-muted;
|
|
285
292
|
background: transparent;
|
|
286
293
|
border: none;
|
|
287
|
-
border-radius: $jv-radius-
|
|
294
|
+
border-radius: $jv-radius-sm; // 8px shadcn standard
|
|
288
295
|
cursor: pointer;
|
|
289
296
|
text-decoration: none;
|
|
290
|
-
transition: background-color
|
|
297
|
+
transition: background-color $jv-transition-fast, color $jv-transition-fast; // Modern transitions
|
|
291
298
|
|
|
292
299
|
&:hover {
|
|
293
|
-
background:
|
|
300
|
+
background: $jv-hover-bg; // Consistent hover state
|
|
294
301
|
color: $jv-text-main;
|
|
295
302
|
}
|
|
296
303
|
|
|
304
|
+
// Focus state for accessibility
|
|
305
|
+
&:focus-visible {
|
|
306
|
+
outline: none;
|
|
307
|
+
box-shadow: $jv-focus-ring;
|
|
308
|
+
}
|
|
309
|
+
|
|
297
310
|
i {
|
|
298
|
-
font-size:
|
|
311
|
+
font-size: 18px; // Larger icons
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Make numbers bold
|
|
315
|
+
span {
|
|
316
|
+
font-weight: 700;
|
|
299
317
|
}
|
|
300
318
|
}
|
|
301
319
|
|
|
302
320
|
.action-stat {
|
|
303
321
|
display: inline-flex;
|
|
304
322
|
align-items: center;
|
|
305
|
-
gap:
|
|
323
|
+
gap: $jv-space-1; // 4dp - Material grid
|
|
306
324
|
font-size: $jv-font-size-xs;
|
|
307
325
|
color: $jv-text-soft;
|
|
308
326
|
margin-left: auto;
|
|
@@ -334,7 +352,7 @@
|
|
|
334
352
|
|
|
335
353
|
.topic-actions {
|
|
336
354
|
flex-wrap: wrap;
|
|
337
|
-
gap: $jv-space-2;
|
|
355
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
338
356
|
}
|
|
339
357
|
|
|
340
358
|
.action-btn span {
|
|
@@ -351,23 +369,32 @@
|
|
|
351
369
|
// ===========================================================
|
|
352
370
|
li[component="post"].posts-list-item {
|
|
353
371
|
background: $jv-surface;
|
|
354
|
-
border-radius: $jv-radius-
|
|
372
|
+
border-radius: $jv-radius-sm; // 8px - shadcn standard
|
|
355
373
|
border: 1px solid $jv-border-subtle;
|
|
356
|
-
padding: $jv-space-
|
|
357
|
-
margin-bottom: $jv-space-
|
|
358
|
-
|
|
374
|
+
padding: $jv-space-4 $jv-space-3; // 16dp vertical, 12dp horizontal
|
|
375
|
+
margin-bottom: $jv-space-2; // 8dp grid
|
|
376
|
+
box-shadow: $jv-shadow-sm; // shadcn subtle shadow
|
|
377
|
+
transition: $jv-transition-shadow, border-color $jv-transition-fast; // Modern transitions
|
|
359
378
|
|
|
360
379
|
&:hover {
|
|
380
|
+
box-shadow: $jv-shadow-md; // shadcn hover shadow
|
|
361
381
|
border-color: $jv-border-strong;
|
|
362
|
-
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
// Focus state for accessibility
|
|
385
|
+
&:focus-within {
|
|
386
|
+
outline: none;
|
|
387
|
+
box-shadow: $jv-shadow-md, $jv-focus-ring;
|
|
363
388
|
}
|
|
364
389
|
}
|
|
365
390
|
|
|
366
391
|
li[component="post"] {
|
|
367
392
|
.topic-title {
|
|
368
|
-
font-size:
|
|
369
|
-
font-weight:
|
|
370
|
-
|
|
393
|
+
font-size: 20px; // Larger for prominence
|
|
394
|
+
font-weight: 700; // Bolder for better hierarchy
|
|
395
|
+
line-height: 1.4; // Better readability
|
|
396
|
+
margin-bottom: $jv-space-3; // 12dp - Material grid
|
|
397
|
+
letter-spacing: -0.02em; // Tighter for modern feel
|
|
371
398
|
|
|
372
399
|
a {
|
|
373
400
|
color: $jv-text-main;
|
|
@@ -382,18 +409,27 @@ li[component="post"] {
|
|
|
382
409
|
.post-body {
|
|
383
410
|
display: flex;
|
|
384
411
|
flex-direction: column;
|
|
385
|
-
gap: $jv-space-
|
|
412
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
386
413
|
}
|
|
387
414
|
|
|
388
415
|
.post-info {
|
|
389
|
-
font-size:
|
|
390
|
-
color: $jv-text-
|
|
416
|
+
font-size: 14px; // Slightly larger for readability
|
|
417
|
+
color: $jv-text-soft; // More subtle
|
|
418
|
+
|
|
419
|
+
a {
|
|
420
|
+
color: $jv-text-soft; // More subtle
|
|
421
|
+
font-weight: 400; // Normal weight
|
|
422
|
+
|
|
423
|
+
&:hover {
|
|
424
|
+
color: $jv-primary;
|
|
425
|
+
}
|
|
426
|
+
}
|
|
391
427
|
}
|
|
392
428
|
|
|
393
429
|
.content {
|
|
394
|
-
font-size:
|
|
395
|
-
line-height:
|
|
396
|
-
color: $jv-text-
|
|
430
|
+
font-size: 15px; // Slightly larger for better readability
|
|
431
|
+
line-height: 1.6;
|
|
432
|
+
color: $jv-text-muted;
|
|
397
433
|
|
|
398
434
|
p {
|
|
399
435
|
margin-bottom: $jv-space-4;
|
|
@@ -402,6 +438,7 @@ li[component="post"] {
|
|
|
402
438
|
|
|
403
439
|
.timeago {
|
|
404
440
|
color: $jv-text-soft;
|
|
441
|
+
font-size: 13px;
|
|
405
442
|
}
|
|
406
443
|
}
|
|
407
444
|
|
|
@@ -416,15 +453,22 @@ li[component="post"] {
|
|
|
416
453
|
// Category/Topic List Item (fallback for other templates)
|
|
417
454
|
.category-item {
|
|
418
455
|
background: $jv-surface;
|
|
419
|
-
border-radius: $jv-radius-
|
|
456
|
+
border-radius: $jv-radius-sm; // 8px - shadcn standard
|
|
420
457
|
border: 1px solid $jv-border-subtle;
|
|
421
|
-
padding: $jv-space-
|
|
422
|
-
margin-bottom: $jv-space-
|
|
423
|
-
|
|
458
|
+
padding: $jv-space-3; // 12dp grid
|
|
459
|
+
margin-bottom: $jv-space-2; // 8dp grid
|
|
460
|
+
box-shadow: $jv-shadow-sm; // shadcn subtle shadow
|
|
461
|
+
transition: $jv-transition-shadow, border-color $jv-transition-fast; // Modern transitions
|
|
424
462
|
|
|
425
463
|
&:hover {
|
|
464
|
+
box-shadow: $jv-shadow-md; // shadcn hover shadow
|
|
426
465
|
border-color: $jv-border-strong;
|
|
427
|
-
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
// Focus state for accessibility
|
|
469
|
+
&:focus-within {
|
|
470
|
+
outline: none;
|
|
471
|
+
box-shadow: $jv-shadow-md, $jv-focus-ring;
|
|
428
472
|
}
|
|
429
473
|
|
|
430
474
|
// Override default border-bottom
|
package/scss/_categories.scss
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
.feed h2 {
|
|
7
7
|
font-size: 16px;
|
|
8
8
|
font-weight: 600;
|
|
9
|
-
margin: 0 0 $jv-space-6 0;
|
|
9
|
+
margin: 0 0 $jv-space-6 0; // 24dp - Material grid
|
|
10
10
|
padding: 0;
|
|
11
11
|
color: $jv-text-main;
|
|
12
12
|
letter-spacing: -0.2px;
|
|
@@ -26,16 +26,22 @@ ul.categories-list.list-unstyled {
|
|
|
26
26
|
// ===========================================================
|
|
27
27
|
|
|
28
28
|
li[component="categories/category"] {
|
|
29
|
-
padding:
|
|
29
|
+
padding: $jv-space-4 0; // 16dp grid
|
|
30
30
|
border-bottom: 1px solid #f1f1f1;
|
|
31
|
-
transition: background
|
|
31
|
+
transition: background $jv-transition-fast; // Modern transition
|
|
32
32
|
|
|
33
33
|
&:last-child {
|
|
34
34
|
border-bottom: none;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
&:hover {
|
|
38
|
-
background:
|
|
38
|
+
background: $jv-hover-bg; // Consistent hover state
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Focus state for accessibility
|
|
42
|
+
&:focus-within {
|
|
43
|
+
outline: none;
|
|
44
|
+
background: $jv-hover-bg;
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
// Parent title
|
|
@@ -43,10 +49,10 @@ li[component="categories/category"] {
|
|
|
43
49
|
font-size: $jv-font-size-base;
|
|
44
50
|
font-weight: 600;
|
|
45
51
|
color: $jv-text-main;
|
|
46
|
-
margin-bottom:
|
|
52
|
+
margin-bottom: $jv-space-1; // 4dp - Material grid
|
|
47
53
|
display: flex;
|
|
48
54
|
align-items: center;
|
|
49
|
-
gap:
|
|
55
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
50
56
|
|
|
51
57
|
a {
|
|
52
58
|
text-decoration: none;
|
|
@@ -68,7 +74,7 @@ li[component="categories/category"] {
|
|
|
68
74
|
font-size: $jv-font-size-sm;
|
|
69
75
|
color: $jv-text-muted;
|
|
70
76
|
line-height: 1.45;
|
|
71
|
-
margin-bottom:
|
|
77
|
+
margin-bottom: $jv-space-2; // 8dp - Material grid
|
|
72
78
|
max-width: 92%;
|
|
73
79
|
}
|
|
74
80
|
}
|
|
@@ -80,15 +86,15 @@ li[component="categories/category"] {
|
|
|
80
86
|
li[component="categories/category"] .category-children {
|
|
81
87
|
display: flex;
|
|
82
88
|
flex-direction: column;
|
|
83
|
-
gap:
|
|
84
|
-
margin-top:
|
|
89
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
90
|
+
margin-top: $jv-space-1; // 4dp - Material grid
|
|
85
91
|
}
|
|
86
92
|
|
|
87
93
|
.category-children-item {
|
|
88
94
|
small > .d-flex {
|
|
89
95
|
display: flex;
|
|
90
96
|
align-items: center;
|
|
91
|
-
gap:
|
|
97
|
+
gap: $jv-space-2; // 8dp - Material grid
|
|
92
98
|
font-size: 14px;
|
|
93
99
|
color: #333;
|
|
94
100
|
}
|
|
@@ -105,7 +111,16 @@ li[component="categories/category"] .category-children {
|
|
|
105
111
|
text-decoration: none;
|
|
106
112
|
font-size: 14px;
|
|
107
113
|
color: #333;
|
|
108
|
-
transition: color
|
|
114
|
+
transition: color $jv-transition-fast; // Modern transition
|
|
115
|
+
|
|
116
|
+
// Focus state for accessibility
|
|
117
|
+
&:focus-visible {
|
|
118
|
+
outline: none;
|
|
119
|
+
color: $jv-primary;
|
|
120
|
+
text-decoration: underline;
|
|
121
|
+
text-decoration-thickness: 2px;
|
|
122
|
+
text-underline-offset: 2px;
|
|
123
|
+
}
|
|
109
124
|
}
|
|
110
125
|
|
|
111
126
|
// Hover state: blue dot + blue text
|