@conduction/docusaurus-preset 3.44.2 → 3.44.3

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.
Files changed (86) hide show
  1. package/package.json +1 -1
  2. package/src/components/AgentTrace/AgentTrace.module.css +1 -1
  3. package/src/components/AiDisclosure/AiDisclosure.module.css +2 -2
  4. package/src/components/AppCrossLinks/AppCrossLinks.module.css +9 -9
  5. package/src/components/AppMock/AppMock.module.css +46 -46
  6. package/src/components/AppsGrid/AppsGrid.module.css +4 -4
  7. package/src/components/AppsPreview/AppsPreview.module.css +7 -7
  8. package/src/components/AtomZones/AtomZones.module.css +19 -19
  9. package/src/components/BlueprintRush/BlueprintRush.module.css +13 -13
  10. package/src/components/BuildMock/BuildMock.module.css +11 -11
  11. package/src/components/Clients/Clients.module.css +4 -4
  12. package/src/components/ContentCard/ContentCard.module.css +13 -13
  13. package/src/components/ContentDetailHero/ContentDetailHero.module.css +6 -6
  14. package/src/components/ContentTypeFilter/ContentTypeFilter.module.css +5 -5
  15. package/src/components/CtaBanner/CtaBanner.module.css +1 -1
  16. package/src/components/DeadlineDefender/DeadlineDefender.module.css +14 -14
  17. package/src/components/DetailHero/DetailHero.module.css +11 -11
  18. package/src/components/DiceDuel/DiceDuel.module.css +16 -16
  19. package/src/components/DownloadPanel/DownloadPanel.module.css +4 -4
  20. package/src/components/EmployeeCard/EmployeeCard.module.css +19 -19
  21. package/src/components/ExternalAppShelf/ExternalAppShelf.module.css +5 -5
  22. package/src/components/FAQ/FAQ.module.css +4 -4
  23. package/src/components/FacetedFilters/FacetedFilters.module.css +10 -10
  24. package/src/components/FeatureGrid/FeatureGrid.module.css +8 -8
  25. package/src/components/FeatureList/FeatureList.module.css +4 -4
  26. package/src/components/FeaturedCard/FeaturedCard.module.css +3 -3
  27. package/src/components/FlowMock/FlowMock.module.css +2 -2
  28. package/src/components/GameModal/GameModal.module.css +32 -32
  29. package/src/components/Hero/Hero.module.css +4 -4
  30. package/src/components/HexBackground/HexBackground.module.css +3 -3
  31. package/src/components/HexCard/HexCard.module.css +4 -4
  32. package/src/components/HexNetwork/HexNetwork.module.css +6 -6
  33. package/src/components/HiddenGame/HiddenGame.module.css +2 -2
  34. package/src/components/HowSteps/HowSteps.module.css +3 -3
  35. package/src/components/IntegrationIcon/IntegrationIcon.module.css +1 -1
  36. package/src/components/KanbanMock/KanbanMock.module.css +8 -8
  37. package/src/components/LeafCard/LeafCard.module.css +15 -15
  38. package/src/components/LeafMock/LeafMock.module.css +8 -8
  39. package/src/components/LockPick/LockPick.module.css +14 -14
  40. package/src/components/ManagedCommonGround/ManagedCommonGround.module.css +1 -1
  41. package/src/components/McpToolShelf/McpToolShelf.module.css +8 -8
  42. package/src/components/MockScene/MockScene.module.css +1 -1
  43. package/src/components/ModuleCard/ModuleCard.module.css +11 -11
  44. package/src/components/ModulePage/ModulePage.module.css +9 -9
  45. package/src/components/MonsterRun/MonsterRun.module.css +12 -12
  46. package/src/components/NewsletterCta/NewsletterCta.module.css +9 -9
  47. package/src/components/NextSteps/NextSteps.module.css +9 -9
  48. package/src/components/Outcomes/Outcomes.module.css +5 -5
  49. package/src/components/PaintByTokens/PaintByTokens.module.css +15 -15
  50. package/src/components/PairCard/PairCard.module.css +3 -3
  51. package/src/components/PartnerCard/PartnerCard.module.css +21 -21
  52. package/src/components/PartnerDirectory/PartnerDirectory.module.css +1 -1
  53. package/src/components/PartnerSidecard/PartnerSidecard.module.css +9 -9
  54. package/src/components/PipeFit/PipeFit.module.css +10 -10
  55. package/src/components/Pipeline/Pipeline.module.css +7 -7
  56. package/src/components/PlatformOverview/PlatformOverview.module.css +4 -4
  57. package/src/components/Prerequisites/Prerequisites.module.css +5 -5
  58. package/src/components/PullQuote/PullQuote.module.css +5 -5
  59. package/src/components/Reconcile/Reconcile.module.css +15 -15
  60. package/src/components/RecordRun/RecordRun.module.css +16 -16
  61. package/src/components/Redaction/Redaction.module.css +13 -13
  62. package/src/components/ReferenceCard/ReferenceCard.module.css +7 -7
  63. package/src/components/RelatedPosts/RelatedPosts.module.css +1 -1
  64. package/src/components/RotatingCards/RotatingCards.module.css +8 -8
  65. package/src/components/SetupSteps/SetupSteps.module.css +6 -6
  66. package/src/components/Showcase/Showcase.module.css +12 -12
  67. package/src/components/SidebarMock/SidebarMock.module.css +2 -2
  68. package/src/components/SolutionCard/SolutionCard.module.css +5 -5
  69. package/src/components/StampRush/StampRush.module.css +12 -12
  70. package/src/components/StatsStrip/StatsStrip.module.css +3 -3
  71. package/src/components/ThemeSeamMock/ThemeSeamMock.module.css +1 -1
  72. package/src/components/Troubleshooting/Troubleshooting.module.css +7 -7
  73. package/src/components/WidgetMock/WidgetMock.module.css +1 -1
  74. package/src/components/WidgetShelf/WidgetShelf.module.css +11 -11
  75. package/src/components/primitives/AuthorByline.module.css +5 -5
  76. package/src/components/primitives/Button.module.css +8 -8
  77. package/src/components/primitives/Card.module.css +3 -3
  78. package/src/components/primitives/Eyebrow.module.css +1 -1
  79. package/src/components/primitives/HexThumbnail.module.css +1 -1
  80. package/src/components/primitives/Pill.module.css +2 -2
  81. package/src/components/primitives/Section.module.css +2 -2
  82. package/src/components/primitives/SectionHead.module.css +2 -2
  83. package/src/css/brand.css +17 -17
  84. package/src/css/tokens.css +60 -0
  85. package/src/theme/ErrorPageContent/styles.module.css +9 -9
  86. package/src/theme/Navbar/styles.module.css +17 -17
