An image editor, based on React Advanced Image Cropper, to be used with Plone and Volto.
This add-on modifies Volto's File widget, providing an image editor with the following actions:
- Crops the image. Supports many aspect ratios
- Rotates the image in 90-degree increments
- Flips the image horizontally or vertically
- Adjusts the image saturation
- Adjusts the image brightness
- Adjusts the image contrast
- Adjusts the image hue
Note: This add-on requires Volto 18 or newer. Follow your project's official workflow for dependency management.
To install this add-on, edit the package.json of your policy package (usually located in packages/<policy-package>/package.json):
"addons": [
"@plone-collective/volto-image-editor"
],
"dependencies": {
"@plone-collective/volto-image-editor": "*"
}After editing, follow your project's standard process to update dependencies and rebuild.
Visit http://localhost:3000/ in a browser, log in, and verify that the image editor features are available in the File widget.
All UI strings in this add-on are translatable. Use the provided make i18n command to extract and sync translation messages.
Development for this add-on uses pnpm workspaces, the latest mrs-developer, and Volto core improvements. It is compatible only with pnpm and Volto 18.
- An operating system that runs all the requirements mentioned.
- nvm
- Node.js and pnpm 22
- Make
- Git
- Docker (optional)
-
Clone this repository, then change your working directory.
git clone [email protected]:collective/volto-image-editor.git cd volto-image-editor
-
Install this code base.
make install
Run make help to list the available commands.
help Show this help
install Installs the add-on in a development environment
start Starts Volto, allowing reloading of the add-on during development
build Build a production bundle for distribution of the project with the add-on
i18n Sync i18n
ci-i18n Check if i18n is not synced
format Format codebase
lint Lint, or catch and remove problems, in code base
release Release the add-on on npmjs.org
release-dry-run Dry-run the release of the add-on on npmjs.org
test Run unit tests
ci-test Run unit tests in CI
backend-docker-start Starts a Docker-based backend for development
storybook-start Start Storybook server on port 6006
storybook-build Build Storybook
acceptance-frontend-dev-start Start acceptance frontend in development mode
acceptance-frontend-prod-start Start acceptance frontend in production mode
acceptance-backend-start Start backend acceptance server
ci-acceptance-backend-start Start backend acceptance server in headless mode for CI
acceptance-test Start Cypress in interactive mode
ci-acceptance-test Run cypress tests in headless mode for CI
Install package requirements:
make installStart the backend:
make backend-docker-startIn a separate terminal session, start the frontend:
make startRun ESLint, Prettier, and Stylelint in analyze mode:
make lintRun ESLint, Prettier, and Stylelint in fix mode:
make formatExtract the i18n messages to locales:
make i18nRun unit tests:
make testRun each of these steps in separate terminal sessions:
In the first session, start the frontend in development mode:
make acceptance-frontend-dev-startIn the second session, start the backend acceptance server:
make acceptance-backend-startIn the third session, start the Cypress interactive test runner:
make acceptance-testThis project is licensed under the MIT license.
The development of this add-on was supported by:
Generated using Cookieplone (0.9.9) and cookieplone-templates (62683ae) on 2025-10-14 23:13:02.127574. A special thanks to all contributors and supporters!
