Version 2.1.0

October 26, 2026

Added

  • All in a component's Examples: every story on one page, in file order, each under its name, so a whole set (every button colour, every size) can be compared at once. It's there for any component with two or more stories, in the control panel and on share links. Each story keeps its own settings, so the Settings controls are switched off while it's chosen. The story name * is now reserved for it.

Version 2.0.1

October 23, 2026

Fixed

  • Craft no longer logs "Attempting to set settings on a plugin that doesn't have settings: component-viewer" on every request and console command. config/component-viewer.php is now read as the plugin's settings (a Settings model), which is how Craft treats a file named after a plugin's handle. Nothing in the file changes; config/component-library.php is still read, with its deprecation warning.

Changed

  • New plugin icon: a white glyph on a black circle, with a white icon mask for the control panel nav.

Version 2.0.0

October 19, 2026

Changed

  • First stable release of v2, licensed under the Craft License.
  • Renamed from Component Library to Component Viewer, because the Plugin Store already has a plugin with the component-library handle. The package is now webdna/component-viewer, the handle component-viewer, the namespace webdna\componentviewer, the config file config/component-viewer.php, the console commands component-viewer/check and component-viewer/make, and the control-panel section admin/component-viewer. Share links now start component-viewer/share/. See Upgrading, which also covers a site on an earlier 2.0 beta.

Added

  • A site on an earlier 2.0 beta keeps its share links and its granted permissions when it installs the renamed plugin: the install takes over the old share table and permissions, links sent under component-library/share/ still open, and config/component-library.php is still read, with a deprecation warning, until it is renamed.
  • v1's config/app.php registration now stops with instructions, rather than a missing class.

Version 2.0.0-beta.2

September 29, 2026

Added

  • A plugin icon, for the Plugins settings page, the Plugin Store and the control-panel nav.

Version 2.0.0-beta.1

September 29, 2026

A rewrite as a Craft 5 plugin. See Upgrading from v1.

Added

  • A control-panel library: a full-screen workspace with a searchable tree, a preview on each site's own styling, desktop, tablet and phone devices with rotate, and a drawer of settings, examples, props, source and notes. Every view has its own address.
  • A preview Mode dropdown for the background (the site's own, light or dark), and a background key in the component tag for the one a component opens on.
  • A Props tab listing each component's whole API from its tag, control: false for code-only props that get no control, and an icon prop type that picks by name from one icons folder.
  • Share links: expiring, revocable addresses that open the library with no account. A new link's address opens in a copy prompt, and Copy link shows an active link's again.
  • The {% component %} tag, which describes a component in its own file and renders nothing.
  • Stories in <name>.stories.twig, which can embed components and fill their blocks.
  • component-library/check [--strict], for automated builds.
  • component-library/make <category>/<name> [--root=<n>] [--folder].
  • The resolver, a stable API for finding a site's version of any file from PHP.
  • Permissions: Access Component Library and Create and revoke share links.
  • A Component library index option under Clear Caches.

Changed

  • Installed as a plugin, not listed as a module in config/app.php, which now throws an error naming the line to remove.
  • Requires Craft 5 and PHP 8.2.
  • The component list is built once per site and cached, instead of on every @handle include.
  • v1's .config.json files are read only with 'legacy' => true in config/component-library.php.
  • Previews render as a guest, in a frame on the chosen site's own base URL.
  • Values typed into the library reach a component as escaped text, and only for declared settings.
  • A legacy readme.md is shown as Markdown and no longer rendered as Twig.

Removed

  • The front-end component-library and component-library/render pages and the get-component-info action.
  • The COMPONENT_LIBRARY_VIEW_KEY view key. Share links replace it.
  • The navigation config key and Formatters.
  • {ref:}, {entry:} and {asset:} placeholders in legacy configs. The check reports each one.
  • Craft 3 and 4 support.

Security

  • The four issues from the September 2026 review cannot recur: Twig injection from typed values, element disclosure through placeholders, path traversal through ?site=, and a view key that let anyone in when unset.