@keenmate/pure-css 1.0.0-rc05 → 1.0.0-rc07

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.
@@ -47,18 +47,25 @@
47
47
  --base-disabled-bg: #{$base-disabled-bg};
48
48
  --base-elevated-bg: #{$base-elevated-bg};
49
49
 
50
+ // === Text on inverse surfaces ===
51
+ --base-text-inverted: #{$base-text-inverted};
52
+
50
53
  // === Border Colors ===
51
54
  --base-border-color: #{$base-border-color};
52
55
  --base-border: #{$base-border};
56
+ --base-checkbox-border-color: #{$base-checkbox-border-color};
53
57
 
54
58
  // === Input Fields ===
55
59
  --base-input-bg: #{$base-input-bg};
56
60
  --base-input-color: #{$base-input-color};
57
61
  --base-input-border: #{$base-input-border};
62
+ --base-input-border-color: #{$base-input-border-color};
58
63
  --base-input-border-hover: #{$base-input-border-hover};
59
64
  --base-input-border-focus: #{$base-input-border-focus};
60
65
  --base-input-placeholder-color: #{$base-input-placeholder-color};
61
66
  --base-input-bg-disabled: #{$base-input-bg-disabled};
67
+ --base-input-clear-color: #{$base-input-clear-color};
68
+ --base-input-clear-bg-hover: #{$base-input-clear-bg-hover};
62
69
 
63
70
  // === Input Size Heights ===
64
71
  --base-input-size-xs-height: #{$base-input-size-xs-height};
@@ -75,9 +82,11 @@
75
82
  // === Tooltip ===
76
83
  --base-tooltip-bg: #{$base-tooltip-bg};
77
84
  --base-tooltip-text-color: #{$base-tooltip-text-color};
85
+ --base-tooltip-color: #{$base-tooltip-text-color}; // alias consumed by web-grid
78
86
 
79
87
  // === Contextual Colors - Success ===
80
88
  --base-success-color: #{$base-success-color};
89
+ --base-success-bg: #{$base-success-bg};
81
90
  --base-success-color-hover: #{$base-success-color-hover};
82
91
  --base-success-bg-light: #{$base-success-bg-light};
83
92
  --base-success-bg-subtle: #{$base-success-bg-subtle};
@@ -88,6 +97,7 @@
88
97
 
89
98
  // === Contextual Colors - Danger ===
90
99
  --base-danger-color: #{$base-danger-color};
100
+ --base-danger-bg: #{$base-danger-bg};
91
101
  --base-danger-color-hover: #{$base-danger-color-hover};
92
102
  --base-danger-bg-light: #{$base-danger-bg-light};
93
103
  --base-danger-bg-subtle: #{$base-danger-bg-subtle};
@@ -98,6 +108,7 @@
98
108
 
99
109
  // === Contextual Colors - Warning ===
100
110
  --base-warning-color: #{$base-warning-color};
111
+ --base-warning-bg: #{$base-warning-bg};
101
112
  --base-warning-color-hover: #{$base-warning-color-hover};
102
113
  --base-warning-bg-light: #{$base-warning-bg-light};
103
114
  --base-warning-bg-subtle: #{$base-warning-bg-subtle};
@@ -144,6 +155,9 @@
144
155
  --base-border-radius-sm: #{$base-border-radius-sm};
145
156
  --base-border-radius-md: #{$base-border-radius-md};
146
157
  --base-border-radius-lg: #{$base-border-radius-lg};
158
+
159
+ // === Rem base for web components ===
160
+ --base-rem: #{$base-rem};
147
161
  }
148
162
 
149
163
  // ============================================================================
@@ -209,17 +223,20 @@
209
223
  // to the `.pc-mode-dark` block.
210
224
  color-scheme: #{$theme-color-scheme};
211
225
 
212
- // Surfaces
226
+ // Surfaces. NOTE: pure-admin's --pc-main-bg is the *page* surface and
227
+ // --pc-subtle-bg the *card* surface — a legacy naming inversion vs the
228
+ // --base-* model (--base-main-bg = card), so those two stay compile-time to
229
+ // avoid a value flip. --pc-page-bg maps cleanly and is relinked.
213
230
  --pc-main-bg: #{$main-bg};