@@ -10,7 +10,7 @@
10
10
  .rush {
11
11
  border: 1px solid var(--c-cobalt-100);
12
12
  border-radius: var(--radius-lg);
13
- background: white;
13
+ background: var(--conduction-color-surface-card);
14
14
  padding: clamp(16px, 3vw, 28px);
15
15
  font-family: var(--conduction-typography-font-family-body);
16
16
  }
@@ -37,7 +37,7 @@
37
37
  margin: 0 0 6px;
38
38
  font-size: 20px;
39
39
  font-weight: 700;
40
- color: var(--c-cobalt-900);
40
+ color: var(--conduction-color-text-strong);
41
41
  }
42
42
 
43
43
  .lede {
@@ -45,7 +45,7 @@
45
45
  max-width: 52ch;
46
46
  font-size: 14px;
47
47
  line-height: 1.5;
48
- color: var(--c-cobalt-700);
48
+ color: var(--conduction-color-text-body);
49
49
  }
50
50
 
51
51
  .hud {
@@ -60,8 +60,8 @@
60
60
  .hudLives {
61
61
  padding: 6px 10px;
62
62
  border-radius: var(--radius-pill);
63
- background: var(--c-cobalt-50);
64
- color: var(--c-cobalt-900);
63
+ background: var(--conduction-color-surface-subtle);
64
+ color: var(--conduction-color-text-strong);
65
65
  white-space: nowrap;
66
66
  }
67
67
 
@@ -87,7 +87,7 @@
87
87
  padding: 10px;
88
88
  border: 1px dashed var(--c-cobalt-200);
89
89
  border-radius: var(--radius-md);
90
- background: var(--c-cobalt-50);
90
+ background: var(--conduction-color-surface-subtle);
91
91
  cursor: pointer;
92
92
  font-family: inherit;
93
93
  text-align: center;
@@ -110,7 +110,7 @@
110
110
 
111
111
  .slotFull {
112
112
  border-style: solid;
113
- background: white;
113
+ background: var(--conduction-color-surface-card);
114
114
  box-shadow: var(--shadow-3);
115
115
  }
116
116
  .slotReady { border-color: var(--c-mint-500); }
@@ -125,14 +125,14 @@
125
125
  .cardTitle {
126
126
  font-size: 13px;
127
127
  font-weight: 600;
128
- color: var(--c-cobalt-900);
128
+ color: var(--conduction-color-text-strong);
129
129
  line-height: 1.25;
130
130
  }
131
131
 
132
132
  .cardNote {
133
133
  font-family: var(--conduction-typography-font-family-code);
134
134
  font-size: 11px;
135
- color: var(--c-cobalt-700);
135
+ color: var(--conduction-color-text-body);
136
136
  }
137
137
 
138
138
  .foot {
@@ -161,7 +161,7 @@
161
161
  .hint {
162
162
  margin: 0;
163
163
  font-size: 12px;
164
- color: var(--c-cobalt-400);
164
+ color: var(--conduction-color-text-muted);
165
165
  max-width: 48ch;
166
166
  }
167
167
 
@@ -178,10 +178,10 @@
178
178
  .flashBad { animation: srBad 260ms ease-out; }
179
179
  @keyframes srGood {
180
180
  0% { background: var(--c-mint-300); }
181
- 100% { background: var(--c-cobalt-50); }
181
+ 100% { background: var(--conduction-color-surface-subtle); }
182
182
  }
183
183
  @keyframes srBad {
184
- 0%, 100% { background: var(--c-cobalt-50); transform: translateX(0); }
184
+ 0%, 100% { background: var(--conduction-color-surface-subtle); transform: translateX(0); }
185
185
  25% { background: var(--c-coral-300); transform: translateX(-3px); }
186
186
  75% { transform: translateX(3px); }
187
187
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  .strip {
9
- background: var(--c-cobalt-50);
9
+ background: var(--conduction-color-surface-subtle);
10
10
  border-top: 1px solid var(--c-cobalt-100);
11
11
  border-bottom: 1px solid var(--c-cobalt-100);
12
12
  font-family: var(--conduction-typography-font-family-body);
@@ -41,13 +41,13 @@
41
41
  font-size: 42px;
42
42
  font-weight: 700;
43
43
  letter-spacing: -0.02em;
44
- color: var(--c-blue-cobalt);
44
+ color: var(--conduction-color-text-default);
45
45
  line-height: 1;
46
46
  }
47
47
 
48
48
  .label {
49
49
  font-size: 14px;
50
- color: var(--c-cobalt-700);
50
+ color: var(--conduction-color-text-body);
51
51
  margin-top: 8px;
52
52
  line-height: 1.4;
53
53
  }
@@ -131,7 +131,7 @@
131
131
  font-family: var(--conduction-typography-font-family-code);
132
132
  font-size: 11px;
133
133
  letter-spacing: 0.06em;
134
- color: var(--c-cobalt-400);
134
+ color: var(--conduction-color-text-muted);
135
135
  text-transform: uppercase;
136
136
  text-align: center;
137
137
  }
@@ -7,14 +7,14 @@
7
7
  font-size: 28px;
8
8
  font-weight: 700;
9
9
  letter-spacing: -0.01em;
10
- color: var(--c-cobalt-900);
10
+ color: var(--conduction-color-text-strong);
11
11
  margin: 0 0 var(--space-3);
12
12
  line-height: 1.2;
13
13
  }
14
14
 
15
15
  .lede {
16
16
  font-size: 17px;
17
- color: var(--c-cobalt-700);
17
+ color: var(--conduction-color-text-body);
18
18
  line-height: 1.6;
19
19
  margin: 0 0 var(--space-5);
20
20
  }
@@ -25,7 +25,7 @@
25
25
  }
