https://github.com/kitconcept/volto-logos-block
https://github.com/kitconcept/volto-logos-block
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kitconcept/volto-logos-block
- Owner: kitconcept
- License: mit
- Created: 2023-11-21T14:18:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-15T11:34:44.000Z (about 1 year ago)
- Last Synced: 2025-04-24T04:56:07.653Z (about 1 year ago)
- Language: JavaScript
- Size: 6.34 MB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README

# Volto Logos Block (@kitconcept/volto-logos-block)
A logos block for Volto
[](https://www.npmjs.com/package/@kitconcept/volto-logos-block)
[](https://kitconcept.github.io/volto-logos-block/)
[](https://github.com/kitconcept/volto-logos-block/actions/workflows/code.yml)
[](https://github.com/kitconcept/volto-logos-block/actions/workflows/unit.yml)
The Volto Logos Block allows editors to add a row of up to 6 logos to a page. The logos are displayed in a responsive grid layout, automatically adjusting the number of logos per row based on the available space. This block is designed to be flexible and easy to use, making it a great addition to any Volto project.
The logos block matches the style of the existing Logos footer slot in VLT 6.
> [!WARNING]
> This package depends on `@kitconcept/volto-light-theme` and Volto 18 or later.
> It could be used without it, but you would have to provide your own block's view component and the logos container styling.
## Features
- Flexible Logo Display – Supports adding logos and automatically adjusting based on available space.
- Responsive Layout – Adapts dynamically to different screen sizes to ensure logos are displayed optimally.
- Seamless Volto Integration – Works smoothly within existing Volto using VLT projects
## Compatibility
From version 3.x.x this add-on requires `@kitconcept/volto-light-theme` and Volto 18 or later.
There is also a hard breaking in the data stored in the block.
No migration is provided, so you have to remove the block and add it again or provide your own migration.
The data structure in versions <=2.x.x was using the usual blocks in block data structure (`blocks`/`blocks_layout`).
The data structure in version 3.x.x is using a simpler arrayed `object_list` widget data structure.
This is the compatibility matrix.
| volto-logos-block version | Volto version | VLT version |
|---------------------------|---------------|--------------|
| 2.x.x | 17, 18 | Not required |
| 3.x.x | 18 | 6.x.x |
## Installation
To install your project, you must choose the method appropriate to your version of Volto.
### Volto 18 and later
Add `@kitconcept/volto-logos-block` to your `package.json`:
```json
"dependencies": {
"@kitconcept/volto-logos-block": "*"
}
```
Add `@kitconcept/volto-logos-block` to your `volto.config.js`:
```javascript
const addons = ['@kitconcept/volto-logos-block'];
```
If this package provides a Volto theme, and you want to activate it, then add the following to your `volto.config.js`:
```javascript
const theme = '@kitconcept/volto-logos-block';
```
## Test installation
Visit http://localhost:3000/ in a browser, login, and check the awesome new features.
## Development
The development of this add-on is done in isolation using a new approach using pnpm workspaces and latest `mrs-developer` and other Volto core improvements.
For this reason, it only works with pnpm and Volto 18 (currently in alpha).
### Pre-requisites
- [Node.js](https://6.docs.plone.org/install/create-project.html#node-js)
- [Make](https://6.docs.plone.org/install/create-project.html#make)
- [Docker](https://6.docs.plone.org/install/create-project.html#docker)
## Usage
1. Go to http://localhost:3000, login, add the logos you want to use as image content objects to your site.
2. Create a new page. The logos block will show up in the Volto blocks chooser. Add it to the page
3. Select the number of items
4. Choose the Logos you uploaded earlier as content
### Make convenience commands
Run `make help` to list the available commands.
```text
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
```
### Development environment set up
Install package requirements.
```shell
make install
```
### Start developing
Start the backend.
```shell
make backend-docker-start
```
In a separate terminal session, start the frontend.
```shell
make start
```
### Lint code
Run ESlint, Prettier, and Stylelint in analyze mode.
```shell
make lint
```
### Format code
Run ESlint, Prettier, and Stylelint in fix mode.
```shell
make format
```
### i18n
Extract the i18n messages to locales.
```shell
make i18n
```
### Unit tests
Run unit tests.
```shell
make test
```
### Run Cypress tests
Run each of these steps in separate terminal sessions.
In the first session, start the frontend in development mode.
```shell
make acceptance-frontend-dev-start
```
In the second session, start the backend acceptance server.
```shell
make acceptance-backend-start
```
In the third session, start the Cypress interactive test runner.
```shell
make acceptance-test
```
## License
The project is licensed under the MIT license.
## Credits

The development of this plugin has been kindly sponsored by the [German Aerospace Center (DLR)](https://dlr.de).