@medquantis/design-system 1.1.0 → 1.3.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.
- package/README.md +36 -11
- package/css/app.css +1 -1
- package/css/components.css +20 -4
- package/css/kit/dark.css +6 -0
- package/css/kit/slide-frame.css +15 -2
- package/dist/DESIGN.md +518 -12
- package/dist/kit/brand.css +3 -3
- package/dist/kit/core.css +1 -1
- package/dist/kit/dark.css +47 -0
- package/dist/kit/dataviz.css +1 -1
- package/dist/kit/document.css +1 -1
- package/dist/kit/guidance.md +98 -6
- package/dist/kit/print.css +1 -1
- package/dist/kit/slide-frame.css +16 -3
- package/dist/kit/space-shape.css +1 -1
- package/dist/kit/type.css +1 -1
- package/dist/llms-full.txt +443 -12
- package/dist/llms.txt +24 -23
- package/dist/tailwind.css +12 -0
- package/dist/themes/dark.css +50 -0
- package/dist/themes/dark.json +446 -0
- package/dist/tokens.css +28 -0
- package/dist/tokens.json +292 -0
- package/guidelines/README.md +20 -2
- package/guidelines/accessibility.md +2 -1
- package/guidelines/app-patterns.md +281 -0
- package/guidelines/brand.md +6 -1
- package/guidelines/charts.md +33 -1
- package/guidelines/colour.md +86 -4
- package/guidelines/layout.md +3 -3
- package/icons/lucide.min.js +3 -3
- package/icons/manifest.json +2 -2
- package/kit-manifest.json +2 -1
- package/package.json +10 -6
package/dist/kit/brand.css
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis values for the brand module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis values for the brand module of the homemade-claude-kit design contract 2.1.0,
|
|
4
4
|
* generated from tokens/kit/ by the design-system build. Do not edit. kit-manifest.json lists it.
|
|
5
5
|
* For kit renderers only: the unprefixed names collide with app and Tailwind variables.
|
|
6
6
|
*/
|
|
7
7
|
:root {
|
|
8
|
-
--brand-logo-on-light: url("./brand/wordmark-on-light.svg");
|
|
9
|
-
--brand-logo-on-dark: url("./brand/wordmark-on-navy.svg");
|
|
8
|
+
--brand-logo-on-light: url("./brand/wordmark-on-light-print.svg");
|
|
9
|
+
--brand-logo-on-dark: url("./brand/wordmark-on-navy-print.svg");
|
|
10
10
|
--brand-mark: url("./brand/monogram.svg");
|
|
11
11
|
--brand-legal: "MedQuantis SA · CH-1095 Lutry · medquantis.ch";
|
|
12
12
|
}
|
package/dist/kit/core.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis values for the core module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis values for the core module of the homemade-claude-kit design contract 2.1.0,
|
|
4
4
|
* generated from tokens/kit/ by the design-system build. Do not edit. kit-manifest.json lists it.
|
|
5
5
|
* For kit renderers only: the unprefixed names collide with app and Tailwind variables.
|
|
6
6
|
*/
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
|
+
/*
|
|
3
|
+
* MedQuantis dark module of the homemade-claude-kit design contract 2.1.0. The roles are
|
|
4
|
+
* generated from tokens/kit/ by the design-system build, resolved in the dark theme (ADR-0007),
|
|
5
|
+
* on :root only; the kit's own dark layer remaps the light roles to them on a dark slide or page
|
|
6
|
+
* and draws the dark, dark-key and dark-accent classes. Do not edit this file. kit-manifest.json
|
|
7
|
+
* lists it. For kit renderers only: the unprefixed names collide with app and Tailwind variables.
|
|
8
|
+
*/
|
|
9
|
+
:root {
|
|
10
|
+
--dark-ink: #f5f4f1;
|
|
11
|
+
--dark-muted: #c3cbdc;
|
|
12
|
+
--dark-tertiary: #8f98aa;
|
|
13
|
+
--dark-canvas-bg: #11161f;
|
|
14
|
+
--dark-surface: #1a2131;
|
|
15
|
+
--dark-surface-2: #141a26;
|
|
16
|
+
--dark-border: rgba(255, 255, 255, 0.14);
|
|
17
|
+
--dark-accent: #6f88c9;
|
|
18
|
+
--dark-accent-ink: #11161f;
|
|
19
|
+
--dark-success: #6fbf73;
|
|
20
|
+
--dark-warning: #e0a040;
|
|
21
|
+
--dark-danger: #ff6b6b;
|
|
22
|
+
--dark-info: #64a8f0;
|
|
23
|
+
--dark-chart-1: #9fb3e8;
|
|
24
|
+
--dark-chart-2: #6f88c9;
|
|
25
|
+
--dark-chart-3: #5d6f91;
|
|
26
|
+
--dark-chart-4: #3a4560;
|
|
27
|
+
--dark-chart-rest: #232b3d;
|
|
28
|
+
--dark-chart-axis: #6b7385;
|
|
29
|
+
--dark-chart-grid: rgba(255, 255, 255, 0.1);
|
|
30
|
+
--dark-chart-highlight: #9fb3e8;
|
|
31
|
+
--dark-slide-bg: #11161f;
|
|
32
|
+
--dark-slide-fg: #f5f4f1;
|
|
33
|
+
--dark-doc-page-bg: #11161f;
|
|
34
|
+
--dark-doc-rule: rgba(255, 255, 255, 0.14);
|
|
35
|
+
--dark-print-bg: #11161f;
|
|
36
|
+
--dark-key-base: #2f4c8f;
|
|
37
|
+
--dark-accent-text: #9fb3e8;
|
|
38
|
+
--dark-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.4);
|
|
39
|
+
--dark-key-edge: 0px 0px 0px 1px rgba(159, 179, 232, 0.35);
|
|
40
|
+
--dark-key-fill: linear-gradient(160deg, #2f4c8f 0%, #0f2a5e 100%);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* No class rule (Plan-0003 increment 04): the kit's own dark layer remaps the roles to their
|
|
45
|
+
* --dark- twins on a dark slide or page and draws .dark-key and .dark-accent from the dark roles,
|
|
46
|
+
* so a rule here would compete with it. The dark roles come from tokens/kit/, on :root only.
|
|
47
|
+
*/
|
package/dist/kit/dataviz.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis values for the dataviz module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis values for the dataviz module of the homemade-claude-kit design contract 2.1.0,
|
|
4
4
|
* generated from tokens/kit/ by the design-system build. Do not edit. kit-manifest.json lists it.
|
|
5
5
|
* For kit renderers only: the unprefixed names collide with app and Tailwind variables.
|
|
6
6
|
*/
|
package/dist/kit/document.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis document module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis document module of the homemade-claude-kit design contract 2.1.0. The roles are
|
|
4
4
|
* generated from tokens/kit/ by the design-system build; the class rules after them are copied
|
|
5
5
|
* from css/kit/document.css, written by hand against contract roles. Do not edit this file.
|
|
6
6
|
* kit-manifest.json lists it. For kit renderers only: the unprefixed names collide with app and
|
package/dist/kit/guidance.md
CHANGED
|
@@ -11,7 +11,7 @@ Source: guidelines/colour.md, guidelines/typography.md, guidelines/layout.md, gu
|
|
|
11
11
|
| Medium | Colours allowed | How a state is shown |
|
|
12
12
|
| :-- | :-- | :-- |
|
|
13
13
|
| Documents: slides, A4 reports, papers, newsletters, the website | Navy, the neutrals, the blue-grey family, the chart tokens | By mark style: solid, ring, pale, outline, quiet, dashed, struck through |
|
|
14
|
-
| Interactive apps | Everything documents use, plus `--mq-success`, `--mq-warning`, `--mq-danger`, `--mq-info
|
|
14
|
+
| Interactive apps | Everything documents use, plus `--mq-success`, `--mq-warning`, `--mq-danger`, `--mq-info`, and the app categorical palette with its change types (charts) | Status colour for genuine system status only (errors, validation, alerts, confirmations), always with an icon or a word; a categorical hue for a data category only, always with a label, a sign or a word |
|
|
15
15
|
|
|
16
16
|
Documents never carry green, orange, red, sky blue, pink, purple or turquoise, not even to say good or bad (ADR-0004). They never load `css/app.css`. A callout in a document is always navy; there is no warning-orange or success-green callout.
|
|
17
17
|
|
|
@@ -24,12 +24,13 @@ Documents never carry green, orange, red, sky blue, pink, purple or turquoise, n
|
|
|
24
24
|
| `--mq-accent-pale` | `#eaeef7` | Icon pills and chips, a deviating value, the highlighted table row, the pale state |
|
|
25
25
|
| `--mq-accent-pale-2` | `#f2f4f9` | Progress tracks, the quiet state, callout background |
|
|
26
26
|
| `--mq-on-accent` | `#ffffff` | Text and icons on an accent fill (14.53:1) |
|
|
27
|
+
| `--mq-accent-highlight` | `#0a2463` | Accent text on the pale fills (the pale KPI value, the pale badge, the callout title) and large highlighted title text: the accent itself in light, the light navy on dark (owner ruling 18) |
|
|
27
28
|
|
|
28
29
|
Navy carries emphasis on its own. Status colours never replace it for emphasis, in any medium.
|
|
29
30
|
|
|
30
31
|
### Colour: Neutrals
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
In the light theme the neutrals are warm greys tuned to the warm canvas, never blue-tinted greys; the neutrals of the dark theme carry the navy cast of its canvas (Dark theme).
|
|
33
34
|
|
|
34
35
|
| Token | Value | Use | Contrast |
|
|
35
36
|
| :-- | :-- | :-- | :-- |
|
|
@@ -61,7 +62,7 @@ Outfit was chosen because it reads cleanly from a display title down to an 11 px
|
|
|
61
62
|
|
|
62
63
|
### Layout: Elevation and navy blocks
|
|
63
64
|
|
|
64
|
-
- Cards, figures and tables: `--mq-shadow-small`. Raised panels, menus and a page or slide previewed on the desk: `--mq-shadow-medium`. Navy panels: `--mq-shadow-panel
|
|
65
|
+
- Cards, figures and tables: `--mq-shadow-small`. Raised panels, menus and a page or slide previewed on the desk: `--mq-shadow-medium`. Navy panels: `--mq-shadow-panel`, which on dark is a 1 px light-navy outline and never a glow (owner ruling 13). No shadow in print and none on chart marks.
|
|
65
66
|
- One large navy block per screen, slide or page area. In a report, keep the header, a navy KPI band and a navy panel apart with light content.
|
|
66
67
|
|
|
67
68
|
### Accessibility: Colour is never alone
|
|
@@ -71,7 +72,8 @@ Colour never carries meaning on its own (WCAG 1.4.1):
|
|
|
71
72
|
- documents show states by mark style (solid, ring, pale, outline, quiet, dashed, struck through) and a page that uses these marks gives their key once, in a legend or a note;
|
|
72
73
|
- apps pair every status colour with an icon or a word;
|
|
73
74
|
- charts label the marks that use series 3 or 4, or give them an outline, since those colours are below 3:1 on the page (charts);
|
|
74
|
-
- a change in a figure is shown by its sign, not by a colour or an arrow alone
|
|
75
|
+
- a change in a figure is shown by its sign, not by a colour or an arrow alone;
|
|
76
|
+
- in apps, a mark in the app categorical palette carries a direct label, a legend entry, a sign or a word, since two of its hues share their lightness (charts).
|
|
75
77
|
|
|
76
78
|
## dataviz
|
|
77
79
|
|
|
@@ -239,10 +241,95 @@ Source: guidelines/layout.md.
|
|
|
239
241
|
|
|
240
242
|
| Medium | Canvas | Layout |
|
|
241
243
|
| :-- | :-- | :-- |
|
|
242
|
-
| Slide | 1280 by 720 px (`--mq-slide-width`, `--mq-slide-height`, `css/slide.css`) | Fixed canvas, 72 px side margins (`--mq-space-8`), section label top left, title under it, and a footer row (`mq-slide-foot`) with the legal line bottom left and the slide number bottom right, both in tertiary mono (owner ruling 11) |
|
|
244
|
+
| Slide | 1280 by 720 px (`--mq-slide-width`, `--mq-slide-height`, `css/slide.css`) | Fixed canvas, 72 px side margins (`--mq-space-8`), section label top left, title under it, and a footer row (`mq-slide-foot`) with the legal line bottom left and the slide number bottom right, both in tertiary mono (owner ruling 11); a classified deck adds its classification label at the right of the footer, before the slide number (owner ruling 17) |
|
|
243
245
|
| Screen report or paper | A page that scrolls, centred, `--mq-page-width` (1040 px) wide | Flow layout: no absolute positions, no fixed heights. It is not a deck: no slide canvas inside a report |
|
|
244
246
|
| A4 print | 210 by 297 mm (`--mq-a4-width`, `--mq-a4-height`, `css/print.css`) | One `mq-page` per sheet on the canvas colour; on screen the pages sit on the desk |
|
|
245
247
|
|
|
248
|
+
## dark
|
|
249
|
+
|
|
250
|
+
Source: guidelines/colour.md.
|
|
251
|
+
|
|
252
|
+
### Colour: Dark theme
|
|
253
|
+
|
|
254
|
+
MedQuantis has one dark theme (ADR-0007, owner ruling 12). It re-values the semantic roles above under the `.dark` class: a role it does not name keeps its light value, and no component needs a second name. A consumer opts in by loading `themes/dark.css` of the package after `tokens.css` and setting `.dark` on `<html>` or on one slide. The design system never switches on `prefers-color-scheme` by itself.
|
|
255
|
+
|
|
256
|
+
- **Apps and the website:** light and dark; the app decides how the viewer chooses, and may follow the viewer's setting by toggling `.dark`.
|
|
257
|
+
- **Documents** (A4 reports, papers, PDFs): light or dark, chosen by the author per document at build time, never from the reader's screen (owner ruling 15). A dark document stays dark in its PDF; light stays the default for anything likely to be printed on paper.
|
|
258
|
+
- **Slides:** a whole deck, or a single slide carrying `.dark`.
|
|
259
|
+
|
|
260
|
+
Every ratio below is the WCAG 2.x contrast with the dark values, on the dark canvas `#11161f` and surface `#1a2131`; the token test checks every declared pair in both themes.
|
|
261
|
+
|
|
262
|
+
| Token | Dark value | Use | Contrast |
|
|
263
|
+
| :-- | :-- | :-- | :-- |
|
|
264
|
+
| `--mq-canvas` | `#11161f`, a near-black with a navy cast | Background of every dark page and slide | Background |
|
|
265
|
+
| `--mq-surface` | `#1a2131` | Cards, panels, tables, figures, inputs | Background |
|
|
266
|
+
| `--mq-surface-alt` | `#141a26` | Recessed areas: table headers, grouped areas | Background |
|
|
267
|
+
| `--mq-desk` | `#0b0f16` | On screen only, around a dark page preview | Background |
|
|
268
|
+
| `--mq-border` | white at 14 % | Borders, dividers | Decorative |
|
|
269
|
+
| `--mq-border-light` | white at 10 % | Hairlines, card borders | Decorative |
|
|
270
|
+
| `--mq-border-strong` | `#8795b3` | Outline of outlined and dashed state marks | 6.03:1 on canvas, 5.35:1 on surface, non-text |
|
|
271
|
+
| `--mq-ink` | `#f5f4f1`, warm white | Primary text and values | 16.48:1 on canvas, 14.62:1 on surface |
|
|
272
|
+
| `--mq-muted` | `#c3cbdc` | Secondary text, leads, captions | 11.13:1 on canvas, 9.88:1 on surface |
|
|
273
|
+
| `--mq-tertiary` | `#8f98aa` | Tertiary text: notes, footers, axis labels | 6.25:1 on canvas, 5.54:1 on surface |
|
|
274
|
+
| `--mq-decoration` | `#6b7385` | Non-text decoration only, never text | 3.81:1 on canvas, 3.38:1 on surface, non-text |
|
|
275
|
+
| `--mq-accent` | `#6f88c9`, the lifted navy | Links, labels, key figures, active states | 5.22:1 on canvas, 4.63:1 on surface, 5.01:1 on the recessed surface |
|
|
276
|
+
| `--mq-accent-hover` | `#8aa0d6` | Hover and pressed state of a link or an accent control | 6.98:1 on canvas |
|
|
277
|
+
| `--mq-accent-pale` | the lifted navy at 18 % | Icon pills and chips, the highlighted row, the pale state | Fill |
|
|
278
|
+
| `--mq-accent-pale-2` | the lifted navy at 10 % | Progress tracks, the quiet state, callout background | Fill |
|
|
279
|
+
| `--mq-accent-highlight` | `#9fb3e8`, the light navy | Large highlighted title text, and accent text on the pale fills: the pale KPI value, the pale badge and the callout title (owner ruling 18) | 8.71:1 on canvas, 7.73:1 on surface, 5.97:1 on the pale fill, 6.77:1 on the quiet pale fill |
|
|
280
|
+
| `--mq-on-accent` | `#11161f` | Text and icons on an accent fill, never white (white 3.48:1 on the accent) | 5.22:1 on the accent |
|
|
281
|
+
| `--mq-focus-ring-color` | `#9fb3e8`, the light navy | Focus ring on dark backgrounds | 8.71:1 on canvas |
|
|
282
|
+
| `--mq-panel-start` | `#2f4c8f` | Light end of the navy panel gradient | Background, white 8.23:1 on the panel start |
|
|
283
|
+
| `--mq-panel-end` | `#0f2a5e` | Dark end of the navy panel gradient | Background |
|
|
284
|
+
| `--mq-shadow-panel` | a 1 px outline, light navy at 35 %, no glow (owner ruling 13) | Navy panels, the report header and the navy KPI tile on dark | Edge of a panel |
|
|
285
|
+
| `--mq-shadow-edge` | the same 1 px outline, light navy at 35 %; none in light | The monogram (`mq-monogram`), the navy KPI tile and a navy brand or app tile, which draw no shadow in light (owner ruling 14) | Edge of a navy mark |
|
|
286
|
+
| `--mq-shadow-live` | a 3 px ring of the dark success green `#6fbf73` at 17 %; in light the success green at 17 % | Apps only: the halo of a live dot, the row in force on a timeline (app patterns) | Decorative |
|
|
287
|
+
| `--mq-shadow-small` | black at 40 %, 1 px down with a 2 px blur | Cards, figures and tables on dark, where the light 5 % shadow does not show | Elevation |
|
|
288
|
+
| `--mq-shadow-medium` | black at 50 %, 3 px down with a 12 px blur | A slide or page previewed on the dark desk, raised panels and menus | Elevation |
|
|
289
|
+
|
|
290
|
+
Accent text on the pale fills reads `--mq-accent-highlight` in both themes (owner ruling 18): in light it is the accent itself, while on dark the lifted navy would be only 3.57:1 on the pale fill and 4.05:1 on the quiet pale fill. The fills are measured laid over the canvas and over the surface, the worse result counting. The callout tab keeps `--mq-accent` on the quiet pale fill as a non-text mark.
|
|
291
|
+
|
|
292
|
+
The retired `--mq-dim` and `--mq-accent-on-dark` follow the roles they alias on dark too: `#8f98aa` (tertiary) and `#b2c2ed` (the on-navy accent).
|
|
293
|
+
|
|
294
|
+
**The navy panel on dark.** Navy itself fails on a dark canvas (`#0a2463` is 1.25:1 on `#11161f`), so on dark the brand shows as the lifted navy, the light navy and the panel gradient, with no new hue (ADR-0003). Navy panels, the report header and the navy KPI tile keep the 160 degree gradient between `--mq-panel-start` and `--mq-panel-end`, with the dark values above, and draw `--mq-shadow-panel`: a 1 px light-navy outline, never a glow (owner ruling 13). A navy tile on dark takes the panel gradient, never the lifted accent. Contrast on navy is still checked against the panel start, the lighter stop.
|
|
295
|
+
|
|
296
|
+
The on-navy tier on the dark panel (owner ruling 19): two roles take dark values, the others keep their light values and are checked again on the lighter dark panel start.
|
|
297
|
+
|
|
298
|
+
| Token | Dark value | Contrast | Allowed for |
|
|
299
|
+
| :-- | :-- | :-- | :-- |
|
|
300
|
+
| `--mq-on-navy-title` | `#ffffff`, unchanged | 8.23:1 on the panel start | Text |
|
|
301
|
+
| `--mq-on-navy-secondary` | white at 68 %, unchanged | 4.80:1 on the panel start | Text |
|
|
302
|
+
| `--mq-on-navy-second-level` | `#c3cbdc`, unchanged | 5.05:1 on the panel start | Text |
|
|
303
|
+
| `--mq-on-navy-accent` | `#b2c2ed`, a lighter navy tint | 4.64:1 on the panel start | Text, narrow margin |
|
|
304
|
+
| `--mq-on-navy-discreet` | white at 50 % | 3.37:1 on the panel start | Large text or non-text only |
|
|
305
|
+
| `--mq-on-navy-rule`, `--mq-on-navy-rule-strong`, `--mq-on-navy-pill` | white at 16, 18 and 12 %, unchanged | Decorative | Decorative only |
|
|
306
|
+
|
|
307
|
+
Light keeps `#8795b3` (4.61:1) and white at 40 % (3.44:1) for those two roles; on the dark panel start they would fall to 2.74:1 and 2.71:1.
|
|
308
|
+
|
|
309
|
+
**The light navy is a navy tint.** `#9fb3e8` (`--mq-accent-highlight`, `--mq-focus-ring-color`, dark series 1) is not the retired sky blue: its LCH hue 280.4 (chroma 29.2) sits in the navy family with the lifted navy `#6f88c9` (hue 282.8), against navy 293.7 and sky blue 269.9 (chroma 36.1). Sky blue stays retired in both themes (owner ruling 2).
|
|
310
|
+
|
|
311
|
+
Status colours on dark, apps only (ADR-0004, owner ruling 16), each still with an icon or a word; `--mq-warning-fill` keeps its value and stays a fill:
|
|
312
|
+
|
|
313
|
+
- `--mq-success` `#6fbf73`: 8.09:1 on canvas, 7.18:1 on surface.
|
|
314
|
+
- `--mq-warning` `#e0a040`: 8.00:1 on canvas, 7.10:1 on surface.
|
|
315
|
+
- `--mq-danger` `#ff6b6b`: 6.53:1 on canvas, 5.80:1 on surface.
|
|
316
|
+
- `--mq-info` `#64a8f0`: 7.25:1 on canvas, 6.43:1 on surface.
|
|
317
|
+
- `--mq-warning-fill` `#d4850a`, unchanged: a fill, never text.
|
|
318
|
+
- `--mq-warning-tint`, the warning fill at 16 %: ink 11.63:1 on the warning tint.
|
|
319
|
+
- `--mq-on-warning-fill` `#11161f`, text on `--mq-warning-fill`: 6.18:1 on the warning fill, where the warm white ink 2.67:1 on the warning fill would fail.
|
|
320
|
+
|
|
321
|
+
Chart colours on dark (owner ruling 16): the four series run in reverse order, the lightest first, under the same rules as light (charts): series 4 for context bars, the remainder drawn with a series 4 outline. Each dark series meets or beats its light counterpart against its canvas.
|
|
322
|
+
|
|
323
|
+
| Token | Dark value | Contrast |
|
|
324
|
+
| :-- | :-- | :-- |
|
|
325
|
+
| `--mq-chart-series-1` | `#9fb3e8` | 8.71:1 on canvas |
|
|
326
|
+
| `--mq-chart-series-2` | `#6f88c9` | 5.22:1 on canvas |
|
|
327
|
+
| `--mq-chart-series-3` | `#5d6f91` | 3.58:1 on canvas |
|
|
328
|
+
| `--mq-chart-series-4` | `#3a4560` | 1.90:1 on canvas, context bars only |
|
|
329
|
+
| `--mq-chart-rest` | `#232b3d` | 1.28:1 on canvas, with a series 4 outline |
|
|
330
|
+
| `--mq-chart-axis` | `#6b7385` | 3.81:1 on canvas, non-text |
|
|
331
|
+
| `--mq-chart-baseline` | white at 10 % | Decorative |
|
|
332
|
+
|
|
246
333
|
## print
|
|
247
334
|
|
|
248
335
|
Source: guidelines/layout.md.
|
|
@@ -270,6 +357,8 @@ Set it in Geist Mono at the note size, tertiary text colour (`--mq-tertiary`), w
|
|
|
270
357
|
|
|
271
358
|
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.
|
|
272
359
|
|
|
360
|
+
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:`.
|
|
361
|
+
|
|
273
362
|
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:
|
|
274
363
|
|
|
275
364
|
| Medium | French | German | English | Italian |
|
|
@@ -279,7 +368,7 @@ Material left with a reader (a deck after a meeting, a report sent outside) also
|
|
|
279
368
|
|
|
280
369
|
### Brand: Wordmark
|
|
281
370
|
|
|
282
|
-
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
|
|
371
|
+
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).
|
|
283
372
|
|
|
284
373
|
Each background has two files in `brand/`:
|
|
285
374
|
|
|
@@ -291,6 +380,7 @@ Each background has two files in `brand/`:
|
|
|
291
380
|
Rules:
|
|
292
381
|
|
|
293
382
|
- Use the on-navy file on navy and the on-light file on light backgrounds. Never recolour, stretch, outline, shadow or rearrange the wordmark.
|
|
383
|
+
- 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).
|
|
294
384
|
- 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.
|
|
295
385
|
- 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.
|
|
296
386
|
|
|
@@ -305,6 +395,8 @@ Where the wordmark does not fit (favicon, app icon, avatar, app tile), use the m
|
|
|
305
395
|
| `brand/monogram-small.svg` | 16 px and smaller: larger letters, M 800 and Q 600 |
|
|
306
396
|
| `brand/favicon/` | `favicon.svg`, `favicon.ico` (16, 32, 48), `apple-touch-icon.png` (180), `icon-192.png`, `icon-512.png` |
|
|
307
397
|
|
|
398
|
+
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.
|
|
399
|
+
|
|
308
400
|
### Brand: No combined logo yet
|
|
309
401
|
|
|
310
402
|
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.
|
package/dist/kit/print.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis print module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis print module of the homemade-claude-kit design contract 2.1.0. The roles are
|
|
4
4
|
* generated from tokens/kit/ by the design-system build; the class rules after them are copied
|
|
5
5
|
* from css/kit/print.css, written by hand against contract roles. Do not edit this file.
|
|
6
6
|
* kit-manifest.json lists it. For kit renderers only: the unprefixed names collide with app and
|
package/dist/kit/slide-frame.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis slide-frame module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis slide-frame module of the homemade-claude-kit design contract 2.1.0. The roles are
|
|
4
4
|
* generated from tokens/kit/ by the design-system build; the class rules after them are copied
|
|
5
5
|
* from css/kit/slide-frame.css, written by hand against contract roles. Do not edit this file.
|
|
6
6
|
* kit-manifest.json lists it. For kit renderers only: the unprefixed names collide with app and
|
|
@@ -23,8 +23,9 @@
|
|
|
23
23
|
* right (owner ruling 11, guidelines/brand.md).
|
|
24
24
|
*
|
|
25
25
|
* Cascade: the kit inlines its base slide-frame.css before this module, so these rules restyle
|
|
26
|
-
* it; com-slide-deck adds its baseline (controls hint, presentation mode)
|
|
27
|
-
* so the rules for those classes carry one more element in their
|
|
26
|
+
* it; com-slide-deck adds its baseline (controls hint, presentation mode) and the classification
|
|
27
|
+
* cell after the design layer, so the rules for those classes carry one more element in their
|
|
28
|
+
* selector.
|
|
28
29
|
* The footer row and the source line use --tertiary, the tertiary grey of owner ruling 1.
|
|
29
30
|
*/
|
|
30
31
|
|
|
@@ -71,6 +72,18 @@
|
|
|
71
72
|
margin: 0;
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
/* The deck's classification (owner ruling 17): at the right of the footer row, before the number,
|
|
76
|
+
in the legal line's small tertiary mono, the label as written in the deck's language. The kit's
|
|
77
|
+
cell rule (margin-left: auto, capitals) comes after the design layer, so this one carries the
|
|
78
|
+
footer in its selector. */
|
|
79
|
+
.slide-footer .slide-classification {
|
|
80
|
+
margin-left: auto;
|
|
81
|
+
color: var(--tertiary);
|
|
82
|
+
font-family: var(--font-mono);
|
|
83
|
+
font-size: var(--font-size-sm);
|
|
84
|
+
text-transform: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
74
87
|
/* mq-slide-number: the eyebrow size, tabular figures. */
|
|
75
88
|
.slide-number {
|
|
76
89
|
font-size: var(--font-size-xs);
|
package/dist/kit/space-shape.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis values for the space-shape module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis values for the space-shape module of the homemade-claude-kit design contract 2.1.0,
|
|
4
4
|
* generated from tokens/kit/ by the design-system build. Do not edit. kit-manifest.json lists it.
|
|
5
5
|
* For kit renderers only: the unprefixed names collide with app and Tailwind variables.
|
|
6
6
|
*/
|
package/dist/kit/type.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*! @medquantis/design-system | © 2026 MedQuantis SA | MIT License, see LICENSE */
|
|
2
2
|
/*
|
|
3
|
-
* MedQuantis values for the type module of the homemade-claude-kit design contract 2.
|
|
3
|
+
* MedQuantis values for the type module of the homemade-claude-kit design contract 2.1.0,
|
|
4
4
|
* generated from tokens/kit/ by the design-system build. Do not edit. kit-manifest.json lists it.
|
|
5
5
|
* For kit renderers only: the unprefixed names collide with app and Tailwind variables.
|
|
6
6
|
*/
|