https://github.com/davideperozzi/smoovy
A collection of small and useful js packages (smooth scrolling, router, parallax, webgl, utils, etc.) preventing copy & paste
https://github.com/davideperozzi/smoovy
javascript monorepo router smooth smooth-scrolling ticker tween typescript webgl website
Last synced: about 1 year ago
JSON representation
A collection of small and useful js packages (smooth scrolling, router, parallax, webgl, utils, etc.) preventing copy & paste
- Host: GitHub
- URL: https://github.com/davideperozzi/smoovy
- Owner: davideperozzi
- License: mit
- Created: 2019-04-24T23:56:13.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2025-03-15T23:07:03.000Z (about 1 year ago)
- Last Synced: 2025-03-27T10:47:52.304Z (about 1 year ago)
- Topics: javascript, monorepo, router, smooth, smooth-scrolling, ticker, tween, typescript, webgl, website
- Language: TypeScript
- Homepage:
- Size: 4.15 MB
- Stars: 82
- Watchers: 5
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# smoovy
[](https://cicd.davideperozzi.com/davideperozzi/smoovy)
[](https://codecov.io/gh/davideperozzi/smoovy)

[](./LICENSE)
A collection of small and useful js packages for simple preventing copy & paste. The goal is to use as few dependencies as possible to guarantee a **small final bundle**.
## Packages
| Name| Version |
| --- | --- |
| [@smoovy/composer](./packages/composer) | [](https://www.npmjs.com/package/@smoovy/scroller)
| [@smoovy/scroller](./packages/scroller) | [](https://www.npmjs.com/package/@smoovy/scroller)
| [@smoovy/observer](./packages/observer) | [](https://www.npmjs.com/package/@smoovy/observer)
| [@smoovy/parallax](./packages/parallax) | [](https://www.npmjs.com/package/@smoovy/parallax)
| [@smoovy/tween](./packages/tween) | [](https://www.npmjs.com/package/@smoovy/tween)
| [@smoovy/ticker](./packages/ticker) | [](https://www.npmjs.com/package/@smoovy/ticker)
| [@smoovy/emitter](./packages/emitter) | [](https://www.npmjs.com/package/@smoovy/emitter)
| [@smoovy/listener](./packages/listener) | [](https://www.npmjs.com/package/@smoovy/listener)
| [@smoovy/router](./packages/router) | [](https://www.npmjs.com/package/@smoovy/router)
| [@smoovy/webgl](./packages/webgl) | [](https://www.npmjs.com/package/@smoovy/webgl)
| [@smoovy/utils](./packages/utils) | [](https://www.npmjs.com/package/@smoovy/utils)
## Getting started
Choose a package you want to install. It's as easy as that:
```sh
yarn add @smoovy/
```
or
```sh
npm install --save @smoovy/
```
## Workflow
This is a simple monorepo consisting of some of the packages mentioned above.
### Building a package
To ensure the best result, packages are created with esbuild and tsc.
```sh
yarn build --scope=
```
### Testing a package
Packages will be tested with `vitest`.
```sh
yarn test --scope=
```
> Some packages are still missing tests. These will be excluded from the code coverage completely.
### Serving a package demo
The demo will be served and bundled with `vite`. Every demo must have a `index.html` file.
```sh
yarn dev --scope=
```
### Linting a package
The `ESLinter` is being used for linting packages. Everything except the `src` folder will be ignored.
```sh
yarn lint --scope=
```
## License
See the [LICENSE](./LICENSE) file for license rights and limitations (MIT).