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.phpis now read as the plugin's settings (aSettingsmodel), which is how Craft treats a file named after a plugin's handle. Nothing in the file changes;config/component-library.phpis 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-libraryhandle. The package is nowwebdna/component-viewer, the handlecomponent-viewer, the namespacewebdna\componentviewer, the config fileconfig/component-viewer.php, the console commandscomponent-viewer/checkandcomponent-viewer/make, and the control-panel sectionadmin/component-viewer. Share links now startcomponent-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, andconfig/component-library.phpis still read, with a deprecation warning, until it is renamed. - v1's
config/app.phpregistration 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
backgroundkey in thecomponenttag for the one a component opens on. - A Props tab listing each component's whole API from its tag,
control: falsefor code-only props that get no control, and aniconprop type that picks by name from oneiconsfolder. - 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
@handleinclude. - v1's
.config.jsonfiles are read only with'legacy' => trueinconfig/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.mdis shown as Markdown and no longer rendered as Twig.
Removed
- The front-end
component-libraryandcomponent-library/renderpages and theget-component-infoaction. - The
COMPONENT_LIBRARY_VIEW_KEYview key. Share links replace it. - The
navigationconfig 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.