@lets-ship/brand-dna 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/catalog/fonts/bricolage-grotesque-latin-700-normal.woff2 +0 -0
  2. package/catalog/fonts/figtree-latin-400-normal.woff2 +0 -0
  3. package/catalog/fonts/figtree-latin-600-normal.woff2 +0 -0
  4. package/catalog/fonts/gabarito-latin-700-normal.woff2 +0 -0
  5. package/catalog/fonts/gloock-latin-400-normal.woff2 +0 -0
  6. package/catalog/fonts/hanken-grotesk-latin-400-normal.woff2 +0 -0
  7. package/catalog/fonts/hanken-grotesk-latin-600-normal.woff2 +0 -0
  8. package/catalog/fonts/mulish-latin-400-normal.woff2 +0 -0
  9. package/catalog/fonts/mulish-latin-600-normal.woff2 +0 -0
  10. package/catalog/fonts/schibsted-grotesk-latin-400-normal.woff2 +0 -0
  11. package/catalog/fonts/schibsted-grotesk-latin-600-normal.woff2 +0 -0
  12. package/catalog/fonts/schibsted-grotesk-latin-700-normal.woff2 +0 -0
  13. package/catalog/fonts/source-sans-3-latin-400-normal.woff2 +0 -0
  14. package/catalog/fonts/source-sans-3-latin-600-normal.woff2 +0 -0
  15. package/catalog/fonts/young-serif-latin-400-normal.woff2 +0 -0
  16. package/catalog/fonts.lock.json +165 -0
  17. package/dist/core/color/pairs.d.ts.map +1 -1
  18. package/dist/core/color/pairs.js +5 -0
  19. package/dist/core/color/pairs.js.map +1 -1
  20. package/dist/core/compile/design-language.d.ts +10 -0
  21. package/dist/core/compile/design-language.d.ts.map +1 -0
  22. package/dist/core/compile/design-language.js +74 -0
  23. package/dist/core/compile/design-language.js.map +1 -0
  24. package/dist/core/compile/design-md.d.ts.map +1 -1
  25. package/dist/core/compile/design-md.js +8 -2
  26. package/dist/core/compile/design-md.js.map +1 -1
  27. package/dist/core/compile/patterns.d.ts +8 -0
  28. package/dist/core/compile/patterns.d.ts.map +1 -1
  29. package/dist/core/compile/patterns.js +14 -3
  30. package/dist/core/compile/patterns.js.map +1 -1
  31. package/dist/core/compile/site-design.d.ts +32 -0
  32. package/dist/core/compile/site-design.d.ts.map +1 -0
  33. package/dist/core/compile/site-design.js +243 -0
  34. package/dist/core/compile/site-design.js.map +1 -0
  35. package/dist/core/compile/site-emphasis.d.ts +46 -0
  36. package/dist/core/compile/site-emphasis.d.ts.map +1 -0
  37. package/dist/core/compile/site-emphasis.js +64 -0
  38. package/dist/core/compile/site-emphasis.js.map +1 -0
  39. package/dist/core/compile/site-theme-rules.d.ts +9 -2
  40. package/dist/core/compile/site-theme-rules.d.ts.map +1 -1
  41. package/dist/core/compile/site-theme-rules.js +83 -2
  42. package/dist/core/compile/site-theme-rules.js.map +1 -1
  43. package/dist/core/compile/site-theme-values.d.ts +11 -1
  44. package/dist/core/compile/site-theme-values.d.ts.map +1 -1
  45. package/dist/core/compile/site-theme-values.js +39 -5
  46. package/dist/core/compile/site-theme-values.js.map +1 -1
  47. package/dist/core/compile/site-theme.d.ts.map +1 -1
  48. package/dist/core/compile/site-theme.js +16 -4
  49. package/dist/core/compile/site-theme.js.map +1 -1
  50. package/dist/core/compile/skill.d.ts.map +1 -1
  51. package/dist/core/compile/skill.js +8 -0
  52. package/dist/core/compile/skill.js.map +1 -1
  53. package/dist/core/lint/catalog.d.ts +1 -1
  54. package/dist/core/lint/catalog.d.ts.map +1 -1
  55. package/dist/core/lint/catalog.js +13 -1
  56. package/dist/core/lint/catalog.js.map +1 -1
  57. package/dist/core/lint/rules/design.d.ts +27 -0
  58. package/dist/core/lint/rules/design.d.ts.map +1 -0
  59. package/dist/core/lint/rules/design.js +234 -0
  60. package/dist/core/lint/rules/design.js.map +1 -0
  61. package/dist/core/lint/rules/refs.d.ts.map +1 -1
  62. package/dist/core/lint/rules/refs.js +3 -0
  63. package/dist/core/lint/rules/refs.js.map +1 -1
  64. package/dist/core/lint/rules/type.js +1 -1
  65. package/dist/core/lint/rules/type.js.map +1 -1
  66. package/dist/core/presets/base.dna.json +307 -21
  67. package/dist/core/presets/design.d.ts +16 -0
  68. package/dist/core/presets/design.d.ts.map +1 -0
  69. package/dist/core/presets/design.js +86 -0
  70. package/dist/core/presets/design.js.map +1 -0
  71. package/dist/core/presets/presets.d.ts +1 -1
  72. package/dist/core/presets/presets.d.ts.map +1 -1
  73. package/dist/core/presets/presets.js +18 -11
  74. package/dist/core/presets/presets.js.map +1 -1
  75. package/dist/core/presets/specs.d.ts +330 -16
  76. package/dist/core/presets/specs.d.ts.map +1 -1
  77. package/dist/core/presets/specs.js +162 -12
  78. package/dist/core/presets/specs.js.map +1 -1
  79. package/dist/core/site/colours.d.ts +3 -3
  80. package/dist/core/site/colours.d.ts.map +1 -1
  81. package/dist/core/site/colours.js +13 -5
  82. package/dist/core/site/colours.js.map +1 -1
  83. package/dist/schema/channel-spec.d.ts +5 -5
  84. package/dist/schema/design.d.ts +258 -0
  85. package/dist/schema/design.d.ts.map +1 -0
  86. package/dist/schema/design.js +132 -0
  87. package/dist/schema/design.js.map +1 -0
  88. package/dist/schema/dna.d.ts +324 -4
  89. package/dist/schema/dna.d.ts.map +1 -1
  90. package/dist/schema/dna.js +16 -0
  91. package/dist/schema/dna.js.map +1 -1
  92. package/dist/schema/gen.d.ts +6 -1
  93. package/dist/schema/gen.d.ts.map +1 -1
  94. package/dist/schema/pattern.d.ts +80 -0
  95. package/dist/schema/pattern.d.ts.map +1 -1
  96. package/dist/schema/skeleton.d.ts +81 -8
  97. package/dist/schema/skeleton.d.ts.map +1 -1
  98. package/dist/schema/tokens.d.ts +45 -2
  99. package/dist/schema/tokens.d.ts.map +1 -1
  100. package/dist/schema/tokens.js +16 -0
  101. package/dist/schema/tokens.js.map +1 -1
  102. package/package.json +1 -1