26
26
 
27
27
  .item {
28
- background: var(--c-cobalt-50);
28
+ background: var(--conduction-color-surface-subtle);
29
29
  border-left: 3px solid var(--c-orange-knvb);
30
30
  border-radius: var(--radius-md);
31
31
  padding: var(--space-4) var(--space-5);
@@ -57,7 +57,7 @@
57
57
  .symptomText {
58
58
  font-family: var(--conduction-typography-font-family-code);
59
59
  font-size: 14px;
60
- color: var(--c-cobalt-900);
60
+ color: var(--conduction-color-text-strong);
61
61
  background: transparent;
62
62
  padding: 0;
63
63
  font-weight: 600;
@@ -66,17 +66,17 @@
66
66
 
67
67
  .body {
68
68
  font-size: 16px;
69
- color: var(--c-cobalt-700);
69
+ color: var(--conduction-color-text-body);
70
70
  line-height: 1.6;
71
71
  }
72
72
 
73
73
  .body code {
74
- background: var(--c-cobalt-100);
74
+ background: var(--conduction-color-surface-sunken);
75
75
  border-radius: 4px;
76
76
  padding: 1px 6px;
77
77
  font-family: var(--conduction-typography-font-family-code);
78
78
  font-size: 14px;
79
- color: var(--c-cobalt-900);
79
+ color: var(--conduction-color-text-strong);
80
80
  }
81
81
 
82
82
  .body p { margin: var(--space-2) 0 0; }
@@ -56,6 +56,6 @@
56
56
  font-size: 11px;
57
57
  letter-spacing: 0.06em;
58
58
  text-transform: uppercase;
59
- color: var(--c-cobalt-400);
59
+ color: var(--conduction-color-text-muted);
60
60
  margin: 0;
61
61
  }
@@ -42,10 +42,10 @@
42
42
  .eyebrow .h { width: 10px; height: 12px; clip-path: var(--hex-pointy-top); background: var(--c-orange-knvb); }
43
43
  .title {
44
44
  font-size: 36px; font-weight: 700; letter-spacing: -0.02em;
45
- line-height: 1.1; color: var(--c-cobalt-900); margin: 0 0 var(--space-3);
45
+ line-height: 1.1; color: var(--conduction-color-text-strong); margin: 0 0 var(--space-3);
46
46
  text-wrap: pretty; /* run full width; no artificial two-line balance */
47
47
  }
48
- .lede { font-size: 17px; line-height: 1.5; color: var(--c-cobalt-700); margin: 0; max-width: 70ch; }
48
+ .lede { font-size: 17px; line-height: 1.5; color: var(--conduction-color-text-body); margin: 0; max-width: 70ch; }
49
49
 
50
50
  .grid {
51
51
  display: grid;
@@ -129,11 +129,11 @@
129
129
  border: 1px solid var(--c-cobalt-200);
130
130
  border-radius: var(--radius-pill);
131
131
  background: transparent;
132
- color: var(--c-blue-cobalt);
132
+ color: var(--conduction-color-text-default);
133
133
  cursor: pointer;
134
134
  }
135
135
  .ctrl:hover {
136
- background: var(--c-cobalt-50);
136
+ background: var(--conduction-color-surface-subtle);
137
137
  border-color: var(--c-blue-cobalt);
138
138
  }
139
139
  .ctrl:focus-visible {
@@ -176,7 +176,7 @@
176
176
  }
177
177
 
178
178
  .card {
179
- background: white;
179
+ background: var(--conduction-color-surface-card);
180
180
  border: 1px solid var(--c-cobalt-100);
181
181
  border-radius: var(--radius-lg);
182
182
  overflow: hidden;
@@ -185,7 +185,7 @@
185
185
  }
186
186
 
187
187
  .panel {
188
- background: var(--c-cobalt-50);
188
+ background: var(--conduction-color-surface-subtle);
189
189
  padding: var(--space-5);
190
190
  min-height: 180px;
191
191
  display: flex;
@@ -200,7 +200,7 @@
200
200
  font-size: 18px;
201
201
  font-weight: 600;
202
202
  letter-spacing: -0.005em;
203
- color: var(--c-cobalt-900);
203
+ color: var(--conduction-color-text-strong);
204
204
  margin: 0;
205
205
  padding: var(--space-4) var(--space-5) 0;
206
206
  }
@@ -208,7 +208,7 @@
208
208
  .cardDesc {
209
209
  font-size: 14px;
210
210
  line-height: 1.55;
211
- color: var(--c-cobalt-700);
211
+ color: var(--conduction-color-text-body);
212
212
  margin: 0;
213
213
  padding: var(--space-2) var(--space-5) var(--space-5);
214
214
  }
@@ -224,7 +224,7 @@
224
224
  width: 100%;
225
225
  max-width: 280px;
226
226
  min-height: 124px;
227
- background: white;
227
+ background: var(--conduction-color-surface-card);
228
228
  border: 1px solid var(--c-cobalt-100);
229
229
  border-radius: var(--radius-md);
230
230
  box-shadow: var(--shadow-1);
@@ -251,7 +251,7 @@
251
251
  font-weight: 700;
252
252
  line-height: 1;
253
253
  letter-spacing: -0.01em;
254
- color: var(--c-cobalt-900);
254
+ color: var(--conduction-color-text-strong);
255
255
  }
