@medquantis/design-system 1.0.1 → 1.2.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.
@@ -0,0 +1,436 @@
1
+ {
2
+ "--mq-chart-series-1": {
3
+ "value": "#9fb3e8",
4
+ "type": "color",
5
+ "path": [
6
+ "semantic",
7
+ "chart",
8
+ "series",
9
+ "1"
10
+ ],
11
+ "description": "Series 1 on dark, the lightest first: 8.71:1 on the canvas (ADR-0007)."
12
+ },
13
+ "--mq-chart-series-2": {
14
+ "value": "#6f88c9",
15
+ "type": "color",
16
+ "path": [
17
+ "semantic",
18
+ "chart",
19
+ "series",
20
+ "2"
21
+ ],
22
+ "description": "Series 2 on dark: 5.22:1 on the canvas (ADR-0007)."
23
+ },
24
+ "--mq-chart-series-3": {
25
+ "value": "#5d6f91",
26
+ "type": "color",
27
+ "path": [
28
+ "semantic",
29
+ "chart",
30
+ "series",
31
+ "3"
32
+ ],
33
+ "description": "Series 3 on dark: 3.58:1 on the canvas (ADR-0007)."
34
+ },
35
+ "--mq-chart-series-4": {
36
+ "value": "#3a4560",
37
+ "type": "color",
38
+ "path": [
39
+ "semantic",
40
+ "chart",
41
+ "series",
42
+ "4"
43
+ ],
44
+ "description": "Series 4 on dark, context bars: 1.90:1 on the canvas (ADR-0007)."
45
+ },
46
+ "--mq-chart-rest": {
47
+ "value": "#232b3d",
48
+ "type": "color",
49
+ "path": [
50
+ "semantic",
51
+ "chart",
52
+ "rest"
53
+ ],
54
+ "description": "Remainder fill on dark, drawn with a series 4 outline: 1.28:1 on the canvas (ADR-0007)."
55
+ },
56
+ "--mq-chart-axis": {
57
+ "value": "#6b7385",
58
+ "type": "color",
59
+ "path": [
60
+ "semantic",
61
+ "chart",
62
+ "axis"
63
+ ],
64
+ "description": "Axis lines and ticks on dark (non-text): 3.81:1 on the canvas (ADR-0007)."
65
+ },
66
+ "--mq-chart-baseline": {
67
+ "value": "rgba(255, 255, 255, 0.1)",
68
+ "type": "color",
69
+ "path": [
70
+ "semantic",
71
+ "chart",
72
+ "baseline"
73
+ ],
74
+ "description": "Gridlines and baselines on dark, white at 10 % (decorative, ADR-0007)."
75
+ },
76
+ "--mq-accent": {
77
+ "value": "#6f88c9",
78
+ "type": "color",
79
+ "path": [
80
+ "semantic",
81
+ "color",
82
+ "accent"
83
+ ],
84
+ "description": "The lifted navy, the accent on dark: 5.22:1 on the canvas, 4.63:1 on the surface (ADR-0007)."
85
+ },
86
+ "--mq-accent-hover": {
87
+ "value": "#8aa0d6",
88
+ "type": "color",
89
+ "path": [
90
+ "semantic",
91
+ "color",
92
+ "accent-hover"
93
+ ],
94
+ "description": "Hover state of accent-coloured controls on dark, 6.98:1 on the canvas (ADR-0007)."
95
+ },
96
+ "--mq-accent-pale": {
97
+ "value": "rgba(111, 136, 201, 0.18)",
98
+ "type": "color",
99
+ "path": [
100
+ "semantic",
101
+ "color",
102
+ "accent-pale"
103
+ ],
104
+ "description": "The lifted navy at 18 % for a highlighted row, tag or state (ADR-0007)."
105
+ },
106
+ "--mq-accent-pale-2": {
107
+ "value": "rgba(111, 136, 201, 0.1)",
108
+ "type": "color",
109
+ "path": [
110
+ "semantic",
111
+ "color",
112
+ "accent-pale-2"
113
+ ],
114
+ "description": "The lifted navy at 10 %, the quieter fill (ADR-0007)."
115
+ },
116
+ "--mq-accent-highlight": {
117
+ "value": "#9fb3e8",
118
+ "type": "color",
119
+ "path": [
120
+ "semantic",
121
+ "color",
122
+ "accent-highlight"
123
+ ],
124
+ "description": "The light navy for large highlighted title text: 8.71:1 on the canvas, 7.73:1 on the surface (ADR-0007)."
125
+ },
126
+ "--mq-on-accent": {
127
+ "value": "#11161f",
128
+ "type": "color",
129
+ "path": [
130
+ "semantic",
131
+ "color",
132
+ "on-accent"
133
+ ],
134
+ "description": "Near-black on the lifted accent, 5.22:1; white on it is 3.48:1 and is never used (ADR-0007)."
135
+ },
136
+ "--mq-ink": {
137
+ "value": "#f5f4f1",
138
+ "type": "color",
139
+ "path": [
140
+ "semantic",
141
+ "color",
142
+ "ink"
143
+ ],
144
+ "description": "Warm white, primary text: 16.48:1 on the canvas, 14.62:1 on the surface (ADR-0007)."
145
+ },
146
+ "--mq-muted": {
147
+ "value": "#c3cbdc",
148
+ "type": "color",
149
+ "path": [
150
+ "semantic",
151
+ "color",
152
+ "muted"
153
+ ],
154
+ "description": "Secondary text: 11.13:1 on the canvas, 9.88:1 on the surface (ADR-0007)."
155
+ },
156
+ "--mq-tertiary": {
157
+ "value": "#8f98aa",
158
+ "type": "color",
159
+ "path": [
160
+ "semantic",
161
+ "color",
162
+ "tertiary"
163
+ ],
164
+ "description": "Tertiary text, captions and footers: 6.25:1 on the canvas, 5.54:1 on the surface (ADR-0007)."
165
+ },
166
+ "--mq-decoration": {
167
+ "value": "#6b7385",
168
+ "type": "color",
169
+ "path": [
170
+ "semantic",
171
+ "color",
172
+ "decoration"
173
+ ],
174
+ "description": "Non-text decoration only, never text: 3.81:1 on the canvas, 3.38:1 on the surface (ADR-0007)."
175
+ },
176
+ "--mq-canvas": {
177
+ "value": "#11161f",
178
+ "type": "color",
179
+ "path": [
180
+ "semantic",
181
+ "color",
182
+ "canvas"
183
+ ],
184
+ "description": "A near-black with a navy cast, the background of every dark page (ADR-0007)."
185
+ },
186
+ "--mq-surface": {
187
+ "value": "#1a2131",
188
+ "type": "color",
189
+ "path": [
190
+ "semantic",
191
+ "color",
192
+ "surface"
193
+ ],
194
+ "description": "Cards and panels on a dark page (ADR-0007)."
195
+ },
196
+ "--mq-surface-alt": {
197
+ "value": "#141a26",
198
+ "type": "color",
199
+ "path": [
200
+ "semantic",
201
+ "color",
202
+ "surface-alt"
203
+ ],
204
+ "description": "Recessed surface on dark: table headers, grouped areas (ADR-0007)."
205
+ },
206
+ "--mq-desk": {
207
+ "value": "#0b0f16",
208
+ "type": "color",
209
+ "path": [
210
+ "semantic",
211
+ "color",
212
+ "desk"
213
+ ],
214
+ "description": "On screen only, around a dark page preview (ADR-0007)."
215
+ },
216
+ "--mq-border": {
217
+ "value": "rgba(255, 255, 255, 0.14)",
218
+ "type": "color",
219
+ "path": [
220
+ "semantic",
221
+ "color",
222
+ "border"
223
+ ],
224
+ "description": "Borders and dividers on dark, white at 14 % (decorative, ADR-0007)."
225
+ },
226
+ "--mq-border-light": {
227
+ "value": "rgba(255, 255, 255, 0.1)",
228
+ "type": "color",
229
+ "path": [
230
+ "semantic",
231
+ "color",
232
+ "border-light"
233
+ ],
234
+ "description": "Hairlines and card borders on dark, white at 10 % (decorative, ADR-0007)."
235
+ },
236
+ "--mq-border-strong": {
237
+ "value": "#8795b3",
238
+ "type": "color",
239
+ "path": [
240
+ "semantic",
241
+ "color",
242
+ "border-strong"
243
+ ],
244
+ "description": "Outline of outlined and dashed state marks on dark: 6.03:1 on the canvas, 5.35:1 on the surface (ADR-0007)."
245
+ },
246
+ "--mq-panel-start": {
247
+ "value": "#2f4c8f",
248
+ "type": "color",
249
+ "path": [
250
+ "semantic",
251
+ "color",
252
+ "panel-start"
253
+ ],
254
+ "description": "Light end of the navy panel gradient on dark, white 8.23:1 on it (ADR-0007)."
255
+ },
256
+ "--mq-panel-end": {
257
+ "value": "#0f2a5e",
258
+ "type": "color",
259
+ "path": [
260
+ "semantic",
261
+ "color",
262
+ "panel-end"
263
+ ],
264
+ "description": "Dark end of the navy panel gradient on dark (ADR-0007)."
265
+ },
266
+ "--mq-on-navy-accent": {
267
+ "value": "#b2c2ed",
268
+ "type": "color",
269
+ "path": [
270
+ "semantic",
271
+ "color",
272
+ "on-navy",
273
+ "accent"
274
+ ],
275
+ "description": "The one-off accent on the dark navy panel, 4.64:1 on its light end (owner ruling of 2026-10-17, ADR-0007)."
276
+ },
277
+ "--mq-on-navy-discreet": {
278
+ "value": "rgba(255, 255, 255, 0.5)",
279
+ "type": "color",
280
+ "path": [
281
+ "semantic",
282
+ "color",
283
+ "on-navy",
284
+ "discreet"
285
+ ],
286
+ "description": "Discreet numbers on the dark navy panel, 3.37:1 on its light end, so large text or non-text only (owner ruling of 2026-10-17, ADR-0007)."
287
+ },
288
+ "--mq-success": {
289
+ "value": "#6fbf73",
290
+ "type": "color",
291
+ "path": [
292
+ "semantic",
293
+ "color",
294
+ "status",
295
+ "success"
296
+ ],
297
+ "description": "Apps only: success on dark, 8.09:1 on the canvas (ADR-0007, ADR-0004)."
298
+ },
299
+ "--mq-warning": {
300
+ "value": "#e0a040",
301
+ "type": "color",
302
+ "path": [
303
+ "semantic",
304
+ "color",
305
+ "status",
306
+ "warning"
307
+ ],
308
+ "description": "Apps only: warning text, icons and borders on dark, 8.00:1 on the canvas (ADR-0007, ADR-0004)."
309
+ },
310
+ "--mq-danger": {
311
+ "value": "#ff6b6b",
312
+ "type": "color",
313
+ "path": [
314
+ "semantic",
315
+ "color",
316
+ "status",
317
+ "danger"
318
+ ],
319
+ "description": "Apps only: errors and destructive actions on dark, 6.53:1 on the canvas (ADR-0007, ADR-0004)."
320
+ },
321
+ "--mq-info": {
322
+ "value": "#64a8f0",
323
+ "type": "color",
324
+ "path": [
325
+ "semantic",
326
+ "color",
327
+ "status",
328
+ "info"
329
+ ],
330
+ "description": "Apps only: information on dark, 7.25:1 on the canvas (ADR-0007, ADR-0004)."
331
+ },
332
+ "--mq-on-warning-fill": {
333
+ "value": "#11161f",
334
+ "type": "color",
335
+ "path": [
336
+ "semantic",
337
+ "color",
338
+ "status",
339
+ "on-warning-fill"
340
+ ],
341
+ "description": "Near-black on the warning fill, 6.18:1; warm white on it is 2.67:1 (ADR-0007)."
342
+ },
343
+ "--mq-warning-fill": {
344
+ "value": "#d4850a",
345
+ "type": "color",
346
+ "path": [
347
+ "semantic",
348
+ "color",
349
+ "warning-fill"
350
+ ],
351
+ "description": "The warning fill, unchanged on dark (ADR-0007)."
352
+ },
353
+ "--mq-warning-tint": {
354
+ "value": "rgba(212, 133, 10, 0.16)",
355
+ "type": "color",
356
+ "path": [
357
+ "semantic",
358
+ "color",
359
+ "warning-tint"
360
+ ],
361
+ "description": "The warning fill at 16 % behind ink text, 11.63:1 on the surface (ADR-0007)."
362
+ },
363
+ "--mq-dim": {
364
+ "value": "#8f98aa",
365
+ "type": "color",
366
+ "path": [
367
+ "semantic",
368
+ "color",
369
+ "dim"
370
+ ],
371
+ "description": "Retired name of the old tertiary grey; resolves to tertiary on dark too (ADR-0007).",
372
+ "deprecated": "Use --mq-tertiary for text or --mq-decoration for non-text decoration."
373
+ },
374
+ "--mq-accent-on-dark": {
375
+ "value": "#b2c2ed",
376
+ "type": "color",
377
+ "path": [
378
+ "semantic",
379
+ "color",
380
+ "accent-on-dark"
381
+ ],
382
+ "description": "Retired name of the accent on navy; resolves to the on-navy accent on dark too (owner ruling of 2026-10-17, ADR-0007).",
383
+ "deprecated": "Use --mq-on-navy-title for titles and rules, --mq-on-navy-accent for the one-off accent."
384
+ },
385
+ "--mq-focus-ring-color": {
386
+ "value": "#9fb3e8",
387
+ "type": "color",
388
+ "path": [
389
+ "semantic",
390
+ "focus",
391
+ "ring",
392
+ "color"
393
+ ],
394
+ "description": "Focus ring on dark backgrounds, the light navy: 8.71:1 on the canvas (ADR-0007)."
395
+ },
396
+ "--mq-shadow-small": {
397
+ "value": "0px 1px 2px 0px rgba(0, 0, 0, 0.4)",
398
+ "type": "shadow",
399
+ "path": [
400
+ "semantic",
401
+ "shadow",
402
+ "small"
403
+ ],
404
+ "description": "Cards on dark: black at 40 %, since the light 5 % shadow does not show on the dark canvas (ADR-0007, owner approval of 2026-10-17)."
405
+ },
406
+ "--mq-shadow-medium": {
407
+ "value": "0px 3px 12px 0px rgba(0, 0, 0, 0.5)",
408
+ "type": "shadow",
409
+ "path": [
410
+ "semantic",
411
+ "shadow",
412
+ "medium"
413
+ ],
414
+ "description": "A slide or page previewed on the dark desk: black at 50 % (ADR-0007, owner approval of 2026-10-17)."
415
+ },
416
+ "--mq-shadow-panel": {
417
+ "value": "0px 0px 0px 1px rgba(159, 179, 232, 0.35)",
418
+ "type": "shadow",
419
+ "path": [
420
+ "semantic",
421
+ "shadow",
422
+ "panel"
423
+ ],
424
+ "description": "Navy panels on dark: a 1 px light-navy outline, no glow (ADR-0007, owner 2026-10-15)."
425
+ },
426
+ "--mq-shadow-edge": {
427
+ "value": "0px 0px 0px 1px rgba(159, 179, 232, 0.35)",
428
+ "type": "shadow",
429
+ "path": [
430
+ "semantic",
431
+ "shadow",
432
+ "edge"
433
+ ],
434
+ "description": "On dark, the panel's 1 px light-navy outline around a navy KPI tile, a navy brand tile and the monogram, whose navy square is 1.11:1 on the dark surface (owner rulings 13 and 14, ADR-0007)."
435
+ }
436
+ }
package/dist/tokens.css CHANGED
@@ -59,12 +59,15 @@
59
59
  --mq-core-font-size-56: 56px; /** Font size 56 px (Report design system, 2026-10-08). */
