返回 ppt-master
presetShapeSemantics.json
根目录 / skills / ppt-master / scripts / pptx_shapes / data / presetShapeSemantics.json
1 {
2 "schema": "ppt-master.preset-shape-semantics.v1",
3 "sources": [
4 {
5 "kind": "office-gallery-categories",
6 "url": "https://support.microsoft.com/en-US/Accessibility/powerpoint/use-a-screen-reader-to-insert-and-edit-pictures-and-tables-in-powerpoint",
7 "use": "Office category names"
8 },
9 {
10 "kind": "drawingml-preset-enum",
11 "url": "https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.drawing.shapetypevalues?view=openxml-3.0.1",
12 "use": "DrawingML preset names"
13 },
14 {
15 "kind": "powerpoint-shape-enum",
16 "url": "https://learn.microsoft.com/en-us/javascript/api/powerpoint/powerpoint.geometricshapetype?view=powerpoint-js-preview",
17 "use": "Literal shape identity and terminology"
18 },
19 {
20 "kind": "powerpoint-action-buttons",
21 "url": "https://support.microsoft.com/en-us/powerpoint/add-commands-to-your-presentation-with-action-buttons",
22 "use": "Action-button behavior boundary"
23 }
24 ],
25 "office_categories": [
26 {
27 "id": "lines",
28 "label": "Lines",
29 "summary": "Straight, bent, and curved relationship contours."
30 },
31 {
32 "id": "rectangles",
33 "label": "Rectangles",
34 "summary": "Neutral and corner-inflected rectangular carriers."
35 },
36 {
37 "id": "basic-shapes",
38 "label": "Basic Shapes",
39 "summary": "Geometric bodies, boundaries, radial contours, and literal symbols."
40 },
41 {
42 "id": "block-arrows",
43 "label": "Block Arrows",
44 "summary": "Filled directional bodies for sequence, movement, and route emphasis."
45 },
46 {
47 "id": "equation-shapes",
48 "label": "Equation Shapes",
49 "summary": "Literal mathematical operators."
50 },
51 {
52 "id": "flowchart",
53 "label": "Flowchart",
54 "summary": "Conventional flowchart notation for explicit process diagrams."
55 },
56 {
57 "id": "stars-and-banners",
58 "label": "Stars and Banners",
59 "summary": "Emblems, bursts, banners, scrolls, and wave accents."
60 },
61 {
62 "id": "callouts",
63 "label": "Callouts",
64 "summary": "Annotation bodies and leaders that point to another object or region."
65 },
66 {
67 "id": "action-buttons",
68 "label": "Action Buttons",
69 "summary": "Visual navigation-control shapes whose actions must be assigned separately."
70 }
71 ],
72 "groups": [
73 {
74 "id": "straight-lines",
75 "label": "Straight lines and connectors",
76 "office_category": "lines",
77 "scope": "general",
78 "roles": ["edge", "spine", "boundary"],
79 "relationships": ["link", "order", "contrast", "annotation"],
80 "directionality": ["horizontal", "vertical", "diagonal"],
81 "aspects": ["linear"],
82 "text_capacity": "none",
83 "visual_weight": "quiet",
84 "literal_only": false,
85 "recommended_for": [
86 "Direct links, dividers, leaders, and reading-path spines.",
87 "Thin relationships whose meaning comes from endpoints, routing, or an optional marker."
88 ],
89 "avoid_for": [
90 "Do not substitute a line for a filled directional body or content carrier.",
91 "Do not imply endpoint attachment; newly authored connector presets remain unconnected."
92 ],
93 "presets": {
94 "line": {"intent": "Straight line with the default diagonal orientation."},
95 "lineInv": {"intent": "Straight line with the inverse default diagonal orientation."},
96 "straightConnector1": {"intent": "Straight connector contour when connector object identity matters."}
97 }
98 },
99 {
100 "id": "bent-connectors",
101 "label": "Bent connectors",
102 "office_category": "lines",
103 "scope": "general",
104 "roles": ["edge", "spine"],
105 "relationships": ["link", "order", "hierarchy", "flow"],
106 "directionality": ["bent"],
107 "aspects": ["flexible"],
108 "text_capacity": "none",
109 "visual_weight": "quiet",
110 "literal_only": false,
111 "recommended_for": [
112 "Orthogonal routing around content or between aligned zones.",
113 "Relationships whose route needs visible right-angle structure."
114 ],
115 "avoid_for": [
116 "Do not add bends when a straight relationship is clearer.",
117 "Do not use the extra segments as decoration or imply unsupported endpoint attachment."
118 ],
119 "presets": {
120 "bentConnector2": {"intent": "One-bend orthogonal connector."},
121 "bentConnector3": {"intent": "Two-bend orthogonal connector."},
122 "bentConnector4": {"intent": "Three-bend orthogonal connector."},
123 "bentConnector5": {"intent": "Four-bend orthogonal connector for more complex routing."}
124 }
125 },
126 {
127 "id": "curved-connectors",
128 "label": "Curved connectors",
129 "office_category": "lines",
130 "scope": "general",
131 "roles": ["edge", "spine"],
132 "relationships": ["link", "order", "cycle", "flow"],
133 "directionality": ["curved"],
134 "aspects": ["flexible"],
135 "text_capacity": "none",
136 "visual_weight": "quiet",
137 "literal_only": false,
138 "recommended_for": [
139 "Soft rerouting, feedback links, or relationships that must pass around objects.",
140 "Continuous paths where curvature carries meaning."
141 ],
142 "avoid_for": [
143 "Do not curve a direct link merely to make it look less plain.",
144 "Do not imply unsupported endpoint attachment."
145 ],
146 "presets": {
147 "curvedConnector2": {"intent": "Single-curve connector."},
148 "curvedConnector3": {"intent": "Two-segment curved connector."},
149 "curvedConnector4": {"intent": "Three-segment curved connector."},
150 "curvedConnector5": {"intent": "Four-segment curved connector for complex routing."}
151 }
152 },
153 {
154 "id": "neutral-rectangles",
155 "label": "Neutral rectangular carriers",
156 "office_category": "rectangles",
157 "scope": "general",
158 "roles": ["field", "carrier", "node", "label"],
159 "relationships": ["none", "membership", "contrast", "hierarchy"],
160 "directionality": ["none"],
161 "aspects": ["flexible"],
162 "text_capacity": "high",
163 "visual_weight": "quiet",
164 "literal_only": false,
165 "recommended_for": [
166 "Content ownership, stable fields, and nodes that need no directional or symbolic inflection.",
167 "Layouts where the absence of contour meaning is itself useful."
168 ],
169 "avoid_for": [
170 "Do not choose neutrality only because primitive syntax is shorter.",
171 "Do not wrap every text block when spacing already communicates ownership."
172 ],
173 "presets": {
174 "rect": {"intent": "Fully neutral rectangular field or carrier."},
175 "roundRect": {"intent": "Uniformly rounded carrier with a softer, more approachable boundary."}
176 }
177 },
178 {
179 "id": "corner-inflected-rectangles",
180 "label": "Corner-inflected rectangles",
181 "office_category": "rectangles",
182 "scope": "general",
183 "roles": ["field", "carrier", "node", "label"],
184 "relationships": ["membership", "order", "hierarchy", "contrast"],
185 "directionality": ["none", "horizontal", "vertical", "diagonal"],
186 "aspects": ["flexible"],
187 "text_capacity": "high",
188 "visual_weight": "moderate",
189 "literal_only": false,
190 "recommended_for": [
191 "Carriers whose rounded or clipped corners mark an entry edge, open edge, or deck-wide contour language.",
192 "Subtle hierarchy without adding arrows or icons."
193 ],
194 "avoid_for": [
195 "Do not scatter corner variants randomly; the changed corners must have a page-level reason.",
196 "Do not let a decorative corner imply direction that the content does not have."
197 ],
198 "presets": {
199 "round1Rect": {"intent": "One rounded corner for a single softened or attached edge."},
200 "round2SameRect": {"intent": "Two rounded corners on one side, creating a clear opening or terminal edge."},
201 "round2DiagRect": {"intent": "Two diagonally opposed rounded corners for reciprocal or diagonal tension."},
202 "snipRoundRect": {"intent": "Mixed clipped and rounded corners for controlled technical contrast."},
203 "snip1Rect": {"intent": "One clipped corner for a single technical or directional cue."},
204 "snip2SameRect": {"intent": "Two clipped corners on one side for an open or connected edge."},
205 "snip2DiagRect": {"intent": "Two diagonally clipped corners for diagonal rhythm or contrast."}
206 }
207 },
208 {
209 "id": "triangular-bodies",
210 "label": "Triangular bodies",
211 "office_category": "basic-shapes",
212 "scope": "general",
213 "roles": ["node", "carrier", "accent", "symbol"],
214 "relationships": ["hierarchy", "order", "contrast", "literal"],
215 "directionality": ["none", "horizontal", "vertical", "diagonal"],
216 "aspects": ["square", "flexible"],
217 "text_capacity": "short",
218 "visual_weight": "strong",
219 "literal_only": false,
220 "recommended_for": [
221 "Apex, escalation, directional focus, or a literal triangular object.",
222 "Corner anchoring where a diagonal edge materially organizes the page."
223 ],
224 "avoid_for": [
225 "Do not use as a generic card; an apex or diagonal edge creates a strong inference.",
226 "Do not replace a true arrow when movement or endpoint direction is the job."
227 ],
228 "presets": {
229 "triangle": {"intent": "Symmetric triangle for apex, priority, or upward/downward focus."},
230 "rtTriangle": {"intent": "Right triangle for corner anchoring, diagonal split, or literal geometry."}
231 }
232 },
233 {
234 "id": "slanted-quadrilaterals",
235 "label": "Slanted quadrilaterals",
236 "office_category": "basic-shapes",
237 "scope": "general",
238 "roles": ["carrier", "node", "accent"],
239 "relationships": ["order", "contrast", "flow"],
240 "directionality": ["horizontal", "diagonal"],
241 "aspects": ["wide", "flexible"],
242 "text_capacity": "medium",
243 "visual_weight": "moderate",
244 "literal_only": false,
245 "recommended_for": [
246 "Motion, transformation, comparison, or a sloped handoff between zones.",
247 "Nodes where the slanted sides reinforce the reading direction."
248 ],
249 "avoid_for": [
250 "Do not use the diamond as a fake flowchart decision outside an actual flowchart.",
251 "Do not use slanted edges on static content with no directional meaning."
252 ],
253 "presets": {
254 "diamond": {"intent": "Four-sided focal node for branching, opposition, or a literal diamond."},
255 "parallelogram": {"intent": "Parallel slants for motion, transfer, or input/output-like movement."},
256 "trapezoid": {"intent": "Symmetric widening or narrowing for expansion, compression, or stage change."},
257 "nonIsoscelesTrapezoid": {"intent": "Asymmetric widening or narrowing for off-axis transition."}
258 }
259 },
260 {
261 "id": "regular-polygons",
262 "label": "Regular polygon bodies",
263 "office_category": "basic-shapes",
264 "scope": "general",
265 "roles": ["carrier", "node", "label", "accent"],
266 "relationships": ["none", "membership", "hierarchy", "contrast"],
267 "directionality": ["none", "radial"],
268 "aspects": ["square"],
269 "text_capacity": "medium",
270 "visual_weight": "strong",
271 "literal_only": false,
272 "recommended_for": [
273 "Compact nodes, numbered stages, badges, or radial systems where side count supports the visual language.",
274 "Focal carriers that need more presence than a circle or rectangle."
275 ],
276 "avoid_for": [
277 "Do not encode a number merely by matching the polygon side count unless readers benefit.",
278 "Do not use many unrelated polygon families on one page."
279 ],
280 "presets": {
281 "pentagon": {"intent": "Five-sided compact node or badge."},
282 "hexagon": {"intent": "Six-sided technical or modular node."},
283 "heptagon": {"intent": "Seven-sided emblematic node with unusual visual rhythm."},
284 "octagon": {"intent": "Eight-sided stop-like or high-presence node."},
285 "decagon": {"intent": "Ten-sided near-circular badge with faceted edges."},
286 "dodecagon": {"intent": "Twelve-sided near-circular badge or radial node."}
287 }
288 },
289 {
290 "id": "organic-carriers",
291 "label": "Organic carriers",
292 "office_category": "basic-shapes",
293 "scope": "general",
294 "roles": ["field", "carrier", "node", "accent"],
295 "relationships": ["membership", "hierarchy", "overlap", "contrast"],
296 "directionality": ["none", "radial"],
297 "aspects": ["flexible"],
298 "text_capacity": "medium",
299 "visual_weight": "moderate",
300 "literal_only": false,
301 "recommended_for": [
302 "Soft focal zones, ports, lenses, or organic contrast against angular geometry.",
303 "Overlap and containment when a continuous curved edge improves grouping."
304 ],
305 "avoid_for": [
306 "Do not default to circles for every metric or icon.",
307 "Do not use a teardrop unless its pointed end has a focus or direction."
308 ],
309 "presets": {
310 "ellipse": {"intent": "Continuous oval field, focal lens, or soft node."},
311 "teardrop": {"intent": "Rounded body with one pointed focus for origin, destination, or literal drop imagery."}
312 }
313 },
314 {
315 "id": "ornamental-carriers",
316 "label": "Ornamental carriers",
317 "office_category": "basic-shapes",
318 "scope": "general",
319 "roles": ["carrier", "label", "accent"],
320 "relationships": ["membership", "hierarchy", "contrast"],
321 "directionality": ["none"],
322 "aspects": ["flexible", "wide"],
323 "text_capacity": "medium",
324 "visual_weight": "strong",
325 "literal_only": false,
326 "recommended_for": [
327 "A single high-emphasis label, title plate, or inset whose edge treatment matches the deck language."
328 ],
329 "avoid_for": [
330 "Do not repeat as ordinary cards; concave corners or beveling create ceremonial emphasis.",
331 "Do not use solely to make a box look less plain."
332 ],
333 "presets": {
334 "plaque": {"intent": "Concave-corner plate for a formal label, title, or emblem."},
335 "bevel": {"intent": "Beveled rectangular body for a raised or inset focal surface."}
336 }
337 },
338 {
339 "id": "radial-contours",
340 "label": "Radial contours and segments",
341 "office_category": "basic-shapes",
342 "scope": "general",
343 "roles": ["field", "spine", "boundary", "accent"],
344 "relationships": ["cycle", "overlap", "membership", "contrast"],
345 "directionality": ["radial", "curved"],
346 "aspects": ["square", "flexible"],
347 "text_capacity": "short",
348 "visual_weight": "moderate",
349 "literal_only": false,
350 "recommended_for": [
351 "Cycles, apertures, partial reveals, circular zoning, or a curved page spine.",
352 "Non-quantitative radial structure where the contour itself guides reading."
353 ],
354 "avoid_for": [
355 "Do not imply a measured proportion unless the angle is backed by data.",
356 "Do not imitate a pie or donut chart when a native data chart is required."
357 ],
358 "presets": {
359 "pieWedge": {"intent": "Single circular wedge for a radial anchor or literal sector."},
360 "pie": {"intent": "Circle with an adjustable missing sector for reveal or incomplete-cycle meaning."},
361 "blockArc": {"intent": "Thick curved band for a cycle segment, portal, or curved spine."},
362 "donut": {"intent": "Closed ring for circular containment, focus, or a literal ring."},
363 "chord": {"intent": "Circular segment bounded by an arc and chord for overlap or partial-reveal geometry."},
364 "arc": {"intent": "Open curved contour for a light boundary, trajectory, or partial frame."}
365 }
366 },
367 {
368 "id": "frames-and-corners",
369 "label": "Frames, corners, and edge pieces",
370 "office_category": "basic-shapes",
371 "scope": "general",
372 "roles": ["field", "boundary", "accent"],
373 "relationships": ["membership", "hierarchy", "contrast"],
374 "directionality": ["none", "horizontal", "vertical", "diagonal"],
375 "aspects": ["flexible"],
376 "text_capacity": "none",
377 "visual_weight": "moderate",
378 "literal_only": false,
379 "recommended_for": [
380 "Open ownership boundaries, page apertures, edge anchors, and corner-led composition.",
381 "Grouping without turning every content unit into a filled card."
382 ],
383 "avoid_for": [
384 "Do not place a frame around content that already has clear ownership.",
385 "Do not use folded or diagonal details without a matching page-level edge language."
386 ],
387 "presets": {
388 "foldedCorner": {"intent": "Sheet-like carrier or accent with one folded corner."},
389 "frame": {"intent": "Closed rectangular frame for a strong aperture or ownership boundary."},
390 "halfFrame": {"intent": "Partially open frame for directional grouping or an incomplete boundary."},
391 "corner": {"intent": "L-shaped corner piece for edge anchoring or a partial frame."},
392 "diagStripe": {"intent": "Diagonal band for edge emphasis, slanted continuity, or a literal stripe."}
393 }
394 },
395 {
396 "id": "brackets",
397 "label": "Brackets",
398 "office_category": "basic-shapes",
399 "scope": "general",
400 "roles": ["boundary", "callout"],
401 "relationships": ["membership", "annotation", "hierarchy"],
402 "directionality": ["horizontal", "vertical"],
403 "aspects": ["tall", "wide", "flexible"],
404 "text_capacity": "none",
405 "visual_weight": "quiet",
406 "literal_only": false,
407 "recommended_for": [
408 "Collecting adjacent items, marking a range, or assigning a label to one side of a group."
409 ],
410 "avoid_for": [
411 "Do not use when a filled carrier already establishes membership.",
412 "Do not mix bracket directions without a clear ownership side."
413 ],
414 "presets": {
415 "leftBracket": {"intent": "Left-side bracket that collects content to its right."},
416 "rightBracket": {"intent": "Right-side bracket that collects content to its left."},
417 "bracketPair": {"intent": "Paired brackets that enclose a complete range or set."}
418 }
419 },
420 {
421 "id": "braces",
422 "label": "Braces",
423 "office_category": "basic-shapes",
424 "scope": "general",
425 "roles": ["boundary", "callout"],
426 "relationships": ["membership", "annotation", "hierarchy"],
427 "directionality": ["horizontal", "vertical"],
428 "aspects": ["tall", "wide", "flexible"],
429 "text_capacity": "none",
430 "visual_weight": "moderate",
431 "literal_only": false,
432 "recommended_for": [
433 "Visible grouping, aggregation, or one-to-many ownership where a bracket is too mechanical."
434 ],
435 "avoid_for": [
436 "Do not use as ornamental punctuation detached from a real group.",
437 "Do not use paired braces when one-sided assignment is the actual relationship."
438 ],
439 "presets": {
440 "leftBrace": {"intent": "Left-side brace that groups or assigns content to its right."},
441 "rightBrace": {"intent": "Right-side brace that groups or assigns content to its left."},
442 "bracePair": {"intent": "Paired braces that enclose a complete set."}
443 }
444 },
445 {
446 "id": "literal-pictograms",
447 "label": "Literal pictograms",
448 "office_category": "basic-shapes",
449 "scope": "literal",
450 "roles": ["symbol", "accent"],
451 "relationships": ["literal"],
452 "directionality": ["none"],
453 "aspects": ["square"],
454 "text_capacity": "none",
455 "visual_weight": "emblematic",
456 "literal_only": true,
457 "recommended_for": [
458 "A concept whose ordinary meaning is exactly the depicted object or symbol."
459 ],
460 "avoid_for": [
461 "Do not select by loose metaphor or keyword association.",
462 "Do not use as a generic visual-energy substitute for real structure."
463 ],
464 "presets": {
465 "cube": {"intent": "Literal cube or compact three-dimensional object."},
466 "can": {"intent": "Literal cylinder, database-like store, or container."},
467 "lightningBolt": {"intent": "Literal lightning, electricity, shock, or sudden-impact symbol.", "avoid_for": ["Do not use for generic tension, urgency, or price change without literal electrical or shock meaning."]},
468 "heart": {"intent": "Literal affection, preference, health-heart, or favorite symbol."},
469 "sun": {"intent": "Literal sun, daylight, heat, or weather symbol."},
470 "moon": {"intent": "Literal moon, night, sleep, or lunar symbol."},
471 "smileyFace": {"intent": "Literal positive-emotion or satisfaction symbol."},
472 "noSmoking": {"intent": "Prohibition symbol with an adjustable slash over a target."},
473 "cloud": {"intent": "Literal cloud, cloud-computing domain, or atmospheric thought field."}
474 }
475 },
476 {
477 "id": "functional-pictograms",
478 "label": "Functional pictograms",
479 "office_category": "basic-shapes",
480 "scope": "literal",
481 "roles": ["symbol", "node", "accent"],
482 "relationships": ["literal", "flow"],
483 "directionality": ["none", "radial"],
484 "aspects": ["square", "tall"],
485 "text_capacity": "none",
486 "visual_weight": "strong",
487 "literal_only": true,
488 "recommended_for": [
489 "Literal mechanism, settings, processing, or filtering concepts."
490 ],
491 "avoid_for": [
492 "Do not use gears as a generic synonym for every process.",
493 "Do not use a funnel unless narrowing, screening, or conversion is the actual relationship."
494 ],
495 "presets": {
496 "gear6": {"intent": "Six-tooth gear for a literal mechanism, settings, or interlocking process."},
497 "gear9": {"intent": "Nine-tooth gear for a denser literal mechanism or system component."},
498 "funnel": {"intent": "Literal filtering, narrowing, qualification, or conversion funnel."}
499 }
500 },
501 {
502 "id": "plus-symbol",
503 "label": "Plus symbol",
504 "office_category": "basic-shapes",
505 "scope": "literal",
506 "roles": ["symbol", "accent", "node"],
507 "relationships": ["literal", "convergence"],
508 "directionality": ["multidirectional"],
509 "aspects": ["square"],
510 "text_capacity": "short",
511 "visual_weight": "strong",
512 "literal_only": true,
513 "recommended_for": [
514 "Literal addition, inclusion, medical-cross, or combined-value meaning."
515 ],
516 "avoid_for": [
517 "Do not use as a generic decoration between unrelated items.",
518 "Use mathPlus when the page is explicitly mathematical notation."
519 ],
520 "presets": {
521 "plus": {"intent": "Broad plus or cross body for literal addition, inclusion, or cross symbolism."}
522 }
523 },
524 {
525 "id": "corner-tabs",
526 "label": "Corner and edge tabs",
527 "office_category": "basic-shapes",
528 "scope": "general",
529 "roles": ["field", "boundary", "accent"],
530 "relationships": ["membership", "hierarchy", "contrast"],
531 "directionality": ["none", "multidirectional"],
532 "aspects": ["flexible"],
533 "text_capacity": "none",
534 "visual_weight": "moderate",
535 "literal_only": false,
536 "recommended_for": [
537 "Four-corner framing, registration marks, or a technical aperture around a focal zone."
538 ],
539 "avoid_for": [
540 "Do not treat the four tabs as independent data points.",
541 "Do not add them when a simpler frame already communicates the boundary."
542 ],
543 "presets": {
544 "cornerTabs": {"intent": "Four triangular corner tabs defining an implied rectangle."},
545 "squareTabs": {"intent": "Four square edge tabs defining an implied rectangle."},
546 "plaqueTabs": {"intent": "Four rounded corner tabs defining an implied rectangle."}
547 }
548 },
549 {
550 "id": "partition-symbols",
551 "label": "Partition symbols",
552 "office_category": "basic-shapes",
553 "scope": "literal",
554 "roles": ["symbol", "node", "accent"],
555 "relationships": ["overlap", "convergence", "literal"],
556 "directionality": ["multidirectional"],
557 "aspects": ["square"],
558 "text_capacity": "none",
559 "visual_weight": "strong",
560 "literal_only": true,
561 "recommended_for": [
562 "A literal four- or six-region partition, intersection, or hub motif."
563 ],
564 "avoid_for": [
565 "Despite their names, these are not charts and carry no data semantics.",
566 "Do not use as a substitute for a native chart or an explained matrix."
567 ],
568 "presets": {
569 "chartX": {"intent": "Rectangle divided diagonally into four triangular regions."},
570 "chartStar": {"intent": "Rectangle divided into six regions by vertical and diagonal lines."},
571 "chartPlus": {"intent": "Rectangle divided into four quarters by vertical and horizontal lines."}
572 }
573 },
574 {
575 "id": "arrow-carriers",
576 "label": "Arrow-shaped carriers",
577 "office_category": "block-arrows",
578 "scope": "general",
579 "roles": ["carrier", "node", "spine"],
580 "relationships": ["order", "flow", "hierarchy"],
581 "directionality": ["horizontal"],
582 "aspects": ["wide"],
583 "text_capacity": "medium",
584 "visual_weight": "strong",
585 "literal_only": false,
586 "recommended_for": [
587 "Stage bodies, handoffs, and compact process steps whose container and direction are one object."
588 ],
589 "avoid_for": [
590 "Do not use as a generic card; the pointed end asserts flow.",
591 "Do not use when a thin connector between independent nodes is clearer."
592 ],
593 "presets": {
594 "homePlate": {"intent": "Pentagon-like horizontal stage body with one pointed destination edge."},
595 "chevron": {"intent": "Compact V-notched directional stage for repeated sequence or handoff."}
596 }
597 },
598 {
599 "id": "cardinal-arrows",
600 "label": "Cardinal block arrows",
601 "office_category": "block-arrows",
602 "scope": "general",
603 "roles": ["spine", "edge", "accent"],
604 "relationships": ["order", "flow", "hierarchy"],
605 "directionality": ["horizontal", "vertical"],
606 "aspects": ["wide", "tall"],
607 "text_capacity": "short",
608 "visual_weight": "strong",
609 "literal_only": false,
610 "recommended_for": [
611 "Strong one-way movement, escalation, decline, or a dominant next-step direction."
612 ],
613 "avoid_for": [
614 "Do not use for a neutral link or divider.",
615 "Do not point toward content unless the endpoint relationship is real."
616 ],
617 "presets": {
618 "rightArrow": {"intent": "Strong left-to-right movement or next-step direction.", "directionality": ["horizontal"], "aspects": ["wide"]},
619 "leftArrow": {"intent": "Strong right-to-left movement, return, or reverse direction.", "directionality": ["horizontal"], "aspects": ["wide"]},
620 "upArrow": {"intent": "Strong upward movement, growth, or escalation.", "directionality": ["vertical"], "aspects": ["tall"]},
621 "downArrow": {"intent": "Strong downward movement, decline, or descent.", "directionality": ["vertical"], "aspects": ["tall"]}
622 }
623 },
624 {
625 "id": "stylized-forward-arrows",
626 "label": "Stylized forward arrows",
627 "office_category": "block-arrows",
628 "scope": "general",
629 "roles": ["spine", "accent"],
630 "relationships": ["order", "flow", "contrast"],
631 "directionality": ["horizontal"],
632 "aspects": ["wide"],
633 "text_capacity": "short",
634 "visual_weight": "strong",
635 "literal_only": false,
636 "recommended_for": [
637 "Forward motion where the tail treatment communicates acceleration, entry, or interlock."
638 ],
639 "avoid_for": [
640 "Do not choose the tail treatment only for novelty.",
641 "Do not use when a plain cardinal arrow already expresses the job."
642 ],
643 "presets": {
644 "stripedRightArrow": {"intent": "Right arrow with tail stripes for acceleration, launch, or staged entry."},
645 "notchedRightArrow": {"intent": "Right arrow with an inward tail notch for interlock or handoff."}
646 }
647 },
648 {
649 "id": "multi-axis-arrows",
650 "label": "Multi-axis arrows",
651 "office_category": "block-arrows",
652 "scope": "general",
653 "roles": ["spine", "node", "accent"],
654 "relationships": ["contrast", "convergence", "flow", "link"],
655 "directionality": ["bidirectional", "multidirectional"],
656 "aspects": ["wide", "tall", "square"],
657 "text_capacity": "short",
658 "visual_weight": "strong",
659 "literal_only": false,
660 "recommended_for": [
661 "Reciprocity, branching, multi-way movement, or a hub with explicit directional alternatives."
662 ],
663 "avoid_for": [
664 "Do not imply symmetry or available routes that the content does not support.",
665 "Do not use as a generic central decoration."
666 ],
667 "presets": {
668 "leftRightArrow": {"intent": "Horizontal reciprocity or two-way exchange.", "directionality": ["horizontal", "bidirectional"], "aspects": ["wide"]},
669 "upDownArrow": {"intent": "Vertical reciprocity or two-way change.", "directionality": ["vertical", "bidirectional"], "aspects": ["tall"]},
670 "leftUpArrow": {"intent": "Two-route branch toward left and up.", "directionality": ["multidirectional"], "aspects": ["square"]},
671 "leftRightUpArrow": {"intent": "Three-route branch toward left, right, and up.", "directionality": ["multidirectional"], "aspects": ["square"]},
672 "quadArrow": {"intent": "Four-way hub or movement in all cardinal directions.", "directionality": ["multidirectional"], "aspects": ["square"]}
673 }
674 },
675 {
676 "id": "turn-arrows",
677 "label": "Bent and return arrows",
678 "office_category": "block-arrows",
679 "scope": "general",
680 "roles": ["spine", "edge", "accent"],
681 "relationships": ["order", "flow", "cycle"],
682 "directionality": ["bent", "curved"],
683 "aspects": ["flexible", "square"],
684 "text_capacity": "short",
685 "visual_weight": "strong",
686 "literal_only": false,
687 "recommended_for": [
688 "A real turn, reroute, reversal, or return within a process path."
689 ],
690 "avoid_for": [
691 "Do not use a turn arrow for generic progress with no change of direction.",
692 "Do not confuse a filled turn body with a thin routed connector."
693 ],
694 "presets": {
695 "bentUpArrow": {"intent": "Sharp right-angle route ending upward.", "directionality": ["bent", "vertical"]},
696 "bentArrow": {"intent": "Rounded right-angle route for a directional turn.", "directionality": ["bent", "horizontal"]},
697 "uturnArrow": {"intent": "Explicit reversal, return, or loop-back path.", "directionality": ["curved", "vertical"]}
698 }
699 },
700 {
701 "id": "circular-arrows",
702 "label": "Circular arrows",
703 "office_category": "block-arrows",
704 "scope": "general",
705 "roles": ["spine", "edge", "accent"],
706 "relationships": ["cycle", "flow", "link"],
707 "directionality": ["radial", "bidirectional"],
708 "aspects": ["square"],
709 "text_capacity": "short",
710 "visual_weight": "strong",
711 "literal_only": false,
712 "recommended_for": [
713 "Closed-loop processes, recurrence, refresh, or circular exchange."
714 ],
715 "avoid_for": [
716 "Do not imply repetition or reversibility unless it exists.",
717 "Do not use as a decorative halo around unrelated content."
718 ],
719 "presets": {
720 "circularArrow": {"intent": "One-direction circular loop or refresh path.", "directionality": ["radial"]},
721 "leftCircularArrow": {"intent": "Counter-oriented circular loop or return path.", "directionality": ["radial"]},
722 "leftRightCircularArrow": {"intent": "Two-way circular exchange or reversible cycle."}
723 }
724 },
725 {
726 "id": "curved-arrows",
727 "label": "Curved and swoosh arrows",
728 "office_category": "block-arrows",
729 "scope": "general",
730 "roles": ["spine", "edge", "accent"],
731 "relationships": ["order", "flow", "convergence"],
732 "directionality": ["curved", "horizontal", "vertical"],
733 "aspects": ["wide", "tall", "flexible"],
734 "text_capacity": "short",
735 "visual_weight": "strong",
736 "literal_only": false,
737 "recommended_for": [
738 "Directional motion that must arc around a focal object or converge from an offset origin."
739 ],
740 "avoid_for": [
741 "Do not add curvature merely to make an arrow more expressive.",
742 "Do not use when the path would falsely imply bypass or convergence."
743 ],
744 "presets": {
745 "curvedRightArrow": {"intent": "Curved path ending to the right.", "directionality": ["curved", "horizontal"], "aspects": ["wide"]},
746 "curvedLeftArrow": {"intent": "Curved path ending to the left.", "directionality": ["curved", "horizontal"], "aspects": ["wide"]},
747 "curvedUpArrow": {"intent": "Curved path ending upward.", "directionality": ["curved", "vertical"], "aspects": ["tall"]},
748 "curvedDownArrow": {"intent": "Curved path ending downward.", "directionality": ["curved", "vertical"], "aspects": ["tall"]},
749 "swooshArrow": {"intent": "Fast tapered sweep for launch, acceleration, or a dynamic handoff.", "directionality": ["curved", "horizontal"], "aspects": ["wide"]}
750 }
751 },
752 {
753 "id": "arrow-callouts",
754 "label": "Arrow callout bodies",
755 "office_category": "block-arrows",
756 "scope": "general",
757 "roles": ["carrier", "callout", "spine"],
758 "relationships": ["annotation", "order", "flow", "contrast"],
759 "directionality": ["horizontal", "vertical", "bidirectional", "multidirectional"],
760 "aspects": ["wide", "tall", "square"],
761 "text_capacity": "medium",
762 "visual_weight": "strong",
763 "literal_only": false,
764 "recommended_for": [
765 "A short message whose body and directional emphasis must be one strong object."
766 ],
767 "avoid_for": [
768 "Do not use as an ordinary content card.",
769 "Do not point in multiple directions unless the message truly applies to each route."
770 ],
771 "presets": {
772 "leftArrowCallout": {"intent": "Text-bearing callout with strong leftward direction.", "directionality": ["horizontal"], "aspects": ["wide"]},
773 "rightArrowCallout": {"intent": "Text-bearing callout with strong rightward direction.", "directionality": ["horizontal"], "aspects": ["wide"]},
774 "upArrowCallout": {"intent": "Text-bearing callout with strong upward direction.", "directionality": ["vertical"], "aspects": ["tall"]},
775 "downArrowCallout": {"intent": "Text-bearing callout with strong downward direction.", "directionality": ["vertical"], "aspects": ["tall"]},
776 "leftRightArrowCallout": {"intent": "Text-bearing callout for horizontal two-way emphasis.", "directionality": ["horizontal", "bidirectional"], "aspects": ["wide"]},
777 "upDownArrowCallout": {"intent": "Text-bearing callout for vertical two-way emphasis.", "directionality": ["vertical", "bidirectional"], "aspects": ["tall"]},
778 "quadArrowCallout": {"intent": "Text-bearing callout for four-way or hub emphasis.", "directionality": ["multidirectional"], "aspects": ["square"]}
779 }
780 },
781 {
782 "id": "equation-operators",
783 "label": "Equation operators",
784 "office_category": "equation-shapes",
785 "scope": "literal",
786 "roles": ["symbol", "node"],
787 "relationships": ["literal", "convergence", "contrast"],
788 "directionality": ["none", "multidirectional"],
789 "aspects": ["square", "wide"],
790 "text_capacity": "none",
791 "visual_weight": "strong",
792 "literal_only": true,
793 "recommended_for": [
794 "An explicit mathematical or logical operator between operands."
795 ],
796 "avoid_for": [
797 "Do not use equation symbols as generic separators or decorative icons.",
798 "Keep operand order and mathematical meaning unambiguous."
799 ],
800 "presets": {
801 "mathPlus": {"intent": "Mathematical addition operator."},
802 "mathMinus": {"intent": "Mathematical subtraction operator."},
803 "mathMultiply": {"intent": "Mathematical multiplication operator."},
804 "mathDivide": {"intent": "Mathematical division operator."},
805 "mathEqual": {"intent": "Mathematical equality operator."},
806 "mathNotEqual": {"intent": "Mathematical inequality operator."}
807 }
808 },
809 {
810 "id": "flowchart-operations",
811 "label": "Flowchart operations",
812 "office_category": "flowchart",
813 "scope": "flowchart",
814 "roles": ["node"],
815 "relationships": ["flow", "order"],
816 "directionality": ["none"],
817 "aspects": ["wide", "flexible"],
818 "text_capacity": "medium",
819 "visual_weight": "moderate",
820 "literal_only": false,
821 "recommended_for": [
822 "Exact conventional operation nodes inside an actual flowchart."
823 ],
824 "avoid_for": [
825 "Do not use flowchart notation as a decorative card vocabulary.",
826 "Do not substitute one operation symbol for another because its contour looks better."
827 ],
828 "presets": {
829 "flowChartProcess": {"intent": "Standard process or operation step."},
830 "flowChartPredefinedProcess": {"intent": "Named subprocess or predefined operation."},
831 "flowChartAlternateProcess": {"intent": "Alternate process step."},
832 "flowChartPreparation": {"intent": "Preparation or initialization step."},
833 "flowChartManualOperation": {"intent": "Operation performed manually."},
834 "flowChartDelay": {"intent": "Delay or waiting period."}
835 }
836 },
837 {
838 "id": "flowchart-routing",
839 "label": "Flowchart decisions and routing",
840 "office_category": "flowchart",
841 "scope": "flowchart",
842 "roles": ["node"],
843 "relationships": ["flow", "link", "convergence"],
844 "directionality": ["none", "multidirectional"],
845 "aspects": ["square", "flexible"],
846 "text_capacity": "short",
847 "visual_weight": "strong",
848 "literal_only": false,
849 "recommended_for": [
850 "Exact branch, merge, junction, or continuation semantics inside an actual flowchart."
851 ],
852 "avoid_for": [
853 "Do not infer routing semantics from appearance alone.",
854 "Do not use these symbols outside a diagram that explains its flow."
855 ],
856 "presets": {
857 "flowChartDecision": {"intent": "Decision or branch point."},
858 "flowChartConnector": {"intent": "On-page continuation connector."},
859 "flowChartOffpageConnector": {"intent": "Continuation to another page or diagram frame."},
860 "flowChartSummingJunction": {"intent": "Summing junction where flows combine."},
861 "flowChartOr": {"intent": "Logical OR junction."},
862 "flowChartCollate": {"intent": "Collate or reconcile inputs into an ordered result."},
863 "flowChartSort": {"intent": "Sort or order operation."},
864 "flowChartExtract": {"intent": "Extract one stream or subset from another."},
865 "flowChartMerge": {"intent": "Merge multiple flow paths into one."}
866 }
867 },
868 {
869 "id": "flowchart-input-output",
870 "label": "Flowchart input and output",
871 "office_category": "flowchart",
872 "scope": "flowchart",
873 "roles": ["node"],
874 "relationships": ["flow"],
875 "directionality": ["none", "horizontal"],
876 "aspects": ["wide", "flexible"],
877 "text_capacity": "medium",
878 "visual_weight": "moderate",
879 "literal_only": false,
880 "recommended_for": [
881 "Exact data-entry or presentation nodes inside an actual flowchart."
882 ],
883 "avoid_for": [
884 "Do not use obsolete media symbols unless the depicted medium is intentional.",
885 "Do not use input/output notation as a general slanted content card."
886 ],
887 "presets": {
888 "flowChartInputOutput": {"intent": "General data input or output."},
889 "flowChartManualInput": {"intent": "Data entered manually."},
890 "flowChartPunchedCard": {"intent": "Punched-card input or a deliberately historical medium."},
891 "flowChartPunchedTape": {"intent": "Punched-tape input or a deliberately historical medium."},
892 "flowChartDisplay": {"intent": "Information shown on a display."}
893 }
894 },
895 {
896 "id": "flowchart-documents",
897 "label": "Flowchart documents",
898 "office_category": "flowchart",
899 "scope": "flowchart",
900 "roles": ["node"],
901 "relationships": ["flow", "membership"],
902 "directionality": ["none"],
903 "aspects": ["wide", "flexible"],
904 "text_capacity": "medium",
905 "visual_weight": "moderate",
906 "literal_only": false,
907 "recommended_for": [
908 "Document artifacts that enter, leave, or are produced by an actual flowchart."
909 ],
910 "avoid_for": [
911 "Do not use the wavy bottom as a generic decorative card edge."
912 ],
913 "presets": {
914 "flowChartDocument": {"intent": "Single document artifact."},
915 "flowChartMultidocument": {"intent": "Multiple document artifacts or a document set."}
916 }
917 },
918 {
919 "id": "flowchart-storage",
920 "label": "Flowchart storage",
921 "office_category": "flowchart",
922 "scope": "flowchart",
923 "roles": ["node"],
924 "relationships": ["flow", "membership"],
925 "directionality": ["none"],
926 "aspects": ["wide", "tall", "flexible"],
927 "text_capacity": "medium",
928 "visual_weight": "moderate",
929 "literal_only": false,
930 "recommended_for": [
931 "Exact storage-media semantics inside an actual flowchart."
932 ],
933 "avoid_for": [
934 "Do not choose a storage symbol by silhouette alone.",
935 "Use historical media shapes only when that distinction matters."
936 ],
937 "presets": {
938 "flowChartInternalStorage": {"intent": "Internal storage or memory."},
939 "flowChartOfflineStorage": {"intent": "Offline storage."},
940 "flowChartOnlineStorage": {"intent": "Online or directly accessible storage."},
941 "flowChartMagneticTape": {"intent": "Sequential-access magnetic tape storage."},
942 "flowChartMagneticDisk": {"intent": "Magnetic disk storage."},
943 "flowChartMagneticDrum": {"intent": "Magnetic drum or direct-access historical storage."}
944 }
945 },
946 {
947 "id": "flowchart-terminator",
948 "label": "Flowchart terminator",
949 "office_category": "flowchart",
950 "scope": "flowchart",
951 "roles": ["node"],
952 "relationships": ["flow", "order"],
953 "directionality": ["none"],
954 "aspects": ["wide"],
955 "text_capacity": "medium",
956 "visual_weight": "moderate",
957 "literal_only": false,
958 "recommended_for": [
959 "Start, end, or terminal state in an actual flowchart."
960 ],
961 "avoid_for": [
962 "Do not use as a generic pill-shaped label when no terminal state is intended."
963 ],
964 "presets": {
965 "flowChartTerminator": {"intent": "Start, end, or terminal state."}
966 }
967 },
968 {
969 "id": "stars",
970 "label": "Stars",
971 "office_category": "stars-and-banners",
972 "scope": "literal",
973 "roles": ["symbol", "accent", "label"],
974 "relationships": ["literal", "hierarchy", "contrast"],
975 "directionality": ["radial"],
976 "aspects": ["square"],
977 "text_capacity": "short",
978 "visual_weight": "emblematic",
979 "literal_only": true,
980 "recommended_for": [
981 "Literal rating, award, sparkle, burst, or one exceptional focal badge."
982 ],
983 "avoid_for": [
984 "Do not use as a routine bullet, card, or unexplained attention device.",
985 "High-point stars carry burst or sparkle energy and are poor text carriers."
986 ],
987 "presets": {
988 "star4": {"intent": "Four-point sparkle or compass-like accent."},
989 "star5": {"intent": "Conventional rating, award, or favorite star."},
990 "star6": {"intent": "Six-point geometric star or literal emblem."},
991 "star7": {"intent": "Seven-point unusual emblem or focal burst."},
992 "star8": {"intent": "Eight-point badge, compass, or controlled burst."},
993 "star10": {"intent": "Ten-point seal-like badge or radial emphasis."},
994 "star12": {"intent": "Twelve-point seal-like badge or radial emphasis."},
995 "star16": {"intent": "Dense burst for exceptional emphasis."},
996 "star24": {"intent": "Very dense sparkle or burst accent."},
997 "star32": {"intent": "Maximum-density sparkle or burst accent."}
998 }
999 },
1000 {
1001 "id": "irregular-seals",
1002 "label": "Irregular seals and explosions",
1003 "office_category": "stars-and-banners",
1004 "scope": "literal",
1005 "roles": ["symbol", "accent", "label"],
1006 "relationships": ["literal", "contrast"],
1007 "directionality": ["radial"],
1008 "aspects": ["square"],
1009 "text_capacity": "short",
1010 "visual_weight": "emblematic",
1011 "literal_only": true,
1012 "recommended_for": [
1013 "A literal burst, warning, sale seal, or exceptional interruption."
1014 ],
1015 "avoid_for": [
1016 "Do not use for ordinary emphasis or as a recurring section badge.",
1017 "Do not place long text inside the irregular contour."
1018 ],
1019 "presets": {
1020 "irregularSeal1": {"intent": "Irregular burst with a coarser explosion edge."},
1021 "irregularSeal2": {"intent": "Irregular burst with a denser explosion edge."}
1022 }
1023 },
1024 {
1025 "id": "straight-ribbons",
1026 "label": "Straight ribbons",
1027 "office_category": "stars-and-banners",
1028 "scope": "general",
1029 "roles": ["label", "carrier", "accent"],
1030 "relationships": ["hierarchy", "contrast", "order"],
1031 "directionality": ["horizontal", "bidirectional"],
1032 "aspects": ["wide"],
1033 "text_capacity": "medium",
1034 "visual_weight": "strong",
1035 "literal_only": false,
1036 "recommended_for": [
1037 "One ceremonial title, milestone, award label, or section banner."
1038 ],
1039 "avoid_for": [
1040 "Do not use as a generic content card or repeat on every page.",
1041 "Do not imply directional arrows from ribbon tails unless the reading path supports it."
1042 ],
1043 "presets": {
1044 "ribbon": {"intent": "Banner with the center panel raised above its folded ends.", "directionality": ["horizontal"]},
1045 "ribbon2": {"intent": "Banner with the center panel lowered below its folded ends.", "directionality": ["horizontal"]},
1046 "leftRightRibbon": {"intent": "Straight ribbon with outward left and right tail emphasis."}
1047 }
1048 },
1049 {
1050 "id": "curved-ribbons",
1051 "label": "Curved ribbons",
1052 "office_category": "stars-and-banners",
1053 "scope": "general",
1054 "roles": ["label", "carrier", "accent"],
1055 "relationships": ["hierarchy", "contrast"],
1056 "directionality": ["curved", "horizontal"],
1057 "aspects": ["wide"],
1058 "text_capacity": "medium",
1059 "visual_weight": "strong",
1060 "literal_only": false,
1061 "recommended_for": [
1062 "A single arched title or badge whose curvature is part of the page composition."
1063 ],
1064 "avoid_for": [
1065 "Do not bend ordinary labels for decoration alone.",
1066 "Do not use when the curve conflicts with the page's reading axis."
1067 ],
1068 "presets": {
1069 "ellipseRibbon": {"intent": "Curved ribbon arcing upward around a central label."},
1070 "ellipseRibbon2": {"intent": "Curved ribbon arcing downward around a central label."}
1071 }
1072 },
1073 {
1074 "id": "scrolls",
1075 "label": "Scrolls",
1076 "office_category": "stars-and-banners",
1077 "scope": "literal",
1078 "roles": ["label", "carrier", "symbol"],
1079 "relationships": ["literal", "hierarchy"],
1080 "directionality": ["horizontal", "vertical"],
1081 "aspects": ["wide", "tall"],
1082 "text_capacity": "medium",
1083 "visual_weight": "emblematic",
1084 "literal_only": true,
1085 "recommended_for": [
1086 "A literal scroll, proclamation, archival document, or deliberately historical motif."
1087 ],
1088 "avoid_for": [
1089 "Do not use a scroll as a generic playbook, process card, or long-form content container.",
1090 "Do not select it merely because the topic mentions a document."
1091 ],
1092 "presets": {
1093 "verticalScroll": {"intent": "Tall rolled document or vertical historical proclamation.", "directionality": ["vertical"], "aspects": ["tall"]},
1094 "horizontalScroll": {"intent": "Wide rolled document or horizontal historical proclamation.", "directionality": ["horizontal"], "aspects": ["wide"]}
1095 }
1096 },
1097 {
1098 "id": "waves",
1099 "label": "Waves",
1100 "office_category": "stars-and-banners",
1101 "scope": "literal",
1102 "roles": ["accent", "spine", "symbol"],
1103 "relationships": ["literal", "flow", "cycle"],
1104 "directionality": ["curved", "horizontal"],
1105 "aspects": ["wide"],
1106 "text_capacity": "none",
1107 "visual_weight": "strong",
1108 "literal_only": true,
1109 "recommended_for": [
1110 "Literal wave, oscillation, fluid motion, or one continuous undulating accent."
1111 ],
1112 "avoid_for": [
1113 "Do not use as an arbitrary section divider.",
1114 "Do not imply volatility or oscillation unless the content supports it."
1115 ],
1116 "presets": {
1117 "wave": {"intent": "Single undulating band for literal wave or oscillation."},
1118 "doubleWave": {"intent": "Double undulating band for stronger ripple or oscillation."}
1119 }
1120 },
1121 {
1122 "id": "leader-callouts",
1123 "label": "Leader-line callouts",
1124 "office_category": "callouts",
1125 "scope": "general",
1126 "roles": ["callout", "label", "edge"],
1127 "relationships": ["annotation", "link"],
1128 "directionality": ["callout", "bent"],
1129 "aspects": ["flexible"],
1130 "text_capacity": "medium",
1131 "visual_weight": "moderate",
1132 "literal_only": false,
1133 "recommended_for": [
1134 "A short annotation that must visibly point to one object or region.",
1135 "Choose bend count and border/accent treatment from the routing and emphasis need."
1136 ],
1137 "avoid_for": [
1138 "Do not use as a free-standing content card with no target.",
1139 "Do not add bends or accent bars that carry no routing or hierarchy purpose."
1140 ],
1141 "presets": {
1142 "callout1": {"intent": "Unbordered callout with a straight leader."},
1143 "callout2": {"intent": "Unbordered callout with one bent leader."},
1144 "callout3": {"intent": "Unbordered callout with a double-bent leader."},
1145 "accentCallout1": {"intent": "Straight-leader callout with an accent bar but no full border."},
1146 "accentCallout2": {"intent": "One-bend callout with an accent bar but no full border."},
1147 "accentCallout3": {"intent": "Double-bend callout with an accent bar but no full border."},
1148 "borderCallout1": {"intent": "Bordered callout with a straight leader."},
1149 "borderCallout2": {"intent": "Bordered callout with one bent leader."},
1150 "borderCallout3": {"intent": "Bordered callout with a double-bent leader."},
1151 "accentBorderCallout1": {"intent": "Bordered straight-leader callout with an accent bar."},
1152 "accentBorderCallout2": {"intent": "Bordered one-bend callout with an accent bar."},
1153 "accentBorderCallout3": {"intent": "Bordered double-bend callout with an accent bar."}
1154 }
1155 },
1156 {
1157 "id": "wedge-callouts",
1158 "label": "Wedge and thought callouts",
1159 "office_category": "callouts",
1160 "scope": "general",
1161 "roles": ["callout", "carrier", "label"],
1162 "relationships": ["annotation", "link"],
1163 "directionality": ["callout"],
1164 "aspects": ["flexible"],
1165 "text_capacity": "medium",
1166 "visual_weight": "strong",
1167 "literal_only": false,
1168 "recommended_for": [
1169 "A speech, thought, or annotation body whose wedge visibly identifies the target."
1170 ],
1171 "avoid_for": [
1172 "Do not use without a real target.",
1173 "Use the cloud variant only for thought, uncertainty, or a literal cloud context."
1174 ],
1175 "presets": {
1176 "wedgeRectCallout": {"intent": "Rectangular annotation body with a pointed wedge to the target."},
1177 "wedgeRoundRectCallout": {"intent": "Rounded rectangular annotation body with a pointed wedge."},
1178 "wedgeEllipseCallout": {"intent": "Oval speech-like annotation body with a pointed wedge."},
1179 "cloudCallout": {"intent": "Cloud-shaped thought callout with a dotted tail."}
1180 }
1181 },
1182 {
1183 "id": "action-controls",
1184 "label": "Action-button controls",
1185 "office_category": "action-buttons",
1186 "scope": "navigation",
1187 "roles": ["control", "symbol"],
1188 "relationships": ["navigation", "literal"],
1189 "directionality": ["none", "horizontal"],
1190 "aspects": ["square", "flexible"],
1191 "text_capacity": "short",
1192 "visual_weight": "strong",
1193 "literal_only": false,
1194 "recommended_for": [
1195 "Interactive presentation controls when the matching click or hover action will also be assigned."
1196 ],
1197 "avoid_for": [
1198 "The preset supplies visual geometry only; it does not create navigation, media, or hyperlink behavior.",
1199 "Do not use action-button chrome as a decorative icon set in a noninteractive deck."
1200 ],
1201 "presets": {
1202 "actionButtonBlank": {"intent": "Blank action-button body for a custom control label or icon."},
1203 "actionButtonHome": {"intent": "Home navigation control."},
1204 "actionButtonHelp": {"intent": "Help control."},
1205 "actionButtonInformation": {"intent": "Information control."},
1206 "actionButtonForwardNext": {"intent": "Forward or next navigation control."},
1207 "actionButtonBackPrevious": {"intent": "Back or previous navigation control."},
1208 "actionButtonEnd": {"intent": "End or last-slide navigation control."},
1209 "actionButtonBeginning": {"intent": "Beginning or first-slide navigation control."},
1210 "actionButtonReturn": {"intent": "Return navigation control."},
1211 "actionButtonDocument": {"intent": "Document-opening control."},
1212 "actionButtonSound": {"intent": "Sound playback control."},
1213 "actionButtonMovie": {"intent": "Movie or video playback control."}
1214 }
1215 }
1216 ]
1217 }
1218
1218 lines JSON