@@ -263,6 +263,171 @@
263
263
  "style": "normal",
264
264
  "subset": "latin-ext",
265
265
  "weight": 700
266
+ },
267
+ {
268
+ "family": "Bricolage Grotesque",
269
+ "file": "bricolage-grotesque-latin-700-normal.woff2",
270
+ "format": "woff2",
271
+ "license": "OFL-1.1",
272
+ "sha256": "sha256:4c373ce3c1cca41c864eb3e27c059a59fc6310547ab9c9b6cd780d387ba24206",
273
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/bricolage-grotesque@5.3.0/files/bricolage-grotesque-latin-700-normal.woff2",
274
+ "style": "normal",
275
+ "subset": "latin",
276
+ "weight": 700
277
+ },
278
+ {
279
+ "family": "Hanken Grotesk",
280
+ "file": "hanken-grotesk-latin-400-normal.woff2",
281
+ "format": "woff2",
282
+ "license": "OFL-1.1",
283
+ "sha256": "sha256:787b3fdd0b7e6d59ae7ce14ce7a41d1a44616584b4c919b527da951972d5d87d",
284
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/hanken-grotesk@5.3.0/files/hanken-grotesk-latin-400-normal.woff2",
285
+ "style": "normal",
286
+ "subset": "latin",
287
+ "weight": 400
288
+ },
289
+ {
290
+ "family": "Hanken Grotesk",
291
+ "file": "hanken-grotesk-latin-600-normal.woff2",
292
+ "format": "woff2",
293
+ "license": "OFL-1.1",
294
+ "sha256": "sha256:58f23b7ae3e13b21a4dca4c05360be87b3531d60fc1cbff89732cac8fb3019ae",
295
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/hanken-grotesk@5.3.0/files/hanken-grotesk-latin-600-normal.woff2",
296
+ "style": "normal",
297
+ "subset": "latin",
298
+ "weight": 600
299
+ },
300
+ {
301
+ "family": "Young Serif",
302
+ "file": "young-serif-latin-400-normal.woff2",
303
+ "format": "woff2",
304
+ "license": "OFL-1.1",
305
+ "sha256": "sha256:6ba68b9927ad2a640d32cbea050ffc2b5d0ae6cbaa785afe470da9d6bf0ef39f",
306
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/young-serif@5.3.0/files/young-serif-latin-400-normal.woff2",
307
+ "style": "normal",
308
+ "subset": "latin",
309
+ "weight": 400
310
+ },
311
+ {
312
+ "family": "Source Sans 3",
313
+ "file": "source-sans-3-latin-400-normal.woff2",
314
+ "format": "woff2",
315
+ "license": "OFL-1.1",
316
+ "sha256": "sha256:0f73f35e08cde0a2f10c109c6e01d71459d97e4099ecd9a50f1b6c0209e4de2b",
317
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.3.0/files/source-sans-3-latin-400-normal.woff2",
318
+ "style": "normal",
319
+ "subset": "latin",
320
+ "weight": 400
321
+ },
322
+ {
323
+ "family": "Source Sans 3",
324
+ "file": "source-sans-3-latin-600-normal.woff2",
325
+ "format": "woff2",
326
+ "license": "OFL-1.1",
327
+ "sha256": "sha256:14527d193b0e30bc32ef931549a246cdfd286573bb12869b7e052b8101a39d38",
328
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/source-sans-3@5.3.0/files/source-sans-3-latin-600-normal.woff2",
329
+ "style": "normal",
330
+ "subset": "latin",
331
+ "weight": 600
332
+ },
333
+ {
334
+ "family": "Schibsted Grotesk",
335
+ "file": "schibsted-grotesk-latin-400-normal.woff2",
336
+ "format": "woff2",
337
+ "license": "OFL-1.1",
338
+ "sha256": "sha256:437cd97c802be9f10f60b4db8a723261e5c35dfe1529de0562981871028bd670",
339
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/schibsted-grotesk@5.3.0/files/schibsted-grotesk-latin-400-normal.woff2",
340
+ "style": "normal",
341
+ "subset": "latin",
342
+ "weight": 400
343
+ },
344
+ {
345
+ "family": "Schibsted Grotesk",
346
+ "file": "schibsted-grotesk-latin-600-normal.woff2",
347
+ "format": "woff2",
348
+ "license": "OFL-1.1",
349
+ "sha256": "sha256:d00ac8735bf6b96cc4cfbfb22576c4168645547a264bd22d127c46519cab3250",
350
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/schibsted-grotesk@5.3.0/files/schibsted-grotesk-latin-600-normal.woff2",
351
+ "style": "normal",
352
+ "subset": "latin",
353
+ "weight": 600
354
+ },
355
+ {
356
+ "family": "Schibsted Grotesk",
357
+ "file": "schibsted-grotesk-latin-700-normal.woff2",
358
+ "format": "woff2",
359
+ "license": "OFL-1.1",
360
+ "sha256": "sha256:d656a2dcc2bf850a9af5156f2de42f6051facfbaa8d5790cf31159de39bc2568",
361
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/schibsted-grotesk@5.3.0/files/schibsted-grotesk-latin-700-normal.woff2",
362
+ "style": "normal",
363
+ "subset": "latin",
364
+ "weight": 700
365
+ },
366
+ {
367
+ "family": "Gabarito",
368
+ "file": "gabarito-latin-700-normal.woff2",
369
+ "format": "woff2",
370
+ "license": "OFL-1.1",
371
+ "sha256": "sha256:1efc5d2cf09e94c43d9597559d1c6b9eb0def0ab31732c1e0eec83dfaa648978",
372
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/gabarito@5.3.0/files/gabarito-latin-700-normal.woff2",
373
+ "style": "normal",
374
+ "subset": "latin",
375
+ "weight": 700
376
+ },
377
+ {
378
+ "family": "Figtree",
379
+ "file": "figtree-latin-400-normal.woff2",
380
+ "format": "woff2",
381
+ "license": "OFL-1.1",
382
+ "sha256": "sha256:8f98dd642986f1fa39c45b89665a57372897c235b36028e0e4a136e43dc5f8ab",
383
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/figtree@5.3.0/files/figtree-latin-400-normal.woff2",
384
+ "style": "normal",
385
+ "subset": "latin",
386
+ "weight": 400
387
+ },
388
+ {
389
+ "family": "Figtree",
390
+ "file": "figtree-latin-600-normal.woff2",
391
+ "format": "woff2",
392
+ "license": "OFL-1.1",
393
+ "sha256": "sha256:367d713287918784702563518f59239989da815c80d3c7337686b9816635a08b",
394
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/figtree@5.3.0/files/figtree-latin-600-normal.woff2",
395
+ "style": "normal",
396
+ "subset": "latin",
397
+ "weight": 600
398
+ },
399
+ {
400
+ "family": "Gloock",
401
+ "file": "gloock-latin-400-normal.woff2",
402
+ "format": "woff2",
403
+ "license": "OFL-1.1",
404
+ "sha256": "sha256:9389ada8d35754635432c5565f03e8e3ce0f37f529207356426d1d9983b1bc29",
405
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/gloock@5.3.0/files/gloock-latin-400-normal.woff2",
406
+ "style": "normal",
407
+ "subset": "latin",
408
+ "weight": 400
409
+ },
410
+ {
411
+ "family": "Mulish",
412
+ "file": "mulish-latin-400-normal.woff2",
413
+ "format": "woff2",
414
+ "license": "OFL-1.1",
415
+ "sha256": "sha256:95efc771d19900052b360dce91f4043b488b0df7335f7cabf0e03cb69b690027",
416
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/mulish@5.3.0/files/mulish-latin-400-normal.woff2",
417
+ "style": "normal",
418
+ "subset": "latin",
419
+ "weight": 400
420
+ },
421
+ {
422
+ "family": "Mulish",
423
+ "file": "mulish-latin-600-normal.woff2",
424
+ "format": "woff2",
425
+ "license": "OFL-1.1",
426
+ "sha256": "sha256:af6728e0670b9d04ab39ed6ac03870da8992e8fa871525f65f8053741e4748e1",
427
+ "source": "https://cdn.jsdelivr.net/npm/@fontsource/mulish@5.3.0/files/mulish-latin-600-normal.woff2",
428
+ "style": "normal",
429
+ "subset": "latin",
430
+ "weight": 600
266
431
  }