60
60
  --mq-core-font-size-12-5: 12.5px; /** Font size 12.5 px (Report design system, 2026-10-08). */
61
61
  --mq-core-font-size-16-5: 16.5px; /** Font size 16.5 px (Report design system, 2026-10-08). */
62
+ --mq-core-font-line-height-1-15: 1.15; /** Line height 1.15, the tight end of headings, counters and stat figures (owner, 2026-10-15). */
63
+ --mq-core-font-line-height-1-55: 1.55; /** Line height 1.55 of app UI text, labels, descriptions and the document body (owner, 2026-10-15). */
62
64
  --mq-core-radius-3: 3px; /** Owner ruling 3, 2026-10-09: small items (tags, inputs, chips). */
63
65
  --mq-core-radius-6: 6px; /** Owner ruling 3, 2026-10-09: cards and panels; the maximum anywhere, no pill shapes. */
64
66
  --mq-core-radius-12: 12px; /** Owner ruling 3, amended 2026-10-10: the one exception above 6 px, for app dialogs and modals, side drawers and command palettes only; never in documents, slides, cards or website media. */
65
67
  --mq-core-shadow-small: 0px 1px 2px 0px rgba(0, 0, 0, 0.05); /** Small elevation for cards (increment 07 component need, Report design system, 2026-10-08). */
