# af-utils [![CodSpeed](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://app.codspeed.io/nowaalex/af-utils?utm_source=badge) Practical open-source utilities. [Website](https://af-utils.vercel.app) · [Virtual scrolling](https://af-utils.vercel.app/virtual) · [Scrollend polyfill](https://af-utils.vercel.app/scrollend-polyfill) · [Contributing](conventions.md)

## Projects ### Virtual scrolling Render large lists, grids, tables, and dynamically sized content without mounting everything at once. Available for React, Preact, Solid, Svelte, Lit, Vue, and a framework-agnostic core. [Choose a framework](https://af-utils.vercel.app/virtual/frameworks) · [Browse examples](https://af-utils.vercel.app/virtual/examples/react/basics/simple-list) · [Check compatibility](https://af-utils.vercel.app/virtual/support) ### Scrollend polyfill Use the standard `scrollend` event API consistently in browsers that still need a polyfill. [Get started](https://af-utils.vercel.app/scrollend-polyfill) · [Open the runnable example](https://af-utils.vercel.app/scrollend-polyfill/examples/react) · [See the bundle size](https://af-utils.vercel.app/scrollend-polyfill/size) ## Contributing Install the workspace dependencies with: ```sh pnpm install ``` The complete development workflow and repository rules live in [conventions.md](conventions.md). This repository is licensed under the [MIT License](LICENSE).