Growth Data — annotation and interface icons
Brand system 1.1 | October 2026

CONTENTS
56 annotation types in seven groups; 18 interface actions; one unknown-type fallback.
Individual SVG files, sprite.svg, catalog.json, catalog.js, icons.css, and a standalone
embed-example.html. The complete upstream Lucide license is in LICENSE.txt and
included with every individual SVG. Preserve these notices when redistributing.

SOURCE
Lucide / lucide-static 1.66.0, https://lucide.dev
ISC license with the upstream MIT notices for Feather-derived icons.
Original geometry is retained. catalog.json records the upstream icon name and
package archive hash. The Growth Data Cutout logo remains separate from this set.

USING ICONS IN EMBEDDED CARDS
Use these in your own rendered HTML cards or embedded app surfaces, including
surfaces intended for chat interfaces. This is an artwork kit, not a ChatGPT,
Claude, or Grok integration. Use each host's supported rendering mechanism.
Plain chat text and Markdown may not render raw SVG; use a supported image format
or retain the text label when inline SVG is not available.

Paste a standalone SVG inline to inherit the surrounding text color. No network,
icon font, npm dependency, or external script is needed for an individual SVG.
Default size: 20px. Dense lists: 16px. Roomier controls: 24px. Preview at 32px is
also provided. The 24-unit viewBox and 2-unit stroke scale with the icon. Avoid
mixing filled and outline styles. Use currentColor and the host's typeface.

The SVGs are decorative by default (aria-hidden=true, focusable=false). Put a
visible text label beside annotation icons. For an icon-only action, label its
button, for example <button aria-label="Copy source link">[SVG]</button>.
For an informative SVG without adjacent text, remove aria-hidden, add role="img",
and provide a title with a unique id and aria-labelledby. For SVG loaded using
<img>, provide alt text; an external image cannot inherit its parent's currentColor.

SPRITE EXAMPLE (same-origin web surface)
<svg width="20" height="20" aria-hidden="true" focusable="false">
  <use href="sprite.svg#podcast"></use>
</svg>
<span>Podcast</span>

Use inline SVG if the host's content policy blocks external sprite references.
Keep source dates, evidence links, and labels visible. An icon describes a type,
not confidence, verification, sentiment, or causal impact.

TYPE MAPPING
catalog.json is the machine-readable presentation taxonomy. Each annotation has
an id, label, group, upstream icon, description, search keywords, SVG filename,
and SVG body. The type id is also the SVG sprite symbol id.
The existing provider type tech_added maps directly to tech_added.svg.
Keep the original provider type and evidence; explicitly map other provider types
to these presentation ids. An unrecognized value maps to unknown.svg. Do not infer
causality or verified status from an icon. The catalog does not promise provider
coverage or change the API's annotation schema.

PAGE DATA
catalog.js exposes window.GrowthDataIcons for the static brand page. For a custom
app, import catalog.json or use individual SVGs; loading catalog.js is optional.
All examples contain illustrative data. embed-example.html is self-contained and
uses the system typeface, currentColor, and the system light/dark preference.