66
68
  --mq-core-shadow-medium: 0px 3px 12px 0px rgba(0, 0, 0, 0.07); /** Medium elevation for a slide or page shown on the desk (increment 07 component need, Report design system, 2026-10-08). */
67
69
  --mq-core-shadow-panel: 0px 14px 36px 0px rgba(10, 36, 99, 0.24); /** Navy-tinted elevation for navy panels (increment 07 component need, Report design system, 2026-10-08). */
70
+ --mq-core-shadow-none: 0px 0px 0px 0px rgba(0, 0, 0, 0); /** No shadow: a transparent layer of zero size, for a role that draws an edge in one theme only (owner ruling 14). */
68
71
  --mq-core-size-720: 720px; /** Slide canvas height, 720 px (increment 07 component need: the 1280 by 720 slide canvas). */
69
72
  --mq-core-size-760: 760px; /** Reading measure, 760 px (increment 07 component need, Report design system, 2026-10-08). */
70
73
  --mq-core-size-1040: 1040px; /** Content width of a screen document, 1040 px (increment 07 component need, Report design system, 2026-10-08). */
@@ -93,6 +96,7 @@
93
96
  --mq-accent-hover: #061a4d; /** Hover state of accent-coloured controls. */
94
97
  --mq-accent-pale: #eaeef7; /** Pale accent fill for a highlighted row, tag or state. */
