brand-intent 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,242 @@
1
+ {
2
+ "scopeName": "source.brand-intent-composition",
3
+ "name": "Brand Intent Composition",
4
+ "patterns": [
5
+ { "include": "#comment" },
6
+ { "include": "#id-field" },
7
+ { "include": "#name-field" },
8
+ { "include": "#image" },
9
+ { "include": "#grid" },
10
+ { "include": "#logo-none" },
11
+ { "include": "#logo-keyword" },
12
+ { "include": "#logo-row" },
13
+ { "include": "#icon-keyword" },
14
+ { "include": "#icon-row" },
15
+ { "include": "#illustration" },
16
+ { "include": "#mode" },
17
+ { "include": "#flow" },
18
+ { "include": "#flow-panel" },
19
+ { "include": "#flow-split" },
20
+ { "include": "#sticky" },
21
+ { "include": "#flow-property" },
22
+ { "include": "#spacer" },
23
+ { "include": "#divider" },
24
+ { "include": "#flow-icon" },
25
+ { "include": "#sticky-logo" },
26
+ { "include": "#grouped-slot" },
27
+ { "include": "#slot-row" },
28
+ { "include": "#keyword-partial" }
29
+ ],
30
+ "repository": {
31
+ "comment": {
32
+ "match": "^\\s*#.*$",
33
+ "name": "comment.line.number-sign.brand-intent-composition"
34
+ },
35
+ "id-field": {
36
+ "match": "^(id:)\\s+(.*)",
37
+ "captures": {
38
+ "1": { "name": "keyword.control.brand-intent-composition" },
39
+ "2": { "name": "entity.name.type.brand-intent-composition" }
40
+ }
41
+ },
42
+ "name-field": {
43
+ "match": "^(name:)\\s+(.*)",
44
+ "captures": {
45
+ "1": { "name": "keyword.control.brand-intent-composition" },
46
+ "2": { "name": "string.unquoted.brand-intent-composition" }
47
+ }
48
+ },
49
+ "image": {
50
+ "match": "^(image:)\\s+(full|none|\\w+--\\w+(?:\\s+cols\\s+\\S+)?)",
51
+ "captures": {
52
+ "1": { "name": "keyword.control.brand-intent-composition" },
53
+ "2": { "name": "string.unquoted.brand-intent-composition" }
54
+ }
55
+ },
56
+ "grid": {
57
+ "match": "^(grid:)\\s+(\\d+)\\s+(\\d+)",
58
+ "captures": {
59
+ "1": { "name": "keyword.control.brand-intent-composition" },
60
+ "2": { "name": "constant.numeric.brand-intent-composition" },
61
+ "3": { "name": "constant.numeric.brand-intent-composition" }
62
+ }
63
+ },
64
+ "logo-none": {
65
+ "match": "^(logo:)\\s+(none)",
66
+ "captures": {
67
+ "1": { "name": "keyword.control.brand-intent-composition" },
68
+ "2": { "name": "string.unquoted.brand-intent-composition" }
69
+ }
70
+ },
71
+ "logo-keyword": {
72
+ "match": "^(logo:)\\s+(top|center|bottom)\\s+(?:col\\s+)?(left|center|right)(?:\\s+(s|m|l))?",
73
+ "captures": {
74
+ "1": { "name": "keyword.control.brand-intent-composition" },
75
+ "2": { "name": "constant.numeric.row.brand-intent-composition" },
76
+ "3": { "name": "variable.parameter.brand-intent-composition" },
77
+ "4": { "name": "constant.numeric.brand-intent-composition" }
78
+ }
79
+ },
80
+ "logo-row": {
81
+ "match": "^(logo:)\\s+(row)\\s+(\\d+)\\s+(?:col\\s+)?(left|center|right)(?:\\s+(s|m|l))?",
82
+ "captures": {
83
+ "1": { "name": "keyword.control.brand-intent-composition" },
84
+ "2": { "name": "keyword.other.brand-intent-composition" },
85
+ "3": { "name": "constant.numeric.row.brand-intent-composition" },
86
+ "4": { "name": "variable.parameter.brand-intent-composition" },
87
+ "5": { "name": "constant.numeric.brand-intent-composition" }
88
+ }
89
+ },
90
+ "icon-keyword": {
91
+ "match": "^(icon:)\\s+(top|center|bottom)\\s+(?:col\\s+)?(left|center|right)(?:\\s+(s|m|l))?",
92
+ "captures": {
93
+ "1": { "name": "keyword.control.brand-intent-composition" },
94
+ "2": { "name": "constant.numeric.row.brand-intent-composition" },
95
+ "3": { "name": "variable.parameter.brand-intent-composition" },
96
+ "4": { "name": "constant.numeric.brand-intent-composition" }
97
+ }
98
+ },
99
+ "icon-row": {
100
+ "match": "^(icon:)\\s+(row)\\s+(\\d+)\\s+(?:col\\s+)?(left|center|right)(?:\\s+(s|m|l))?",
101
+ "captures": {
102
+ "1": { "name": "keyword.control.brand-intent-composition" },
103
+ "2": { "name": "keyword.other.brand-intent-composition" },
104
+ "3": { "name": "constant.numeric.row.brand-intent-composition" },
105
+ "4": { "name": "variable.parameter.brand-intent-composition" },
106
+ "5": { "name": "constant.numeric.brand-intent-composition" }
107
+ }
108
+ },
109
+ "illustration": {
110
+ "match": "^(illustration:)\\s+(top-left|top-center|top-right|center-left|center|center-right|bottom-left|bottom-center|bottom-right)\\s+(fit-width|fit-height)\\s+(\\d+(?:\\.\\d+)?)(%)(?:\\s+(offset)\\s+(-?\\d+(?:\\.\\d+)?)(?:\\s+(-?\\d+(?:\\.\\d+)?))?)?",
111
+ "captures": {
112
+ "1": { "name": "keyword.control.brand-intent-composition" },
113
+ "2": { "name": "variable.parameter.brand-intent-composition" },
114
+ "3": { "name": "variable.parameter.brand-intent-composition" },
115
+ "4": { "name": "constant.numeric.brand-intent-composition" },
116
+ "5": { "name": "keyword.operator.brand-intent-composition" },
117
+ "6": { "name": "keyword.control.brand-intent-composition" },
118
+ "7": { "name": "constant.numeric.brand-intent-composition" },
119
+ "8": { "name": "constant.numeric.brand-intent-composition" }
120
+ }
121
+ },
122
+ "mode": {
123
+ "match": "^(mode:)\\s+(grid|flow)",
124
+ "captures": {
125
+ "1": { "name": "keyword.control.brand-intent-composition" },
126
+ "2": { "name": "constant.language.brand-intent-composition" }
127
+ }
128
+ },
129
+ "flow": {
130
+ "match": "^(flow:)\\s*$",
131
+ "captures": {
132
+ "1": { "name": "keyword.control.brand-intent-composition" }
133
+ }
134
+ },
135
+ "flow-panel": {
136
+ "match": "^(flow:)\\s+(panel)\\s+(\\S+)(?:\\s+(\\d+/\\d+))?(?:\\s+(\\d+/\\d+))?",
137
+ "captures": {
138
+ "1": { "name": "keyword.control.brand-intent-composition" },
139
+ "2": { "name": "entity.name.tag.brand-intent-composition" },
140
+ "3": { "name": "variable.parameter.brand-intent-composition" },
141
+ "4": { "name": "constant.numeric.brand-intent-composition" },
142
+ "5": { "name": "constant.numeric.brand-intent-composition" }
143
+ }
144
+ },
145
+ "flow-split": {
146
+ "match": "^(flow:)\\s+(split)\\s+(top|bottom|left|right)(?:\\s+(\\d+/\\d+))?",
147
+ "captures": {
148
+ "1": { "name": "keyword.control.brand-intent-composition" },
149
+ "2": { "name": "entity.name.tag.brand-intent-composition" },
150
+ "3": { "name": "variable.parameter.brand-intent-composition" },
151
+ "4": { "name": "constant.numeric.brand-intent-composition" }
152
+ }
153
+ },
154
+ "sticky": {
155
+ "match": "^(sticky:)\\s+(top|bottom|left|right)(?:\\s+(s|m|l))?",
156
+ "captures": {
157
+ "1": { "name": "keyword.control.brand-intent-composition" },
158
+ "2": { "name": "variable.parameter.brand-intent-composition" },
159
+ "3": { "name": "constant.numeric.brand-intent-composition" }
160
+ }
161
+ },
162
+ "flow-property": {
163
+ "match": "^\\s+(direction|columns|column-gap)(:)\\s+(.*)",
164
+ "captures": {
165
+ "1": { "name": "support.type.property-name.brand-intent-composition" },
166
+ "2": { "name": "punctuation.separator.brand-intent-composition" },
167
+ "3": { "name": "constant.numeric.brand-intent-composition" }
168
+ }
169
+ },
170
+ "spacer": {
171
+ "match": "^\\s+\\|\\s+(spacer-)(\\w+)",
172
+ "captures": {
173
+ "1": { "name": "support.type.brand-intent-composition" },
174
+ "2": { "name": "constant.numeric.brand-intent-composition" }
175
+ }
176
+ },
177
+ "divider": {
178
+ "match": "^\\s+\\|\\s+(divider-)(ruler|hairline)",
179
+ "captures": {
180
+ "1": { "name": "support.type.brand-intent-composition" },
181
+ "2": { "name": "entity.name.tag.brand-intent-composition" }
182
+ }
183
+ },
184
+ "flow-icon": {
185
+ "match": "^\\s+\\|\\s+(icon)\\s+(left|center|right)(?:\\s+(s|m|l))?",
186
+ "captures": {
187
+ "1": { "name": "keyword.other.brand-intent-composition" },
188
+ "2": { "name": "variable.parameter.brand-intent-composition" },
189
+ "3": { "name": "constant.numeric.brand-intent-composition" }
190
+ }
191
+ },
192
+ "sticky-logo": {
193
+ "match": "^\\s+\\|\\s+(logo)\\s+(left|center|right)(?:\\s+(s|m|l))?",
194
+ "captures": {
195
+ "1": { "name": "keyword.other.brand-intent-composition" },
196
+ "2": { "name": "variable.parameter.brand-intent-composition" },
197
+ "3": { "name": "constant.numeric.brand-intent-composition" }
198
+ }
199
+ },
200
+ "grouped-slot": {
201
+ "match": "^\\s+\\|\\s+(primary|secondary|detail|meta|cta|label)(?:\\s+(cols)\\s+(\\S+))?\\s+(left|center|right)(?:\\s+(top|center|bottom))?(?:\\s+(columns:\\d+))?(?:\\s+(gap:\\w+))?",
202
+ "captures": {
203
+ "1": { "name": "entity.name.tag.brand-intent-composition" },
204
+ "2": { "name": "keyword.other.brand-intent-composition" },
205
+ "3": { "name": "constant.numeric.brand-intent-composition" },
206
+ "4": { "name": "support.constant.brand-intent-composition" },
207
+ "5": { "name": "support.constant.brand-intent-composition" },
208
+ "6": { "name": "variable.parameter.brand-intent-composition" },
209
+ "7": { "name": "variable.parameter.brand-intent-composition" }
210
+ }
211
+ },
212
+ "slot-row": {
213
+ "match": "^(primary|secondary|detail|meta|cta|label)\\s+(?:(row)\\s+)?(\\d+|top|center|bottom)\\s+(cols)\\s+(\\S+)\\s+(left|center|right)(?:\\s+(top|center|bottom))?",
214
+ "captures": {
215
+ "1": { "name": "entity.name.tag.brand-intent-composition" },
216
+ "2": { "name": "keyword.other.brand-intent-composition" },
217
+ "3": { "name": "constant.numeric.row.brand-intent-composition" },
218
+ "4": { "name": "keyword.other.brand-intent-composition" },
219
+ "5": { "name": "constant.numeric.brand-intent-composition" },
220
+ "6": { "name": "support.constant.brand-intent-composition" },
221
+ "7": { "name": "support.constant.brand-intent-composition" }
222
+ }
223
+ },
224
+ "keyword-partial": {
225
+ "comment": "Fallback: color the keyword token on incomplete lines (while typing)",
226
+ "patterns": [
227
+ {
228
+ "match": "^(id:|name:|image:|grid:|logo:|icon:|illustration:|mode:|flow:|sticky:|primary|secondary|detail|meta|cta|label)(?=\\s|$)",
229
+ "captures": {
230
+ "1": { "name": "keyword.control.brand-intent-composition" }
231
+ }
232
+ },
233
+ {
234
+ "match": "^\\s+\\|\\s+(spacer-|divider-|primary|secondary|detail|meta|cta|label)(?=\\s|$)",
235
+ "captures": {
236
+ "1": { "name": "support.type.brand-intent-composition" }
237
+ }
238
+ }
239
+ ]
240
+ }
241
+ }
242
+ }
@@ -0,0 +1,103 @@
1
+ {
2
+ "scopeName": "source.brand-intent-format",
3
+ "name": "Brand Intent Format",
4
+ "patterns": [
5
+ { "include": "#comment" },
6
+ { "include": "#id-field" },
7
+ { "include": "#name-field" },
8
+ { "include": "#category" },
9
+ { "include": "#no" },
10
+ { "include": "#purposes" },
11
+ { "include": "#size" },
12
+ { "include": "#grid" },
13
+ { "include": "#numeric-field" },
14
+ { "include": "#insets" },
15
+ { "include": "#string-field" },
16
+ { "include": "#keyword-partial" }
17
+ ],
18
+ "repository": {
19
+ "comment": {
20
+ "match": "^\\s*#.*$",
21
+ "name": "comment.line.number-sign.brand-intent-format"
22
+ },
23
+ "id-field": {
24
+ "match": "^(id:)\\s+(.*)",
25
+ "captures": {
26
+ "1": { "name": "keyword.control.brand-intent-format" },
27
+ "2": { "name": "entity.name.type.brand-intent-format" }
28
+ }
29
+ },
30
+ "name-field": {
31
+ "match": "^(name:)\\s+(.*)",
32
+ "captures": {
33
+ "1": { "name": "keyword.control.brand-intent-format" },
34
+ "2": { "name": "string.unquoted.brand-intent-format" }
35
+ }
36
+ },
37
+ "category": {
38
+ "match": "^(category:)\\s+(instagram|linkedin|print|signage)",
39
+ "captures": {
40
+ "1": { "name": "keyword.control.brand-intent-format" },
41
+ "2": { "name": "entity.name.tag.brand-intent-format" }
42
+ }
43
+ },
44
+ "no": {
45
+ "match": "^(no:)\\s+(.*)",
46
+ "captures": {
47
+ "1": { "name": "keyword.control.brand-intent-format" },
48
+ "2": { "name": "string.unquoted.brand-intent-format" }
49
+ }
50
+ },
51
+ "purposes": {
52
+ "match": "^(purposes:)\\s+(.*)",
53
+ "captures": {
54
+ "1": { "name": "keyword.control.brand-intent-format" },
55
+ "2": { "name": "string.unquoted.brand-intent-format" }
56
+ }
57
+ },
58
+ "size": {
59
+ "match": "^(size:)\\s+(\\S+)\\s+(\\S+)",
60
+ "captures": {
61
+ "1": { "name": "keyword.control.brand-intent-format" },
62
+ "2": { "name": "constant.numeric.brand-intent-format" },
63
+ "3": { "name": "constant.numeric.brand-intent-format" }
64
+ }
65
+ },
66
+ "grid": {
67
+ "match": "^(grid:)\\s+(\\d+)\\s+(\\d+)",
68
+ "captures": {
69
+ "1": { "name": "keyword.control.brand-intent-format" },
70
+ "2": { "name": "constant.numeric.brand-intent-format" },
71
+ "3": { "name": "constant.numeric.brand-intent-format" }
72
+ }
73
+ },
74
+ "numeric-field": {
75
+ "match": "^(dpi|bleed|comfort):\\s*(.+)",
76
+ "captures": {
77
+ "1": { "name": "keyword.control.brand-intent-format" },
78
+ "2": { "name": "constant.numeric.brand-intent-format" }
79
+ }
80
+ },
81
+ "insets": {
82
+ "match": "^(danger:|crop:)\\s+(.*)",
83
+ "captures": {
84
+ "1": { "name": "keyword.control.brand-intent-format" },
85
+ "2": { "name": "constant.numeric.brand-intent-format" }
86
+ }
87
+ },
88
+ "string-field": {
89
+ "match": "^(label|sublabel):\\s*(.+)",
90
+ "captures": {
91
+ "1": { "name": "support.type.property-name.brand-intent-format" },
92
+ "2": { "name": "string.unquoted.brand-intent-format" }
93
+ }
94
+ },
95
+ "keyword-partial": {
96
+ "comment": "Fallback: color the keyword token on incomplete lines (while typing)",
97
+ "match": "^(id:|name:|category:|no:|purposes:|size:|grid:|dpi:|bleed:|comfort:|danger:|crop:|label:|sublabel:)(?=\\s|$)",
98
+ "captures": {
99
+ "1": { "name": "keyword.control.brand-intent-format" }
100
+ }
101
+ }
102
+ }
103
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "scopeName": "source.brand-intent-identity",
3
+ "name": "Brand Intent Identity",
4
+ "patterns": [
5
+ { "include": "#comment" },
6
+ { "include": "#top-level-keyword" },
7
+ { "include": "#named-block" },
8
+ { "include": "#indented-property" },
9
+ { "include": "#flag" },
10
+ { "include": "#value-name" },
11
+ { "include": "#list-item" },
12
+ { "include": "#continuation-line" }
13
+ ],
14
+ "repository": {
15
+ "comment": {
16
+ "match": "^\\s*#.*$",
17
+ "name": "comment.line.number-sign.brand-intent-identity"
18
+ },
19
+ "top-level-keyword": {
20
+ "match": "^(essence|promise|tagline|positioning|purpose|mission|vision|archetype)(:)\\s+(.*)",
21
+ "captures": {
22
+ "1": { "name": "keyword.control.brand-intent-identity" },
23
+ "2": { "name": "punctuation.separator.key-value.brand-intent-identity" },
24
+ "3": { "name": "string.unquoted.brand-intent-identity" }
25
+ }
26
+ },
27
+ "named-block": {
28
+ "comment": "Block headers: voice, pillars, values, narrative NAME, audience NAME, anti-audience NAME",
29
+ "patterns": [
30
+ {
31
+ "match": "^(voice|pillars|values)\\s*$",
32
+ "captures": {
33
+ "1": { "name": "keyword.control.brand-intent-identity" }
34
+ }
35
+ },
36
+ {
37
+ "match": "^(narrative|audience|anti-audience)\\s+(\\S.*)",
38
+ "captures": {
39
+ "1": { "name": "keyword.control.brand-intent-identity" },
40
+ "2": { "name": "entity.name.type.brand-intent-identity" }
41
+ }
42
+ }
43
+ ]
44
+ },
45
+ "indented-property": {
46
+ "match": "^(\\s{2,})(register|persona|rhythm|always|never|primary|secondary|avoid|label|profile|motivation|language|description)(:)\\s+(.*)",
47
+ "captures": {
48
+ "2": { "name": "support.type.property-name.brand-intent-identity" },
49
+ "3": { "name": "punctuation.separator.key-value.brand-intent-identity" },
50
+ "4": { "name": "string.unquoted.brand-intent-identity" }
51
+ }
52
+ },
53
+ "flag": {
54
+ "comment": "Bare flags: primary (presence = true)",
55
+ "match": "^(\\s{2,})(primary)\\s*$",
56
+ "captures": {
57
+ "2": { "name": "constant.language.brand-intent-identity" }
58
+ }
59
+ },
60
+ "value-name": {
61
+ "comment": "Value names inside the values block (2-space indent, no colon)",
62
+ "match": "^(\\s{2})(\\S.*)$",
63
+ "captures": {
64
+ "2": { "name": "entity.name.tag.brand-intent-identity" }
65
+ }
66
+ },
67
+ "list-item": {
68
+ "comment": "List items: - value",
69
+ "match": "^(\\s{2,})(-)\\s+(.*)",
70
+ "captures": {
71
+ "2": { "name": "punctuation.definition.list.brand-intent-identity" },
72
+ "3": { "name": "string.unquoted.brand-intent-identity" }
73
+ }
74
+ },
75
+ "continuation-line": {
76
+ "comment": "Indented continuation lines for multi-line values",
77
+ "match": "^(\\s{4,})(\\S.*)",
78
+ "captures": {
79
+ "2": { "name": "string.unquoted.brand-intent-identity" }
80
+ }
81
+ }
82
+ }
83
+ }