@keenmate/pure-admin-core 1.0.0-rc05 → 1.0.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.
@@ -4,17 +4,68 @@
4
4
  ======================================== */
5
5
  @use '../../variables' as *;
6
6
 
7
- // Sidebar layout element
7
+ // CSS variable for sidebar width (allows JS resize)
8
+ :root {
9
+ --pa-sidebar-width: #{$sidebar-width};
10
+ --pa-sidebar-min-width: 18rem;
11
+ --pa-sidebar-max-width: 50rem;
12
+ }
13
+
14
+ // Sidebar layout element - width in :where() for low specificity (utility classes can override)
15
+ :where(.pa-layout__sidebar) {
16
+ width: var(--pa-sidebar-width);
17
+ }
18
+
8
19
  .pa-layout__sidebar {
9
- width: $sidebar-width;
10
20
  background-color: var(--pa-sidebar-bg);
11
21
  border-right: $border-width-base solid var(--pa-border-color);
12
22
  flex-shrink: 0;
23
+ position: relative;
24
+ }
25
+
26
+ // Resize handle on sidebar edge
27
+ .pa-sidebar-resize {
28
+ position: absolute;
29
+ top: 0;
30
+ right: 0;
31
+ width: 6px;
32
+ height: 100%;
33
+ cursor: ew-resize;
34
+ z-index: 100;
35
+
36
+ // Visual indicator on hover
37
+ &::after {
38
+ content: '';
39
+ position: absolute;
40
+ top: 0;
41
+ left: 50%;
42
+ transform: translateX(-50%);
43
+ width: 2px;
44
+ height: 100%;
45
+ background-color: transparent;
46
+ transition: background-color $transition-fast $easing-snappy;
47
+ }
48
+
49
+ &:hover::after,
50
+ &--active::after {
51
+ background-color: var(--pa-accent);
52
+ }
53
+ }
54
+
55
+ // Disable text selection during resize
56
+ body.pa-sidebar-resizing {
57
+ cursor: ew-resize !important;
58
+ user-select: none;
59
+
60
+ * {
61
+ cursor: ew-resize !important;
62
+ }
13
63
  }
14
64
 
15
65
  // Sticky mode - sidebar scrolls
16
66
  body.pa-layout--sticky .pa-layout__sidebar {
17
67
  overflow-y: auto;
68
+ overflow-y: overlay; // Chromium: scrollbar overlays content, doesn't reduce width
18
69
  overflow-x: visible; // Allow tooltips to escape right
19
70
  }
20
71
 
@@ -2,6 +2,19 @@
2
2
  /* Light version maintaining Audi's red accents and Fira Sans Condensed font */
3
3
  @use 'sass:color';
4
4
 
5
+ // =============================================================================
6
+ // THEME COLOR SLOTS (1-9) - Audi-inspired palette
7
+ // =============================================================================
8
+ $color-1: #bb0a30; // Audi Red (classic)
9
+ $color-2: #ff4444; // Light Red
10
+ $color-3: #ff6600; // Orange (warning tone)
11
+ $color-4: #d4af37; // Gold (premium)
12
+ $color-5: #00a0a0; // Teal (contrast)
13
+ $color-6: #0066cc; // Blue (professional)
14
+ $color-7: #8c8c8c; // Silver (metallic)
15
+ $color-8: #404040; // Charcoal (neutral)
16
+ $color-9: #6b3fa0; // Purple (luxury)
17
+
5
18
  @import '../variables';
6
19
 
7
20
  // Audi Light theme configuration
@@ -304,6 +317,19 @@ $card-border-radius: 0; // Sharp edges
304
317
  }
305
318
  }
306
319
 
320
+ // Footer - light text on dark background
321
+ .pa-layout__footer {
322
+ color: #cccccc;
323
+
324
+ a {
325
+ color: #ffffff;
326
+
327
+ &:hover {
328
+ color: $audi-red;
329
+ }
330
+ }
331
+ }
332
+
307
333
  // CSS Variables for page loader (FOUC prevention) and base theme variables