95
98
  --mq-accent-pale-2: #f2f4f9; /** Quieter pale accent fill. */
99
+ --mq-accent-highlight: #0a2463; /** Large highlighted title text; the accent itself in light, the light navy in dark (ADR-0007). */
96
100
  --mq-on-accent: #ffffff; /** Text and icons on an accent fill, 14.53:1 on navy. */
97
101
  --mq-ink: #1a1a1a; /** Primary text. */
98
102
  --mq-muted: #555555; /** Secondary text. */
@@ -119,6 +123,7 @@
119
123
  --mq-warning: #a06400; /** Owner ruling 5, 2026-10-09: warning text, icons and borders; apps only (ADR-0004). */
120
124
  --mq-danger: #d8232a; /** Apps only: errors and destructive actions, always with an icon or a word (ADR-0003, ADR-0004). */
121
125
  --mq-info: #1565c0; /** Apps only: information, always with an icon or a word (ADR-0004). */
126
+ --mq-on-warning-fill: #1a1a1a; /** Text on the warning fill: ink in light (5.93:1), near-black in dark (6.18:1), where warm white on the fill is 2.67:1 (ADR-0007, amends owner ruling 5). */
122
127
  --mq-warning-fill: #d4850a; /** Owner ruling 5, 2026-10-09: warning badge and highlight fill, always with ink text; white on it is forbidden (2.93:1). */
