@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.
- package/catalog/fonts/bricolage-grotesque-latin-700-normal.woff2 +0 -0
- package/catalog/fonts/figtree-latin-400-normal.woff2 +0 -0
- package/catalog/fonts/figtree-latin-600-normal.woff2 +0 -0
- package/catalog/fonts/gabarito-latin-700-normal.woff2 +0 -0
- package/catalog/fonts/gloock-latin-400-normal.woff2 +0 -0
- package/catalog/fonts/hanken-grotesk-latin-400-normal.woff2 +0 -0
- package/catalog/fonts/hanken-grotesk-latin-600-normal.woff2 +0 -0
- package/catalog/fonts/mulish-latin-400-normal.woff2 +0 -0
- package/catalog/fonts/mulish-latin-600-normal.woff2 +0 -0
- package/catalog/fonts/schibsted-grotesk-latin-400-normal.woff2 +0 -0
- package/catalog/fonts/schibsted-grotesk-latin-600-normal.woff2 +0 -0
- package/catalog/fonts/schibsted-grotesk-latin-700-normal.woff2 +0 -0
- package/catalog/fonts/source-sans-3-latin-400-normal.woff2 +0 -0
- package/catalog/fonts/source-sans-3-latin-600-normal.woff2 +0 -0
- package/catalog/fonts/young-serif-latin-400-normal.woff2 +0 -0
- package/catalog/fonts.lock.json +165 -0
- package/dist/core/color/pairs.d.ts.map +1 -1
- package/dist/core/color/pairs.js +5 -0
- package/dist/core/color/pairs.js.map +1 -1
- package/dist/core/compile/design-language.d.ts +10 -0
- package/dist/core/compile/design-language.d.ts.map +1 -0
- package/dist/core/compile/design-language.js +74 -0
- package/dist/core/compile/design-language.js.map +1 -0
- package/dist/core/compile/design-md.d.ts.map +1 -1
- package/dist/core/compile/design-md.js +8 -2
- package/dist/core/compile/design-md.js.map +1 -1
- package/dist/core/compile/patterns.d.ts +8 -0
- package/dist/core/compile/patterns.d.ts.map +1 -1
- package/dist/core/compile/patterns.js +14 -3
- package/dist/core/compile/patterns.js.map +1 -1
- package/dist/core/compile/site-design.d.ts +32 -0
- package/dist/core/compile/site-design.d.ts.map +1 -0
- package/dist/core/compile/site-design.js +243 -0
- package/dist/core/compile/site-design.js.map +1 -0
- package/dist/core/compile/site-emphasis.d.ts +46 -0
- package/dist/core/compile/site-emphasis.d.ts.map +1 -0
- package/dist/core/compile/site-emphasis.js +64 -0
- package/dist/core/compile/site-emphasis.js.map +1 -0
- package/dist/core/compile/site-theme-rules.d.ts +9 -2
- package/dist/core/compile/site-theme-rules.d.ts.map +1 -1
- package/dist/core/compile/site-theme-rules.js +83 -2
- package/dist/core/compile/site-theme-rules.js.map +1 -1
- package/dist/core/compile/site-theme-values.d.ts +11 -1
- package/dist/core/compile/site-theme-values.d.ts.map +1 -1
- package/dist/core/compile/site-theme-values.js +39 -5
- package/dist/core/compile/site-theme-values.js.map +1 -1
- package/dist/core/compile/site-theme.d.ts.map +1 -1
- package/dist/core/compile/site-theme.js +16 -4
- package/dist/core/compile/site-theme.js.map +1 -1
- package/dist/core/compile/skill.d.ts.map +1 -1
- package/dist/core/compile/skill.js +8 -0
- package/dist/core/compile/skill.js.map +1 -1
- package/dist/core/lint/catalog.d.ts +1 -1
- package/dist/core/lint/catalog.d.ts.map +1 -1
- package/dist/core/lint/catalog.js +13 -1
- package/dist/core/lint/catalog.js.map +1 -1
- package/dist/core/lint/rules/design.d.ts +27 -0
- package/dist/core/lint/rules/design.d.ts.map +1 -0
- package/dist/core/lint/rules/design.js +234 -0
- package/dist/core/lint/rules/design.js.map +1 -0
- package/dist/core/lint/rules/refs.d.ts.map +1 -1
- package/dist/core/lint/rules/refs.js +3 -0
- package/dist/core/lint/rules/refs.js.map +1 -1
- package/dist/core/lint/rules/type.js +1 -1
- package/dist/core/lint/rules/type.js.map +1 -1
- package/dist/core/presets/base.dna.json +307 -21
- package/dist/core/presets/design.d.ts +16 -0
- package/dist/core/presets/design.d.ts.map +1 -0
- package/dist/core/presets/design.js +86 -0
- package/dist/core/presets/design.js.map +1 -0
- package/dist/core/presets/presets.d.ts +1 -1
- package/dist/core/presets/presets.d.ts.map +1 -1
- package/dist/core/presets/presets.js +18 -11
- package/dist/core/presets/presets.js.map +1 -1
- package/dist/core/presets/specs.d.ts +330 -16
- package/dist/core/presets/specs.d.ts.map +1 -1
- package/dist/core/presets/specs.js +162 -12
- package/dist/core/presets/specs.js.map +1 -1
- package/dist/core/site/colours.d.ts +3 -3
- package/dist/core/site/colours.d.ts.map +1 -1
- package/dist/core/site/colours.js +13 -5
- package/dist/core/site/colours.js.map +1 -1
- package/dist/schema/channel-spec.d.ts +5 -5
- package/dist/schema/design.d.ts +258 -0
- package/dist/schema/design.d.ts.map +1 -0
- package/dist/schema/design.js +132 -0
- package/dist/schema/design.js.map +1 -0
- package/dist/schema/dna.d.ts +324 -4
- package/dist/schema/dna.d.ts.map +1 -1
- package/dist/schema/dna.js +16 -0
- package/dist/schema/dna.js.map +1 -1
- package/dist/schema/gen.d.ts +6 -1
- package/dist/schema/gen.d.ts.map +1 -1
- package/dist/schema/pattern.d.ts +80 -0
- package/dist/schema/pattern.d.ts.map +1 -1
- package/dist/schema/skeleton.d.ts +81 -8
- package/dist/schema/skeleton.d.ts.map +1 -1
- package/dist/schema/tokens.d.ts +45 -2
- package/dist/schema/tokens.d.ts.map +1 -1
- package/dist/schema/tokens.js +16 -0
- package/dist/schema/tokens.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { COLOR_ROLES } from "../../schema/tokens.js";
|
|
2
2
|
import { aliasTarget, indexTokens, resolveValue } from "../tokens/resolve.js";
|
|
3
|
-
import { cssColor, dimensionCss, fontStack, resolvedFamilies, roleCss } from "./shared.js";
|
|
4
|
-
import { BORDER_WIDTH_RULES, COMPONENT_RULES, RADIUS_RULES, ROLE_RULES, SHADOW_RULES, ThemeContractError, TYPE_RULES, } from "./site-theme-rules.js";
|
|
3
|
+
import { cssColor, dimensionCss, fontStack, resolvedDimension, resolvedFamilies, roleCss } from "./shared.js";
|
|
4
|
+
import { BORDER_WIDTH_RULES, COMPONENT_RULES, FLUID_RANGE_PX, RADIUS_RULES, ROLE_RULES, SHADOW_RULES, ThemeContractError, TYPE_RULES, } from "./site-theme-rules.js";
|
|
5
5
|
/** A role's CSS in one mode, after its role rule. A required role that is absent is a contract error. */
|
|
6
6
|
export function contractRole(index, dna, role, mode) {
|
|
7
7
|
const chain = Object.hasOwn(ROLE_RULES, role) ? ROLE_RULES[role] : undefined;
|
|
@@ -61,17 +61,51 @@ function typeRole(dna, role) {
|
|
|
61
61
|
throw new ThemeContractError(`typography.${role}`, `Add the ${role} type role to the DNA.`);
|
|
62
62
|
return token.$value;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
const px = (index, value) => {
|
|
65
|
+
const d = resolvedDimension(index, value);
|
|
66
|
+
return d.unit === "px" ? d.value : d.value * 16;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* A role's size: fixed, or with `fontSizeMin` a clamp that grows linearly from the narrow to the
|
|
70
|
+
* wide screen of FLUID_RANGE_PX, so a headline fits a phone and fills a desktop.
|
|
71
|
+
*/
|
|
72
|
+
export function sizeCss(index, t) {
|
|
73
|
+
if (t.fontSizeMin === undefined)
|
|
74
|
+
return dimensionCss(index, t.fontSize);
|
|
75
|
+
const min = px(index, t.fontSizeMin);
|
|
76
|
+
const max = px(index, t.fontSize);
|
|
77
|
+
const span = FLUID_RANGE_PX.max - FLUID_RANGE_PX.min;
|
|
78
|
+
const slope = Math.round(((max - min) / span) * 100_000) / 1000;
|
|
79
|
+
return `clamp(${min}px, calc(${min}px + ${slope}vw - ${Math.round((slope * FLUID_RANGE_PX.min) / 10) / 10}px), ${max}px)`;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* A role's tracking. A fluid role writes it in em, as a share of the size, so a headline keeps the
|
|
83
|
+
* same tightness on a phone as on a desktop; a fixed size keeps its own unit.
|
|
84
|
+
*/
|
|
85
|
+
export function trackingCss(index, t) {
|
|
86
|
+
if (t.letterSpacing === undefined)
|
|
87
|
+
return "normal";
|
|
88
|
+
if (t.fontSizeMin === undefined)
|
|
89
|
+
return dimensionCss(index, t.letterSpacing);
|
|
90
|
+
const em = px(index, t.letterSpacing) / px(index, t.fontSize);
|
|
91
|
+
return `${Math.round(em * 10_000) / 10_000}em`;
|
|
92
|
+
}
|
|
93
|
+
const featuresCss = (t) => {
|
|
94
|
+
const tags = t.fontFeatures ?? [];
|
|
95
|
+
return tags.length === 0 ? "normal" : tags.map((tag) => `"${tag}" 1`).join(", ");
|
|
96
|
+
};
|
|
97
|
+
/** Family, size, weight, line height, tracking and features for each contract type role. */
|
|
65
98
|
export function typeDecls(index, dna) {
|
|
66
99
|
return Object.keys(TYPE_RULES).flatMap((role) => {
|
|
67
100
|
const t = typeRole(dna, role);
|
|
68
101
|
const name = `--dna-type-${role}`;
|
|
69
102
|
return [
|
|
70
103
|
[`${name}-family`, fontStack(resolvedFamilies(index, t.fontFamily))],
|
|
71
|
-
[`${name}-size`,
|
|
104
|
+
[`${name}-size`, sizeCss(index, t)],
|
|
72
105
|
[`${name}-weight`, String(t.fontWeight)],
|
|
73
106
|
[`${name}-line-height`, String(t.lineHeight)],
|
|
74
|
-
[`${name}-tracking`,
|
|
107
|
+
[`${name}-tracking`, trackingCss(index, t)],
|
|
108
|
+
[`${name}-features`, featuresCss(t)],
|
|
75
109
|
];
|
|
76
110
|
});
|
|
77
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-theme-values.js","sourceRoot":"","sources":["../../../src/core/compile/site-theme-values.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAmC,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAa,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"site-theme-values.js","sourceRoot":"","sources":["../../../src/core/compile/site-theme-values.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-theme.d.ts","sourceRoot":"","sources":["../../../src/core/compile/site-theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAK/C,OAAO,EAA6C,KAAK,UAAU,EAA+B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"site-theme.d.ts","sourceRoot":"","sources":["../../../src/core/compile/site-theme.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAK/C,OAAO,EAA6C,KAAK,UAAU,EAA+B,MAAM,aAAa,CAAC;AAWtH,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,uBAAuB,CAAC;AAsC/B,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CA2BrD"}
|
|
@@ -2,6 +2,7 @@ import { hasDarkMode, indexTokens } from "../tokens/resolve.js";
|
|
|
2
2
|
import { fumadocsColors } from "./fumadocs.js";
|
|
3
3
|
import { compilePatterns } from "./patterns.js";
|
|
4
4
|
import { block, cssColor, DARK_SELECTOR, fontStack, resolvedFamilies, tokenSlug } from "./shared.js";
|
|
5
|
+
import { concreteDesignDecls } from "./site-design.js";
|
|
5
6
|
import { DEFAULT_LAYOUT_WIDTH_PX, MONO_FALLBACK, SITE_THEME_PATH, THEME_CONTRACT_MAJOR, THEME_CONTRACT_MINOR, } from "./site-theme-rules.js";
|
|
6
7
|
import { componentDecls, roleDecls, shapeDecls, typeDecls } from "./site-theme-values.js";
|
|
7
8
|
export { SITE_THEME_PATH, THEME_CONTRACT_MAJOR, THEME_CONTRACT_MINOR, ThemeContractError, themeContractVariables, } from "./site-theme-rules.js";
|
|
@@ -27,20 +28,31 @@ function patternClasses(dna) {
|
|
|
27
28
|
const patterns = compilePatterns(dna);
|
|
28
29
|
return patterns ? patterns.content.split("\n").slice(1).join("\n") : "";
|
|
29
30
|
}
|
|
31
|
+
/** The dark block: colours, components, and the design values whose colour changes in dark mode. */
|
|
32
|
+
function darkDecls(index, dna, shapes, light) {
|
|
33
|
+
const roles = roleDecls(index, dna, "dark");
|
|
34
|
+
const components = componentDecls(index, dna, "dark");
|
|
35
|
+
const lightComponents = componentDecls(index, dna, "light");
|
|
36
|
+
const base = [...roles, ...shapes, ...lightComponents, ...components];
|
|
37
|
+
const design = concreteDesignDecls(dna, index, base).filter(([name, value]) => light.get(name) !== value);
|
|
38
|
+
return [...fumadocsColors(dna, "dark"), ...roles, ...components, ...design];
|
|
39
|
+
}
|
|
30
40
|
export function compileSiteTheme(dna) {
|
|
31
41
|
const index = indexTokens(dna.tokens);
|
|
32
42
|
const width = dna.layout?.maxWidthPx ?? DEFAULT_LAYOUT_WIDTH_PX;
|
|
43
|
+
const shapes = shapeDecls(index);
|
|
44
|
+
const lightBase = [...roleDecls(index, dna, "light"), ...shapes, ...componentDecls(index, dna, "light")];
|
|
45
|
+
const lightDesign = concreteDesignDecls(dna, index, lightBase);
|
|
33
46
|
const root = [
|
|
34
47
|
...roleDecls(index, dna, "light"),
|
|
35
|
-
...
|
|
48
|
+
...shapes,
|
|
36
49
|
...typeDecls(index, dna),
|
|
37
50
|
...componentDecls(index, dna, "light"),
|
|
38
51
|
["--fd-layout-width", `${width}px`],
|
|
52
|
+
...lightDesign,
|
|
39
53
|
...paletteDecls(index),
|
|
40
54
|
];
|
|
41
|
-
const dark = hasDarkMode(dna)
|
|
42
|
-
? [...fumadocsColors(dna, "dark"), ...roleDecls(index, dna, "dark"), ...componentDecls(index, dna, "dark")]
|
|
43
|
-
: [];
|
|
55
|
+
const dark = hasDarkMode(dna) ? darkDecls(index, dna, shapes, new Map(lightDesign)) : [];
|
|
44
56
|
const content = [
|
|
45
57
|
headerLine(dna),
|
|
46
58
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site-theme.js","sourceRoot":"","sources":["../../../src/core/compile/site-theme.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAmB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAmB,gBAAgB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtH,OAAO,EACN,uBAAuB,EACvB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAa,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAErG,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,SAAS,SAAS,CAAC,KAAiB,EAAE,GAAQ;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;IAC9G,OAAO;QACN,CAAC,aAAa,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,CAAC,gBAAgB,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtF,CAAC,aAAa,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;KAChC,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,KAAiB;IACtC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;SAC1F,GAAG,CAAC,CAAC,IAAI,EAAQ,EAAE,CAAC,CAAC,SAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC3B,MAAM,OAAO,GAAG,kBAAkB,oBAAoB,IAAI,oBAAoB,EAAE,CAAC;IACjF,OAAO,MAAM,OAAO,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,qDAAqD,CAAC;AACtH,CAAC;AAED,SAAS,cAAc,CAAC,GAAQ;IAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAQ;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,uBAAuB,CAAC;IAChE,MAAM,
|
|
1
|
+
{"version":3,"file":"site-theme.js","sourceRoot":"","sources":["../../../src/core/compile/site-theme.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../src/core/compile/skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../src/core/compile/skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAI/C,OAAO,EAAgB,KAAK,UAAU,EAA6B,MAAM,aAAa,CAAC;AAEvF,eAAO,MAAM,iBAAiB,QAAS,CAAC;AA0JxC,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,EAAE,CAwBnD;AAED,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CA2BnD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { COLOR_ROLES, TYPE_ROLES } from "../../schema/tokens.js";
|
|
2
2
|
import { hasDarkMode, indexTokens } from "../tokens/resolve.js";
|
|
3
|
+
import { compositionLines, visualLines } from "./design-language.js";
|
|
3
4
|
import { dimensionCss, resolvedFamilies, roleHex } from "./shared.js";
|
|
4
5
|
export const LOVABLE_MAX_CHARS = 10_000;
|
|
5
6
|
const roleRows = (dna, index) => COLOR_ROLES.flatMap((r) => {
|
|
@@ -94,6 +95,10 @@ function imageryRef(dna) {
|
|
|
94
95
|
const patterns = Object.entries(dna.patterns).map(([id, p]) => `- \`.dna-pattern-${id}\` (${p.layers.map((l) => l.kind).join(" + ")})${p.for.length ? `, default for ${p.for.join(", ")}` : ""}`);
|
|
95
96
|
return `# ${dna.brand.name} imagery\n\n${lines.join("\n")}${patterns.length ? `\n\n## Background patterns\n\nFrom \`patterns.css\`:\n\n${patterns.join("\n")}` : ""}`;
|
|
96
97
|
}
|
|
98
|
+
function designRef(dna) {
|
|
99
|
+
const lines = [...visualLines(dna), ...compositionLines(dna)];
|
|
100
|
+
return `# ${dna.brand.name} design language\n\n${lines.map((l) => `- ${l}`).join("\n") || "- No design language recorded: follow the tokens."}`;
|
|
101
|
+
}
|
|
97
102
|
function rulesRef(dna, index) {
|
|
98
103
|
const comps = Object.entries(dna.components).map(([id, c]) => `- **${id}:** background ${c.background}, text ${c.foreground}, radius ${dimensionCss(index, c.radius)}, type ${c.typography}`);
|
|
99
104
|
return `# ${dna.brand.name} rules\n\n${dna.rules.map((r) => `- **${r.kind === "do" ? "Do" : "Don't"}:** ${r.text}${r.check ? ` (checked by \`${r.check}\`)` : ""}`).join("\n")}\n\n## Components\n\n${comps.join("\n") || "- none"}`;
|
|
@@ -115,6 +120,7 @@ function essentials(dna, index) {
|
|
|
115
120
|
`Headings in ${fam("display")}, body in ${fam("body")}${fam("ui") ? `, buttons and labels in ${fam("ui")}` : ""}.`,
|
|
116
121
|
`Voice: ${dna.voice.traits.map((t) => `${t.is}, not ${t.isNot}`).join("; ")}. ${dna.voice.mechanics.case} case, emoji ${dna.voice.mechanics.emoji}.`,
|
|
117
122
|
banLine(dna.voice.lexicon.ban),
|
|
123
|
+
dna.visual ? `Look: ${dna.visual.direction} See the design reference before you compose a page.` : "",
|
|
118
124
|
`Logo: use the files in \`logo/\` as they are, with ${dna.logo.clearSpace.value} × ${dna.logo.clearSpace.unit} clear space, at least ${dna.logo.minSizePx}px tall, only on the surfaces its variant allows.`,
|
|
119
125
|
`Colours, fonts and radii come from \`tokens.css\` / \`tailwind.css\`; never type raw values.`,
|
|
120
126
|
].filter(Boolean);
|
|
@@ -130,6 +136,7 @@ export function compileSkill(dna) {
|
|
|
130
136
|
["voice", voiceRef(dna)],
|
|
131
137
|
["messaging", messagingRef(dna)],
|
|
132
138
|
["imagery", imageryRef(dna)],
|
|
139
|
+
["design", designRef(dna)],
|
|
133
140
|
["rules", rulesRef(dna, index)],
|
|
134
141
|
];
|
|
135
142
|
const skill = `---\nname: ${name}\ndescription: ${description}\n---\n\n# ${dna.brand.name} brand\n\n${dna.brand.tagline ? `${dna.brand.tagline}. ` : ""}Brand DNA ${dna.brand.id}@${dna.brand.version}; generated, do not edit.\n\n## Every time\n\n${essentials(dna, index)
|
|
@@ -152,6 +159,7 @@ export function compileLovable(dna) {
|
|
|
152
159
|
logoRef(dna),
|
|
153
160
|
typeRef(dna, index),
|
|
154
161
|
messagingRef(dna),
|
|
162
|
+
designRef(dna),
|
|
155
163
|
rulesRef(dna, index),
|
|
156
164
|
imageryRef(dna),
|
|
157
165
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/core/compile/skill.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../../src/core/compile/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* can still catch typos.
|
|
5
5
|
*/
|
|
6
6
|
import type { DnaRule, RuleMeta } from "./types.js";
|
|
7
|
-
export declare const RULES_VERSION = "1.
|
|
7
|
+
export declare const RULES_VERSION = "1.6.0";
|
|
8
8
|
export declare const DNA_RULES: readonly DnaRule[];
|
|
9
9
|
/** Declared for Phases 4–5 (docs/architecture.md §7); not yet implemented. */
|
|
10
10
|
export declare const PLANNED_RULES: readonly RuleMeta[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/lint/catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/lint/catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,OAAO,EAAW,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE7D,eAAO,MAAM,aAAa,UAAU,CAAC;AAmCrC,eAAO,MAAM,SAAS,EAAE,SAAS,OAAO,EA0CvC,CAAC;AAMF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,EAAE,SAAS,QAAQ,EAS5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,QAAQ,EA6C7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA0D,CAAC;AAEzG,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,CAK3C,CAAC"}
|
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
import { CHANNEL_RULES } from "../channels/rules.js";
|
|
7
7
|
import { SKELETON_RULES } from "../skeleton/rules.js";
|
|
8
8
|
import * as color from "./rules/color.js";
|
|
9
|
+
import * as design from "./rules/design.js";
|
|
9
10
|
import * as misc from "./rules/misc.js";
|
|
10
11
|
import * as pattern from "./rules/pattern.js";
|
|
11
12
|
import * as refs from "./rules/refs.js";
|
|
12
13
|
import * as type from "./rules/type.js";
|
|
13
|
-
export const RULES_VERSION = "1.
|
|
14
|
+
export const RULES_VERSION = "1.6.0";
|
|
14
15
|
const checkKnown = {
|
|
15
16
|
id: "rules/check-known",
|
|
16
17
|
scope: "dna",
|
|
@@ -54,6 +55,17 @@ export const DNA_RULES = [
|
|
|
54
55
|
type.scaleOrder,
|
|
55
56
|
type.minSize,
|
|
56
57
|
type.filesPresent,
|
|
58
|
+
design.trackingFloor,
|
|
59
|
+
design.displayMax,
|
|
60
|
+
design.fluidOrder,
|
|
61
|
+
design.measure,
|
|
62
|
+
design.splitOrder,
|
|
63
|
+
design.tonesBase,
|
|
64
|
+
design.designRoles,
|
|
65
|
+
design.accentPolicy,
|
|
66
|
+
design.mediaRefs,
|
|
67
|
+
design.colourStrategy,
|
|
68
|
+
design.texture,
|
|
57
69
|
misc.derivedStale,
|
|
58
70
|
misc.provenanceMissing,
|
|
59
71
|
misc.llmUnlocked,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/lint/catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/lint/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DnaRule } from "../types.js";
|
|
2
|
+
/** Tracking tighter than this, as a share of the size, makes letters touch. */
|
|
3
|
+
export declare const TRACKING_FLOOR_EM = -0.04;
|
|
4
|
+
export declare const DISPLAY_MAX_PX = 96;
|
|
5
|
+
export declare const MEASURE_PX: {
|
|
6
|
+
readonly min: 45;
|
|
7
|
+
readonly max: 80;
|
|
8
|
+
};
|
|
9
|
+
export declare const trackingFloor: DnaRule;
|
|
10
|
+
export declare const displayMax: DnaRule;
|
|
11
|
+
export declare const fluidOrder: DnaRule;
|
|
12
|
+
export declare const measure: DnaRule;
|
|
13
|
+
export declare const splitOrder: DnaRule;
|
|
14
|
+
export declare const tonesBase: DnaRule;
|
|
15
|
+
export declare const designRoles: DnaRule;
|
|
16
|
+
export declare const accentPolicy: DnaRule;
|
|
17
|
+
export declare const mediaRefs: DnaRule;
|
|
18
|
+
/** The share of a page the brand roles cover in `colorPolicy.usage`, in percent. */
|
|
19
|
+
export declare function brandShare(usage: ReadonlyArray<{
|
|
20
|
+
role: string;
|
|
21
|
+
percent: number;
|
|
22
|
+
}>): number;
|
|
23
|
+
export declare const colourStrategy: DnaRule;
|
|
24
|
+
/** Below this ornament level a brand is plain, so a texture on its bands contradicts it. */
|
|
25
|
+
export declare const TEXTURE_MIN_ORNAMENT = 3;
|
|
26
|
+
export declare const texture: DnaRule;
|
|
27
|
+
//# sourceMappingURL=design.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../../../../src/core/lint/rules/design.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAW,MAAM,aAAa,CAAC;AAOpD,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AACvC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,UAAU;;;CAAgC,CAAC;AAExD,eAAO,MAAM,aAAa,EAAE,OAsB3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,OAkBxB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,OAexB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAkBrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,OAgBxB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OASvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,OAczB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAkB1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OAmBvB,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CAG1F;AAED,eAAO,MAAM,cAAc,EAAE,OAoB5B,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,eAAO,MAAM,OAAO,EAAE,OA2BrB,CAAC"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lint for the design language (schema/design.ts) and the type limits that the design skills
|
|
3
|
+
* agree on: tracking no tighter than -0.04em, a display size no larger than 96px, a body measure
|
|
4
|
+
* between 45 and 80 characters, and an accent that appears only where the policy allows it.
|
|
5
|
+
*/
|
|
6
|
+
import { BRAND_COLOUR_ROLES, COLOUR_STRATEGIES, STRATEGY_MAX_PERCENT } from "../../../schema/design.js";
|
|
7
|
+
import { textureLayers } from "../../compile/patterns.js";
|
|
8
|
+
import { dimensionToPx, resolveValue } from "../../tokens/resolve.js";
|
|
9
|
+
const px = (index, value) => {
|
|
10
|
+
const r = resolveValue(index, value, "dimension");
|
|
11
|
+
return r.ok ? dimensionToPx(r.value) : undefined;
|
|
12
|
+
};
|
|
13
|
+
/** Tracking tighter than this, as a share of the size, makes letters touch. */
|
|
14
|
+
export const TRACKING_FLOOR_EM = -0.04;
|
|
15
|
+
export const DISPLAY_MAX_PX = 96;
|
|
16
|
+
export const MEASURE_PX = { min: 45, max: 80 };
|
|
17
|
+
export const trackingFloor = {
|
|
18
|
+
id: "type/tracking-floor",
|
|
19
|
+
scope: "dna",
|
|
20
|
+
severity: "warning",
|
|
21
|
+
description: "Letter spacing is never tighter than -0.04em",
|
|
22
|
+
run: ({ dna, index }) => Object.entries(dna.tokens.typography).flatMap(([role, token]) => {
|
|
23
|
+
const t = token?.$value;
|
|
24
|
+
if (!t?.letterSpacing)
|
|
25
|
+
return [];
|
|
26
|
+
const size = px(index, t.fontSize);
|
|
27
|
+
const spacing = px(index, t.letterSpacing);
|
|
28
|
+
if (size === undefined || spacing === undefined)
|
|
29
|
+
return [];
|
|
30
|
+
const em = Math.round((spacing / size) * 1000) / 1000;
|
|
31
|
+
return em < TRACKING_FLOOR_EM
|
|
32
|
+
? [
|
|
33
|
+
{
|
|
34
|
+
path: `tokens.typography.${role}`,
|
|
35
|
+
message: `Tracking is ${em}em; keep it at ${TRACKING_FLOOR_EM}em or looser`,
|
|
36
|
+
},
|
|
37
|
+
]
|
|
38
|
+
: [];
|
|
39
|
+
}),
|
|
40
|
+
};
|
|
41
|
+
export const displayMax = {
|
|
42
|
+
id: "type/display-max",
|
|
43
|
+
scope: "dna",
|
|
44
|
+
severity: "warning",
|
|
45
|
+
description: "A display size is at most 96px",
|
|
46
|
+
run: ({ dna, index }) => ["display-xl", "display"].flatMap((role) => {
|
|
47
|
+
const t = dna.tokens.typography[role]?.$value;
|
|
48
|
+
const size = t ? px(index, t.fontSize) : undefined;
|
|
49
|
+
return size !== undefined && size > DISPLAY_MAX_PX
|
|
50
|
+
? [
|
|
51
|
+
{
|
|
52
|
+
path: `tokens.typography.${role}`,
|
|
53
|
+
message: `${role} is ${size}px; keep it at ${DISPLAY_MAX_PX}px or less`,
|
|
54
|
+
},
|
|
55
|
+
]
|
|
56
|
+
: [];
|
|
57
|
+
}),
|
|
58
|
+
};
|
|
59
|
+
export const fluidOrder = {
|
|
60
|
+
id: "type/fluid-order",
|
|
61
|
+
scope: "dna",
|
|
62
|
+
severity: "error",
|
|
63
|
+
description: "A fluid size grows: fontSizeMin is smaller than fontSize",
|
|
64
|
+
run: ({ dna, index }) => Object.entries(dna.tokens.typography).flatMap(([role, token]) => {
|
|
65
|
+
const t = token?.$value;
|
|
66
|
+
if (!t?.fontSizeMin)
|
|
67
|
+
return [];
|
|
68
|
+
const min = px(index, t.fontSizeMin);
|
|
69
|
+
const max = px(index, t.fontSize);
|
|
70
|
+
return min !== undefined && max !== undefined && min >= max
|
|
71
|
+
? [{ path: `tokens.typography.${role}`, message: `fontSizeMin ${min}px is not smaller than fontSize ${max}px` }]
|
|
72
|
+
: [];
|
|
73
|
+
}),
|
|
74
|
+
};
|
|
75
|
+
export const measure = {
|
|
76
|
+
id: "layout/measure",
|
|
77
|
+
scope: "dna",
|
|
78
|
+
severity: "warning",
|
|
79
|
+
description: "Running text is 45 to 80 characters wide, and a lead is narrower than the body",
|
|
80
|
+
run: ({ dna }) => {
|
|
81
|
+
const m = dna.composition?.measure;
|
|
82
|
+
if (!m)
|
|
83
|
+
return [];
|
|
84
|
+
const hits = [];
|
|
85
|
+
if (m.body < MEASURE_PX.min || m.body > MEASURE_PX.max)
|
|
86
|
+
hits.push({
|
|
87
|
+
path: "composition.measure.body",
|
|
88
|
+
message: `${m.body} characters; keep running text between ${MEASURE_PX.min} and ${MEASURE_PX.max}`,
|
|
89
|
+
});
|
|
90
|
+
if (m.lead > m.body)
|
|
91
|
+
hits.push({ path: "composition.measure.lead", message: "A lead is wider than the body; make it narrower" });
|
|
92
|
+
return hits;
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
export const splitOrder = {
|
|
96
|
+
id: "layout/split-order",
|
|
97
|
+
scope: "dna",
|
|
98
|
+
severity: "error",
|
|
99
|
+
description: "A split names the wider side first",
|
|
100
|
+
run: ({ dna }) => {
|
|
101
|
+
const split = dna.composition?.split;
|
|
102
|
+
return split && split[0] < split[1]
|
|
103
|
+
? [
|
|
104
|
+
{
|
|
105
|
+
path: "composition.split",
|
|
106
|
+
message: `${split[0]}:${split[1]} names the narrow side first; write it wide first`,
|
|
107
|
+
},
|
|
108
|
+
]
|
|
109
|
+
: [];
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
export const tonesBase = {
|
|
113
|
+
id: "layout/tones-base",
|
|
114
|
+
scope: "dna",
|
|
115
|
+
severity: "error",
|
|
116
|
+
description: "The section tones a page may use include the page's own tone, base",
|
|
117
|
+
run: ({ dna }) => dna.composition && !dna.composition.tones.allowed.includes("base")
|
|
118
|
+
? [{ path: "composition.tones.allowed", message: "Add base: every page needs its own tone" }]
|
|
119
|
+
: [],
|
|
120
|
+
};
|
|
121
|
+
export const designRoles = {
|
|
122
|
+
id: "design/role-defined",
|
|
123
|
+
scope: "dna",
|
|
124
|
+
severity: "error",
|
|
125
|
+
description: "The emphasis and the focus ring name colour roles the DNA defines",
|
|
126
|
+
run: ({ dna }) => {
|
|
127
|
+
const named = [
|
|
128
|
+
["emphasis.role", dna.emphasis?.role],
|
|
129
|
+
["controls.focus.role", dna.controls?.focus.role],
|
|
130
|
+
];
|
|
131
|
+
return named
|
|
132
|
+
.filter(([, role]) => role !== undefined && !dna.tokens.color.role[role])
|
|
133
|
+
.map(([path, role]) => ({ path, message: `Role ${role} is not defined` }));
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
export const accentPolicy = {
|
|
137
|
+
id: "color/accent-policy",
|
|
138
|
+
scope: "dna",
|
|
139
|
+
severity: "error",
|
|
140
|
+
description: "An emphasis in the accent is one of the places the accent policy allows",
|
|
141
|
+
run: ({ dna }) => {
|
|
142
|
+
const e = dna.emphasis;
|
|
143
|
+
const uses = dna.colorPolicy?.accent?.uses;
|
|
144
|
+
if (!e || !uses || e.role !== "accent" || e.style === "none")
|
|
145
|
+
return [];
|
|
146
|
+
return uses.includes("marker")
|
|
147
|
+
? []
|
|
148
|
+
: [
|
|
149
|
+
{
|
|
150
|
+
path: "emphasis.role",
|
|
151
|
+
message: "Headline emphasis uses the accent; add marker to colorPolicy.accent.uses",
|
|
152
|
+
},
|
|
153
|
+
];
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
export const mediaRefs = {
|
|
157
|
+
id: "imagery/media-ref",
|
|
158
|
+
scope: "dna",
|
|
159
|
+
severity: "error",
|
|
160
|
+
description: "The media radius and the duotone colours resolve to tokens",
|
|
161
|
+
run: ({ dna, index }) => {
|
|
162
|
+
const m = dna.imagery.media;
|
|
163
|
+
if (!m)
|
|
164
|
+
return [];
|
|
165
|
+
const refs = [["imagery.media.radius", m.radius, "dimension"]];
|
|
166
|
+
if (m.duotone)
|
|
167
|
+
refs.push(["imagery.media.duotone.shadow", m.duotone.shadow, "color"], ["imagery.media.duotone.highlight", m.duotone.highlight, "color"]);
|
|
168
|
+
return refs.flatMap(([path, value, type]) => {
|
|
169
|
+
const r = resolveValue(index, value, type);
|
|
170
|
+
return r.ok ? [] : [{ path, message: r.error }];
|
|
171
|
+
});
|
|
172
|
+
},
|
|
173
|
+
};
|
|
174
|
+
/** The share of a page the brand roles cover in `colorPolicy.usage`, in percent. */
|
|
175
|
+
export function brandShare(usage) {
|
|
176
|
+
const brand = new Set(BRAND_COLOUR_ROLES);
|
|
177
|
+
return usage.filter((u) => brand.has(u.role)).reduce((sum, u) => sum + u.percent, 0);
|
|
178
|
+
}
|
|
179
|
+
export const colourStrategy = {
|
|
180
|
+
id: "color/strategy",
|
|
181
|
+
scope: "dna",
|
|
182
|
+
severity: "error",
|
|
183
|
+
description: "The brand colours cover as much of a page as the colour strategy says",
|
|
184
|
+
run: ({ dna }) => {
|
|
185
|
+
const policy = dna.colorPolicy;
|
|
186
|
+
if (!policy?.strategy)
|
|
187
|
+
return [];
|
|
188
|
+
const share = brandShare(policy.usage);
|
|
189
|
+
const max = STRATEGY_MAX_PERCENT[policy.strategy];
|
|
190
|
+
const below = COLOUR_STRATEGIES[COLOUR_STRATEGIES.indexOf(policy.strategy) - 1];
|
|
191
|
+
const min = below ? STRATEGY_MAX_PERCENT[below] : 0;
|
|
192
|
+
if (share <= max && (share > min || min === 0))
|
|
193
|
+
return [];
|
|
194
|
+
return [
|
|
195
|
+
{
|
|
196
|
+
path: "colorPolicy.strategy",
|
|
197
|
+
message: `The brand colours (${BRAND_COLOUR_ROLES.join(", ")}) cover ${share}% in usage; a ${policy.strategy} strategy covers more than ${min}% and at most ${max}%`,
|
|
198
|
+
},
|
|
199
|
+
];
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
/** Below this ornament level a brand is plain, so a texture on its bands contradicts it. */
|
|
203
|
+
export const TEXTURE_MIN_ORNAMENT = 3;
|
|
204
|
+
export const texture = {
|
|
205
|
+
id: "composition/texture",
|
|
206
|
+
scope: "dna",
|
|
207
|
+
severity: "error",
|
|
208
|
+
description: "A band texture names a pattern the site can draw, on tones the page may use",
|
|
209
|
+
run: ({ dna }) => {
|
|
210
|
+
const t = dna.composition?.texture;
|
|
211
|
+
if (!t)
|
|
212
|
+
return [];
|
|
213
|
+
const pattern = dna.patterns[t.pattern];
|
|
214
|
+
if (!pattern)
|
|
215
|
+
return [{ path: "composition.texture.pattern", message: `There is no pattern ${t.pattern}` }];
|
|
216
|
+
const hits = [];
|
|
217
|
+
if (textureLayers(pattern.layers, "currentColor") === "none")
|
|
218
|
+
hits.push({
|
|
219
|
+
path: "composition.texture.pattern",
|
|
220
|
+
message: `Pattern ${t.pattern} has only layers a renderer draws (a mark, dashed lines); a site cannot draw it`,
|
|
221
|
+
});
|
|
222
|
+
const allowed = new Set(dna.composition?.tones.allowed ?? []);
|
|
223
|
+
for (const tone of t.tones.filter((x) => !allowed.has(x)))
|
|
224
|
+
hits.push({ path: "composition.texture.tones", message: `Tone ${tone} is not in composition.tones.allowed` });
|
|
225
|
+
const ornament = dna.visual?.tone.ornament;
|
|
226
|
+
if (ornament !== undefined && ornament < TEXTURE_MIN_ORNAMENT)
|
|
227
|
+
hits.push({
|
|
228
|
+
path: "composition.texture",
|
|
229
|
+
message: `Visual ornament is ${ornament}; a texture needs ${TEXTURE_MIN_ORNAMENT} or more`,
|
|
230
|
+
});
|
|
231
|
+
return hits;
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=design.js.map
|