308
334
  :root {
309
335
  --page-loader-bg: rgba(240, 240, 240, 0.95);
@@ -1,6 +1,19 @@
1
1
  /* Pure Admin Visual - Audi Theme (Pure SCSS Variables) */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Audi-inspired palette
6
+ // =============================================================================
7
+ $color-1: #bb0a30; // Audi Red (classic)
8
+ $color-2: #ff4444; // Light Red
9
+ $color-3: #ff6600; // Orange (warning tone)
10
+ $color-4: #d4af37; // Gold (premium)
11
+ $color-5: #00a0a0; // Teal (contrast)
12
+ $color-6: #0066cc; // Blue (professional)
13
+ $color-7: #8c8c8c; // Silver (metallic)
14
+ $color-8: #404040; // Charcoal (neutral)
15
+ $color-9: #6b3fa0; // Purple (luxury)
16
+
4
17
  // 1. Import framework variables first (all defaults with !default flags)
5
18
  @import '../variables';
6
19
 
@@ -1,5 +1,18 @@
1
1
  /* Corporate Theme for Pure Admin Visual - Professional blue/gray palette */
2
2
 
3
+ // =============================================================================
4
+ // THEME COLOR SLOTS (1-9) - Corporate professional palette
5
+ // =============================================================================
6
+ $color-1: #0284c7; // Corporate Blue (primary)
7
+ $color-2: #0ea5e9; // Sky Blue (lighter)
8
+ $color-3: #10b981; // Emerald (success)
9
+ $color-4: #f59e0b; // Amber (attention)
10
+ $color-5: #6366f1; // Indigo (accent)
11
+ $color-6: #8b5cf6; // Violet (creative)
12
+ $color-7: #64748b; // Slate (neutral)
13
+ $color-8: #334155; // Dark Slate (contrast)
14
+ $color-9: #ec4899; // Pink (highlight)
15
+
3
16
  @import '../variables';
4
17
 
5
18
  // Corporate color palette
@@ -192,6 +205,19 @@ $modal-content-bg: #ffffff;
192
205
  }
193
206
  }
194
207
 
208
+ // Footer - light text on dark background
209
+ .pa-layout__footer {
210
+ color: $corporate-slate-300;
211
+
212
+ a {
213
+ color: #ffffff;
214
+
215
+ &:hover {
216
+ color: $corporate-blue-500;
217
+ }
218
+ }
219
+ }
220
+
195
221
  // CSS Variables for page loader (FOUC prevention) and base theme variables
