Skip to content

Fast.Element.Plus.Icons runtime contract

Runtime and package contract

  • Runtime platforms: ES2022 modern browsers, WebViews and Vue 3 applications.
  • Package format: one public named-export ESM entry for package managers and one separately minified IIFE entry for CDN use; CommonJS and UMD are not shipped.
  • Framework boundary: Vue remains external to both builds and is a required peer in ^3.5.11.
  • Component behavior: every export renders one SVG root with its authored viewBox and accepts standard Vue fallthrough attributes on that root.
  • Source integrity: icons/*.svg is the source of truth; pnpm generate updates committed component sources and pnpm generate:check detects drift.
  • Publishing: the repository root is the only package, dist/ is the only build output and package.json#exports is the complete public path whitelist.

Importing the package does not access the DOM, mutate application-global state or register components. The package does not polyfill DOM, SVG, Promise or other platform capabilities.

Public API policy

  • The package root exposes one named Vue component for every repository SVG.
  • Components define no package-specific Props, Emits, Slots or Expose methods.
  • Applications own accessible labels, roles, dimensions, colors, classes, styles and event listeners.
  • Explicit child fills in multicolor illustrations take precedence over inherited root fill and text color.

CDN contract

dist/index.global.min.js requires globalThis.Vue and exposes the component set as globalThis.FastElementPlusIconsVue. Applications are responsible for exact version selection, CSP, SRI and asset hosting.

Security boundary

The generator rejects script elements, foreign objects, inline event handlers and external or data URL references. This validation protects repository generation and is not a general-purpose SVG sanitizer. Only trusted, reviewed SVG files may be added.

Generator input boundary

The generator accepts a static, self-contained SVG subset from trusted repository assets. Text braces are escaped instead of becoming TSX expressions; CDATA, local-fragment references and viewBox retain their meaning. Scripts, events, external resources, dynamic properties and unsupported markup are rejected. This is not a general-purpose SVG sanitizer. Normalized output of the current 68 SVG inputs is unchanged.