256
256
  .autoKpiBar {
257
257
  display: block;
@@ -311,7 +311,7 @@
311
311
  width: 86%;
312
312
  height: 4px;
313
313
  border-radius: 1px;
314
- background: var(--c-cobalt-100);
314
+ background: var(--conduction-color-surface-sunken);
315
315
  }
316
316
 
317
317
  /* Donut gauge */
@@ -16,8 +16,8 @@
16
16
  width: 22px;
17
17
  height: 25px;
18
18
  clip-path: var(--hex-pointy-top);
19
- background: var(--c-cobalt-100);
20
- color: var(--c-cobalt-700);
19
+ background: var(--conduction-color-surface-sunken);
20
+ color: var(--conduction-color-text-body);
21
21
  display: inline-flex;
22
22
  align-items: center;
23
23
  justify-content: center;
@@ -41,10 +41,10 @@
41
41
  .date { }
42
42
 
43
43
  /* Tones for placement on different grounds. */
44
- .tone-default .name { color: var(--c-cobalt-700); }
44
+ .tone-default .name { color: var(--conduction-color-text-body); }
45
45
  .tone-default .date,
46
46
  .tone-default .sep,
47
- .tone-default { color: var(--c-cobalt-400); }
47
+ .tone-default { color: var(--conduction-color-text-muted); }
48
48
 