267
432
  ],
268
433
  "version": 1
@@ -1 +1 @@
1
- {"version":3,"file":"pairs.d.ts","sourceRoot":"","sources":["../../../src/core/color/pairs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,CAS9F,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAK9D,CAAC"}
1
+ {"version":3,"file":"pairs.d.ts","sourceRoot":"","sources":["../../../src/core/color/pairs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,mFAAmF;AACnF,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,aAAa,CAAA;CAAE,CAY9F,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAO9D,CAAC"}
@@ -5,6 +5,9 @@ export const REQUIRED_PAIRS = [
5
5
  { fg: "on-accent", bg: "accent", min: "AA" },
6
6
  { fg: "on-surface", bg: "surface", min: "AA" },
7
7
  { fg: "on-surface", bg: "surface-alt", min: "AA" },
8
+ { fg: "on-surface", bg: "surface-tint", min: "AA" },
9
+ { fg: "on-surface-inverse", bg: "surface-inverse", min: "AA" },
10
+ { fg: "on-surface-brand", bg: "surface-brand", min: "AA" },
8
11
  { fg: "muted", bg: "surface", min: "AA" },
9
12
  { fg: "primary", bg: "surface", min: "AA-large" },
10
13
  { fg: "danger", bg: "surface", min: "AA-large" },
@@ -15,5 +18,7 @@ export const ON_ROLE_BASE = {
15
18
  "on-secondary": "secondary",
16
19
  "on-accent": "accent",
17
20
  "on-surface": "surface",
21
+ "on-surface-inverse": "surface-inverse",
22
+ "on-surface-brand": "surface-brand",
18
23
  };
19
24
  //# sourceMappingURL=pairs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pairs.js","sourceRoot":"","sources":["../../../src/core/color/pairs.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAwE;IAClG,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;IAC9C,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE;IAClD,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;IAC5C,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;IAC9C,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;IAClD,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;IACzC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE;IACjD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE;CAChD,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAA0C;IAClE,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,WAAW;IAC3B,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;CACvB,CAAC"}
1
+ {"version":3,"file":"pairs.js","sourceRoot":"","sources":["../../../src/core/color/pairs.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,MAAM,CAAC,MAAM,cAAc,GAAwE;IAClG,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;IAC9C,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE;IAClD,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE;IAC5C,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;IAC9C,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,IAAI,EAAE;IAClD,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,EAAE;IACnD,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,iBAAiB,EAAE,GAAG,EAAE,IAAI,EAAE;IAC9D,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE;IACzC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE;IACjD,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE;CAChD,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,YAAY,GAA0C;IAClE,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,WAAW;IAC3B,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;IACvB,oBAAoB,EAAE,iBAAiB;IACvC,kBAAkB,EAAE,eAAe;CACnC,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The design language of a DNA as plain sentences, for the documents agents read: DESIGN.md and
3
+ * the brand skill. One writer, so the two documents never describe the look differently.
4
+ */
5
+ import type { Dna } from "../../schema/dna.js";
6
+ /** The point of view and the dials, or nothing when the DNA has no `visual`. */
7
+ export declare function visualLines(dna: Dna): string[];
8
+ /** How pages are composed, separated and emphasised, from the primitives the DNA sets. */
9
+ export declare function compositionLines(dna: Dna): string[];
10
+ //# sourceMappingURL=design-language.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-language.d.ts","sourceRoot":"","sources":["../../../src/core/compile/design-language.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AA8B/C,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAS9C;AAED,0FAA0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAwCnD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The design language of a DNA as plain sentences, for the documents agents read: DESIGN.md and
3
+ * the brand skill. One writer, so the two documents never describe the look differently.
4
+ */
5
+ import { STRATEGY_MAX_PERCENT } from "../../schema/design.js";
6
+ import { brandShare } from "../lint/rules/design.js";
7
+ import { SECTION_SPACE_PX } from "./site-design.js";
8
+ const LIST_WORDS = {
9
+ card: "items sit in cards with a fill, a border and a radius",
10
+ rule: "items are set apart by a thin rule, with no box",
11
+ plain: "items are set apart by space alone",
12
+ };
13
+ const MEDIA_WORDS = {
14
+ frame: "pictures sit in a frame",
15
+ plain: "pictures stand on their own with the media radius",
16
+ bleed: "pictures stand on their own and may run to the page edge",
17
+ };
18
+ const QUOTE_WORDS = {
19
+ card: "quotes sit in a card",
20
+ rule: "quotes hang from a vertical rule",
21
+ plain: "quotes stand on their own in the display face",
22
+ };
23
+ const EMPHASIS_WORDS = {
24
+ colour: "key words of a headline take the colour",
25
+ marker: "key words of a headline sit on a marker stroke of",
26
+ underline: "key words of a headline are underlined in",
27
+ italic: "key words of a headline are set in italic, never in",
28
+ none: "headlines carry no emphasis; never colour words in",
29
+ };
30
+ /** The point of view and the dials, or nothing when the DNA has no `visual`. */
31
+ export function visualLines(dna) {
32
+ const v = dna.visual;
33
+ if (!v)
34
+ return [];
35
+ const t = v.tone;
36
+ return [
37
+ v.direction,
38
+ `Visual tone (1 to 5): contrast ${t.contrast}, density ${t.density}, ornament ${t.ornament}, motion ${t.motion}.`,
39
+ ...v.avoid.map((a) => `Never: ${a}.`),
40
+ ];
41
+ }
42
+ /** How pages are composed, separated and emphasised, from the primitives the DNA sets. */
43
+ export function compositionLines(dna) {
44
+ const c = dna.composition;
45
+ const lines = [];
46
+ if (c) {
47
+ const space = SECTION_SPACE_PX[c.density];
48
+ lines.push(`Density ${c.density}: ${space.md}px between sections, ${space.lg}px around the opening section.`, `Headings align to the ${c.align === "center" ? "centre" : "start edge"}. Two-column sections split ${c.split[0]}:${c.split[1]}.`, `Lines of running text stay under ${c.measure.body} characters, a lead under ${c.measure.lead}.`, `Section tones: ${c.tones.allowed.join(", ")}; at most ${c.tones.maxInverse} inverse band${c.tones.maxInverse === 1 ? "" : "s"} per page.`);
49
+ if (c.texture)
50
+ lines.push(`Texture: the ${c.texture.pattern} pattern on ${c.texture.tones.join(" and ")} bands, faint, in the band's text colour. The page itself stays plain.`);
51
+ }
52
+ const p = dna.colorPolicy;
53
+ if (p?.strategy)
54
+ lines.push(`Colour strategy ${p.strategy}: the brand colours cover ${brandShare(p.usage)}% of a page, at most ${STRATEGY_MAX_PERCENT[p.strategy]}%.`);
55
+ const k = dna.containers;
56
+ if (k)
57
+ lines.push(`Lists: ${LIST_WORDS[k.list]}. Media: ${MEDIA_WORDS[k.media]}. Quotes: ${QUOTE_WORDS[k.quote]}.`);
58
+ const e = dna.emphasis;
59
+ if (e)
60
+ lines.push(`Emphasis: ${EMPHASIS_WORDS[e.style]} ${e.role}.`);
61
+ const a = dna.colorPolicy?.accent;
62
+ if (a)
63
+ lines.push(a.uses.length === 0
64
+ ? "The accent never appears on a page."
65
+ : `The accent appears only as ${a.uses.join(", ")}, at most ${a.maxPerScreen} per screen.`);
66
+ const m = dna.imagery.media;
67
+ if (m)
68
+ lines.push(`Media aspect ratios: ${m.aspects.join(", ")}${m.duotone ? ", in a two-colour treatment of the brand" : ""}.`);
69
+ const d = dna.details;
70
+ if (d)
71
+ lines.push(`Figures are ${d.numerals}${d.hangingPunctuation ? "; opening quote marks hang" : ""}.`);
72
+ return lines;
73
+ }
74
+ //# sourceMappingURL=design-language.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design-language.js","sourceRoot":"","sources":["../../../src/core/compile/design-language.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"design-md.d.ts","sourceRoot":"","sources":["../../../src/core/compile/design-md.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI/C,OAAO,EAA6B,KAAK,UAAU,EAA4C,MAAM,aAAa,CAAC;AA8GnH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAIpD"}
1
+ {"version":3,"file":"design-md.d.ts","sourceRoot":"","sources":["../../../src/core/compile/design-md.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAK/C,OAAO,EAA6B,KAAK,UAAU,EAA4C,MAAM,aAAa,CAAC;AAqHnH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAIpD"}
@@ -1,6 +1,7 @@
1
1
  import { COLOR_ROLES, TYPE_ROLES } from "../../schema/tokens.js";
2
2
  import { oklchToHex } from "../color/color.js";
3
3
  import { indexTokens } from "../tokens/resolve.js";
4
+ import { compositionLines, visualLines } from "./design-language.js";
4
5
  import { aliasTarget, dimensionCss, resolvedColor, resolvedFamilies, roleHex } from "./shared.js";
5
6
  import { toYaml } from "./yaml.js";
6
7
  const ROLE_USAGE = {
@@ -13,6 +14,11 @@ const ROLE_USAGE = {
13
14
  surface: "Default page and card background.",
14
15
  "surface-alt": "Alternate background for bands, cards and code.",
15
16
  "on-surface": "Body text and headings on surfaces.",
17
+ "surface-tint": "A quiet section band, a light wash of the brand.",
18
+ "surface-inverse": "A dark section band on a light page: the strongest break, used rarely.",
19
+ "on-surface-inverse": "Text and icons on the inverse band.",
20
+ "surface-brand": "A section band in the brand colour.",
21
+ "on-surface-brand": "Text and icons on the brand band.",
16
22
  muted: "Secondary text: captions, metadata, placeholders.",
17
23
  border: "Dividers and input borders.",
18
24
  success: "Positive status.",
@@ -101,10 +107,10 @@ function sections(dna, index) {
101
107
  const componentLines = Object.keys(dna.components).map((name) => `- \`${name}\``);
102
108
  const rules = dna.rules.map((r) => `- ${r.kind === "do" ? "Do" : "Don't"}: ${r.text}`);
103
109
  return [
104
- `## Overview\n\n${brand.name}${brand.tagline ? `: ${brand.tagline}` : ""}. ${messaging.positioning}\n\nVoice: ${traits}.`,
110
+ `## Overview\n\n${brand.name}${brand.tagline ? `: ${brand.tagline}` : ""}. ${messaging.positioning}\n\nVoice: ${traits}.${visualLines(dna).length ? `\n\n${visualLines(dna).join(" ")}` : ""}`,
105
111
  `## Colors\n\n${colorLines.join("\n")}`,
106
112
  `## Typography\n\n${typeLines.join("\n")}`,
107
- `## Layout\n\nSpacing: ${space.join(", ")}. ${grid}`.trim(),
113
+ [`## Layout\n\nSpacing: ${space.join(", ")}. ${grid}`.trim(), ...compositionLines(dna).map((l) => `- ${l}`)].join("\n\n"),
108
114
  `## Elevation & Depth\n\n${shadows.length ? `Shadows: ${shadows.join(", ")}.` : "Flat. No shadows."}`,
109
115
  `## Shapes\n\nCorner radii: ${radii.join(", ")}.`,
110
116
  `## Components\n\n${componentLines.join("\n") || "None defined."}`,
@@ -1 +1 @@
1
- {"version":3,"file":"design-md.js","sourceRoot":"","sources":["../../../src/core/compile/design-md.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design-md.js","sourceRoot":"","sources":["../../../src/core/compile/design-md.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,15 @@
5
5
  * no CSS gradient form) and are listed in a comment instead of being approximated.
6
6
  */
7
7
  import type { Dna } from "../../schema/dna.js";
8
+ import type { PatternLayer } from "../../schema/pattern.js";
8
9
  import { type OutputFile } from "./shared.js";
9
10
  /** Undefined when the DNA has no patterns, so brands without them get no extra file. */
10
11
  export declare function compilePatterns(dna: Dna): OutputFile | undefined;
12
+ /** The most a texture's shapes cover a band, so text on the band keeps its contrast. */
13
+ export declare const TEXTURE_MAX_OPACITY = 0.1;
14
+ /**
15
+ * A pattern as `background` layers drawn in one colour, top layer first, or `none` when no layer
16
+ * has a CSS form. A band's texture uses the band's text colour, so it suits the band in either mode.
17
+ */
18
+ export declare function textureLayers(layers: readonly PatternLayer[], colour: string): string;
11
19
  //# sourceMappingURL=patterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/core/compile/patterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAA6B,KAAK,UAAU,EAAa,MAAM,aAAa,CAAC;AAmFpF,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS,CAKhE"}
1
+ {"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/core/compile/patterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAA6B,KAAK,UAAU,EAAa,MAAM,aAAa,CAAC;AAqFpF,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,SAAS,CAKhE;AAED,wFAAwF;AACxF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrF"}
@@ -1,7 +1,7 @@
1
1
  import { aliasTarget } from "../tokens/resolve.js";
2
2
  import { block, cssComment, header, tokenSlug } from "./shared.js";
3
3
  const n = (x) => String(Math.round(x * 100) / 100);
4
- function paint(color, opacity) {
4
+ function dnaPaint(color, opacity) {
5
5
  const target = aliasTarget(color);
6
6
  const ref = `var(--dna-${target ? tokenSlug(target) : `color-${color}`})`;
7
7
  return `color-mix(in oklab, ${ref} ${n(opacity * 100)}%, transparent)`;
@@ -18,7 +18,7 @@ const tile = (image, cell) => ({
18
18
  position: "0 0",
19
19
  repeat: "repeat",
20
20
  });
21
- function layerCss(l) {
21
+ function layerCss(l, paint = dnaPaint) {
22
22
  switch (l.kind) {
23
23
  case "grid": {
24
24
  const c = paint(l.color, l.opacity);
@@ -52,7 +52,7 @@ function layerCss(l) {
52
52
  }
53
53
  function patternBlock(id, layers) {
54
54
  // CSS paints the first background layer on top; DNA layers are listed bottom to top.
55
- const css = layers.flatMap(layerCss).reverse();
55
+ const css = layers.flatMap((l) => layerCss(l)).reverse();
56
56
  const renderOnly = layers.filter((l) => l.kind === "mark" || (l.kind === "lines" && l.dash));
57
57
  const note = renderOnly.length
58
58
  ? `${cssComment(`${id}: ${renderOnly.map((l) => (l.kind === "mark" ? `mark ${l.variant}` : "dashed lines")).join(", ")} drawn by renders only`)}\n`
@@ -71,4 +71,15 @@ export function compilePatterns(dna) {
71
71
  const content = [header(dna, cssComment), ...ids.map((id) => patternBlock(id, dna.patterns[id].layers))].join("\n");
72
72
  return { path: "patterns.css", content };
73
73
  }
74
+ /** The most a texture's shapes cover a band, so text on the band keeps its contrast. */
75
+ export const TEXTURE_MAX_OPACITY = 0.1;
76
+ /**
77
+ * A pattern as `background` layers drawn in one colour, top layer first, or `none` when no layer
78
+ * has a CSS form. A band's texture uses the band's text colour, so it suits the band in either mode.
79
+ */
80
+ export function textureLayers(layers, colour) {
81
+ const tinted = (_color, opacity) => `color-mix(in oklab, ${colour} ${n(Math.min(opacity, TEXTURE_MAX_OPACITY) * 100)}%, transparent)`;
82
+ const css = layers.flatMap((l) => layerCss(l, tinted)).reverse();
83
+ return css.length ? css.map((c) => `${c.image} ${c.position} / ${c.size} ${c.repeat}`).join(", ") : "none";
84
+ }
74
85
  //# sourceMappingURL=patterns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/core/compile/patterns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/core/compile/patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * The design-language half of the theme contract (SHIP Sites D27, minor 1): the variables that
3
+ * carry density, composition, containers, emphasis, the accent policy, media, controls, details
4
+ * and the page reveal. A DNA without a design primitive gets the value its rule below names, the
5
+ * same look the engine had before the primitive existed, so the exporter never guesses.
6
+ *
7
+ * The rules below write a value as `var(--dna-…)` where it follows another contract variable;
8
+ * `concreteDesignDecls` then resolves every such link against the theme's own declarations of
9
+ * one mode, so `site-theme.css` holds concrete values and stands alone.
10
+ */
11
+ import { type DENSITIES } from "../../schema/design.js";
12
+ import type { Dna } from "../../schema/dna.js";
13
+ import { type TokenIndex } from "../tokens/resolve.js";
14
+ type Decl = [string, string];
15
+ type Density = (typeof DENSITIES)[number];
16
+ /** Section padding by density, in px: small, medium and large steps. */
17
+ export declare const SECTION_SPACE_PX: Readonly<Record<Density, {
18
+ sm: number;
19
+ md: number;
20
+ lg: number;
21
+ }>>;
22
+ /** The space steps a site reads, each with the value a DNA without the step gets. */
23
+ export declare const SPACE_STEPS: Readonly<Record<string, string>>;
24
+ /** Every design variable of one DNA, in the order of DESIGN_VARIABLES. */
25
+ export declare function designDecls(dna: Dna, index?: TokenIndex): Decl[];
26
+ /**
27
+ * The design variables of one mode with concrete values. `base` holds the theme's other
28
+ * declarations of that mode (roles, shapes, components), which the design values link to.
29
+ */
30
+ export declare function concreteDesignDecls(dna: Dna, index: TokenIndex, base: readonly Decl[]): Decl[];
31
+ export {};
32
+ //# sourceMappingURL=site-design.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"site-design.d.ts","sourceRoot":"","sources":["../../../src/core/compile/site-design.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,wBAAwB,CAAC;AACvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMpE,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7B,KAAK,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAI9F,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAOxD,CAAC;AAuLF,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,UAAoC,GAAG,IAAI,EAAE,CAiBzF;AAgBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE,GAAG,IAAI,EAAE,CAK9F"}