214
- --pc-page-bg: #{$page-bg};
231
+ --pc-page-bg: var(--base-page-bg, #{$page-bg});
215
232
  --pc-subtle-bg: #{$subtle-bg};
216
233
 
217
- // Text
218
- --pc-text-color-1: #{$text-color-1};
219
- --pc-text-color-2: #{$text-color-2};
234
+ // Text — follow the shared --base-* tokens at runtime.
235
+ --pc-text-color-1: var(--base-text-color-1, #{$text-color-1});
236
+ --pc-text-color-2: var(--base-text-color-2, #{$text-color-2});
220
237
 
221
238
  // Accent — -light derives from --pc-accent at runtime so theme overrides cascade.
222
- --pc-accent: #{$accent-color};
239
+ --pc-accent: var(--base-accent-color, #{$accent-color});
223
240
  --pc-accent-hover: #{$accent-hover};
224
241
  --pc-accent-light: color-mix(in srgb, var(--pc-accent) 5%, transparent);
225
242
 
@@ -270,10 +287,17 @@
270
287
  --pc-color-8-text: #{$color-8-text};
271
288
  --pc-color-9-text: #{$color-9-text};
272
289
 
273
- // Border-radius scale
274
- --pc-border-radius-sm: #{$border-radius-sm};
275
- --pc-border-radius: #{$border-radius};
276
- --pc-border-radius-lg: #{$border-radius-lg};
290
+ // Border-radius scale — derived from the --base-border-radius-* contract (the
291
+ // same unitless rem-multipliers the web/svelte components read; e.g.
292
+ // web-multiselect: `calc(var(--base-border-radius-md) * --ms-rem)`). Multiplying
293
+ // by 1rem yields px at pure-css's 10px rem base (0.6 → 0.6rem → 6px) and keeps
294
+ // the scale live: overriding --base-border-radius-* at runtime re-rounds
295
+ // pure-css's own elements and the components together, instead of the old baked
296
+ // 2/4/8px literals that ignored the base contract. The $base-* multipliers are
297
+ // the fallbacks. NOTE: --pc-border-radius (unsuffixed) is the MID (-md) step.
298
+ --pc-border-radius-sm: calc(var(--base-border-radius-sm, #{$base-border-radius-sm}) * 1rem);
299
+ --pc-border-radius: calc(var(--base-border-radius-md, #{$base-border-radius-md}) * 1rem);
300
+ --pc-border-radius-lg: calc(var(--base-border-radius-lg, #{$base-border-radius-lg}) * 1rem);
277
301
  }
278
302
 
279
303
  // ============================================================================
@@ -328,6 +352,14 @@
328
352
  // LAYOUT COLORS
329
353
  // =========================================================================
330
354
 
355
+ // The app shell (navbar / sidebar / footer) is a DISTINCT brand surface: a
356
+ // theme sets its own $navbar-bg / $sidebar-bg / $footer-bg (e.g. Express's
357
+ // yellow bar), independent of the --base-* card/page palette. So emit these
358
+ // compile-time — NOT `var(--base-main-bg, …)`, which would let the always-set
359
+ // --base-main-bg win and erase the brand colour. The standalone (base.css
360
+ // only) fallback lives where it belongs: the shell CSS itself resolves
361
+ // `var(--pc-navbar-bg, var(--base-main-bg))` when no --pc-* is emitted.
362
+
331
363
  // Navbar
332
364
  --pc-navbar-bg: #{$navbar-bg};
333
365
  --pc-navbar-border-color: #{$navbar-border-color};
@@ -353,10 +385,10 @@
353
385
  // =========================================================================
354
386
 
355
387
  // Primary (uses accent color)
356
- --pc-btn-primary-bg: #{$btn-primary-bg};
357
- --pc-btn-primary-bg-hover: #{$btn-primary-bg-hover};
388
+ --pc-btn-primary-bg: var(--base-accent-color, #{$btn-primary-bg});
389
+ --pc-btn-primary-bg-hover: var(--base-accent-color-hover, #{$btn-primary-bg-hover});
358
390
  --pc-btn-primary-bg-light: color-mix(in srgb, var(--pc-btn-primary-bg) 5%, transparent);
359
- --pc-btn-primary-text: #{$btn-primary-text};
391
+ --pc-btn-primary-text: var(--base-text-color-on-accent, #{$btn-primary-text});
360
392
 
361
393
  // Secondary
362
394
  --pc-btn-secondary-bg: #{$btn-secondary-bg};
@@ -366,28 +398,28 @@
366
398
 
367
399
  // Success — bg references role colour for runtime cascade
368
400
  --pc-btn-success-bg: var(--pc-success);
369
- --pc-btn-success-bg-hover: #{$btn-success-bg-hover};
370
- --pc-btn-success-text: #{$btn-success-text};
401
+ --pc-btn-success-bg-hover: var(--base-success-color-hover, #{$btn-success-bg-hover});
402
+ --pc-btn-success-text: var(--base-text-on-success, #{$btn-success-text});
371
403
 
372
404
  // Danger — bg references role colour for runtime cascade
373
405
  --pc-btn-danger-bg: var(--pc-danger);
374
- --pc-btn-danger-bg-hover: #{$btn-danger-bg-hover};
375
- --pc-btn-danger-text: #{$btn-danger-text};
406
+ --pc-btn-danger-bg-hover: var(--base-danger-color-hover, #{$btn-danger-bg-hover});
407
+ --pc-btn-danger-text: var(--base-text-on-danger, #{$btn-danger-text});
376
408
 
377
409
  // Warning — bg references role colour for runtime cascade
378
410
  --pc-btn-warning-bg: var(--pc-warning);
379
- --pc-btn-warning-bg-hover: #{$btn-warning-bg-hover};
380
- --pc-btn-warning-text: #{$btn-warning-text};
411
+ --pc-btn-warning-bg-hover: var(--base-warning-color-hover, #{$btn-warning-bg-hover});
412
+ --pc-btn-warning-text: var(--base-text-on-warning, #{$btn-warning-text});
381
413
 
382
414
  // Info — bg references role colour for runtime cascade
383
415
  --pc-btn-info-bg: var(--pc-info);
384
- --pc-btn-info-bg-hover: #{$btn-info-bg-hover};
385
- --pc-btn-info-text: #{$btn-info-text};
416
+ --pc-btn-info-bg-hover: var(--base-info-color-hover, #{$btn-info-bg-hover});
417
+ --pc-btn-info-text: var(--base-text-on-info, #{$btn-info-text});
386
418
 
387
419
  // Light
388
- --pc-btn-light-bg: #{$btn-light-bg};
389
- --pc-btn-light-bg-hover: #{$btn-light-bg-hover};
390
- --pc-btn-light-text: #{$btn-light-text};
420
+ --pc-btn-light-bg: var(--base-page-bg, #{$btn-light-bg});
421
+ --pc-btn-light-bg-hover: var(--base-subtle-bg, #{$btn-light-bg-hover});
422
+ --pc-btn-light-text: var(--base-text-color-1, #{$btn-light-text});
391
423
 
392
424
  // Dark
393
425
  --pc-btn-dark-bg: #{$btn-dark-bg};
@@ -401,81 +433,81 @@
401
433
  // --pc-{success,danger,warning,info}-text live in the base contract.)
402
434
  // =========================================================================
403
435
  --pc-success-bg: var(--pc-success);
404
- --pc-success-bg-hover: #{$success-bg-hover};
436
+ --pc-success-bg-hover: var(--base-success-color-hover, #{$success-bg-hover});
405
437
  --pc-success-bg-light: color-mix(in srgb, var(--pc-success) 10%, transparent);
406
438
  --pc-success-bg-subtle: color-mix(in srgb, var(--pc-success) 8%, transparent);
407
439
  --pc-success-border: color-mix(in srgb, var(--pc-success) 20%, transparent);
408
- --pc-success-text-light: #{$success-text-light};
440
+ --pc-success-text-light: var(--base-success-text-light, #{$success-text-light});
409
441
 
410
442
  --pc-danger-bg: var(--pc-danger);
411
- --pc-danger-bg-hover: #{$danger-bg-hover};
443
+ --pc-danger-bg-hover: var(--base-danger-color-hover, #{$danger-bg-hover});
412
444
  --pc-danger-bg-light: color-mix(in srgb, var(--pc-danger) 10%, transparent);
413
445
  --pc-danger-bg-subtle: color-mix(in srgb, var(--pc-danger) 8%, transparent);
414
446
  --pc-danger-border: color-mix(in srgb, var(--pc-danger) 20%, transparent);
415
- --pc-danger-text-light: #{$danger-text-light};
447
+ --pc-danger-text-light: var(--base-danger-text-light, #{$danger-text-light});
416
448
 
417
449
  --pc-warning-bg: var(--pc-warning);
418
- --pc-warning-bg-hover: #{$warning-bg-hover};
450
+ --pc-warning-bg-hover: var(--base-warning-color-hover, #{$warning-bg-hover});
419
451
  --pc-warning-bg-light: color-mix(in srgb, var(--pc-warning) 10%, transparent);
420
452
  --pc-warning-bg-subtle: color-mix(in srgb, var(--pc-warning) 8%, transparent);
421
453
  --pc-warning-border: color-mix(in srgb, var(--pc-warning) 20%, transparent);
422
- --pc-warning-text-light: #{$warning-text-light};
454
+ --pc-warning-text-light: var(--base-warning-text-light, #{$warning-text-light});
423
455
 
424
456
  --pc-info-bg: var(--pc-info);
425
- --pc-info-bg-hover: #{$info-bg-hover};
457
+ --pc-info-bg-hover: var(--base-info-color-hover, #{$info-bg-hover});
426
458
  --pc-info-bg-light: color-mix(in srgb, var(--pc-info) 10%, transparent);
427
459
  --pc-info-bg-subtle: color-mix(in srgb, var(--pc-info) 8%, transparent);
428
460
  --pc-info-border: color-mix(in srgb, var(--pc-info) 20%, transparent);
429
- --pc-info-text-light: #{$info-text-light};
461
+ --pc-info-text-light: var(--base-info-text-light, #{$info-text-light});
430
462
 
431
463
  // =========================================================================
432
464
  // CARD COLORS
433
465
  // =========================================================================
434
- --pc-card-bg: #{$card-bg};
435
- --pc-card-header-bg: #{$card-header-bg};
436
- --pc-card-footer-bg: #{$card-footer-bg};
437
- --pc-card-tabs-bg: #{$card-tabs-bg};
466
+ --pc-card-bg: var(--base-main-bg, #{$card-bg});
467
+ --pc-card-header-bg: var(--base-elevated-bg, #{$card-header-bg});
468
+ --pc-card-footer-bg: var(--base-main-bg, #{$card-footer-bg});
469
+ --pc-card-tabs-bg: var(--base-elevated-bg, #{$card-tabs-bg});
438
470
 
439
471
  // =========================================================================
440
472
  // INPUT/FORM COLORS
441
473
  // =========================================================================
442
- --pc-input-bg: #{$input-bg};
443
- --pc-input-border: #{$input-border};
444
- --pc-input-text: #{$input-text};
445
- --pc-input-focus-border-color: #{$input-focus-border-color};
446
- --pc-select-focus-border-color: #{$select-focus-border-color};
447
- --pc-textarea-focus-border-color: #{$textarea-focus-border-color};
448
-
449
- // Checkbox
450
- --pc-checkbox-border-color: #{$checkbox-border-color};
451
- --pc-checkbox-border-color-hover: #{$checkbox-border-color-hover};
452
- --pc-checkbox-border-color-checked: #{$checkbox-border-color-checked};
453
- --pc-checkbox-bg: #{$checkbox-bg};
454
- --pc-checkbox-bg-checked: #{$checkbox-bg-checked};
455
- --pc-checkbox-bg-indeterminate: #{$checkbox-bg-indeterminate};
474
+ --pc-input-bg: var(--base-input-bg, #{$input-bg});
475
+ --pc-input-border: var(--base-input-border-color, #{$input-border});
476
+ --pc-input-text: var(--base-input-color, #{$input-text});
477
+ --pc-input-focus-border-color: var(--base-accent-color, #{$input-focus-border-color});
478
+ --pc-select-focus-border-color: var(--base-accent-color, #{$select-focus-border-color});
479
+ --pc-textarea-focus-border-color: var(--base-accent-color, #{$textarea-focus-border-color});
480
+
481
+ // Checkbox (checkmark colour + focus shadow stay compile-time)
482
+ --pc-checkbox-border-color: var(--base-checkbox-border-color, #{$checkbox-border-color});
483
+ --pc-checkbox-border-color-hover: var(--base-accent-color, #{$checkbox-border-color-hover});
484
+ --pc-checkbox-border-color-checked: var(--base-accent-color, #{$checkbox-border-color-checked});
485
+ --pc-checkbox-bg: var(--base-input-bg, #{$checkbox-bg});
486
+ --pc-checkbox-bg-checked: var(--base-accent-color, #{$checkbox-bg-checked});
487
+ --pc-checkbox-bg-indeterminate: var(--base-accent-color, #{$checkbox-bg-indeterminate});
456
488
  --pc-checkbox-checkmark-color: #{$checkbox-checkmark-color};
457
489
  --pc-checkbox-focus-shadow: #{$checkbox-focus-shadow};
458
490
 
459
- // Input group
491
+ // Input group (prepend/append bg are the secondary grey — compile-time)
460
492
  --pc-input-group-prepend-bg: #{$input-group-prepend-bg};
461
- --pc-input-group-prepend-text: #{$input-group-prepend-text};
493
+ --pc-input-group-prepend-text: var(--base-text-color-2, #{$input-group-prepend-text});
462
494
  --pc-input-group-append-bg: #{$input-group-append-bg};
463
- --pc-input-group-append-text: #{$input-group-append-text};
495
+ --pc-input-group-append-text: var(--base-text-color-2, #{$input-group-append-text});
464
496
 
465
497
  // =========================================================================
466
498
  // TABLE COLORS
467
499
  // =========================================================================
468
- --pc-table-bg: #{$table-bg};
469
- --pc-table-header-bg: #{$table-header-bg};
470
- --pc-table-stripe: #{$table-stripe};
471
- --pc-table-hover-bg: #{$table-hover-bg};
472
- --pc-table-hover-accent-color: #{$table-hover-accent-color};
500
+ --pc-table-bg: var(--base-main-bg, #{$table-bg});
501
+ --pc-table-header-bg: var(--base-elevated-bg, #{$table-header-bg});
502
+ --pc-table-stripe: var(--base-elevated-bg, #{$table-stripe});
503
+ --pc-table-hover-bg: var(--base-hover-bg, #{$table-hover-bg});
504
+ --pc-table-hover-accent-color: var(--base-accent-color, #{$table-hover-accent-color});
473
505
 
474
506
  // =========================================================================
475
507
  // MODAL COLORS
476
508
  // =========================================================================
477
- --pc-modal-overlay-bg: #{$modal-overlay-bg};
478
- --pc-modal-content-bg: #{$modal-content-bg};
509
+ --pc-modal-overlay-bg: var(--base-overlay-bg, #{$modal-overlay-bg});
510
+ --pc-modal-content-bg: var(--base-main-bg, #{$modal-content-bg});
479
511
 
480
512
  // =========================================================================
481
513
  // BADGE COLORS
@@ -498,9 +530,9 @@
498
530
  // =========================================================================
499
531
  // TOOLTIP & POPOVER COLORS
500
532
  // =========================================================================
501
- --pc-tooltip-bg: #{$tooltip-bg};
502
- --pc-tooltip-text: #{$tooltip-text};
503
- --pc-popover-content-bg: #{$popover-content-bg};
533
+ --pc-tooltip-bg: var(--base-tooltip-bg, #{$tooltip-bg});
534
+ --pc-tooltip-text: var(--base-tooltip-text-color, #{$tooltip-text});
535
+ --pc-popover-content-bg: var(--base-dropdown-bg, #{$popover-content-bg});
504
536
  --pc-popover-text-light: #{$popover-text-light};
505
537
  --pc-popover-text-dark: #{$popover-text-dark};
506
538
 
@@ -529,22 +561,22 @@
529
561
  --pc-command-palette-item-active-bg: #{$command-palette-item-active-bg};
530
562
  --pc-command-palette-highlight-bg: #{$command-palette-highlight-bg};
531
563
  --pc-command-palette-highlight-text: #{$command-palette-highlight-text};
532
- --pc-command-palette-key-bg: #{$subtle-bg};
533
- --pc-command-palette-key-text: #{$text-color-1};
564
+ --pc-command-palette-key-bg: var(--base-subtle-bg, #{$subtle-bg});
565
+ --pc-command-palette-key-text: var(--base-text-color-1, #{$text-color-1});
534
566
  --pc-command-palette-key-font-size: #{$font-size-xs};
535
567
  --pc-command-palette-key-font-weight: #{$font-weight-semibold};
536
568
 
537
569
  // =========================================================================
538
570
  // MULTISELECT COLORS
539
571
  // =========================================================================
540
- --pc-multiselect-dropdown-bg: #{$multiselect-dropdown-bg};
541
- --pc-multiselect-dropdown-border: #{$multiselect-dropdown-border};
542
- --pc-multiselect-dropdown-text: #{$multiselect-dropdown-text};
543
- --pc-multiselect-hint-bg: #{$multiselect-hint-bg};
544
- --pc-multiselect-hint-border: #{$multiselect-hint-border};
545
- --pc-multiselect-option-hover-bg: #{$multiselect-option-hover-bg};
546
- --pc-multiselect-pill-bg: #{$multiselect-pill-bg};
547
- --pc-multiselect-pill-border: #{$multiselect-pill-border};
572
+ --pc-multiselect-dropdown-bg: var(--base-dropdown-bg, #{$multiselect-dropdown-bg});
573
+ --pc-multiselect-dropdown-border: var(--base-border-color, #{$multiselect-dropdown-border});
574
+ --pc-multiselect-dropdown-text: var(--base-text-color-1, #{$multiselect-dropdown-text});
575
+ --pc-multiselect-hint-bg: var(--base-page-bg, #{$multiselect-hint-bg});
576
+ --pc-multiselect-hint-border: var(--base-border-color, #{$multiselect-hint-border});
577
+ --pc-multiselect-option-hover-bg: var(--base-hover-bg, #{$multiselect-option-hover-bg});
578
+ --pc-multiselect-pill-bg: var(--base-accent-color-light, #{$multiselect-pill-bg});
579
+ --pc-multiselect-pill-border: var(--base-accent-color, #{$multiselect-pill-border});
548
580
 
549
581
  // =========================================================================
550
582
  // FORM SPACING — the complete anatomy of a form's spacing. Runtime-tunable;
@@ -25,9 +25,9 @@
25
25
  color: inherit;
26
26
  cursor: pointer;
27
27
 
28
- &:hover { background: var(--pc-hover-bg, rgba(0, 0, 0, 0.05)); }
29
- &:focus-visible { outline: 2px solid var(--pc-accent-color); outline-offset: 1px; }
30
- &[aria-expanded='true'] { background: var(--pc-hover-bg, rgba(0, 0, 0, 0.08)); }
28
+ &:hover { background: var(--pc-hover-bg, var(--base-hover-bg, rgba(0, 0, 0, 0.05))); }
29
+ &:focus-visible { outline: 2px solid var(--pc-accent, var(--base-accent-color)); outline-offset: 1px; }
30
+ &[aria-expanded='true'] { background: var(--pc-hover-bg, var(--base-hover-bg, rgba(0, 0, 0, 0.08))); }
31
31
  }
32
32
 
33
33
  // The three dots, drawn so the sink needs no icon-font dependency.
@@ -60,7 +60,7 @@
60
60
  min-width: 20rem;
61
61
  max-width: 32rem;
62
62
  padding: $spacing-sm;
63
- background: var(--pc-card-bg);
63
+ background: var(--pc-card-bg, var(--base-main-bg));
64
64
  border: $border-width-base solid var(--pc-border-color);
65
65
  border-radius: var(--pc-border-radius);
66
66
  box-shadow: $shadow-lg;
@@ -14,7 +14,7 @@ body.pc-layout--sticky {
14
14
  .pc-layout {
15
15
  max-width: 100%;
16
16
  margin: $navbar-height auto 0;
17
- background-color: var(--pc-main-bg);
17
+ background-color: var(--pc-page-bg);
18
18
  overflow: visible; // Allow tooltips to escape
19
19
  display: flex;
20
20
  flex-direction: column;
@@ -97,8 +97,8 @@ body.pc-layout--sticky .pc-layout__inner {
97
97
  // Footer - outside inner, sibling to inner
98
98
  .pc-layout__footer {
99
99
  min-height: $footer-height;
100
- background-color: var(--pc-footer-bg);
101
- border-top: $border-width-base solid var(--pc-footer-border-color);
100
+ background-color: var(--pc-footer-bg, var(--base-main-bg));
101
+ border-top: $border-width-base solid var(--pc-footer-border-color, var(--base-border-color));
102
102
  display: flex;
103
103
  align-items: center;
104
104
  padding: $spacing-xs $spacing-base;
@@ -38,7 +38,7 @@
38
38
  bottom: 0;
39
39
  width: $mobile-sidebar-width;
40
40
  z-index: 1050;
41
- background-color: var(--pc-sidebar-bg);
41
+ background-color: var(--pc-sidebar-bg, var(--base-page-bg));
42
42
  opacity: 1;
43
43
  overflow-y: auto;
44
44
  overscroll-behavior: contain; // drawer's own scroll doesn't chain to the page
@@ -25,7 +25,7 @@
25
25
  margin: 0;
26
26
  font-size: $font-size-lg;
27
27
  font-weight: $font-weight-semibold;
28
- color: var(--pc-navbar-text);
28
+ color: var(--pc-navbar-text, var(--base-text-color-1));
29
29
  white-space: nowrap;
30
30
  }
31
31
 
@@ -35,7 +35,7 @@
35
35
  margin-inline-start: $spacing-xs;
36
36
  font-size: $font-size-xs;
37
37
  font-weight: $font-weight-normal;
38
- color: var(--pc-navbar-text-secondary);
38
+ color: var(--pc-navbar-text-secondary, var(--base-text-color-2));
39
39
  }
40
40
  }
41
41
 
@@ -66,7 +66,7 @@
66
66
 
67
67
  > a {
68
68
  text-decoration: none;
69
- color: var(--pc-navbar-text-secondary);
69
+ color: var(--pc-navbar-text-secondary, var(--base-text-color-2));
70
70
  font-weight: $font-weight-medium;
71
71
  padding: $spacing-xs $spacing-sm;
72
72
  border-radius: var(--pc-border-radius);
@@ -86,7 +86,7 @@
86
86
  // or --pc-navbar-text tint would be dark-on-dark and vanish. Text
87
87
  // brightens to --pc-navbar-text, which those themes override to match.
88
88
  &:hover {
89
- color: var(--pc-navbar-text);
89
+ color: var(--pc-navbar-text, var(--base-text-color-1));
90
90
  background-color: color-mix(in srgb, currentColor 12%, transparent);
91
91
  }
92
92
  }
@@ -99,7 +99,7 @@
99
99
  &.pc-navmenu__item--active > a {
100
100
  &,
101
101
  &:hover {
102
- color: var(--pc-navbar-text);
102
+ color: var(--pc-navbar-text, var(--base-text-color-1));
103
103
  background-color: color-mix(in srgb, currentColor 22%, transparent);
104
104
  font-weight: $font-weight-semibold;
105
105
  }
@@ -142,7 +142,7 @@
142
142
  top: 100%;
143
143
  inset-inline-start: 0; // RTL: flips to right: 0
144
144
  min-width: 19.2rem;
145
- background-color: var(--pc-card-bg);
145
+ background-color: var(--pc-card-bg, var(--base-main-bg));
146
146
  border: $border-width-base solid var(--pc-border-color);
147
147
  border-radius: var(--pc-border-radius);
148
148
  box-shadow: $shadow-lg;
@@ -329,7 +329,7 @@
329
329
  margin: 0;
330
330
  font-size: $font-size-lg;
331
331
  font-weight: $font-weight-semibold;
332
- color: var(--pc-navbar-text);
332
+ color: var(--pc-navbar-text, var(--base-text-color-1));
333
333
  white-space: nowrap;
334
334
  overflow: hidden;
335
335
  text-overflow: ellipsis;
@@ -356,7 +356,7 @@
356
356
  span {
357
357
  width: 100%;
358
358
  height: $burger-bar-height;
359
- background-color: var(--pc-navbar-text);
359
+ background-color: var(--pc-navbar-text, var(--base-text-color-1));
360
360
  border-radius: var(--pc-border-radius);
361
361
  transition: all $transition-normal $easing-snappy;
362
362
  transform-origin: center;
@@ -399,7 +399,7 @@
399
399
  gap: $spacing-sm;
400
400
 
401
401
  label {
402
- color: var(--pc-navbar-text-secondary);
402
+ color: var(--pc-navbar-text-secondary, var(--base-text-color-2));
403
403
  font-size: $font-size-sm;
404
404
  }
405
405
 
@@ -407,8 +407,8 @@
407
407
  padding: $spacing-xs $spacing-sm;
408
408
  border: $border-width-base solid var(--pc-border-color);
409
409
  border-radius: var(--pc-border-radius);
410
- background-color: var(--pc-navbar-bg);
411
- color: var(--pc-navbar-text);
410
+ background-color: var(--pc-navbar-bg, var(--base-main-bg));
411
+ color: var(--pc-navbar-text, var(--base-text-color-1));
412
412
  font-size: $font-size-sm;
413
413
 
414
414
  &:focus {
@@ -15,8 +15,8 @@ $navbar-search-reserve-width: 18rem !default;
15
15
  top: 0;
16
16
  inset-inline: 0; // RTL: works for both LTR and RTL
17
17
  height: $navbar-height;
18
- background-color: var(--pc-navbar-bg);
19
- border-bottom: $border-width-base solid var(--pc-navbar-border-color);
18
+ background-color: var(--pc-navbar-bg, var(--base-main-bg));
19
+ border-bottom: $border-width-base solid var(--pc-navbar-border-color, var(--base-border-color));
20
20
  z-index: $z-index-navbar; // 2000
21
21
  display: flex;
22
22
  align-items: center;
@@ -46,7 +46,7 @@ $resize-knob-radius-lg: 6px !default;
46
46
  // themes (radius 0) stay square via min(). High-contrast fill / border / shadow
47
47
  // so the knob stands out on both light and dark surfaces.
48
48
  border-radius: min(var(--pc-border-radius-lg), #{$resize-knob-radius});
49
- background-color: var(--pc-card-bg);
49
+ background-color: var(--pc-card-bg, var(--base-main-bg));
50
50
  border: $border-width-medium solid var(--pc-border-color);
51
51
  color: var(--pc-text-color-2);
52
52
  font-size: $font-size-lg;
@@ -68,7 +68,7 @@
68
68
  top: 0;
69
69
  bottom: 0;
70
70
  padding: $spacing-sm $spacing-base;
71
- background-color: var(--pc-sidebar-bg);
71
+ background-color: var(--pc-sidebar-bg, var(--base-page-bg));
72
72
  border: $border-width-base solid var(--pc-border-color);
73
73
  border-inline-start: none; // RTL: flips to border-right: none
74
74
  border-start-start-radius: 0;
@@ -96,7 +96,7 @@
96
96
  margin: 0;
97
97
  padding: 0;
98
98
  list-style: none;
99
- background-color: var(--pc-sidebar-submenu-bg);
99
+ background-color: var(--pc-sidebar-submenu-bg, var(--base-subtle-bg));
100
100
  border: $border-width-base solid var(--pc-border-color);
101
101
  border-inline-start: none; // RTL: flips to border-right: none
102
102
  border-start-start-radius: 0;
@@ -120,12 +120,12 @@
120
120
  width: 100%;
121
121
 
122
122
  &:hover {
123
- background-color: var(--pc-sidebar-submenu-hover-bg);
123
+ background-color: var(--pc-sidebar-submenu-hover-bg, var(--base-subtle-bg));
124
124
  }
125
125
 
126
126
  &--active {
127
- background-color: var(--pc-sidebar-submenu-active-bg);
128
- color: var(--pc-sidebar-submenu-active-text);
127
+ background-color: var(--pc-sidebar-submenu-active-bg, var(--base-subtle-bg));
128
+ color: var(--pc-sidebar-submenu-active-text, var(--base-text-color-1));
129
129
  }
130
130
  }
131
131
 
@@ -168,7 +168,7 @@
168
168
  margin: 0;
169
169
  padding: 0;
170
170
  list-style: none;
171
- background-color: var(--pc-sidebar-submenu-bg);
171
+ background-color: var(--pc-sidebar-submenu-bg, var(--base-subtle-bg));
172
172
  border: $border-width-base solid var(--pc-border-color);
173
173
  border-inline-start: none; // RTL: flips to border-right: none
174
174
  border-start-start-radius: 0;