Component contract
All icon components share the same contract:
- render exactly one root
<svg>; - preserve the authored
viewBox, groups, paths, fills and strokes; - accept standard Vue fallthrough attributes on the root SVG, including
class,style,width,height,fill,stroke,role,aria-*,data-*and event listeners; - define no package-specific props, emitted events, slots or exposed instance methods;
- have no import-time browser access and no global registration side effect.
Most single-color icons can be styled through fill: currentColor. Explicit fills inside multicolor illustrations remain unchanged.