49
49
  .tone-on-dark .name { color: white; }
50
50
  .tone-on-dark .date,
@@ -52,7 +52,7 @@
52
52
  .tone-on-dark { color: var(--c-cobalt-200); }
53
53
  .tone-on-dark .avatar { background: var(--c-cobalt-700); color: white; }
54
54
 
55
- .tone-muted .name { color: var(--c-cobalt-700); }
55
+ .tone-muted .name { color: var(--conduction-color-text-body); }
56
56
  .tone-muted .date,
57
57
  .tone-muted .sep,
58
58
  .tone-muted { color: var(--c-cobalt-300); }
@@ -50,20 +50,20 @@
50
50
  }
51
51
 
52
52
  .v-secondary {
53
- background: white;
54
- color: var(--c-blue-cobalt);
53
+ background: var(--conduction-color-surface-card);
54
+ color: var(--conduction-color-text-default);
55
55
  border-color: var(--c-cobalt-200);
56
56
  }
57
57
  .v-secondary:hover {
58
58
  border-color: var(--c-blue-cobalt);
59
- color: var(--c-blue-cobalt);
60
- background: white;
59
+ color: var(--conduction-color-text-default);
60
+ background: var(--conduction-color-surface-card);
61
61
  text-decoration: none;
62
62
  }
63
63
 
64
64
  .v-ghost {
65
65
  background: transparent;
66
- color: var(--c-cobalt-700);
66
+ color: var(--conduction-color-text-body);
67
67
  padding-inline: 4px;
68
68
  font-size: 14px;
69
69
  }
@@ -75,15 +75,15 @@
75
75
 
76
76
  /* For use inside cobalt CTA panels (inverse surfaces) */
77
77
  .v-on-dark-primary {
78
- background: white;
79
- color: var(--c-blue-cobalt);
78
+ background: var(--conduction-color-surface-card);
79
+ color: var(--conduction-color-text-default);
80
80
  border-color: white;
81
81
  text-transform: uppercase;
82
82
  letter-spacing: 0.04em;
83
83
  font-size: 14px;
84
84
  font-weight: 600;
85
85
  }
86
- .v-on-dark-primary:hover { opacity: 0.92; color: var(--c-blue-cobalt); }
86
+ .v-on-dark-primary:hover { opacity: 0.92; color: var(--conduction-color-text-default); }
87
87
 
88
88
  .v-on-dark-secondary {
89
89
  background: transparent;
@@ -6,13 +6,13 @@
6
6
  position: relative;
7
7
  border-radius: var(--radius-lg);
8
8
  border: 1px solid var(--c-cobalt-100);
9
- background: white;
9
+ background: var(--conduction-color-surface-card);
10
10
  transition: border-color 140ms ease, transform 140ms ease, box-shadow 140ms ease;
11
11
  font-family: var(--conduction-typography-font-family-body);
12
- color: var(--c-cobalt-700);
12
+ color: var(--conduction-color-text-body);
13
13
  }
14
14
 
15
- .tone-surface { background: white; }
15
+ .tone-surface { background: var(--conduction-color-surface-card); }
16
16
  .tone-ghost {
17
17
  background: transparent;
18
18
  border-style: dashed;
@@ -11,7 +11,7 @@
11
11
  font-size: 12px;
12
12
  letter-spacing: 0.1em;
13
13
  text-transform: uppercase;
14
- color: var(--c-cobalt-400);
14
+ color: var(--conduction-color-text-muted);
15
15
  margin-bottom: 24px;
16
16
  }
17
17
 
@@ -40,6 +40,6 @@
40
40
  .tone-cobalt { background: var(--c-blue-cobalt); }
41
41
  .tone-cobalt-dark { background: var(--c-cobalt-700); }
