nnp-shared-styles 1.1.6

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.
@@ -0,0 +1,442 @@
1
+ @use './nnp-mixins.scss' as mixins;
2
+ @use './nnp-base-styles.scss';
3
+
4
+ .nnp-layout-container {
5
+ @include mixins.flex-direction(column);
6
+ min-height: 100vh;
7
+ position: relative;
8
+ overflow: hidden;
9
+ }
10
+
11
+ .nnp-main-container {
12
+ padding-top: var(--component-height-medium);
13
+ flex-grow: 1;
14
+ overflow-y: auto;
15
+ }
16
+
17
+ .nnp-main-content {
18
+ position: relative;
19
+ height: 100%;
20
+ @include mixins.flex-direction(column);
21
+ }
22
+
23
+ .nnp-top-header {
24
+ width: 100%;
25
+ height: var(--component-height-medium);
26
+ background-color: var(--base-color-secondary);
27
+ color: var(--text-color-secondary);
28
+ font-size: 0.85rem;
29
+ display: flex;
30
+ justify-content: space-between;
31
+ align-items: center;
32
+ @extend .special-font;
33
+ }
34
+
35
+ .nnp-menu-item {
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ padding: 0 var(--nnp-padding-medium);
40
+ height: 100%;
41
+ cursor: pointer;
42
+ }
43
+
44
+ .nnp-menu-item:hover {
45
+ background-color: #06b9f5;
46
+ color: var(--text-color-secondary);
47
+ }
48
+
49
+ .nnp-menu-item.active {
50
+ background-color: var(--component-color-highlight);
51
+ color: var(--text-color-secondary);
52
+ }
53
+
54
+ .nnp-body-content {
55
+ height: calc(100% - var(--component-height-medium));
56
+
57
+ }
58
+
59
+ .nnp-logo-panel {
60
+ @include mixins.justify(center, center);
61
+ background-color: var(--base-color-secondary);
62
+ height: var(--component-height-large);
63
+
64
+ img {
65
+ height: 90%;
66
+ }
67
+ }
68
+
69
+ .nnp-bottom-footer {
70
+ background-color: var(--base-color-secondary);
71
+ color: var(--text-color-secondary);
72
+ height: var(--component-height-large);
73
+ gap: 1rem;
74
+ @include mixins.flex-direction(column);
75
+ @include mixins.justify(center, center);
76
+
77
+ }
78
+
79
+ .nnp-title {
80
+ @extend .header-font;
81
+ padding-bottom: var(--nnp-padding-medium);
82
+ }
83
+
84
+ .nnp-header {
85
+ @extend .header-font;
86
+ @include mixins.nnp-component-primary;
87
+ }
88
+
89
+ .nnp-header-mb {
90
+ @extend .header-font-smaller;
91
+ @include mixins.nnp-component-primary;
92
+ }
93
+
94
+ .nnp-header-body {
95
+ height: calc(100% - var(--component-height-medium));
96
+ }
97
+
98
+ .nnp-header-primary {
99
+ background-color: var(--component-color-primary);
100
+ color: var(--text-color-secondary);
101
+ }
102
+
103
+ .nnp-header-secondary {
104
+ background-color: var(--component-color-secondary);
105
+ color: var(--text-color-primary);
106
+ }
107
+
108
+ .nnp-header-highlight {
109
+ background-color: var(--component-color-highlight);
110
+ color: var(--text-color-secondary);
111
+ }
112
+
113
+ .nnp-body-minus-header {
114
+ height: calc(100% - var(--component-height-medium));
115
+ }
116
+
117
+ .nnp-btn {
118
+ @include mixins.nnp-component-secondary;
119
+ @include mixins.justify(center, center);
120
+ @extend .cursor-pointer;
121
+ @extend .header-font;
122
+ border-radius: var(--radius-medium);
123
+ padding: 0 var(--nnp-padding-medium);
124
+
125
+ }
126
+
127
+ .nnp-btn-primary {
128
+ background-color: var(--component-color-highlight);
129
+ color: var(--text-color-secondary);
130
+
131
+ &:hover {
132
+ background-color: var(--component-color-tertiary);
133
+ }
134
+ }
135
+
136
+ .nnp-btn-secondary {
137
+ background-color: var(--component-color-primary);
138
+ color: var(--text-color-secondary);
139
+
140
+ &:hover {
141
+ background-color: var(--component-color-tertiary);
142
+ }
143
+ }
144
+
145
+ .nnp-btn-tertiary {
146
+ background-color: var(--base-color-primary);
147
+ color: var(--text-color-secondary);
148
+
149
+ &:hover {
150
+ background-color: var(--component-color-tertiary);
151
+ color: var(--text-color-primary);
152
+ }
153
+ }
154
+
155
+ .nnp-btn-disabled {
156
+ background-color: var(--component-color-secondary);
157
+ color: var(--text-color-secondary);
158
+ cursor: not-allowed !important;
159
+
160
+ &:hover {
161
+ background-color: var(--component-color-secondary);
162
+ color: var(--text-color-secondary);
163
+ }
164
+ }
165
+
166
+ .nnp-modal-container {
167
+ position: absolute;
168
+ inset: 0;
169
+ backdrop-filter: blur(2px);
170
+ z-index: 100;
171
+ @include mixins.justify(center, center);
172
+ @extend .max-height;
173
+ @extend .max-width;
174
+ }
175
+
176
+ .nnp-modal-content {
177
+ background-color: var(--base-color-primary);
178
+ border: 1px solid #cccccc !important;
179
+ box-shadow: var(--modal-box-shadow);
180
+ margin: 20px 0;
181
+ @include mixins.flex-direction(column);
182
+
183
+ .nnp-modal-body {
184
+ padding: var(--nnp-padding-medium);
185
+ flex-grow: 1;
186
+ overflow: auto;
187
+ }
188
+ }
189
+
190
+
191
+
192
+ .nnp-side-layout-container {
193
+ // @include mixins.flex-direction(row);
194
+ height: calc(100vh - var(--component-height-medium));
195
+ overflow: hidden;
196
+ }
197
+
198
+ .nnp-side-main-container {
199
+ // width: calc(100vw - var(--nav-width));
200
+ // overflow-x: hidden;
201
+ // overflow-y: hidden;
202
+ @include mixins.flex-direction(row);
203
+ height: 100%;
204
+ }
205
+
206
+ .nnp-side-main-content {
207
+ width: calc(100vw - var(--nav-width));
208
+ height: calc(100% - var(--nnp-padding-large));
209
+ padding: var(--nnp-padding-medium) var(--nnp-padding-large);
210
+ overflow-y: auto;
211
+ }
212
+
213
+ .nnp-side-main-content-full {
214
+ width: 100vw;
215
+ height: calc(100% - var(--nnp-padding-large));
216
+ padding: var(--nnp-padding-medium) var(--nnp-padding-large);
217
+ overflow-y: auto;
218
+ }
219
+
220
+ .nnp-side-nav {
221
+ @include mixins.flex-direction(column);
222
+ @extend .special-font;
223
+ width: var(--nav-width);
224
+ background-color: var(--component-color-secondary);
225
+ color: var(--text-color-primary);
226
+ border-right: 1px solid var(--border-color);
227
+ transition: width 0.3s ease;
228
+ height: 100%;
229
+ overflow-y: auto;
230
+
231
+ .nnp-side-menu-item {
232
+ @include mixins.flex-direction(column);
233
+ }
234
+
235
+
236
+ .nnp-side-menu-header {
237
+ @include mixins.justify(space-between, center);
238
+ height: var(--component-height-medium);
239
+ cursor: pointer;
240
+ padding: 0 var(--nnp-padding-small);
241
+
242
+ &:hover {
243
+ background-color: var(--component-color-tertiary);
244
+ }
245
+
246
+ .nnp-side-menu-arrow {
247
+ font-size: var(--font-size-md);
248
+ }
249
+
250
+ .nnp-side-menu-children {
251
+ font-size: var(--font-size-xs);
252
+ }
253
+ }
254
+
255
+ .nnp-side-menu-header.selected {
256
+ background-color: var(--component-color-primary) !important;
257
+ color: var(--text-color-secondary) !important;
258
+ }
259
+
260
+ .nnp-side-menu-header.active {
261
+ background-color: var(--component-color-tertiary);
262
+ }
263
+ }
264
+
265
+ .nnp-side-nav.collapsed {
266
+ width: 0;
267
+ }
268
+
269
+ .nnp-side-menu-children {
270
+ max-height: 0;
271
+ transition: max-height 1s ease-out;
272
+ overflow: hidden;
273
+ }
274
+
275
+ .nnp-side-menu-children.open {
276
+ max-height: 300vh;
277
+ transition: max-height 1s ease-in;
278
+ // box-shadow: inset 0 4px 6px -4px #616161, inset 0 -4px 6px -4px #616161;
279
+ }
280
+
281
+ .nnp-accordian-component-primary {
282
+ background-color: var(--component-color-primary) !important;
283
+ }
284
+
285
+ .nnp-accordian-component-secondary {
286
+ background-color: var(--component-color-primary) !important;
287
+ }
288
+
289
+
290
+ /* Body Theme Styling */
291
+ html.dark,
292
+ body.dark-theme {
293
+ background-color: var(--base-color-primary);
294
+ color: var(--text-color-primary);
295
+ }
296
+
297
+
298
+ /* Inputs */
299
+ html.dark input,
300
+ html.dark textarea,
301
+ html.dark select,
302
+ body.dark-theme input,
303
+ body.dark-theme textarea,
304
+ body.dark-theme select {
305
+ border-color: #424242;
306
+ color: #cccccc !important;
307
+ }
308
+
309
+
310
+ /* Labels */
311
+ html.dark label,
312
+ body.dark-theme label {
313
+ color: #cccccc !important;
314
+ }
315
+
316
+
317
+ /* Main Container */
318
+ html.dark .nnp-main-container,
319
+ body.dark-theme .nnp-main-container {
320
+ background-color: var(--base-color-primary);
321
+ }
322
+
323
+
324
+ /* Material UI DataGrid */
325
+ html.dark .MuiDataGrid-root,
326
+ body.dark-theme .MuiDataGrid-root {
327
+ background-color: #1e1e1e !important;
328
+ color: #ffffff !important;
329
+
330
+ .MuiDataGrid-row {
331
+ background-color: #1e1e1e !important;
332
+ color: #d1d1d1 !important;
333
+
334
+ &:hover {
335
+ background-color: #333333 !important;
336
+ }
337
+ }
338
+
339
+ .MuiDataGrid-cell {
340
+ border-color: #5e5e5e !important;
341
+ }
342
+
343
+ .MuiDataGrid-columnHeaders {
344
+ background-color: #5e5e5e !important;
345
+ }
346
+ }
347
+
348
+ /* Dark Theme Modal Header & Footer Override */
349
+ html.dark .nnp-modal-content .nnp-header-primary,
350
+ body.dark-theme .nnp-modal-content .nnp-header-primary {
351
+ background-color: #373b42 !important;
352
+ }
353
+
354
+ /* Reusable Accordions styling */
355
+ .nnp-accordion {
356
+ border: 1px solid #444444;
357
+ border-bottom: 1px solid #444444;
358
+ background: transparent;
359
+ height: 100%;
360
+ display: flex;
361
+ flex-direction: column;
362
+
363
+ .MuiCollapse-root {
364
+ flex-grow: 1;
365
+ display: flex;
366
+ flex-direction: column;
367
+ }
368
+
369
+ .MuiCollapse-wrapper,
370
+ .MuiCollapse-wrapperInner,
371
+ .MuiAccordionDetails-root {
372
+ flex-grow: 1;
373
+ display: flex;
374
+ flex-direction: column;
375
+ height: 100%;
376
+ position: relative;
377
+ }
378
+ }
379
+
380
+ .nnp-accordion-summary {
381
+ min-height: 42px !important;
382
+ letter-spacing: 0.02em;
383
+ font-size: 0.86rem;
384
+ font-weight: 600;
385
+ text-transform: uppercase;
386
+ padding-right: 0.75rem !important;
387
+ border-bottom: 1px solid #444444;
388
+ background-color: #B8B8B8 !important;
389
+ color: #000000 !important;
390
+
391
+ html.dark &,
392
+ body.dark-theme & {
393
+ background-color: #2E2E2E !important;
394
+ color: #2799CC !important;
395
+ }
396
+
397
+ .MuiAccordionSummary-content {
398
+ margin: 0.45rem 0 !important;
399
+ }
400
+ }
401
+
402
+ html.dark .nnp-accordion,
403
+ body.dark-theme .nnp-accordion {
404
+ border-color: var(--border-color);
405
+ }
406
+
407
+ html.dark .nnp-accordion-summary,
408
+ body.dark-theme .nnp-accordion-summary {
409
+ border-bottom-color: var(--border-color);
410
+ }
411
+
412
+ .nnp-accordion-toggle {
413
+ display: inline-flex;
414
+ align-items: center;
415
+ justify-content: center;
416
+ width: 1.2rem;
417
+ height: 1.2rem;
418
+ border: 1px solid currentColor;
419
+ border-radius: 2px;
420
+ font-size: 1rem;
421
+ line-height: 1;
422
+ flex-shrink: 0;
423
+ }
424
+
425
+ /* Reusable Feature Card Icon styles */
426
+ .nnp-feature-icon-container {
427
+ position: absolute;
428
+ top: 16px; /* aligned to the top of the card body */
429
+ right: 24px; /* positioned on the right side of the card body */
430
+ width: 35px;
431
+ height: 35px;
432
+ display: flex;
433
+ align-items: center;
434
+ justify-content: center;
435
+ pointer-events: none;
436
+ }
437
+
438
+ .nnp-feature-icon {
439
+ width: 100%;
440
+ height: 100%;
441
+ object-fit: contain;
442
+ }
@@ -0,0 +1,23 @@
1
+ @mixin justify($justify, $align) {
2
+ display: flex;
3
+ justify-content: $justify;
4
+ align-items: $align;
5
+ }
6
+
7
+ @mixin flex-direction($direction) {
8
+ display: flex;
9
+ flex-direction: $direction;
10
+ }
11
+
12
+ @mixin nnp-component-primary {
13
+ height: var(--component-height-medium);
14
+ min-height: var(--component-height-medium) !important;
15
+ padding: 0 var(--nnp-padding-medium);
16
+ }
17
+
18
+
19
+ @mixin nnp-component-secondary {
20
+ height: var(--component-height-small);
21
+ min-height: var(--component-height-small) !important;
22
+ padding: 0 var(--nnp-padding-small);
23
+ }
@@ -0,0 +1,93 @@
1
+ :root {
2
+ --font-family-special: Verdana, sans-serif;
3
+ --font-family-header: "Helvetica";
4
+ --font-family-body: "Helvetica";
5
+
6
+ --font-size-md: 0.98rem;
7
+ --font-size-nm: 0.85rem;
8
+ --font-size-xs: 0.70rem;
9
+ --font-size-sm: 0.78rem;
10
+ --font-size-lg: 1.115rem;
11
+ --font-size-xl: 1.25rem;
12
+ --font-size-xxl: 2rem;
13
+
14
+ --font-light: 200;
15
+ --font-normal: 400;
16
+ --font-bold: 600;
17
+ --fold-bolder: 800;
18
+
19
+ --radius-small: 0.15rem;
20
+ --radius-medium: 0.25rem;
21
+ --radius-large: 0.75rem;
22
+
23
+ --border-color: #999999;
24
+
25
+ --modal-box-shadow: 0 20px 25px -5px rgba(0,0,0,.1),
26
+ 0 8px 10px -6px rgba(0,0,0,.1);
27
+
28
+ /* Light Theme */
29
+ --base-color-primary: #E8E8E8;
30
+ --base-color-secondary: #000000;
31
+ --base-color-tertiary: #444444;
32
+
33
+ --component-color-primary: #666666;
34
+ --component-color-secondary: #fffbfb;
35
+ --component-color-tertiary: #cccccc;
36
+ --component-color-highlight: #0099cc;
37
+ --component-color-blue: #336699;
38
+ --component-color-grey: #939498;
39
+
40
+ --text-color-primary: #000000;
41
+ --text-color-secondary: #ffffff;
42
+ --text-color-tertiary: #0099cc;
43
+ --text-color-quaternary: #7e7e7e;
44
+ --text-color-link: #0099cc;
45
+ --text-color-disabled: #f44336;
46
+
47
+ --top-header-background-color: #000000;
48
+ --bottom-footer-background-color: #000000;
49
+
50
+ --nnp-padding-small: 0.5rem;
51
+ --nnp-padding-medium: 1rem;
52
+ --nnp-padding-large: 2rem;
53
+
54
+ --component-height-small: 30px;
55
+ --component-height-medium: 50px;
56
+ --component-height-large: 150px;
57
+
58
+ --nav-width: 260px;
59
+
60
+ --nnp-date-formate: "DD/MM/YYYY";
61
+ --nnp-time-formate: "HH:mm:ss";
62
+
63
+ --grid-odd-row-color: #E3E2D6;
64
+ --grid-even-row-color: #f9f9f9;
65
+ --grid-header-color: #0099CC;
66
+ --grid-header-text-color: #dddddd;
67
+ }
68
+
69
+
70
+ /* Dark Theme Variables */
71
+ html.dark,
72
+ body.dark-theme {
73
+ --base-color-primary: #3D3D3D;
74
+ --base-color-secondary: #1e1e1e;
75
+ --base-color-tertiary: #444444;
76
+
77
+ --component-color-primary: #666666;
78
+ --component-color-secondary: #1e1e1e;
79
+ --component-color-tertiary: #2f2f2f;
80
+ --component-color-highlight: #0099cc;
81
+ --component-color-blue: #336699;
82
+ --component-color-grey: #939498;
83
+
84
+ --text-color-primary: #ffffff;
85
+ --text-color-secondary: #ffffff;
86
+ --text-color-tertiary: #b0bec5;
87
+ --text-color-quaternary: #a6a6a6;
88
+ --text-color-link: #84DEF1;
89
+ --text-color-disabled: #f44336;
90
+
91
+ --top-header-background-color: #121212;
92
+ --bottom-footer-background-color: #1e1e1e;
93
+ }