Skip to content

samvera-labs/clover-iiif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clover IIIF

Extensible IIIF front-end toolkit and Manifest viewer. Accessible. Composable. Open Source.

Clover IIIF is a suite of Manifest and Collection components combined with lower-level IIIF Presentation 3.0 API UI components. Designed with a focus on accessibility, customization, and developer experience. You can use Clover IIIF to build your own custom IIIF-fluent web interfaces while still using the full power of the IIIF Presentation 3.0 API.


Documentation

For full documentation, visit samvera-labs.github.io/clover-iiif.

Compatibility

  • React: 18 and 19 are supported (react and react-dom ^18.2.0 || ^19.0.0).
  • Node: 20.5.0 (see .tool-versions).

Test Compatibility Locally

You can validate React 19 and 18 + Next builds using the included sidecar examples:

# 1) Build this library first (outputs to dist/)
npm run build

# 2) Create a local tarball and install it in the example apps
PKG=$(npm pack --silent)

# React 19 + Next 15
cd examples/next-react19
npm i ../../$PKG
npm i  # install app deps
npm run build

# React 18 + Next 14
cd ../next-react18
npm i ../../$PKG
npm i
npm run build

If you want to test different Next/React versions, adjust examples/next-react19/package.json or run:

cd examples/next-react19
npm i next@14.2.18 react@18.3.1 react-dom@18.3.1
npm run build

Contributing

We welcome all contributions. Please follow our contributing guidelines. If you're working on a pull request for this project, create a feature branch off of main.

Development

Clover IIIF front-end development occurs within Next.js based Nextra documentation. The default url for the local server is http://localhost:3000, unless the 3000 port is in use.

npm install
npm run dev

Testing

Clover IIIF utilizes vitest for unit testing.

# Run tests
npm run test

# Run coverage report on the tests
npm run coverage

E2E (HTML WC example)

You can quickly validate the plain HTML Web Component example with Playwright:

# 1) Ensure Playwright browsers are installed (one-time)
npm run e2e:install

# 2) Run the HTML WC test (serves playwright/html on :3002 automatically)
npm run e2e:html

Tip: If port 3002 is in use, set custom env vars:

BASE_URL=http://localhost:4000 \
WEB_SERVER_CMD="python3 -m http.server 4000 --directory playwright/html" \
npx playwright test e2e/wc.spec.ts --config=playwright/playwright.config.ts

Code Quality

Clover IIIF utilizes ESLint and Prettier for code quality. Files will be automatically formatted and "fixed" to Prettier and ESLint's configurations when making a commit as part of lint-staged config. The following commands are also directly available:

# Run ESLint
npm run lint

# Run Prettier check
npm run prettier

# Run Prettier fix
npm run prettier:fix

# Run TypeScript checks
npm run typecheck

Releases

The Clover Suite recently released v2. The biggest change from v1.x.x to v2. is that Clover is now more than just a Viewer component. You can still use the Viewer component as you may have previously by following the Installation and Usage instructions.

License

This project is available under the MIT License.

About

Extensible IIIF front-end toolkit and Manifest viewer. Accessible. Composable. Open Source.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 16