196
222
  :root {
197
223
  --page-loader-bg: rgba(26, 26, 26, 0.95);
@@ -1,6 +1,19 @@
1
1
  /* Dark Blue Theme for Pure Admin Visual */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Dark blue palette
6
+ // =============================================================================
7
+ $color-1: #3b82f6; // Blue 500 (primary)
8
+ $color-2: #60a5fa; // Blue 400 (lighter)
9
+ $color-3: #22c55e; // Green 500 (success)
10
+ $color-4: #eab308; // Yellow 500 (warning)
11
+ $color-5: #a855f7; // Purple 500 (accent)
12
+ $color-6: #06b6d4; // Cyan 500 (info)
13
+ $color-7: #94a3b8; // Slate 400 (neutral)
14
+ $color-8: #f1f5f9; // Slate 100 (light)
15
+ $color-9: #f43f5e; // Rose 500 (highlight)
16
+
4
17
  @import '../variables';
5
18
 
6
19
  // Dark blue theme color palette
@@ -1,6 +1,19 @@
1
1
  /* Dark Green Theme for Pure Admin Visual */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Dark green palette
6
+ // =============================================================================
7
+ $color-1: #22c55e; // Green 500 (primary)
8
+ $color-2: #4ade80; // Green 400 (lighter)
9
+ $color-3: #84cc16; // Lime 500 (accent)
10
+ $color-4: #eab308; // Yellow 500 (warning)
11
+ $color-5: #14b8a6; // Teal 500 (info)
12
+ $color-6: #3b82f6; // Blue 500 (contrast)
13
+ $color-7: #a3e635; // Lime 400 (highlight)
14
+ $color-8: #f0fdf4; // Green 50 (light)
15
+ $color-9: #f97316; // Orange 500 (alert)
16
+
4
17
  @import '../variables';
5
18
 
6
19
  // Dark green theme color palette
@@ -1,6 +1,19 @@
1
1
  /* Dark Red Theme for Pure Admin Visual */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Dark red palette
6
+ // =============================================================================
7
+ $color-1: #ef4444; // Red 500 (primary)
8
+ $color-2: #f87171; // Red 400 (lighter)
9
+ $color-3: #f97316; // Orange 500 (accent)
10
+ $color-4: #eab308; // Yellow 500 (warning)
11
+ $color-5: #ec4899; // Pink 500 (secondary)
12
+ $color-6: #8b5cf6; // Violet 500 (contrast)
13
+ $color-7: #fca5a5; // Red 300 (muted)
14
+ $color-8: #fef2f2; // Red 50 (light)
15
+ $color-9: #06b6d4; // Cyan 500 (cool contrast)
16
+
4
17
  @import '../variables';
5
18
 
6
19
  // Dark red theme color palette
@@ -1,6 +1,19 @@
1
1
  /* Dark Theme for Pure Admin Visual */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Dark theme vibrant palette
6
+ // =============================================================================
7
+ $color-1: #4dabf7; // Light Blue (primary)
8
+ $color-2: #69db7c; // Light Green (success)
9
+ $color-3: #ffd43b; // Yellow (warning)
10
+ $color-4: #ff6b6b; // Light Red (danger)
11
+ $color-5: #da77f2; // Light Purple (accent)
12
+ $color-6: #38d9a9; // Teal (info)
13
+ $color-7: #adb5bd; // Gray (neutral)
14
+ $color-8: #f8f9fa; // Light (contrast)
15
+ $color-9: #ffa94d; // Orange (highlight)
16
+
4
17
  @import '../variables';
5
18
 
6
19
  // Dark theme color palette
@@ -1,6 +1,19 @@
1
1
  /* Express Theme - Bold yellow and red palette inspired by logistics brands */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Express logistics palette
6
+ // =============================================================================
7
+ $color-1: #D40511; // Express Red (primary)
8
+ $color-2: #FFCC00; // Express Yellow (brand)
9
+ $color-3: #ff6b00; // Orange (urgent)
10
+ $color-4: #00a651; // Green (delivered)
11
+ $color-5: #0066cc; // Blue (tracking)
12
+ $color-6: #6b3fa0; // Purple (premium)
13
+ $color-7: #8C8C8C; // Gray (neutral)
14
+ $color-8: #333333; // Dark (contrast)
15
+ $color-9: #00b4d8; // Cyan (info)
16
+
4
17
  @import '../variables';
5
18
 
6
19
  // Express color palette - Bold yellow and red
@@ -1,6 +1,19 @@
1
1
  /* Minimal Theme for Pure Admin Visual - Ultra clean, monochrome approach */
2
2
  @use 'sass:color';
3
3
 
4
+ // =============================================================================
5
+ // THEME COLOR SLOTS (1-9) - Minimal muted palette
6
+ // =============================================================================
7
+ $color-1: #374151; // Gray 700 (primary)
8
+ $color-2: #6b7280; // Gray 500 (secondary)
9
+ $color-3: #059669; // Emerald 600 (muted success)
10
+ $color-4: #d97706; // Amber 600 (muted warning)
11
+ $color-5: #4f46e5; // Indigo 600 (accent)
12
+ $color-6: #7c3aed; // Violet 600 (subtle)
13
+ $color-7: #9ca3af; // Gray 400 (light)
14
+ $color-8: #1f2937; // Gray 800 (dark)
15
+ $color-9: #db2777; // Pink 600 (highlight)
16
+
4
17
  @import '../variables';
5
18
 
6
19
  // Minimal theme color palette - grayscale focused
@@ -277,9 +277,12 @@ $spacers: (
277
277
  .w-100 { width: 100% !important; }
278
278
  .w-auto { width: auto !important; }
279
279
 
280
- // Width utilities (fractions) - matches grid naming: pa-col-1-3, pa-col-2-3
280
+ // Width utilities (fractions) - matches grid naming
281
+ .w-1-2 { width: 50% !important; }
281
282
  .w-1-3 { width: 33.333333% !important; }
282
283
  .w-2-3 { width: 66.666667% !important; }
284
+ .w-1-4 { width: 25% !important; }
285
+ .w-3-4 { width: 75% !important; }
283
286
 
284
287
  // Min-width utilities
285
288
  .mw-25 { min-width: 25% !important; }
@@ -287,16 +290,22 @@ $spacers: (
287
290
  .mw-75 { min-width: 75% !important; }
288
291
  .mw-100 { min-width: 100% !important; }
289
292
  .mw-auto { min-width: auto !important; }
293
+ .mw-1-2 { min-width: 50% !important; }
290
294
  .mw-1-3 { min-width: 33.333333% !important; }
291
295
  .mw-2-3 { min-width: 66.666667% !important; }
296
+ .mw-1-4 { min-width: 25% !important; }
297
+ .mw-3-4 { min-width: 75% !important; }
292
298
 
293
299
  // Fixed width utilities (min-width + width locked)
294
300
  .w-25-fixed { min-width: 25% !important; width: 25% !important; }
295
301
  .w-50-fixed { min-width: 50% !important; width: 50% !important; }
296
302
  .w-75-fixed { min-width: 75% !important; width: 75% !important; }
297
303
  .w-100-fixed { min-width: 100% !important; width: 100% !important; }
304
+ .w-1-2-fixed { min-width: 50% !important; width: 50% !important; }
298
305
  .w-1-3-fixed { min-width: 33.333333% !important; width: 33.333333% !important; }
299
306
  .w-2-3-fixed { min-width: 66.666667% !important; width: 66.666667% !important; }
307
+ .w-1-4-fixed { min-width: 25% !important; width: 25% !important; }
308
+ .w-3-4-fixed { min-width: 75% !important; width: 75% !important; }
300
309
 
301
310
  // Height utilities
302
311
  .h-25 {
@@ -319,10 +328,17 @@ $spacers: (
319
328
  height: auto !important;
320
329
  }
321
330
 
331
+ // Height utilities (fractions)
332
+ .h-1-2 { height: 50% !important; }
333
+ .h-1-3 { height: 33.333333% !important; }
334
+ .h-2-3 { height: 66.666667% !important; }
335
+ .h-1-4 { height: 25% !important; }
336
+ .h-3-4 { height: 75% !important; }
337
+
322
338
  // ============================================================================
323
339
  // REM-BASED SIZING UTILITIES
324
340
  // Use 'r' suffix to distinguish from percentage-based utilities
325
- // Values: 1-10, 15, 20, 25 (rem)
341
+ // Values: 1-10, 15, 20, 25, 30, 35, 40, 45, 50 (rem)
326
342
  // ============================================================================
327
343
 
328
344
  // Width (rem)
@@ -339,6 +355,11 @@ $spacers: (
339
355
  .wr-15 { width: 15rem !important; }
340
356
  .wr-20 { width: 20rem !important; }
341
357
  .wr-25 { width: 25rem !important; }
358
+ .wr-30 { width: 30rem !important; }
359
+ .wr-35 { width: 35rem !important; }
360
+ .wr-40 { width: 40rem !important; }
361
+ .wr-45 { width: 45rem !important; }
362
+ .wr-50 { width: 50rem !important; }
342
363
 
343
364
  // Min-width (rem)
344
365
  .minwr-1 { min-width: 1rem !important; }
@@ -354,6 +375,11 @@ $spacers: (
354
375
  .minwr-15 { min-width: 15rem !important; }
355
376
  .minwr-20 { min-width: 20rem !important; }
356
377
  .minwr-25 { min-width: 25rem !important; }
378
+ .minwr-30 { min-width: 30rem !important; }
379
+ .minwr-35 { min-width: 35rem !important; }
380
+ .minwr-40 { min-width: 40rem !important; }
381
+ .minwr-45 { min-width: 45rem !important; }
382
+ .minwr-50 { min-width: 50rem !important; }
357
383
 
358
384
  // Max-width (rem)
359
385
  .maxwr-1 { max-width: 1rem !important; }
@@ -369,6 +395,11 @@ $spacers: (
369
395
  .maxwr-15 { max-width: 15rem !important; }
370
396
  .maxwr-20 { max-width: 20rem !important; }
371
397
  .maxwr-25 { max-width: 25rem !important; }
398
+ .maxwr-30 { max-width: 30rem !important; }
399
+ .maxwr-35 { max-width: 35rem !important; }
400
+ .maxwr-40 { max-width: 40rem !important; }
401
+ .maxwr-45 { max-width: 45rem !important; }
402
+ .maxwr-50 { max-width: 50rem !important; }
372
403
 
373
404
  // Height (rem)
374
405
  .hr-1 { height: 1rem !important; }
@@ -384,6 +415,11 @@ $spacers: (
384
415
  .hr-15 { height: 15rem !important; }
385
416
  .hr-20 { height: 20rem !important; }
386
417
  .hr-25 { height: 25rem !important; }
418
+ .hr-30 { height: 30rem !important; }
419
+ .hr-35 { height: 35rem !important; }
420
+ .hr-40 { height: 40rem !important; }
421
+ .hr-45 { height: 45rem !important; }
422
+ .hr-50 { height: 50rem !important; }
387
423
 
388
424
  // Min-height (rem)
389
425
  .minhr-1 { min-height: 1rem !important; }
@@ -399,6 +435,11 @@ $spacers: (
399
435
  .minhr-15 { min-height: 15rem !important; }
400
436
  .minhr-20 { min-height: 20rem !important; }
401
437
  .minhr-25 { min-height: 25rem !important; }
438
+ .minhr-30 { min-height: 30rem !important; }
439
+ .minhr-35 { min-height: 35rem !important; }
440
+ .minhr-40 { min-height: 40rem !important; }
441
+ .minhr-45 { min-height: 45rem !important; }
442
+ .minhr-50 { min-height: 50rem !important; }
402
443
 
403
444
  // Max-height (rem)
404
445
  .maxhr-1 { max-height: 1rem !important; }
@@ -414,6 +455,11 @@ $spacers: (
414
455
  .maxhr-15 { max-height: 15rem !important; }
415
456
  .maxhr-20 { max-height: 20rem !important; }
416
457
  .maxhr-25 { max-height: 25rem !important; }
458
+ .maxhr-30 { max-height: 30rem !important; }
459
+ .maxhr-35 { max-height: 35rem !important; }
460
+ .maxhr-40 { max-height: 40rem !important; }
461
+ .maxhr-45 { max-height: 45rem !important; }
462
+ .maxhr-50 { max-height: 50rem !important; }
417
463
 
418
464
  // ============================================================================
419
465
  // PERCENTAGE-BASED MIN/MAX UTILITIES
@@ -465,8 +511,11 @@ $spacers: (
465
511
  .maxw-90 { max-width: 90% !important; }
466
512
  .maxw-95 { max-width: 95% !important; }
467
513
  .maxw-100 { max-width: 100% !important; }
514
+ .maxw-1-2 { max-width: 50% !important; }
468
515
  .maxw-1-3 { max-width: 33.333333% !important; }
469
516
  .maxw-2-3 { max-width: 66.666667% !important; }
517
+ .maxw-1-4 { max-width: 25% !important; }
518
+ .maxw-3-4 { max-width: 75% !important; }
470
519
 
471
520
  // Min-height (percentage)
472
521
  .minh-5 { min-height: 5% !important; }
@@ -489,8 +538,11 @@ $spacers: (
489
538
  .minh-90 { min-height: 90% !important; }
490
539
  .minh-95 { min-height: 95% !important; }
491
540
  .minh-100 { min-height: 100% !important; }
541
+ .minh-1-2 { min-height: 50% !important; }
492
542
  .minh-1-3 { min-height: 33.333333% !important; }
493
543
  .minh-2-3 { min-height: 66.666667% !important; }
544
+ .minh-1-4 { min-height: 25% !important; }
545
+ .minh-3-4 { min-height: 75% !important; }
494
546
 
495
547
  // Max-height (percentage)
496
548
  .maxh-5 { max-height: 5% !important; }
@@ -513,8 +565,11 @@ $spacers: (
513
565
  .maxh-90 { max-height: 90% !important; }
514
566
  .maxh-95 { max-height: 95% !important; }
515
567
  .maxh-100 { max-height: 100% !important; }
568
+ .maxh-1-2 { max-height: 50% !important; }
516
569
  .maxh-1-3 { max-height: 33.333333% !important; }
517
570
  .maxh-2-3 { max-height: 66.666667% !important; }
571
+ .maxh-1-4 { max-height: 25% !important; }
572
+ .maxh-3-4 { max-height: 75% !important; }
518
573
 
519
574
  // Position utilities
520
575
  .position-static {