<div align="center">

<img src="./docs/public/logo.svg" alt="" width="128px" height="128px">

# sv-router

[![npm](https://badgen.net/npm/v/sv-router)](https://www.npmjs.com/package/sv-router)
![downloads](https://badgen.net/npm/dm/sv-router)
![size](https://badgen.net/bundlephobia/minzip/sv-router)
[![codecov](https://codecov.io/github/colinlienard/sv-router/graph/badge.svg?token=C9RBSEFO9S)](https://codecov.io/github/colinlienard/sv-router)

Flexible, ergonomic, and complete Svelte 5 router.

[Documentation](https://sv-router.dev/) • [Getting Started](https://sv-router.dev/guide/getting-started) • [Reference](https://sv-router.dev/reference)

</div>

---

## Features

- 🔒 **Type-safe navigation**: Catch broken links before you ship.
- 🗂️ **File-based routing (optional)**: DX of a meta-framework-like approach.
- 🪶 **Lightweight**: ~ 5kB gzipped.
- ⚡ **Performance**: Built-in code splitting and preloading.
- 🔍 **Reactive search params**: For simpler state management in the URL.
- 🌿 **Nested routes**: Share layouts across pages.
- 🛡️ **Hooks**: For navigation guards, data loading, or analytics tracking.
- #️⃣ **Hash-based routing**: Works inside Electron/Tauri.

## Getting Started

Kickstart a new project:

```bash
npm create sv-router
```

...or add it to an existing project:

```bash
npm install sv-router
```

## License

[MIT](./LICENSE) © Colin Lienard
