@okjavis/nodebb-theme-javis 1.3.0 → 1.5.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@okjavis/nodebb-theme-javis",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "Modern, premium NodeBB theme for JAVIS Community - Extends Harmony with custom styling",
5
5
  "main": "theme.js",
6
6
  "scripts": {
package/plugin.json CHANGED
@@ -17,7 +17,7 @@
17
17
  ],
18
18
  "templates": "templates",
19
19
  "screenshot": "screenshot.png",
20
- "version": "1.0.1",
20
+ "version": "1.5.0",
21
21
  "nbbpm": {
22
22
  "compatibility": "^4.0.0"
23
23
  }
package/scss/_base.scss CHANGED
@@ -9,6 +9,64 @@ nav[component="sidebar/right"],
9
9
  display: none !important;
10
10
  }
11
11
 
12
+ // No custom layout overrides - use Harmony defaults
13
+
14
+ // Search bar width override
15
+ .search-widget .input-group {
16
+ max-width: 650px;
17
+ margin: 0 auto;
18
+ }
19
+
20
+ // Left sidebar layout - navigation at top, profile/collapse at bottom
21
+ nav[component="sidebar/left"] {
22
+ justify-content: flex-start !important; // Remove space-between
23
+
24
+ // Main navigation list - keep at top with no extra margin
25
+ #main-nav {
26
+ margin-top: 0 !important; // Remove top margin to be close to logo
27
+ flex-grow: 0 !important; // Don't grow to fill space
28
+ }
29
+
30
+ // Sidebar toggle container - push to bottom
31
+ .sidebar-toggle-container {
32
+ margin-top: auto !important; // Push to bottom
33
+ }
34
+ }
35
+
36
+ // Reddit-style layout: Equal spacing and wider feed
37
+ .feed > .row {
38
+ max-width: 1400px; // Reddit's approximate max-width
39
+ margin: 0 auto;
40
+ padding: 0 20px; // Reddit-style horizontal padding
41
+ justify-content: center; // Center the columns
42
+
43
+ // Equal gap between columns (Reddit uses ~16-20px)
44
+ gap: 20px;
45
+
46
+ // Adjust column widths for better proportions
47
+ > [data-widget-area="left"] {
48
+ flex: 0 0 auto;
49
+ width: 280px; // Fixed width for left sidebar (not using Bootstrap col-lg-3)
50
+ }
51
+
52
+ // Center feed content - make it wider
53
+ > .col-lg-6 {
54
+ flex: 1 1 auto; // Take remaining space
55
+ max-width: 700px; // Reddit's feed is ~640-700px
56
+ margin-left: 0 !important; // Remove ms-auto
57
+ padding-left: 0 !important; // Remove left padding
58
+ padding-right: 0 !important; // Remove right padding
59
+ }
60
+
61
+ // Right sidebar (Trending)
62
+ > [data-widget-area="right"] {
63
+ flex: 0 0 auto;
64
+ width: 320px; // Fixed width for right sidebar
65
+ padding-left: 0 !important; // Remove left padding
66
+ padding-right: 0 !important; // Remove right padding
67
+ }
68
+ }
69
+
12
70
  body {
13
71
  font-family: $jv-font-sans;
14
72
  font-size: $jv-font-size-base;
package/scss/_feed.scss CHANGED
@@ -7,6 +7,9 @@
7
7
  // FEED CONTAINER
8
8
  // ===========================================================
9
9
  .feed {
10
+ // No max-width - let Bootstrap grid handle width
11
+ // Already inside col-lg-9 which provides proper constraints
12
+
10
13
  // Header controls row
11
14
  .d-flex.justify-content-between.py-2.mb-2 {
12
15
  padding: $jv-space-4 0 !important;
@@ -72,8 +75,8 @@
72
75
  .feed li[component="post"].posts-list-item {
73
76
  background: $jv-surface !important;
74
77
  border: 1px solid $jv-border-subtle !important;
75
- border-radius: $jv-radius-lg !important;
76
- margin-bottom: $jv-space-4 !important;
78
+ border-radius: $jv-radius-md !important; // 12px - more compact than 16px
79
+ margin-bottom: $jv-space-4 !important; // 8px - compact like Reddit
77
80
  box-shadow: none !important;
78
81
  overflow: hidden;
79
82
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
@@ -102,7 +105,7 @@
102
105
  padding: 0 !important;
103
106
 
104
107
  .overflow-hidden {
105
- border-radius: $jv-radius-lg $jv-radius-lg 0 0 !important;
108
+ border-radius: $jv-radius-md $jv-radius-md 0 0 !important; // Match card radius
106
109
  max-height: 350px !important;
107
110
 
108
111
  img {
@@ -128,16 +131,20 @@
128
131
  // ===========================================================
129
132
  .feed li[component="post"].posts-list-item {
130
133
  > .d-flex.gap-2.p-3 {
131
- padding: $jv-space-6 !important;
134
+ padding: $jv-space-6 !important; // 12px - compact but comfortable
132
135
  gap: $jv-space-4 !important;
136
+
137
+ @media (max-width: 768px) {
138
+ padding: $jv-space-4 !important; // 8px on mobile
139
+ }
133
140
  }
134
141
 
135
142
  // Avatar
136
143
  .d-none.d-lg-block {
137
144
  .avatar,
138
145
  img[class*="avatar"] {
139
- width: 44px !important;
140
- height: 44px !important;
146
+ width: 40px !important; // Smaller, cleaner
147
+ height: 40px !important;
141
148
  border-radius: 50% !important;
142
149
  object-fit: cover;
143
150
  border: 2px solid rgba(0, 0, 0, 0.05);
@@ -146,7 +153,7 @@
146
153
 
147
154
  // Post body
148
155
  .post-body {
149
- gap: $jv-space-4 !important;
156
+ gap: $jv-space-2 !important; // Tighter gap - 4px
150
157
  }
151
158
  }
152
159
 
@@ -155,11 +162,12 @@
155
162
  // ===========================================================
156
163
  .feed li[component="post"].posts-list-item {
157
164
  .topic-title {
158
- font-size: 18px !important;
165
+ font-size: 18px !important; // Keeping subtle
159
166
  font-weight: 600 !important;
160
- line-height: 1.35 !important;
167
+ line-height: 1.3 !important; // Tighter for clean look
161
168
  color: $jv-text-main !important;
162
- margin-bottom: $jv-space-2;
169
+ margin-bottom: $jv-space-2; // 4px
170
+ letter-spacing: -0.01em; // Slight tightening for modern feel
163
171
 
164
172
  &:hover {
165
173
  color: $jv-primary !important;
@@ -173,13 +181,13 @@
173
181
  .feed li[component="post"].posts-list-item {
174
182
  .post-info {
175
183
  font-size: 13px !important;
176
- color: $jv-text-muted;
184
+ color: $jv-text-soft; // Lighter for hierarchy
177
185
  gap: $jv-space-2 !important;
178
186
 
179
187
  .post-author {
180
188
  a {
181
- color: $jv-text-main;
182
- font-weight: 600;
189
+ color: $jv-text-muted; // Less prominent
190
+ font-weight: 500; // Lighter weight
183
191
 
184
192
  &:hover {
185
193
  color: $jv-primary;
@@ -281,7 +289,7 @@
281
289
  .feed li[component="post"].posts-list-item {
282
290
  hr {
283
291
  border-color: $jv-border-subtle !important;
284
- margin: $jv-space-4 0 !important;
292
+ margin: $jv-space-2 0 !important; // Tighter - 4px
285
293
  opacity: 1;
286
294
  }
287
295
  }
@@ -292,14 +300,16 @@
292
300
  .feed li[component="post"].posts-list-item {
293
301
  .d-flex.justify-content-between:last-child {
294
302
  margin: 0 (-$jv-space-2);
303
+ padding-top: $jv-space-2; // Small padding above - 4px
304
+ border-top: 1px solid rgba(0, 0, 0, 0.04); // Subtle separator
295
305
 
296
306
  .btn-link {
297
307
  display: inline-flex;
298
308
  align-items: center;
299
309
  gap: 6px;
300
- padding: 8px 12px !important;
310
+ padding: 6px 10px !important; // Tighter padding
301
311
  font-size: 13px !important;
302
- font-weight: 600 !important;
312
+ font-weight: 500 !important; // Lighter weight
303
313
  color: $jv-text-muted !important;
304
314
  background: transparent;
305
315
  border: none;
@@ -308,7 +318,7 @@
308
318
  transition: background-color 0.15s ease, color 0.15s ease;
309
319
 
310
320
  &:hover {
311
- background: rgba(0, 0, 0, 0.04);
321
+ background: rgba(0, 0, 0, 0.03); // Subtler hover
312
322
  color: $jv-text-main !important;
313
323
  }
314
324