Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/willnguyen1312/zoom-image

A little yet powerful framework agnostic headless library to zoom images on the web
https://github.com/willnguyen1312/zoom-image

frameworks headless nextjs preact qwik react remix solidjs svelte vanilla-js vue zoom

Last synced: about 1 month ago
JSON representation

A little yet powerful framework agnostic headless library to zoom images on the web

Awesome Lists containing this project

README

        


Github Checks
Github Stars


- [Zoom Image](#zoom-image)
- [Development](#development)
- [Commands](#commands)
- [With Docs](#with-docs)
- [With Preact](#with-preact)
- [With React](#with-react)
- [With Remix](#with-remix)
- [With Next](#with-next)
- [With Svelte](#with-svelte)
- [With Vanilla JS](#with-vanilla-js)
- [With Vue](#with-vue)
- [With Solid](#with-solid)
- [With Qwik](#with-qwik)
- [Relevant projects](#relevant-projects)
- [Sponsor](#sponsor)
- [License](#license)

## Zoom Image

A little yet powerful framework agnostic headless library to zoom images on the web. It is a typical experience on
e-commerce sites. Examples are written with Preact, React, Svelte, Vanilla JS and Vue.

- ✅ Zoom on wheel (scroll & pinch)
- ✅ Zoom on hover
- ✅ Zoom on move
- ✅ Zoom on click

## Development

```bash
git clone https://github.com/willnguyen1312/zoom-image
cd zoom-image
pnpm install
pnpm build
```

## Commands

Please change all versions from "latest" to "workspace\*" inside the example project you want to start, run pnpm install
before executing one of the commands below. I wanted to keep those packages for Stackblitz usage so I use "latest",
unfortunately pnpm doesn't understand it during local development 🙈

### With Docs

```bash
pnpm start-docs
```

### With Preact

```bash
pnpm start-preact
```

### With React

```bash
pnpm start-react
```

### With Remix

```bash
pnpm start-remix
```

### With Next

```bash
pnpm start-next
```

### With Svelte

```bash
pnpm start-svelte
```

### With Vanilla JS

```bash
pnpm start-vanilla
```

### With Vue

```bash
pnpm start-vue
```

### With Solid

```bash
pnpm start-solid
```

### With Qwik

```bash
pnpm start-qwik
```

## Relevant projects

- [react-zoomable-media](https://github.com/willnguyen1312/react-zoomable-media) - The library I wrote for my previous
company
- [zagjs](https://github.com/chakra-ui/zag) - The project's architecture is inspired by this library
- [TanStack](https://tanstack.com) - The project's core headless pattern is heavily inspired by this project - Headless
UI
- [js-image-zoom](https://github.com/malaman/js-image-zoom) - The internal working of zoom image on hover is inspired by
this library

## Sponsor

Buy Me A Coffee

## License

MIT © [Nam Nguyen](https://github.com/willnguyen1312)