123
128
  --mq-warning-tint: #fbf3e7; /** Owner ruling 5, 2026-10-09: warning tint behind ink text; warning strong only for icons and borders on it. */
124
129
  --mq-dim: #707070; /** Retired name of the old tertiary grey; resolves to tertiary (Owner ruling 1, 2026-10-09). */
@@ -144,6 +149,7 @@
144
149
  --mq-shadow-small: 0px 1px 2px 0px rgba(0, 0, 0, 0.05); /** Cards (increment 07 component need). */
145
150
  --mq-shadow-medium: 0px 3px 12px 0px rgba(0, 0, 0, 0.07); /** A slide or page previewed on the desk, never in print (increment 07 component need). */
146
151
  --mq-shadow-panel: 0px 14px 36px 0px rgba(10, 36, 99, 0.24); /** Navy panels (increment 07 component need). */
152
+ --mq-shadow-edge: 0px 0px 0px 0px rgba(0, 0, 0, 0); /** The navy panel's edge for a navy mark that has no panel shadow: the monogram, a navy KPI tile, a navy brand or app tile. None in light; on dark the panel's 1 px light-navy outline (owner rulings 13 and 14). */
147
153
  --mq-slide-width: 1280px; /** Slide canvas width (increment 07 component need). */
148
154
  --mq-slide-height: 720px; /** Slide canvas height (increment 07 component need). */
149
155
  --mq-page-width: 1040px; /** Content width of a screen document (increment 07 component need). */
@@ -158,6 +164,8 @@
158
164
  --mq-font-weight-emphasis: 600; /** Owner ruling 4, 2026-10-09: a short highlighted word inside body text, as the Med of the logo. */
159
165
  --mq-font-weight-body: 400; /** Body text. */
160
166
  --mq-font-weight-light: 300; /** Owner ruling 6, 2026-10-09: only the Quantis half of the wordmark; never for headings or body text. */
167
+ --mq-font-line-height-body: 1.55; /** Body line height of documents, slides and pages (owner, 2026-10-15). */
168
+ --mq-font-line-height-tight: 1.15; /** Tight line height of section titles; the display title keeps its own 1.08 (owner, 2026-10-15). */
161
169
  --mq-font-size-hero-min: 34px; /** Hero title at the narrowest viewport. */
162
170
  --mq-font-size-hero-max: 56px; /** Hero title at the widest viewport. */
163
171
  --mq-font-size-h2: 32px; /** Section title. */
package/dist/tokens.json CHANGED
@@ -572,6 +572,28 @@
572
572
  ],
573
573
  "description": "Font size 16.5 px (Report design system, 2026-10-08)."
574
574
  },
