Open Symbolsnpm

Versioning policy

All packages share one version number (lockstep, managed with Changesets). Until 1.0.0 the project is on 0.x, where breaking changes are allowed on a minor release and are always called out in the changelog. The current npm release is 0.2.0; the SwiftPM and Maven wrappers are at 0.1.0.

What is a breaking change

Change0.x≥ 1.0
Adding a field to IconDefinition, LayerDefinition, RenderInstruction or EffectOptionsminorminor
Removing or renaming a field, or changing its meaning or unitsminor, announcedmajor
Adding iconsminorminor
Renaming an iconminor; old name kept as an aliasminor; alias kept for one major
Removing an iconminor, announcedmajor, after a deprecation release
Changing how an icon animates (frame output)patch or minor, listed with the affected icon count from pnpm frames:acceptminor, listed
Changing a preset's meaning or default optionsminor, announcedmajor
Dropping a supported runtime (Node, React, browser) from the support matrixminor, announcedmajor

Reserved surface

Some schema fields and props exist for later releases and are accepted but ignored today: renderingModes, directionality, localization, extensions, weightBehavior.masters, renderingModeHints, and the props locale and rtl. Lighting them up is additive.

Experimental surface at 0.x

replace transitions are exported but outside the public contract: the types stay, the behaviour may change without a major bump, and they are not carried to other platforms. Multi-tone rendering is held back from this release: renderingMode takes a wider union in the types, but "monochrome" is the only supported value and anything else may change or disappear without a major bump.

Motion changes and the visual canon

The repository pins every icon × preset frame hash and a Linux screenshot canon. A release that moves frames regenerates both and records the moved-icon count, so consumers can tell a data refresh from a code change.