42
42
  .tone-cobalt-deep { background: var(--c-cobalt-900); }
43
- .tone-cobalt-50 { background: var(--c-cobalt-50); color: var(--c-blue-cobalt); }
43
+ .tone-cobalt-50 { background: var(--conduction-color-surface-subtle); color: var(--conduction-color-text-default); }
44
44
  .tone-mint { background: var(--c-mint-500); }
45
45
  .tone-orange { background: var(--c-orange-knvb); }
@@ -18,8 +18,8 @@
18
18
  }
19
19
 
20
20
  .tone-default {
21
- background: var(--c-cobalt-50);
22
- color: var(--c-cobalt-700);
21
+ background: var(--conduction-color-surface-subtle);
22
+ color: var(--conduction-color-text-body);
23
23
  }
24
24
 
25
25
  .tone-solid {
@@ -16,8 +16,8 @@
16
16
  }
17
17
 
18
18
  /* Background variants */
19
- .bg-default { background: white; }
20
- .bg-tinted { background: var(--c-cobalt-50); border-top: 1px solid var(--c-cobalt-100); border-bottom: 1px solid var(--c-cobalt-100); }
19
+ .bg-default { background: var(--conduction-color-surface-card); }
20
+ .bg-tinted { background: var(--conduction-color-surface-subtle); border-top: 1px solid var(--c-cobalt-100); border-bottom: 1px solid var(--c-cobalt-100); }
21
21
  .bg-inverse { background: var(--c-blue-cobalt); color: white; }
22
22
 
23
23
  /* Vertical-spacing variants */
@@ -25,7 +25,7 @@
25
25
  font-weight: 700;
26
26
  line-height: 1.1;
27
27
  letter-spacing: -0.02em;
28
- color: var(--c-cobalt-900);
28
+ color: var(--conduction-color-text-strong);
29
29
  margin: 0;
30
30
  /* Section titles run the full line before wrapping. The kit's base
31
31
  h1-h6 rule sets `text-wrap: balance`, which splits a title into
@@ -41,7 +41,7 @@
41
41
 
42
42
  .lede {
43
43
  font-size: 17px;
44
- color: var(--c-cobalt-700);
44
+ color: var(--conduction-color-text-body);
45
45
  line-height: 1.55;
46
46
  margin: 0;
47
47
  }
package/src/css/brand.css CHANGED
@@ -139,7 +139,7 @@
139
139
  Common Ground yellow (reuses .cg-yellow), "+" in Nextcloud blue.
140
140
  Use through the <CommonGroundPlus/> primitive; the rules below back
141
141
  it (and any plain-HTML preview that wires up the same span shape). */
142
- .cg-plus-common { color: var(--c-blue-cobalt); }
142
+ .cg-plus-common { color: var(--conduction-color-text-default); }
143
143
  .cg-plus-plus { color: var(--conduction-color-brand-nextcloud); font-weight: inherit; }
144
144
 
145
145
  /* Buttons inherit brand-primary fill */