575
+ "--mq-core-font-line-height-1-15": {
576
+ "value": 1.15,
577
+ "type": "number",
578
+ "path": [
579
+ "core",
580
+ "font",
581
+ "line-height",
582
+ "1-15"
583
+ ],
584
+ "description": "Line height 1.15, the tight end of headings, counters and stat figures (owner, 2026-10-15)."
585
+ },
586
+ "--mq-core-font-line-height-1-55": {
587
+ "value": 1.55,
588
+ "type": "number",
589
+ "path": [
590
+ "core",
591
+ "font",
592
+ "line-height",
593
+ "1-55"
594
+ ],
595
+ "description": "Line height 1.55 of app UI text, labels, descriptions and the document body (owner, 2026-10-15)."
596
+ },
575
597
  "--mq-core-radius-3": {
576
598
  "value": "3px",
577
599
  "type": "dimension",
@@ -632,6 +654,16 @@
632
654
  ],
633
655
  "description": "Navy-tinted elevation for navy panels (increment 07 component need, Report design system, 2026-10-08)."
634
656
  },
657
+ "--mq-core-shadow-none": {
658
+ "value": "0px 0px 0px 0px rgba(0, 0, 0, 0)",
659
+ "type": "shadow",
660
+ "path": [
661
+ "core",
662
+ "shadow",
663
+ "none"
664
+ ],
665
+ "description": "No shadow: a transparent layer of zero size, for a role that draws an edge in one theme only (owner ruling 14)."
666
+ },
635
667
  "--mq-core-size-720": {
636
668
  "value": "720px",
637
669
  "type": "dimension",
@@ -916,6 +948,16 @@
916
948
  ],
917
949
  "description": "Quieter pale accent fill."
918
950
  },
951
+ "--mq-accent-highlight": {
952
+ "value": "#0a2463",
953
+ "type": "color",
954
+ "path": [
955
+ "semantic",
956
+ "color",
957
+ "accent-highlight"
958
+ ],
959
+ "description": "Large highlighted title text; the accent itself in light, the light navy in dark (ADR-0007)."
960
+ },
919
961
  "--mq-on-accent": {
920
962
  "value": "#ffffff",
921
963
  "type": "color",
@@ -1188,6 +1230,17 @@
1188
1230
  ],
1189
1231
  "description": "Apps only: information, always with an icon or a word (ADR-0004)."
1190
1232
  },
1233
+ "--mq-on-warning-fill": {
1234
+ "value": "#1a1a1a",
1235
+ "type": "color",
1236
+ "path": [
1237
+ "semantic",
1238
+ "color",
1239
+ "status",
1240
+ "on-warning-fill"
1241
+ ],
1242
+ "description": "Text on the warning fill: ink in light (5.93:1), near-black in dark (6.18:1), where warm white on the fill is 2.67:1 (ADR-0007, amends owner ruling 5)."
1243
+ },
1191
1244
  "--mq-warning-fill": {
1192
1245
  "value": "#d4850a",
1193
1246
  "type": "color",
@@ -1442,6 +1495,16 @@
1442
1495
  ],
1443
1496
  "description": "Navy panels (increment 07 component need)."
1444
1497
  },
1498
+ "--mq-shadow-edge": {
1499
+ "value": "0px 0px 0px 0px rgba(0, 0, 0, 0)",
1500
+ "type": "shadow",
1501
+ "path": [
1502
+ "semantic",
1503
+ "shadow",
1504
+ "edge"
1505
+ ],
1506
+ "description": "The navy panel's edge for a navy mark that has no panel shadow: the monogram, a navy KPI tile, a navy brand or app tile. None in light; on dark the panel's 1 px light-navy outline (owner rulings 13 and 14)."
1507
+ },
1445
1508
  "--mq-slide-width": {
1446
1509
  "value": "1280px",
1447
1510
  "type": "dimension",
@@ -1590,6 +1653,28 @@
1590
1653
  ],
1591
1654
  "description": "Owner ruling 6, 2026-10-09: only the Quantis half of the wordmark; never for headings or body text."
1592
1655
  },
