@domandigital/craft 0.5.0 → 0.7.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/STANDARD.md CHANGED
@@ -164,7 +164,10 @@ The package emits **plain CSS custom properties** precisely so these stay free:
164
164
  so Framer Motion, GSAP and CSS agree without the package choosing one.
165
165
  - **Where tokens live.** A `:root` block, a generated file, a Tailwind theme —
166
166
  the package does not care.
167
- - **Layout, grid and component structure.** Out of scope.
167
+ - **Layout, grid and component structure.** Not a rule. Layout *defaults*
168
+ (hero straight into a trust strip, three icon cards, a reveal on every
169
+ section) are measured as character in [CHARACTER.md](./CHARACTER.md), as
170
+ warnings with a declared-exception path, never as rules here.
168
171
  - **Brand voice, copy, and photography grading.** Separate standards.
169
172
 
170
173
  A rule here has to be one that is wrong to break. Everything else is a default.
@@ -0,0 +1,59 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://unpkg.com/@domandigital/craft/art-direction.schema.json",
4
+ "title": "art-direction.json",
5
+ "description": "What a site decided about how it looks, and why. Every choice carries a reason from the client's real world and cites a source that shows it. The reason rule itself is enforced by `craft direction validate`; this schema only checks the shape.",
6
+ "type": "object",
7
+ "required": ["version", "client", "brief", "sources", "choices"],
8
+ "properties": {
9
+ "$schema": { "type": "string" },
10
+ "version": { "const": 1 },
11
+ "client": { "type": "string", "minLength": 1 },
12
+ "brief": { "type": "string", "description": "Who, where, and what they do, in a sentence or two." },
13
+ "sources": {
14
+ "type": "array",
15
+ "items": {
16
+ "type": "object",
17
+ "required": ["id", "kind", "note"],
18
+ "properties": {
19
+ "id": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]*$" },
20
+ "kind": { "enum": ["livery", "shopfront", "signage", "packaging", "product", "uniform", "interior", "place", "material", "trade", "print", "photo", "founder"] },
21
+ "note": { "type": "string" },
22
+ "path": { "type": "string" },
23
+ "colours": { "type": "array", "items": { "type": "string" } },
24
+ "lettering": { "type": "string" }
25
+ },
26
+ "additionalProperties": false
27
+ }
28
+ },
29
+ "choices": {
30
+ "type": "object",
31
+ "propertyNames": { "enum": ["accent", "ground", "display", "body", "shape", "motif", "signature"] },
32
+ "additionalProperties": {
33
+ "type": "object",
34
+ "required": ["value", "because", "evidence"],
35
+ "properties": {
36
+ "value": { "type": "string" },
37
+ "because": { "type": "string" },
38
+ "evidence": { "type": "array", "items": { "type": "string" } }
39
+ },
40
+ "additionalProperties": false
41
+ }
42
+ },
43
+ "exceptions": {
44
+ "type": "array",
45
+ "items": {
46
+ "type": "object",
47
+ "required": ["tell", "because"],
48
+ "properties": {
49
+ "tell": { "type": "string" },
50
+ "because": { "type": "string" },
51
+ "evidence": { "type": "string" },
52
+ "path": { "type": "string" }
53
+ },
54
+ "additionalProperties": false
55
+ }
56
+ }
57
+ },
58
+ "additionalProperties": false
59
+ }
@@ -0,0 +1,20 @@
1
+ import {
2
+ audit,
3
+ collectInPage,
4
+ loadPlaywright,
5
+ overlayInPage,
6
+ snapshotPage,
7
+ snapshotUrl,
8
+ snapshotUrls
9
+ } from "./chunk-OA7SGPN4.js";
10
+ import "./chunk-Q54JSNC5.js";
11
+ import "./chunk-3AP4PJMX.js";
12
+ export {
13
+ audit,
14
+ collectInPage,
15
+ loadPlaywright,
16
+ overlayInPage,
17
+ snapshotPage,
18
+ snapshotUrl,
19
+ snapshotUrls
20
+ };