@@ -276,7 +276,7 @@ blockquote {
276
276
  .theme-doc-sidebar-container {
277
277
  width: 280px !important;
278
278
  border-right: 1px solid var(--c-cobalt-100) !important;
279
- background: white;
279
+ background: var(--conduction-color-surface-card);
280
280
  }
281
281
 
282
282
  /* Menu list typography + spacing */
@@ -295,7 +295,7 @@ blockquote {
295
295
  /* Default link state: idle sentence-case cobalt-700 on white,
296
296
  4-px-radius hover tint cobalt-50. */
297
297
  .menu__link {
298
- color: var(--c-cobalt-700);
298
+ color: var(--conduction-color-text-body);
299
299
  padding: 4px 10px;
300
300
  border-radius: var(--radius-sm);
301
301
  margin-bottom: 2px;
@@ -303,8 +303,8 @@ blockquote {
303
303
  line-height: 1.4;
304
304
  }
305
305
  .menu__link:hover {
306
- background: var(--c-cobalt-50);
307
- color: var(--c-cobalt-900);
306
+ background: var(--conduction-color-surface-subtle);
307
+ color: var(--conduction-color-text-strong);
308
308
  }
309
309
 
310
310
  /* Active item: 2-px cobalt left border + cobalt-50 fill + cobalt-blue text.
@@ -312,8 +312,8 @@ blockquote {
312
312
  aligned with the idle siblings above and below. */
313
313
  .menu__link--active,
314
314
  .menu__link--active:hover {
315
- background: var(--c-cobalt-50);
316
- color: var(--c-blue-cobalt);
315
+ background: var(--conduction-color-surface-subtle);
316
+ color: var(--conduction-color-text-default);
317
317
  font-weight: 500;
318
318
  border-left: 2px solid var(--c-blue-cobalt);
319
319
  padding-left: 8px;
@@ -328,13 +328,13 @@ blockquote {
328
328
  font-size: 10px;
329
329
  text-transform: uppercase;
330
330
  letter-spacing: 0.1em;
331
- color: var(--c-cobalt-400);
331
+ color: var(--conduction-color-text-muted);
332
332
  font-weight: 500;
333
333
  margin: var(--space-4) 0 var(--space-2);
334
334
  }
335
335
  .menu__list-item-collapsible > .menu__link:hover {
336
336
  background: transparent;
337
- color: var(--c-cobalt-700);
337
+ color: var(--conduction-color-text-body);
338
338
  }
339
339
 
340
340
  /* Caret on collapsible categories — desaturate to cobalt-300. */
@@ -356,27 +356,27 @@ blockquote {
356
356
  letter-spacing: -0.02em;
357
357
  line-height: 1.1;
358
358
  margin: 0 0 var(--space-4);
359
- color: var(--c-cobalt-900);
359
+ color: var(--conduction-color-text-strong);
360
360
  }
361
361
  .theme-doc-markdown h2 {
362
362
  font-size: 26px;
363
363
  font-weight: 600;
364
364
  letter-spacing: -0.01em;
365
365
  margin: var(--space-8) 0 var(--space-3);
366
- color: var(--c-cobalt-900);
366
+ color: var(--conduction-color-text-strong);
367
367
  }
368
368
  .theme-doc-markdown h3 {
369
369
  font-size: 20px;
370
370
  font-weight: 600;
371
371
  margin: var(--space-6) 0 var(--space-3);
372
- color: var(--c-cobalt-900);
372
+ color: var(--conduction-color-text-strong);
373
373
  }
374
374
  .theme-doc-markdown p,
375
375
  .theme-doc-markdown ul,
376
376
  .theme-doc-markdown ol {
377
377
  font-size: 15px;
378
378
  line-height: 1.65;
379
- color: var(--c-cobalt-800);
379
+ color: var(--conduction-color-text-strong);
380
380
  margin: 0 0 var(--space-3);
381
381
  }
382
382
  .theme-doc-markdown ul,
@@ -387,7 +387,7 @@ blockquote {
387
387
  margin-bottom: var(--space-2);
388
388
  }
389
389
  .theme-doc-markdown strong {
390
- color: var(--c-cobalt-900);
390
+ color: var(--conduction-color-text-strong);
391
391
  }
392
392
 
393
393
  /* Code-typeface breadcrumb above the H1. Docusaurus renders this
@@ -397,11 +397,11 @@ blockquote {
397
397
  font-size: 11px;
398
398
  letter-spacing: 0.08em;
399
399
  text-transform: uppercase;
400
- color: var(--c-cobalt-400);
400
+ color: var(--conduction-color-text-muted);
401
401
  margin-bottom: var(--space-4);
402
402
  }
403
403
  .theme-doc-breadcrumbs .breadcrumbs__link {
404
- color: var(--c-cobalt-400);
404
+ color: var(--conduction-color-text-muted);
405
405
  background: transparent;
406
406
  padding: 0;
407
407
  }
@@ -410,7 +410,7 @@ blockquote {
410
410
  background: transparent;
411
411
  }
412
412
  .theme-doc-breadcrumbs .breadcrumbs__item--active .breadcrumbs__link {
413
- color: var(--c-cobalt-700);
413
+ color: var(--conduction-color-text-body);
414
414
  background: transparent;
415
415
  }
416
416
 
@@ -145,6 +145,23 @@
145
145
  --conduction-color-background-default: var(--c-white);
146
146
  --conduction-color-background-inverse: var(--c-blue-cobalt);
147
147
  --conduction-color-background-muted: var(--c-cobalt-50);
148
+
149
+ /* Card and panel surfaces.
150
+ `background: white` and `background: var(--c-cobalt-50)` are written
151
+ straight into components about 280 times. Neither can flip, so in
152
+ dark mode the card stayed white while the text on it went light,
153
+ which is the second half of the dark-mode failure: correct ink,
154
+ invisible on a surface that never changed.
155
+
156
+ Lossless again: each is the value it replaces in light mode.
157
+ `-plate` is the exception that must NOT flip. Third-party logos are
158
+ designed against white and lose contrast on anything else, so the
159
+ brand rule is a white tile always. Naming it makes that deliberate
160
+ rather than an oversight the next sweep tries to "fix". */
161
+ --conduction-color-surface-card: var(--c-white);
162
+ --conduction-color-surface-subtle: var(--c-cobalt-50);
163
+ --conduction-color-surface-sunken: var(--c-cobalt-100);
164
+ --conduction-color-surface-plate: var(--c-white);
148
165
  /* The deep ground every Conduction site actually paints for dark
149
166
  panels, footers and dark mode. Distinct from -inverse, which is
150
167
  the cobalt hero panel. Both are real, so name them separately
@@ -159,6 +176,20 @@
159
176
  --conduction-color-text-accent: var(--c-coral-600);
160
177
  --conduction-color-text-muted: var(--c-cobalt-400);
161
178
 
179
+ /* Text, the two darker inks.
180
+ Components reach past the semantic layer for these two steps all the
181
+ time: cobalt-900 for a heading, cobalt-700 for body copy. A raw
182
+ palette value cannot flip, so in dark mode that ink stayed navy on a
183
+ navy ground. Measured 2026-09-19: 1,362 elements below 1.5:1 across
184
+ 121 of the 163 pages on conduction.nl, the homepage h1 at exactly
185
+ 1.00.
186
+
187
+ These two exist so that migration is lossless. Each resolves to the
188
+ identical value it replaces in light mode, so nothing moves on a
189
+ white ground, and only the dark block below has to be right. */
190
+ --conduction-color-text-strong: var(--c-cobalt-900);
191
+ --conduction-color-text-body: var(--c-cobalt-700);
192
+
162
193
  /* Link */
163
194
  --conduction-color-link-default: var(--c-blue-cobalt);
164
195
  --conduction-color-link-hover: var(--c-coral-600);
@@ -423,6 +454,17 @@
423
454
  --conduction-color-background-muted: var(--c-cobalt-800);
424
455
  --conduction-color-background-inverse: var(--c-cobalt-50);
425
456
 
457
+ /* Card and panel surfaces lift off the cobalt-900 ground rather than
458
+ sink into it, so a card still reads as a card. `-sunken` goes the
459
+ other way for the insets that were cobalt-100 on white.
460
+
461
+ `-plate` stays white on purpose: it is the tile third-party logos
462
+ sit on, and those are drawn for a white ground in either mode. */
463
+ --conduction-color-surface-card: var(--c-cobalt-800);
464
+ --conduction-color-surface-subtle: var(--c-cobalt-800);
465
+ --conduction-color-surface-sunken: var(--c-cobalt-700);
466
+ --conduction-color-surface-plate: var(--c-white);
467
+
426
468
  /* Primary ramp inverts: the light steps carry, the dark recede */
427
469
  --conduction-color-primary: var(--c-cobalt-300);
428
470
  --conduction-color-primary-light: var(--c-cobalt-200);
@@ -438,6 +480,12 @@
438
480
  --conduction-color-text-muted: var(--c-cobalt-300);
439
481
  --conduction-color-text-accent: var(--c-orange-knvb);
440
482
 
483
+ /* The two darker inks invert. White for a heading so it outranks body
484
+ copy the way cobalt-900 outranks cobalt-700 on a white ground, and
485
+ cobalt-100 for body at 13.85:1 on the cobalt-900 default. */
486
+ --conduction-color-text-strong: var(--c-white);
487
+ --conduction-color-text-body: var(--c-cobalt-100);
488
+
441
489
  /* Link */
442
490
  --conduction-color-link-default: var(--c-cobalt-300);
443
491
  --conduction-color-link-hover: var(--c-orange-knvb);
@@ -499,6 +547,18 @@
499
547
  --conduction-color-text-muted: var(--c-cobalt-300);
500
548
  --conduction-color-text-accent: var(--c-orange-knvb);
501
549
 
550
+ /* Mirrors the [data-theme="dark"] block above. Both have to carry
551
+ every token: this one is what a visitor gets before the theme
552
+ script runs, and a token defined in only one of them reverts to
553
+ its light value for exactly the readers dark mode is for. */
554
+ --conduction-color-text-strong: var(--c-white);
555
+ --conduction-color-text-body: var(--c-cobalt-100);
556
+
557
+ --conduction-color-surface-card: var(--c-cobalt-800);
558
+ --conduction-color-surface-subtle: var(--c-cobalt-800);
559
+ --conduction-color-surface-sunken: var(--c-cobalt-700);
560
+ --conduction-color-surface-plate: var(--c-white);
561
+
502
562
  /* Link */
503
563
  --conduction-color-link-default: var(--c-cobalt-300);
504
564
  --conduction-color-link-hover: var(--c-orange-knvb);