1656
+ "--mq-font-line-height-body": {
1657
+ "value": 1.55,
1658
+ "type": "number",
1659
+ "path": [
1660
+ "semantic",
1661
+ "font",
1662
+ "line-height",
1663
+ "body"
1664
+ ],
1665
+ "description": "Body line height of documents, slides and pages (owner, 2026-10-15)."
1666
+ },
1667
+ "--mq-font-line-height-tight": {
1668
+ "value": 1.15,
1669
+ "type": "number",
1670
+ "path": [
1671
+ "semantic",
1672
+ "font",
1673
+ "line-height",
1674
+ "tight"
1675
+ ],
1676
+ "description": "Tight line height of section titles; the display title keeps its own 1.08 (owner, 2026-10-15)."
1677
+ },
1593
1678
  "--mq-font-size-hero-min": {
1594
1679
  "value": "34px",
1595
1680
  "type": "dimension",
@@ -8,7 +8,7 @@ The MedQuantis brand, writing, colour, type, layout, chart, data and accessibili
8
8
  | [brand.md](brand.md) | Name, tagline, legal line, wordmark, monogram, favicon, icons |
9
9
  | [voice.md](voice.md) | Tone, words to prefer and avoid, languages, terminology in French, German, Italian and English |
10
10
  | [writing.md](writing.md) | No em or en dash, titles, sentences and lists, French typography |
11
- | [colour.md](colour.md) | Semantic colour tokens, the medium split, navy panels, states by mark style, status colours in apps |
11
+ | [colour.md](colour.md) | Semantic colour tokens, the medium split, navy panels, states by mark style, status colours in apps, the dark theme |
12
12
  | [typography.md](typography.md) | Families, weights, roles, sizes and line heights |
13
13
  | [layout.md](layout.md) | Media, report skeleton, widths and spacing, radius, components, tables, app patterns, print |
14
14
  | [charts.md](charts.md) | The ordered palette, highlight on grey, sequential and diverging use, marks, legends |
@@ -20,7 +20,7 @@ The values themselves live in `tokens/` and reach these pages as `--mq-*` names;
20
20
 
21
21
  ## Where the legacy rules went
22
22
 
23
- These guidelines replace five earlier documents, which competed and partly contradicted each other: the platform brand document, the platform design-system document, the platform report design system of 2026-10-08, the platform style guide and the Paracel design document. Every rule found in them is listed below, rewritten, either as carried over (with the file that now holds it) or as dropped (with the reason). Rulings cited by number are the owner rulings of 2026-10-09 and 2026-10-10 recorded in the bootstrap plan; ADRs are in `docs/architecture/decisions/`.
23
+ These guidelines replace five earlier documents, which competed and partly contradicted each other: the platform brand document, the platform design-system document, the platform report design system of 2026-10-08, the platform style guide and the Paracel design document. Every rule found in them is listed below, rewritten, either as carried over (with the file that now holds it) or as dropped (with the reason). Rulings cited by number are the owner rulings of 2026-10-09 and 2026-10-10 recorded in the bootstrap plan (1 to 11) and the later ones listed under "Rulings after the bootstrap" (12 on); ADRs are in `docs/architecture/decisions/`.
24
24
 
25
25
  | Source | Rules found | Carried over | Dropped |
26
26
  | :-- | --: | --: | --: |
@@ -308,3 +308,18 @@ These guidelines replace five earlier documents, which competed and partly contr
308
308
  | Copy-paste root block of custom properties | Paracel design document | Superseded by ADR-0002 and ADR-0006 (generated --mq- tokens) |
309
309
  | Machine-readable kit token section with the red accent | Paracel design document | Superseded by ADR-0006: the kit contract is generated |
310
310
  | Workflow stage colours with white text inside the bar segments | Paracel design document | Superseded by ADR-0004 (status hues for system status only) and the contrast pairs (white fails on the light series) |
311
+
312
+ ## Rulings after the bootstrap
313
+
314
+ Owner rulings taken after the bootstrap plan, numbered on from ruling 11. Each is recorded in its decision record and applied in the guideline named.
315
+
316
+ | Ruling | Date | Rule | Now in | Source |
317
+ | :-- | :-- | :-- | :-- | :-- |
318
+ | 12 | 2026-10-15 | MedQuantis has a dark theme: the semantic roles re-valued under `.dark` and shipped in `themes/dark.css`, for apps, documents and slides | [colour.md](colour.md) | ADR-0007, design pass of 2026-10-15 |
319
+ | 13 | 2026-10-15 | No glow on dark: a navy panel on dark draws a 1 px light-navy outline (`--mq-shadow-panel`) | [colour.md](colour.md), [layout.md](layout.md) | ADR-0007, design pass of 2026-10-15 |
320
+ | 14 | 2026-10-15 | The white wordmark on every dark surface, never the navy one; a navy tile on dark takes the panel gradient; the monogram takes the panel's outline | [brand.md](brand.md) | ADR-0007, design pass of 2026-10-15 |
321
+ | 15 | 2026-10-15 | A document is light or dark, chosen by its author at build time, never from the reader's screen | [colour.md](colour.md) | ADR-0007, design pass of 2026-10-15 |
322
+ | 16 | 2026-10-15 | Status and chart values on dark; text on the warning fill reads `--mq-on-warning-fill`, ink in light | [colour.md](colour.md) | ADR-0007, design pass of 2026-10-15 |
323
+ | 17 | 2026-10-15 | A deck's classification sits at the right of the slide footer, before the number, in the deck's language: the label only, never the C0 to C3 code. Amends ruling 11 | [layout.md](layout.md), [brand.md](brand.md) | Design pass of 2026-10-15 (the ADR-0007 decision log), Plan-0003 |
324
+ | 18 | 2026-10-17 | Accent text on the pale fills (the pale KPI value, the pale badge, the callout title) reads `--mq-accent-highlight`, the accent itself in light | [colour.md](colour.md) | ADR-0007 |
325
+ | 19 | 2026-10-17 | On the dark panel start, `--mq-on-navy-accent` is `#b2c2ed` and `--mq-on-navy-discreet` white at 50 %, large text or non-text only; the light values are unchanged | [colour.md](colour.md) | ADR-0007 |
@@ -27,6 +27,8 @@ Set it in Geist Mono at the note size, tertiary text colour (`--mq-tertiary`), w
27
27
 
28
28
  On slides the legal line appears on every slide, bottom left, small and in tertiary grey, with the slide number bottom right (owner ruling 11). Use the slide footer row `mq-slide-foot` of `css/slide.css`, never `mq-foot`, which flows from the top of a slide canvas.
29
29
 
30
+ A deck that carries a classification shows it at the right of the footer, before the slide number, in the same small tertiary mono (owner ruling 17, amending ruling 11's two-cell footer). It is the label only, in the deck's language (Confidential in an English deck, Confidentiel in a French one), never the C0 to C3 code. A kit deck takes it from its `classification:` and `lang:`.
31
+
30
32
  Material left with a reader (a deck after a meeting, a report sent outside) also carries a confidentiality mention and its date, in the document's language:
31
33
 
32
34
  | Medium | French | German | English | Italian |
@@ -36,7 +38,7 @@ Material left with a reader (a deck after a meeting, a report sent outside) also
36
38
 
37
39
  ## Wordmark
38
40
 
39
- The wordmark is the logo; no icon is required next to it. "Med" is set in Outfit 600 and "Quantis" in Outfit 300, in navy (`#0a2463`) on light backgrounds and in white on navy, at every size (owner ruling 6).
41
+ The wordmark is the logo; no icon is required next to it. "Med" is set in Outfit 600 and "Quantis" in Outfit 300, in navy (`#0a2463`) on light backgrounds and in white on navy and on every dark surface, at every size (owner rulings 6 and 14).
40
42
 
41
43
  Each background has two files in `brand/`:
42
44
 
@@ -48,6 +50,7 @@ Each background has two files in `brand/`:
48
50
  Rules:
49
51
 
50
52
  - Use the on-navy file on navy and the on-light file on light backgrounds. Never recolour, stretch, outline, shadow or rearrange the wordmark.
53
+ - On dark (the dark theme, a dark slide or page), use the white `wordmark-on-navy` files on every dark surface: 18.13:1 on the dark canvas, 16.08:1 on the dark surface. The navy wordmark is never used on dark: it is 1.25:1 there (owner ruling 14).
51
54
  - Inline the SVG rather than linking an external image, and remove its `width` and `height` so the page sizes it. On a report header the wordmark sits at about 198 by 44 px on screen and 162 by 36 px in print.
52
55
  - A full stop in the on-navy accent (`--mq-on-navy-accent`) after a name is reserved for a one-word name on a navy cover. It is never added to the wordmark.
53
56
 
@@ -62,6 +65,8 @@ Where the wordmark does not fit (favicon, app icon, avatar, app tile), use the m
62
65
  | `brand/monogram-small.svg` | 16 px and smaller: larger letters, M 800 and Q 600 |
63
66
  | `brand/favicon/` | `favicon.svg`, `favicon.ico` (16, 32, 48), `apple-touch-icon.png` (180), `icon-192.png`, `icon-512.png` |
64
67
 
68
+ On dark (owner ruling 14) the monogram keeps its file and takes the navy panel's edge, the 1 px light-navy outline that `--mq-shadow-panel` draws in the dark theme, since its navy square is only 1.11:1 against the dark surface; in light it has no outline. A navy brand tile or app tile on dark takes the panel gradient (`--mq-panel-start` to `--mq-panel-end`), never the lifted accent, on which white is 3.48:1. No new brand file is needed.
69
+
65
70
  ## No combined logo yet
66
71
 
67
72
  There is no lockup of the monogram and the wordmark in v1, and no on-navy variant of the monogram. Do not compose one locally: the combined logo is deferred until a real surface needs it ([issue #2](https://github.com/MedQuantis/design-system/issues/2)). Older lockups with a strapline under the wordmark are retired.