@okjavis/nodebb-theme-javis 1.5.0 → 1.6.0
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 +10 -1
- package/scss/_buttons.scss +12 -32
- package/scss/_cards.scss +98 -54
- package/scss/_categories.scss +26 -11
- package/scss/_feed.scss +102 -45
- package/scss/_forms.scss +65 -27
- package/scss/_sidebar.scss +197 -184
- package/scss/_variables.scss +47 -12
package/scss/_sidebar.scss
CHANGED
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
font-size: $jv-font-size-sm;
|
|
76
76
|
font-weight: 500;
|
|
77
77
|
border-radius: $jv-radius-sm;
|
|
78
|
-
transition:
|
|
78
|
+
transition: background-color $jv-transition-fast, color $jv-transition-fast; // Modern transitions
|
|
79
79
|
|
|
80
80
|
i {
|
|
81
81
|
width: 18px;
|
|
@@ -93,6 +93,12 @@
|
|
|
93
93
|
color: $jv-primary;
|
|
94
94
|
font-weight: 600;
|
|
95
95
|
}
|
|
96
|
+
|
|
97
|
+
// Focus state for accessibility
|
|
98
|
+
&:focus-visible {
|
|
99
|
+
outline: none;
|
|
100
|
+
box-shadow: $jv-focus-ring;
|
|
101
|
+
}
|
|
96
102
|
}
|
|
97
103
|
|
|
98
104
|
// Sidebar section headers
|
|
@@ -118,10 +124,16 @@
|
|
|
118
124
|
color: $jv-text-main;
|
|
119
125
|
font-size: $jv-font-size-sm;
|
|
120
126
|
border-radius: $jv-radius-sm;
|
|
121
|
-
transition: background-color
|
|
127
|
+
transition: background-color $jv-transition-fast; // Modern transition
|
|
122
128
|
|
|
123
129
|
&:hover {
|
|
124
|
-
background:
|
|
130
|
+
background: $jv-hover-bg; // Consistent hover state
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Focus state for accessibility
|
|
134
|
+
&:focus-within {
|
|
135
|
+
outline: none;
|
|
136
|
+
background: $jv-hover-bg;
|
|
125
137
|
}
|
|
126
138
|
|
|
127
139
|
.category-icon {
|
|
@@ -144,7 +156,6 @@
|
|
|
144
156
|
div[data-widget-area] {
|
|
145
157
|
display: flex;
|
|
146
158
|
flex-direction: column;
|
|
147
|
-
gap: $jv-space-6;
|
|
148
159
|
}
|
|
149
160
|
|
|
150
161
|
// Individual widget card
|
|
@@ -153,10 +164,16 @@ div[data-widget-area] {
|
|
|
153
164
|
border: 1px solid $jv-border-subtle;
|
|
154
165
|
border-radius: $jv-radius-lg;
|
|
155
166
|
padding: $jv-space-8;
|
|
156
|
-
transition:
|
|
167
|
+
transition: $jv-transition-shadow; // Modern transition
|
|
157
168
|
|
|
158
169
|
&:hover {
|
|
159
|
-
box-shadow: $jv-shadow-
|
|
170
|
+
box-shadow: $jv-shadow-sm; // shadcn subtle shadow
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Focus state for accessibility
|
|
174
|
+
&:focus-within {
|
|
175
|
+
outline: none;
|
|
176
|
+
box-shadow: $jv-shadow-md, $jv-focus-ring;
|
|
160
177
|
}
|
|
161
178
|
}
|
|
162
179
|
|
|
@@ -192,11 +209,17 @@ div[data-widget-area="right"] h8 {
|
|
|
192
209
|
flex-direction: column;
|
|
193
210
|
gap: 2px;
|
|
194
211
|
cursor: pointer;
|
|
195
|
-
transition: border-color
|
|
212
|
+
transition: border-color $jv-transition-fast, background-color $jv-transition-fast; // Modern transitions
|
|
196
213
|
|
|
197
214
|
&:hover {
|
|
198
|
-
border-color:
|
|
199
|
-
background:
|
|
215
|
+
border-color: $jv-border-strong; // Consistent border
|
|
216
|
+
background: $jv-hover-bg; // Consistent hover state
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Focus state for accessibility
|
|
220
|
+
&:focus-visible {
|
|
221
|
+
outline: none;
|
|
222
|
+
box-shadow: $jv-focus-ring;
|
|
200
223
|
}
|
|
201
224
|
|
|
202
225
|
small {
|
|
@@ -224,11 +247,17 @@ div[data-widget-area="right"] h8 {
|
|
|
224
247
|
display: flex;
|
|
225
248
|
flex-direction: column;
|
|
226
249
|
gap: $jv-space-4;
|
|
227
|
-
transition:
|
|
250
|
+
transition: $jv-transition-shadow, border-color $jv-transition-fast; // Modern transitions
|
|
228
251
|
|
|
229
252
|
&:hover {
|
|
230
|
-
border-color:
|
|
231
|
-
box-shadow: $jv-shadow-
|
|
253
|
+
border-color: $jv-border-strong; // Consistent border
|
|
254
|
+
box-shadow: $jv-shadow-sm; // shadcn subtle shadow
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// Focus state for accessibility
|
|
258
|
+
&:focus-within {
|
|
259
|
+
outline: none;
|
|
260
|
+
box-shadow: $jv-shadow-md, $jv-focus-ring;
|
|
232
261
|
}
|
|
233
262
|
|
|
234
263
|
// Meta info
|
|
@@ -304,12 +333,18 @@ div[data-widget-area="right"] h8 {
|
|
|
304
333
|
border-radius: 50%;
|
|
305
334
|
object-fit: cover;
|
|
306
335
|
border: 2px solid $jv-surface;
|
|
307
|
-
transition: transform
|
|
336
|
+
transition: transform $jv-transition-fast; // Modern transition
|
|
308
337
|
|
|
309
338
|
&:hover {
|
|
310
339
|
transform: scale(1.1);
|
|
311
340
|
z-index: 10;
|
|
312
341
|
}
|
|
342
|
+
|
|
343
|
+
// Focus state for accessibility
|
|
344
|
+
&:focus {
|
|
345
|
+
outline: none;
|
|
346
|
+
box-shadow: $jv-focus-ring;
|
|
347
|
+
}
|
|
313
348
|
}
|
|
314
349
|
|
|
315
350
|
.avatar-stack {
|
|
@@ -337,20 +372,26 @@ div[data-widget-area="right"] h8 {
|
|
|
337
372
|
gap: $jv-space-4;
|
|
338
373
|
padding: $jv-space-4 0;
|
|
339
374
|
border-bottom: 1px solid $jv-border-subtle;
|
|
340
|
-
transition: background-color
|
|
375
|
+
transition: background-color $jv-transition-fast; // Modern transition
|
|
341
376
|
|
|
342
377
|
&:last-child {
|
|
343
378
|
border-bottom: none;
|
|
344
379
|
}
|
|
345
380
|
|
|
346
381
|
&:hover {
|
|
347
|
-
background:
|
|
382
|
+
background: $jv-hover-bg; // Consistent hover state
|
|
348
383
|
margin: 0 (-$jv-space-4);
|
|
349
384
|
padding-left: $jv-space-4;
|
|
350
385
|
padding-right: $jv-space-4;
|
|
351
386
|
border-radius: $jv-radius-sm;
|
|
352
387
|
}
|
|
353
388
|
|
|
389
|
+
// Focus state for accessibility
|
|
390
|
+
&:focus-within {
|
|
391
|
+
outline: none;
|
|
392
|
+
background: $jv-hover-bg;
|
|
393
|
+
}
|
|
394
|
+
|
|
354
395
|
.category-icon {
|
|
355
396
|
width: 24px;
|
|
356
397
|
height: 24px;
|
|
@@ -565,8 +606,8 @@ div[data-widget-area="right"] h8 {
|
|
|
565
606
|
width: 280px;
|
|
566
607
|
z-index: 1050;
|
|
567
608
|
transform: translateX(-100%);
|
|
568
|
-
transition: transform
|
|
569
|
-
box-shadow:
|
|
609
|
+
transition: transform $jv-transition-slow; // Modern transition
|
|
610
|
+
box-shadow: $jv-shadow-lg; // shadcn drawer shadow
|
|
570
611
|
|
|
571
612
|
&.open {
|
|
572
613
|
transform: translateX(0);
|
|
@@ -583,7 +624,7 @@ div[data-widget-area="right"] h8 {
|
|
|
583
624
|
z-index: 1040;
|
|
584
625
|
opacity: 0;
|
|
585
626
|
visibility: hidden;
|
|
586
|
-
transition: opacity
|
|
627
|
+
transition: opacity $jv-transition-slow, visibility $jv-transition-slow; // Modern transitions
|
|
587
628
|
|
|
588
629
|
&.show {
|
|
589
630
|
opacity: 1;
|
|
@@ -595,11 +636,35 @@ div[data-widget-area="right"] h8 {
|
|
|
595
636
|
// ===========================================================
|
|
596
637
|
// RIGHT SIDEBAR WIDGET AREA (Reddit-style)
|
|
597
638
|
// ===========================================================
|
|
598
|
-
div[data-widget-area="
|
|
599
|
-
.col-lg-3
|
|
639
|
+
div[data-widget-area="right"],
|
|
640
|
+
.col-lg-3.col-sm-12 {
|
|
600
641
|
display: flex;
|
|
601
642
|
flex-direction: column;
|
|
602
|
-
|
|
643
|
+
|
|
644
|
+
// Sticky positioning - stays visible when scrolling
|
|
645
|
+
position: sticky;
|
|
646
|
+
top: 80px; // Adjust based on your header height
|
|
647
|
+
align-self: flex-start;
|
|
648
|
+
max-height: calc(100vh - 100px); // Account for header + padding
|
|
649
|
+
overflow-y: auto; // Allow scrolling if content is too tall
|
|
650
|
+
|
|
651
|
+
// Smooth scrollbar styling (webkit browsers)
|
|
652
|
+
&::-webkit-scrollbar {
|
|
653
|
+
width: 6px;
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
&::-webkit-scrollbar-track {
|
|
657
|
+
background: transparent;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
&::-webkit-scrollbar-thumb {
|
|
661
|
+
background: rgba(0, 0, 0, 0.15);
|
|
662
|
+
border-radius: 3px;
|
|
663
|
+
|
|
664
|
+
&:hover {
|
|
665
|
+
background: rgba(0, 0, 0, 0.25);
|
|
666
|
+
}
|
|
667
|
+
}
|
|
603
668
|
|
|
604
669
|
// Widget card container
|
|
605
670
|
> div {
|
|
@@ -609,207 +674,155 @@ div[data-widget-area="sidebar"],
|
|
|
609
674
|
overflow: hidden;
|
|
610
675
|
}
|
|
611
676
|
|
|
612
|
-
// Widget header/title
|
|
677
|
+
// Widget header/title - clean and simple
|
|
613
678
|
h5, h6, .widget-title {
|
|
614
|
-
font-size:
|
|
679
|
+
font-size: 11px !important;
|
|
615
680
|
font-weight: 700 !important;
|
|
616
681
|
text-transform: uppercase;
|
|
617
682
|
letter-spacing: 0.5px;
|
|
618
683
|
color: $jv-text-soft;
|
|
619
|
-
padding: $jv-space-
|
|
620
|
-
margin: 0 !important;
|
|
684
|
+
padding: $jv-space-4 $jv-space-4;
|
|
685
|
+
margin: 0 0 $jv-space-4 0 !important;
|
|
621
686
|
border-bottom: 1px solid $jv-border-subtle;
|
|
622
|
-
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
// Add spacing between widgets
|
|
690
|
+
> div + div {
|
|
691
|
+
margin-top: $jv-space-4;
|
|
623
692
|
}
|
|
624
693
|
}
|
|
625
694
|
|
|
626
695
|
// ===========================================================
|
|
627
|
-
// POPULAR TAGS WIDGET (Sidebar)
|
|
696
|
+
// POPULAR TAGS WIDGET (Sidebar) - Reddit-style vertical list
|
|
628
697
|
// ===========================================================
|
|
629
|
-
div[data-widget-area="
|
|
630
|
-
.popular-tags
|
|
631
|
-
|
|
632
|
-
|
|
698
|
+
div[data-widget-area="right"] {
|
|
699
|
+
.popular-tags {
|
|
700
|
+
width: 100% !important;
|
|
701
|
+
}
|
|
633
702
|
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
703
|
+
.tag-list {
|
|
704
|
+
padding: 0 !important;
|
|
705
|
+
margin: 0 !important;
|
|
706
|
+
width: 100% !important;
|
|
707
|
+
|
|
708
|
+
// Override Bootstrap grid classes to force vertical layout
|
|
709
|
+
display: flex !important;
|
|
710
|
+
flex-direction: column !important;
|
|
711
|
+
|
|
712
|
+
// Remove any grid/row styling
|
|
713
|
+
&.row {
|
|
714
|
+
--bs-gutter-x: 0 !important;
|
|
715
|
+
--bs-gutter-y: 0 !important;
|
|
716
|
+
margin: 0 !important;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
// Force each tag to be full width (override col classes)
|
|
720
|
+
> * {
|
|
721
|
+
width: 100% !important;
|
|
722
|
+
max-width: 100% !important;
|
|
723
|
+
flex: 0 0 100% !important;
|
|
724
|
+
padding: 0 !important;
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
.btn-ghost,
|
|
728
|
+
a.btn-ghost {
|
|
729
|
+
display: flex !important;
|
|
730
|
+
flex-direction: column !important;
|
|
731
|
+
align-items: flex-start !important;
|
|
732
|
+
background: transparent !important;
|
|
733
|
+
border: none !important;
|
|
734
|
+
border-radius: 0 !important;
|
|
735
|
+
padding: $jv-space-3 $jv-space-4 !important;
|
|
736
|
+
transition: background-color $jv-transition-fast !important;
|
|
737
|
+
text-align: left !important;
|
|
738
|
+
width: 100% !important;
|
|
739
|
+
margin: 0 !important;
|
|
640
740
|
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
align-items: center;
|
|
645
|
-
justify-content: space-between;
|
|
646
|
-
padding: $jv-space-4 $jv-space-4;
|
|
647
|
-
background: transparent;
|
|
648
|
-
border: none;
|
|
649
|
-
border-radius: $jv-radius-sm;
|
|
650
|
-
color: $jv-text-main;
|
|
651
|
-
font-size: 14px;
|
|
652
|
-
font-weight: 500;
|
|
653
|
-
text-decoration: none;
|
|
654
|
-
transition: background-color 0.15s ease;
|
|
655
|
-
cursor: pointer;
|
|
741
|
+
&:hover {
|
|
742
|
+
background: $jv-hover-bg !important;
|
|
743
|
+
}
|
|
656
744
|
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
745
|
+
.tag-item {
|
|
746
|
+
font-size: 14px !important;
|
|
747
|
+
font-weight: 600 !important;
|
|
748
|
+
color: $jv-text-main !important;
|
|
749
|
+
margin-bottom: $jv-space-1 !important;
|
|
750
|
+
}
|
|
661
751
|
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
font-size: 12px;
|
|
667
|
-
color: $jv-text-soft;
|
|
668
|
-
font-weight: 400;
|
|
669
|
-
}
|
|
752
|
+
.tag-topic-count {
|
|
753
|
+
font-size: 12px !important;
|
|
754
|
+
font-weight: 400 !important;
|
|
755
|
+
color: $jv-text-soft !important;
|
|
670
756
|
}
|
|
671
757
|
}
|
|
672
758
|
}
|
|
759
|
+
|
|
673
760
|
}
|
|
674
761
|
|
|
675
762
|
// ===========================================================
|
|
676
|
-
// RECENT/TRENDING POSTS WIDGET (Sidebar)
|
|
763
|
+
// RECENT/TRENDING POSTS WIDGET (Sidebar) - Widget Essentials Specific
|
|
677
764
|
// ===========================================================
|
|
678
|
-
div[data-widget-area="
|
|
765
|
+
div[data-widget-area="right"] {
|
|
766
|
+
// Recent posts container with scrolling
|
|
679
767
|
#recent_posts,
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
768
|
+
ul[id*="recent"] {
|
|
769
|
+
max-height: 400px;
|
|
770
|
+
overflow-y: auto;
|
|
683
771
|
padding: 0;
|
|
684
772
|
margin: 0;
|
|
685
773
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
&:last-child {
|
|
692
|
-
border-bottom: none;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
&:hover {
|
|
696
|
-
background: rgba(0, 0, 0, 0.02);
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
// Post header with avatar
|
|
700
|
-
.d-flex {
|
|
701
|
-
display: flex;
|
|
702
|
-
align-items: center;
|
|
703
|
-
gap: $jv-space-2;
|
|
704
|
-
margin-bottom: $jv-space-2;
|
|
705
|
-
|
|
706
|
-
// Avatar
|
|
707
|
-
.avatar,
|
|
708
|
-
img[class*="avatar"] {
|
|
709
|
-
width: 20px !important;
|
|
710
|
-
height: 20px !important;
|
|
711
|
-
border-radius: 50%;
|
|
712
|
-
flex-shrink: 0;
|
|
713
|
-
}
|
|
774
|
+
// Smooth scrollbar
|
|
775
|
+
&::-webkit-scrollbar {
|
|
776
|
+
width: 4px;
|
|
777
|
+
}
|
|
714
778
|
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
font-weight: 600;
|
|
719
|
-
color: $jv-text-main;
|
|
720
|
-
text-decoration: none;
|
|
779
|
+
&::-webkit-scrollbar-track {
|
|
780
|
+
background: transparent;
|
|
781
|
+
}
|
|
721
782
|
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
}
|
|
783
|
+
&::-webkit-scrollbar-thumb {
|
|
784
|
+
background: rgba(0, 0, 0, 0.15);
|
|
785
|
+
border-radius: 2px;
|
|
726
786
|
|
|
727
|
-
|
|
728
|
-
.
|
|
729
|
-
font-size: 11px;
|
|
730
|
-
color: $jv-text-soft;
|
|
731
|
-
}
|
|
787
|
+
&:hover {
|
|
788
|
+
background: rgba(0, 0, 0, 0.25);
|
|
732
789
|
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
733
792
|
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
font-size: 13px;
|
|
740
|
-
font-weight: 500;
|
|
741
|
-
color: $jv-text-main;
|
|
742
|
-
text-decoration: none;
|
|
743
|
-
line-height: 1.4;
|
|
744
|
-
margin-bottom: $jv-space-2;
|
|
745
|
-
|
|
746
|
-
// Line clamp
|
|
747
|
-
display: -webkit-box;
|
|
748
|
-
-webkit-line-clamp: 2;
|
|
749
|
-
-webkit-box-orient: vertical;
|
|
750
|
-
overflow: hidden;
|
|
751
|
-
|
|
752
|
-
&:hover {
|
|
753
|
-
color: $jv-primary;
|
|
754
|
-
}
|
|
755
|
-
}
|
|
793
|
+
// Style the actual widget-posts items
|
|
794
|
+
.widget-posts {
|
|
795
|
+
padding: $jv-space-3 $jv-space-4 !important;
|
|
796
|
+
transition: background-color $jv-transition-fast !important;
|
|
797
|
+
border-bottom: 1px solid $jv-border-subtle !important;
|
|
756
798
|
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
.text-xs {
|
|
761
|
-
font-size: 12px;
|
|
762
|
-
color: $jv-text-muted;
|
|
763
|
-
line-height: 1.45;
|
|
764
|
-
display: -webkit-box;
|
|
765
|
-
-webkit-line-clamp: 2;
|
|
766
|
-
-webkit-box-orient: vertical;
|
|
767
|
-
overflow: hidden;
|
|
768
|
-
}
|
|
799
|
+
&:last-child {
|
|
800
|
+
border-bottom: none !important;
|
|
801
|
+
}
|
|
769
802
|
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
font-size: 12px;
|
|
774
|
-
font-weight: 600;
|
|
775
|
-
color: $jv-primary;
|
|
776
|
-
text-decoration: none;
|
|
777
|
-
margin-top: $jv-space-2;
|
|
778
|
-
display: inline-block;
|
|
803
|
+
&:hover {
|
|
804
|
+
background: $jv-hover-bg !important;
|
|
805
|
+
}
|
|
779
806
|
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
807
|
+
.post-author a {
|
|
808
|
+
font-size: 12px !important;
|
|
809
|
+
font-weight: 500 !important;
|
|
810
|
+
color: $jv-text-main !important;
|
|
784
811
|
}
|
|
785
|
-
}
|
|
786
|
-
}
|
|
787
812
|
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
align-items: center;
|
|
795
|
-
gap: $jv-space-2;
|
|
813
|
+
.line-clamp-6 {
|
|
814
|
+
font-size: 13px !important;
|
|
815
|
+
font-weight: 400 !important;
|
|
816
|
+
color: $jv-text-main !important;
|
|
817
|
+
line-height: 1.5 !important;
|
|
818
|
+
}
|
|
796
819
|
|
|
797
|
-
|
|
798
|
-
font-size:
|
|
799
|
-
|
|
820
|
+
.post-preview-footer a {
|
|
821
|
+
font-size: 12px !important;
|
|
822
|
+
font-weight: 500 !important;
|
|
823
|
+
color: $jv-primary !important;
|
|
824
|
+
text-decoration: none !important;
|
|
800
825
|
}
|
|
801
826
|
}
|
|
802
827
|
}
|
|
803
828
|
|
|
804
|
-
// ===========================================================
|
|
805
|
-
// EMPTY STATE
|
|
806
|
-
// ===========================================================
|
|
807
|
-
div[data-widget-area="sidebar"] {
|
|
808
|
-
.empty,
|
|
809
|
-
.no-content {
|
|
810
|
-
padding: $jv-space-8;
|
|
811
|
-
text-align: center;
|
|
812
|
-
color: $jv-text-soft;
|
|
813
|
-
font-size: $jv-font-size-sm;
|
|
814
|
-
}
|
|
815
|
-
}
|
package/scss/_variables.scss
CHANGED
|
@@ -10,8 +10,8 @@ $jv-primary-soft: rgba(0, 81, 255, 0.12);
|
|
|
10
10
|
// Neutrals
|
|
11
11
|
$jv-bg: #f5f6f8; // app background
|
|
12
12
|
$jv-surface: #ffffff; // cards, panels
|
|
13
|
-
$jv-border-subtle: rgba(0,0,0,0.06)
|
|
14
|
-
$jv-border-strong: rgba(0,0,0,0.12)
|
|
13
|
+
$jv-border-subtle: rgba(0,0,0,0.1); // More visible than Material (was 0.06) - shadcn style
|
|
14
|
+
$jv-border-strong: rgba(0,0,0,0.15); // Stronger borders (was 0.12)
|
|
15
15
|
|
|
16
16
|
// Text
|
|
17
17
|
$jv-text-main: #111111;
|
|
@@ -25,19 +25,39 @@ $jv-radius-md: 12px;
|
|
|
25
25
|
$jv-radius-lg: 16px;
|
|
26
26
|
$jv-radius-pill: 999px;
|
|
27
27
|
|
|
28
|
-
//
|
|
29
|
-
|
|
30
|
-
$jv-shadow-
|
|
28
|
+
// shadcn-Style Shadow System (Compact, Grounded, Notion/Linear-like)
|
|
29
|
+
// Subtle shadows that let borders do the heavy lifting
|
|
30
|
+
$jv-shadow-none: none;
|
|
31
|
+
$jv-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05); // Barely visible
|
|
32
|
+
$jv-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1); // Card resting - SUBTLE
|
|
33
|
+
$jv-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); // Card hover
|
|
34
|
+
$jv-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); // Modals/Dropdowns
|
|
35
|
+
$jv-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); // Popovers
|
|
36
|
+
|
|
37
|
+
// Legacy compatibility - map old names to new system
|
|
38
|
+
$jv-shadow-soft: $jv-shadow-sm;
|
|
39
|
+
$jv-shadow-card: $jv-shadow-sm;
|
|
40
|
+
$jv-elevation-0: $jv-shadow-none;
|
|
41
|
+
$jv-elevation-1: $jv-shadow-sm;
|
|
42
|
+
$jv-elevation-2: $jv-shadow-sm;
|
|
43
|
+
$jv-elevation-4: $jv-shadow-md;
|
|
44
|
+
$jv-elevation-6: $jv-shadow-md;
|
|
45
|
+
$jv-elevation-8: $jv-shadow-md;
|
|
46
|
+
|
|
47
|
+
// Button shadows (keep branded)
|
|
31
48
|
$jv-shadow-button: 0 4px 12px rgba(0, 81, 255, 0.25);
|
|
32
49
|
$jv-shadow-button-hover: 0 6px 16px rgba(0, 81, 255, 0.35);
|
|
33
50
|
|
|
34
|
-
// Spacing (
|
|
35
|
-
$jv-space-
|
|
36
|
-
$jv-space-
|
|
37
|
-
$jv-space-
|
|
38
|
-
$jv-space-
|
|
39
|
-
$jv-space-
|
|
40
|
-
$jv-space-
|
|
51
|
+
// Spacing (8dp baseline grid - shadcn/Tailwind compatible)
|
|
52
|
+
$jv-space-1: 4px; // 4dp
|
|
53
|
+
$jv-space-2: 8px; // 8dp (1 unit)
|
|
54
|
+
$jv-space-3: 12px; // 12dp (1.5 units)
|
|
55
|
+
$jv-space-4: 16px; // 16dp (2 units)
|
|
56
|
+
$jv-space-5: 20px; // 20dp (2.5 units)
|
|
57
|
+
$jv-space-6: 24px; // 24dp (3 units)
|
|
58
|
+
$jv-space-8: 32px; // 32dp (4 units)
|
|
59
|
+
$jv-space-10: 40px; // 40dp (5 units)
|
|
60
|
+
$jv-space-12: 48px; // 48dp (6 units)
|
|
41
61
|
|
|
42
62
|
// Typography
|
|
43
63
|
$jv-font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, "Helvetica Neue", Arial, sans-serif;
|
|
@@ -52,3 +72,18 @@ $jv-font-size-xxl: 32px;
|
|
|
52
72
|
$jv-line-height-base: 1.52;
|
|
53
73
|
$jv-line-height-tight: 1.4;
|
|
54
74
|
$jv-line-height-relaxed: 1.6;
|
|
75
|
+
|
|
76
|
+
// Modern Polish - Transitions & Interactions (2025 standard)
|
|
77
|
+
$jv-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
78
|
+
$jv-transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
79
|
+
$jv-transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
80
|
+
$jv-transition-shadow: box-shadow 200ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
81
|
+
|
|
82
|
+
// Focus States (Accessibility + Modern Look)
|
|
83
|
+
$jv-focus-ring: 0 0 0 3px rgba(0, 81, 255, 0.12);
|
|
84
|
+
$jv-focus-ring-offset: 0 0 0 2px $jv-surface, 0 0 0 4px $jv-primary;
|
|
85
|
+
|
|
86
|
+
// Interactive States
|
|
87
|
+
$jv-hover-bg: rgba(0, 0, 0, 0.04);
|
|
88
|
+
$jv-active-bg: rgba(0, 0, 0, 0.08);
|
|
89
|
+
$jv-selected-bg: rgba(0, 81, 255, 0.08);
|